public class EventMetricCollector
extends java.lang.Object
Coordinates multiple MetricMeasurements
for all the events invoked in
the process of handling the user request.
Not thread-safe, should be used only by one thread at a time (obtaining the top-level measurement
via getInProgressMeasurements()
is thread-safe and permitted).
Modifier and Type | Field and Description |
---|---|
private StepMeasurements |
current |
private int |
depth
The number of nested events invoked so far.
|
private java.util.Map<java.lang.Object,EventCounters> |
perEventCounters |
private java.util.List<StepMeasurementSink> |
sinks |
private StepMeasurements |
top |
private java.util.Deque<java.lang.Object> |
topLevelEvent |
Constructor and Description |
---|
EventMetricCollector(java.util.Map<java.lang.Object,EventCounters> perEventCounters,
java.util.List<StepMeasurementSink> measurementSinks) |
Modifier and Type | Method and Description |
---|---|
(package private) StepMeasurements |
getInProgressMeasurements() |
void |
pauseForForward() |
void |
resumeAfterForward() |
void |
startTiming(java.lang.Object eventGroup,
java.lang.String event) |
void |
stopTiming() |
private volatile StepMeasurements top
private StepMeasurements current
private int depth
private java.util.Deque<java.lang.Object> topLevelEvent
private final java.util.Map<java.lang.Object,EventCounters> perEventCounters
private final java.util.List<StepMeasurementSink> sinks
EventMetricCollector(java.util.Map<java.lang.Object,EventCounters> perEventCounters, java.util.List<StepMeasurementSink> measurementSinks)
public void startTiming(java.lang.Object eventGroup, java.lang.String event)
public void stopTiming()
public void pauseForForward()
public void resumeAfterForward()
final StepMeasurements getInProgressMeasurements()