/** * A counter is just a gauge for an AtomicLong instance. You can increment or decrement its * value. We want a more efficient way of measuring the pending job in a queue */ private static void reportCounter() { // Create or fetch (if it is already created) the metric. final Counter counter = registry.counter(APP_PREFIX.tagged("what", "job-count")); // Somewhere in your code where you are adding new jobs to the queue you increment the // counter as well counter.inc(); // Oh look! Another job! counter.inc(); // Somewhere in your code the job is going to be removed from the queue you decrement the // counter counter.dec(); // That's it! The rest will be automatically done inside semantic metrics library. The // reported measurements will be kept in the registry. // Every time the reporter wants to report, the current value of the counter will be read // and // a datapoint will be created and reported. }
public InstrumentedExecutorService( ExecutorService delegate, SemanticMetricRegistry registry, MetricId baseMetricId) { MetricId baseMetricIdWithUnit = baseMetricId.tagged("unit", "task"); this.delegate = delegate; this.submitted = registry.meter(baseMetricIdWithUnit.tagged("what", "submitted")); this.running = registry.counter(baseMetricIdWithUnit.tagged("what", "running")); this.completed = registry.meter(baseMetricIdWithUnit.tagged("what", "completed")); this.idle = registry.timer(baseMetricId.tagged("what", "idle")); this.duration = registry.timer(baseMetricId.tagged("what", "duration")); }
public InstrumentedExecutorService( ExecutorService delegate, SemanticMetricRegistry registry, MetricId baseMetricId) { MetricId baseMetricIdWithUnit = baseMetricId.tagged("unit", "task"); this.delegate = delegate; this.submitted = registry.meter(baseMetricIdWithUnit.tagged("what", "submitted")); this.running = registry.counter(baseMetricIdWithUnit.tagged("what", "running")); this.completed = registry.meter(baseMetricIdWithUnit.tagged("what", "completed")); this.idle = registry.timer(baseMetricId.tagged("what", "idle")); this.duration = registry.timer(baseMetricId.tagged("what", "duration")); }
/** * Wraps an {@link java.util.concurrent.ScheduledExecutorService} with an explicit name. * * @param delegate {@link java.util.concurrent.ScheduledExecutorService} to wrap. * @param registry {@link SemanticMetricRegistry} that will contain the metrics. * @param baseMetricId base metric id for this executor service. */ public InstrumentedScheduledExecutorService( ScheduledExecutorService delegate, SemanticMetricRegistry registry, MetricId baseMetricId ) { this.delegate = delegate; MetricId baseMetricIdWithUnit = baseMetricId.tagged("unit", "task"); this.submitted = registry.meter(baseMetricIdWithUnit.tagged("what", "submitted")); this.running = registry.counter(baseMetricIdWithUnit.tagged("what", "running")); this.completed = registry.meter(baseMetricIdWithUnit.tagged("what", "completed")); this.duration = registry.timer(baseMetricIdWithUnit.tagged("what", "duration")); this.scheduledOnce = registry.meter(baseMetricIdWithUnit.tagged("what", "scheduled.once")); this.scheduledRepetitively = registry.meter(baseMetricIdWithUnit.tagged("what", "scheduled.repetitively")); this.scheduledOverrun = registry.counter(baseMetricIdWithUnit.tagged("what", "scheduled.overrun")); this.percentOfPeriod = registry.histogram(baseMetricIdWithUnit.tagged("what", "scheduled.percent-of-period")); }
/** * Wraps an {@link java.util.concurrent.ScheduledExecutorService} with an explicit name. * * @param delegate {@link java.util.concurrent.ScheduledExecutorService} to wrap. * @param registry {@link SemanticMetricRegistry} that will contain the metrics. * @param baseMetricId base metric id for this executor service. */ public InstrumentedScheduledExecutorService( ScheduledExecutorService delegate, SemanticMetricRegistry registry, MetricId baseMetricId ) { this.delegate = delegate; MetricId baseMetricIdWithUnit = baseMetricId.tagged("unit", "task"); this.submitted = registry.meter(baseMetricIdWithUnit.tagged("what", "submitted")); this.running = registry.counter(baseMetricIdWithUnit.tagged("what", "running")); this.completed = registry.meter(baseMetricIdWithUnit.tagged("what", "completed")); this.duration = registry.timer(baseMetricIdWithUnit.tagged("what", "duration")); this.scheduledOnce = registry.meter(baseMetricIdWithUnit.tagged("what", "scheduled.once")); this.scheduledRepetitively = registry.meter(baseMetricIdWithUnit.tagged("what", "scheduled.repetitively")); this.scheduledOverrun = registry.counter(baseMetricIdWithUnit.tagged("what", "scheduled.overrun")); this.percentOfPeriod = registry.histogram(baseMetricIdWithUnit.tagged("what", "scheduled.percent-of-period")); }