/** * * 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); } }
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();
/** * 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(); } }); }
private static <T> void makeGauge(String name, Supplier<T> value) { Gauge<T> gauge = new Gauge<T>() { @Override public T value() { return value.get(); } }; Metrics.newGauge(SpawnBalancer.class, name, gauge); }
public void reportGauge(Number number, MetricName metricName) { Metrics.newGauge(metricName, new Gauge<Double>() { @Override public Double value() { return number.doubleValue(); } } ); } }
public void reportGauge(Number number, MetricName metricName) { Metrics.newGauge(metricName, new Gauge<Double>() { @Override public Double value() { return number.doubleValue(); } } ); } }
private void setupGauges(final GenericObjectPool pool, String scope) { Metrics.newGauge(ManagedPooledDataSource.class, "numActive", scope, new Gauge<Integer>() { @Override public Integer value() { return pool.getNumActive(); } }); Metrics.newGauge(ManagedPooledDataSource.class, "numIdle", scope, new Gauge<Integer>() { @Override public Integer value() { return pool.getNumIdle(); } }); } }
public JobOnFinishStateHandlerImpl(Spawn spawn) { this.spawn = spawn; backgroundTaskQueue = new LinkedBlockingQueue<>(backgroundQueueSize); backgroundService = new ThreadPoolExecutor( backgroundThreads, backgroundThreads, 0L, TimeUnit.MILLISECONDS, backgroundTaskQueue, new ThreadFactoryBuilder().setDaemon(true).build()); emailLastFired = new AtomicLong(); backgroundQueueGauge = Metrics.newGauge( Spawn.class, "backgroundExecutorQueue", new Gauge<Integer>() { @Override public Integer value() { return backgroundTaskQueue.size(); } }); }
public AutobalanceTask(SpawnBalancer spawnBalancer) { this.spawnBalancer = spawnBalancer; this.minutesSinceLastBalanceGauge = new MinuteSinceLastBalanceGauge(); Metrics.newGauge(AutobalanceTask.class, "minutesSinceLastBalance", minutesSinceLastBalanceGauge); }
public static <T> SettableGauge<T> newSettableGauge(Class<?> klass, String name, T initial_value) { SettableGauge<T> gauge = new SettableGauge(initial_value); Metrics.newGauge(klass, name, gauge); return gauge; } }
public AbstractAgent(boolean localAgent, boolean pushAgent) { this.pushAgent = pushAgent; this.localAgent = localAgent; this.hostname = getLocalHostName(); Metrics.newGauge(ExpectedAgentMetric.BUFFER_BYTES_LEFT.metricName, new Gauge<Long>() { @Override public Long value() { return bufferSpaceLeft.get(); } } ); }
public static void set(long serverTime) { localTime = System.currentTimeMillis(); Clock.serverTime = serverTime; clockDrift = serverTime - localTime; if (clockDriftGauge == null) { // doesn't have to be synchronized, ok to initialize clockDriftGauge more than once clockDriftGauge = Metrics.newGauge(new MetricName("clock", "", "drift"), new Gauge<Long>() { @Override public Long value() { return clockDrift == null ? null : (long)Math.floor(clockDrift / 1000 + 0.5d); } }); } }
public AbstractAgent(boolean localAgent, boolean pushAgent) { this.pushAgent = pushAgent; this.localAgent = localAgent; this.hostname = getLocalHostName(); Metrics.newGauge(ExpectedAgentMetric.BUFFER_BYTES_LEFT.metricName, new Gauge<Long>() { @Override public Long value() { return bufferSpaceLeft.get(); } } ); }
public static void set(long serverTime) { localTime = System.currentTimeMillis(); Clock.serverTime = serverTime; clockDrift = serverTime - localTime; if (clockDriftGauge == null) { // doesn't have to be synchronized, ok to initialize clockDriftGauge more than once clockDriftGauge = Metrics.newGauge(new MetricName("clock", "", "drift"), new Gauge<Long>() { @Override public Long value() { return clockDrift == null ? null : (long)Math.floor(clockDrift / 1000 + 0.5d); } }); } }
public void addCounter(String name, final Callable<Integer> provider) { Metrics.newGauge(factory.createMetricName(name), new Gauge<Integer>() { public Integer value() { try { return provider.call(); } catch (Exception e) { throw new RuntimeException(e); } } }); } }
/** * Create a gauge that will be part of a merged version of all column families. The global gauge * is defined as the globalGauge parameter */ protected <G,T> Gauge<T> createColumnFamilyGauge(String name, Gauge<T> gauge, Gauge<G> globalGauge) { Gauge<T> cfGauge = Metrics.newGauge(factory.createMetricName(name), gauge); if (register(name, cfGauge)) { Metrics.newGauge(globalNameFactory.createMetricName(name), globalGauge); } return cfGauge; }
/** * Creates a gauge that will sum the current value of a metric for all column families in this keyspace * @param name * @param MetricValue * @return Gauge>Long> that computes sum of MetricValue.getValue() */ private <T extends Number> Gauge<Long> createKeyspaceGauge(String name, final MetricValue extractor) { allMetrics.add(name); return Metrics.newGauge(factory.createMetricName(name), new Gauge<Long>() { public Long value() { long sum = 0; for (ColumnFamilyStore cf : keyspace.getColumnFamilyStores()) { sum += extractor.getValue(cf.metric); } return sum; } }); }
public CachingGraphiteHostAnnotator(@Nullable final List<String> customSourceTags, boolean disableRdnsLookup) { this.disableRdnsLookup = disableRdnsLookup; this.sourceTags = Lists.newArrayListWithExpectedSize(customSourceTags == null ? 4 : customSourceTags.size() + 4); this.sourceTags.add("source="); this.sourceTags.add("source\"="); this.sourceTags.add("host="); this.sourceTags.add("host\"="); if (customSourceTags != null) { this.sourceTags.addAll(customSourceTags.stream().map(customTag -> customTag + "=").collect(Collectors.toList())); } this.rdnsCache = disableRdnsLookup ? null : Caffeine.newBuilder() .maximumSize(5000) .refreshAfterWrite(5, TimeUnit.MINUTES) .build(InetAddress::getHostName); Metrics.newGauge(ExpectedAgentMetric.RDNS_CACHE_SIZE.metricName, new Gauge<Long>() { @Override public Long value() { return disableRdnsLookup ? 0 : rdnsCache.estimatedSize(); } }); }
ReportingObjectQueueWrapper(ObjectQueue<T> backingQueue, String title) { this.addCounter = Metrics.newCounter(new MetricName("tape." + title, "", "add")); this.removeCounter = Metrics.newCounter(new MetricName("tape." + title, "", "remove")); this.peekCounter = Metrics.newCounter(new MetricName("tape." + title, "", "peek")); Metrics.newGauge(new MetricName("tape." + title, "", "size"), new Gauge<Integer>() { @Override public Integer value() { return backingQueue.size(); } }); this.backingQueue = backingQueue; }
ReportingObjectQueueWrapper(ObjectQueue<T> backingQueue, String title) { this.addCounter = Metrics.newCounter(new MetricName("tape." + title, "", "add")); this.removeCounter = Metrics.newCounter(new MetricName("tape." + title, "", "remove")); this.peekCounter = Metrics.newCounter(new MetricName("tape." + title, "", "peek")); Metrics.newGauge(new MetricName("tape." + title, "", "size"), new Gauge<Integer>() { @Override public Integer value() { return backingQueue.size(); } }); this.backingQueue = backingQueue; }