public class EventTimer
extends java.lang.Object
EventMetricCollector
to each Timeable
on demand, guaranteed
to be thread-safe as long is it's only ever used by the requesting thread.Modifier and Type | Field and Description |
---|---|
private static org.slf4j.Logger |
LOG
Setting this
Logger to DEBUG level will list all the created metrics in a
tab-delimited format, useful for importing elsewhere |
private ThreadValue<EventMetricCollector> |
metricCollectors |
private ThreadMetricSuite |
metricSuite |
private java.util.Map<java.lang.Object,EventCounters> |
perEventGroupCounters |
private java.lang.String |
prefix |
private MonitorableRegistry |
registry |
private java.util.List<StepMeasurementSink> |
stepMeasurementSinks |
private java.util.Map<java.lang.String,MonitoredCounter> |
totalCountersAcrossEvents
Holds the singleton total counters which are used across all events.
|
Constructor and Description |
---|
EventTimer(java.lang.String prefix,
MonitorableRegistry registry,
ThreadMetricSuite metrics,
boolean enableCpuCollection,
boolean enableContentionCollection) |
EventTimer(java.lang.String prefix,
MonitorableRegistry registry,
ThreadMetricSuite metrics,
boolean enableCpuCollection,
boolean enableContentionCollection,
java.util.List<StepMeasurementSink> stepMeasurementSinks) |
Modifier and Type | Method and Description |
---|---|
private java.lang.String |
cleanName(java.lang.String eventGroup) |
private EventMetricCounters |
createEventMetricCounters(java.lang.String beanName,
java.lang.String metric,
java.lang.String metricDescription,
javax.measure.Unit<?> unit) |
private MonitoredCounter |
createMetric(java.lang.String beanName,
java.lang.String metric,
java.lang.String description,
javax.measure.Unit<?> unit) |
EventMetricCollector |
getCollector() |
(package private) java.util.Map<java.lang.Thread,EventMetricCollector> |
getCollectorThreadMap() |
private EventCounters |
getCounterSet(java.lang.String eventGroup) |
(package private) EventCounters |
getCounterSetForEventGroup(java.lang.Object eventGroup) |
private java.lang.String |
getMetricName(java.lang.String eventGroup,
java.lang.String metric) |
(package private) ThreadMetricSuite |
getMetricSuite() |
(package private) java.lang.Integer |
getNumberOfTotalEventCounters() |
private java.lang.String |
getTotalMetricName(java.lang.String metric) |
void |
registerMetric(java.lang.String eventGroup) |
void |
registerTimeable(Timeable timeable,
java.lang.String eventGroup) |
private static final org.slf4j.Logger LOG
Logger
to DEBUG level will list all the created metrics in a
tab-delimited format, useful for importing elsewhereprivate final java.util.Map<java.lang.Object,EventCounters> perEventGroupCounters
private final java.util.List<StepMeasurementSink> stepMeasurementSinks
private final ThreadValue<EventMetricCollector> metricCollectors
private final java.util.Map<java.lang.String,MonitoredCounter> totalCountersAcrossEvents
private final ThreadMetricSuite metricSuite
private final java.lang.String prefix
private final MonitorableRegistry registry
public EventTimer(java.lang.String prefix, MonitorableRegistry registry, ThreadMetricSuite metrics, boolean enableCpuCollection, boolean enableContentionCollection)
public EventTimer(java.lang.String prefix, MonitorableRegistry registry, ThreadMetricSuite metrics, boolean enableCpuCollection, boolean enableContentionCollection, java.util.List<StepMeasurementSink> stepMeasurementSinks)
public EventMetricCollector getCollector()
public void registerTimeable(Timeable timeable, java.lang.String eventGroup)
public void registerMetric(java.lang.String eventGroup)
private EventCounters getCounterSet(java.lang.String eventGroup)
private MonitoredCounter createMetric(java.lang.String beanName, java.lang.String metric, java.lang.String description, javax.measure.Unit<?> unit)
private EventMetricCounters createEventMetricCounters(java.lang.String beanName, java.lang.String metric, java.lang.String metricDescription, javax.measure.Unit<?> unit)
private java.lang.String getMetricName(java.lang.String eventGroup, java.lang.String metric)
private java.lang.String cleanName(java.lang.String eventGroup)
private java.lang.String getTotalMetricName(java.lang.String metric)
java.lang.Integer getNumberOfTotalEventCounters()
EventCounters getCounterSetForEventGroup(java.lang.Object eventGroup)
ThreadMetricSuite getMetricSuite()
java.util.Map<java.lang.Thread,EventMetricCollector> getCollectorThreadMap()