/** * Removes an existing metric */ public static void removeMetric(MetricsRegistry registry, MetricName name) { if (registry != null) { registry.removeMetric(name); } else { Metrics.defaultRegistry().removeMetric(name); } }
/** * * Return an existing histogram if * (a) A histogram already exist with the same metric name. * Otherwise, creates a new meter and registers * * @param registry MetricsRegistry * @param name metric name * @param biased (true if uniform distribution, otherwise exponential weighted) * @return histogram */ public static Histogram newHistogram(MetricsRegistry registry, MetricName name, boolean biased) { if (registry != null) { return registry.newHistogram(name, biased); } else { return Metrics.newHistogram(name, biased); } }
/** * * Return an existing counter if * (a) A counter already exist with the same metric name. * Otherwise, creates a new meter and registers * * @param registry MetricsRegistry * @param name metric name * @return Counter */ public static Counter newCounter(MetricsRegistry registry, MetricName name) { if (registry != null) { return registry.newCounter(name); } else { return Metrics.newCounter(name); } }
Timer timer = Metrics.newTimer( BcryptCommandTest.class, "hashtimer" ); TimerContext timerCtx = timer.time(); timerCtx.stop(); ConsoleReporter reporter = new ConsoleReporter( Metrics.defaultRegistry(), System.out, MetricPredicate.ALL ); reporter.run();
private void reportYammerMetrics(long now) throws Exception { LOG.debug("Reporting yammer metrics."); YammerMetricProcessor.Context context = new YammerMetricProcessor.Context(this, now, _brokerId, _reportingIntervalMs); for (Map.Entry<com.yammer.metrics.core.MetricName, Metric> entry : Metrics.defaultRegistry().allMetrics().entrySet()) { LOG.trace("Processing yammer metric {}, scope = {}", entry.getKey(), entry.getKey().getScope()); entry.getValue().processWith(_yammerMetricProcessor, entry.getKey(), context); } LOG.debug("Finished reporting yammer metrics."); }
/** * * Return an existing timer if * (a) A timer already exist with the same metric name. * Otherwise, creates a new timer and registers * * @param registry MetricsRegistry * @param name metric name * @param durationUnit TimeUnit for duration * @param rateUnit TimeUnit for rate determination * @return Timer */ public static Timer newTimer(MetricsRegistry registry, MetricName name, TimeUnit durationUnit, TimeUnit rateUnit) { if (registry != null) { return registry.newTimer(name, durationUnit, rateUnit); } else { return Metrics.newTimer(name, durationUnit, rateUnit); } }
/** * * Return an existing gauge if * (a) A gauge already exist with the same metric name. * Otherwise, creates a new meter and registers * * @param registry MetricsRegistry * @param name metric name * @param gauge Underlying gauge to be tracked * @return gauge */ public static <T> Gauge<T> newGauge(MetricsRegistry registry, MetricName name, Gauge<T> gauge) { if (registry != null) { return registry.newGauge(name, gauge); } else { return Metrics.newGauge(name, gauge); } }
/** * Create metrics for given ThreadPoolExecutor. * * @param executor Thread pool * @param path Type of thread pool * @param poolName Name of thread pool to identify metrics */ public ThreadPoolMetrics(final ThreadPoolExecutor executor, String path, String poolName) { this.factory = new ThreadPoolMetricNameFactory("ThreadPools", path, poolName); activeTasks = Metrics.newGauge(factory.createMetricName("ActiveTasks"), new Gauge<Integer>() { public Integer value() { return executor.getActiveCount(); } }); totalBlocked = Metrics.newCounter(factory.createMetricName("TotalBlockedTasks")); currentBlocked = Metrics.newCounter(factory.createMetricName("CurrentlyBlockedTasks")); completedTasks = Metrics.newGauge(factory.createMetricName("CompletedTasks"), new Gauge<Long>() { public Long value() { return executor.getCompletedTaskCount(); } }); pendingTasks = Metrics.newGauge(factory.createMetricName("PendingTasks"), new Gauge<Long>() { public Long value() { return executor.getTaskCount() - executor.getCompletedTaskCount(); } }); }
/** * * Return an existing meter if * (a) A meter already exist with the same metric name. * Otherwise, creates a new meter and registers * * @param registry MetricsRegistry * @param name metric name * @param eventType Event Type * @param unit TimeUnit for rate determination * @return Meter */ public static Meter newMeter(MetricsRegistry registry, MetricName name, String eventType, TimeUnit unit) { if (registry != null) { return registry.newMeter(name, eventType, unit); } else { return Metrics.newMeter(name, eventType, unit); } }
/** * Create metrics for given connection pool. * * @param ip IP address to use for metrics label */ public ConnectionMetrics(NetEndpoint ip) { // ipv6 addresses will contain colons, which are invalid in a JMX ObjectName String address = ip.getHostAddress().replaceAll(":", "."); factory = new DefaultNameFactory("Connection", address); timeouts = Metrics.newMeter(factory.createMetricName("Timeouts"), "timeouts", TimeUnit.SECONDS); }
activeTasks = Metrics.newGauge(factory.createMetricName("ActiveTasks"), new Gauge<Integer>() { public Integer value() { return executor.getActiveCount(); pendingTasks = Metrics.newGauge(factory.createMetricName("PendingTasks"), new Gauge<Long>() { public Long value() { return executor.getPendingTasks(); totalBlocked = Metrics.newGauge(factory.createMetricName("TotalBlockedTasks"), new Gauge<Integer>() { public Integer value() { return executor.getTotalBlockedTasks(); currentBlocked = Metrics.newGauge(factory.createMetricName("CurrentlyBlockedTasks"), new Gauge<Long>() { public Long value() { return (long) executor.getCurrentlyBlockedTasks(); completedTasks = Metrics.newGauge(factory.createMetricName("CompletedTasks"), new Gauge<Long>() { public Long value() { return executor.getCompletedTasks();
@Override protected Ratio getRatio() { return Ratio.of(responses[3].getFiveMinuteRate(), requests.getFiveMinuteRate()); } });
@Override protected Ratio getRatio() { return Ratio.of(responses[3].getFifteenMinuteRate(), requests.getFifteenMinuteRate()); } });
@Override protected Ratio getRatio() { return Ratio.of(responses[4].getOneMinuteRate(), requests.getOneMinuteRate()); } });
public void release() { Metrics.defaultRegistry().removeMetric(factory.createMetricName("ActiveTasks")); Metrics.defaultRegistry().removeMetric(factory.createMetricName("PendingTasks")); Metrics.defaultRegistry().removeMetric(factory.createMetricName("CompletedTasks")); Metrics.defaultRegistry().removeMetric(factory.createMetricName("TotalBlockedTasks")); Metrics.defaultRegistry().removeMetric(factory.createMetricName("CurrentlyBlockedTasks")); } }
public DroppedMessageMetrics(Verb verb) { MetricNameFactory factory = new DefaultNameFactory("DroppedMessage", verb.toString()); dropped = Metrics.newMeter(factory.createMetricName("Dropped"), "dropped", TimeUnit.SECONDS); } }
@Override protected Ratio getRatio() { return Ratio.of(responses[4].getFiveMinuteRate(), requests.getFiveMinuteRate()); } });
@Override protected Ratio getRatio() { return Ratio.of(responses[4].getFifteenMinuteRate(), requests.getFifteenMinuteRate()); } });
public void release() { Metrics.defaultRegistry().removeMetric(factory.createMetricName("ActiveTasks")); Metrics.defaultRegistry().removeMetric(factory.createMetricName("PendingTasks")); Metrics.defaultRegistry().removeMetric(factory.createMetricName("CompletedTasks")); Metrics.defaultRegistry().removeMetric(factory.createMetricName("TotalBlockedTasks")); Metrics.defaultRegistry().removeMetric(factory.createMetricName("CurrentlyBlockedTasks")); } }
public void release() { Metrics.defaultRegistry().removeMetric(factory.createMetricName("Timeouts")); } }