@Override public void snapshot(MetricsRecordBuilder rb, boolean all) { try { Object ret = method.invoke(obj, (Object[])null); if (isInt(type)) rb.addCounter(info, ((Integer) ret).intValue()); else rb.addCounter(info, ((Long) ret).longValue()); } catch (Exception ex) { LOG.error("Error invoking method "+ method.getName(), ex); } } };
private void getEventCounters(MetricsRecordBuilder rb) { rb.addCounter(LogFatal, EventCounter.getFatal()) .addCounter(LogError, EventCounter.getError()) .addCounter(LogWarn, EventCounter.getWarn()) .addCounter(LogInfo, EventCounter.getInfo()); } }
private void getEventCounters(MetricsRecordBuilder rb) { rb.addCounter(LogFatal, EventCounter.getFatal()) .addCounter(LogError, EventCounter.getError()) .addCounter(LogWarn, EventCounter.getWarn()) .addCounter(LogInfo, EventCounter.getInfo()); } }
private void getGcUsage(MetricsRecordBuilder rb) { long count = 0; long timeMillis = 0; for (GarbageCollectorMXBean gcBean : gcBeans) { long c = gcBean.getCollectionCount(); long t = gcBean.getCollectionTime(); MetricsInfo[] gcInfo = getGcInfo(gcBean.getName()); rb.addCounter(gcInfo[0], c).addCounter(gcInfo[1], t); count += c; timeMillis += t; } rb.addCounter(GcCount, count) .addCounter(GcTimeMillis, timeMillis); if (pauseMonitor != null) { rb.addCounter(GcNumWarnThresholdExceeded, pauseMonitor.getNumGcWarnThreadholdExceeded()); rb.addCounter(GcNumInfoThresholdExceeded, pauseMonitor.getNumGcInfoThresholdExceeded()); rb.addCounter(GcTotalExtraSleepTime, pauseMonitor.getTotalGcExtraSleepTime()); } }
private void getGcUsage(MetricsRecordBuilder rb) { long count = 0; long timeMillis = 0; for (GarbageCollectorMXBean gcBean : gcBeans) { long c = gcBean.getCollectionCount(); long t = gcBean.getCollectionTime(); MetricsInfo[] gcInfo = getGcInfo(gcBean.getName()); rb.addCounter(gcInfo[0], c).addCounter(gcInfo[1], t); count += c; timeMillis += t; } rb.addCounter(GcCount, count) .addCounter(GcTimeMillis, timeMillis); if (pauseMonitor != null) { rb.addCounter(GcNumWarnThresholdExceeded, pauseMonitor.getNumGcWarnThresholdExceeded()); rb.addCounter(GcNumInfoThresholdExceeded, pauseMonitor.getNumGcInfoThresholdExceeded()); rb.addCounter(GcTotalExtraSleepTime, pauseMonitor.getTotalGcExtraSleepTime()); } if (gcTimeMonitor != null) { rb.addGauge(GcTimePercentage, gcTimeMonitor.getLatestGcData().getGcTimePercentage()); } }
private void addCounter(String name, Counter counter, MetricsRecordBuilder builder) { MetricsInfo info = Interns.info(name, EMPTY_STRING); builder.addCounter(info, counter.getCount()); }
private void addDecayedCallVolume(MetricsRecordBuilder rb) { rb.addCounter(Interns.info("DecayedCallVolume", "Decayed Total " + "incoming Call Volume"), getTotalCallVolume()); }
private void addRawCallVolume(MetricsRecordBuilder rb) { rb.addCounter(Interns.info("CallVolume", "Raw Total " + "incoming Call Volume"), getTotalRawCallVolume()); }
private void addUniqueIdentityCount(MetricsRecordBuilder rb) { rb.addCounter(Interns.info("UniqueCallers", "Total unique callers"), getUniqueIdentityCount()); }
private void getCacheStats(MetricsRecordBuilder rb) { float cacheHitRatio = cacheRequestedBytes.value() == 0 ? 0.0f : (float) cacheHitBytes.value() / (float) cacheRequestedBytes.value(); long cacheCapacityRemaining = cacheCapacityTotal.value() - cacheCapacityUsed.value(); float cacheRemainingPercent = cacheCapacityTotal.value() == 0 ? 0.0f : (float) cacheCapacityRemaining / (float) cacheCapacityTotal.value(); rb.addCounter(CacheCapacityRemaining, cacheCapacityRemaining) .addGauge(CacheCapacityRemainingPercentage, cacheRemainingPercent) .addCounter(CacheCapacityTotal, cacheCapacityTotal.value()) .addCounter(CacheCapacityUsed, cacheCapacityUsed.value()) .addCounter(CacheReadRequests, cacheReadRequests.value()) .addCounter(CacheRequestedBytes, cacheRequestedBytes.value()) .addCounter(CacheHitBytes, cacheHitBytes.value()) .addCounter(CacheAllocatedArena, cacheAllocatedArena.value()) .addCounter(CacheNumLockedBuffers, cacheNumLockedBuffers.value()) .addGauge(CacheHitRatio, cacheHitRatio); }
private void getTaskSchedulerStats(MetricsRecordBuilder rb) { rb.addGauge(SchedulerClusterNodeCount, clusterNodeCount.value()) .addGauge(SchedulerExecutorsPerInstance, numExecutors.value()) .addGauge(SchedulerMemoryPerInstance, memoryPerInstance.value()) .addGauge(SchedulerCpuCoresPerInstance, cpuCoresPerInstance.value()) .addGauge(SchedulerDisabledNodeCount, disabledNodeCount.value()) .addCounter(SchedulerPendingTaskCount, pendingTasksCount.value()) .addCounter(SchedulerSchedulableTaskCount, schedulableTasksCount.value()) .addCounter(SchedulerRunningTaskCount, runningTasksCount.value()) .addCounter(SchedulerSuccessfulTaskCount, successfulTasksCount.value()) .addCounter(SchedulerPendingPreemptionTaskCount, pendingPreemptionTasksCount.value()) .addCounter(SchedulerPreemptedTaskCount, preemptedTasksCount.value()) .addCounter(SchedulerCompletedDagCount, completedDagcount.value()); }
@Override public void snapshot(MetricsRecordBuilder builder, boolean all) { if (all || changed()) { builder.addCounter(info(), value()); clearChanged(); } }
@Override public void getMetrics(MetricsCollector metricsCollector, boolean all) { MetricsRecordBuilder mrb = metricsCollector.addRecord(metricsName); // wrapper can be null because this function is called inside of init. if (wrapper != null) { mrb.addCounter(Interns.info(CHECKSUM_FAILURES_KEY, CHECKSUM_FAILURES_DESC), wrapper.getChecksumFailures()); } metricsRegistry.snapshot(mrb, all); } }
private void addTopNCallerSummary(MetricsRecordBuilder rb) { TopN topNCallers = getTopCallers(topUsersCount); Map<Object, Integer> decisions = scheduleCacheRef.get(); final int actualCallerCount = topNCallers.size(); for (int i = 0; i < actualCallerCount; i++) { NameValuePair entry = topNCallers.poll(); String topCaller = "Caller(" + entry.getName() + ")"; String topCallerVolume = topCaller + ".Volume"; String topCallerPriority = topCaller + ".Priority"; rb.addCounter(Interns.info(topCallerVolume, topCallerVolume), entry.getValue()); Integer priority = decisions.get(entry.getName()); if (priority != null) { rb.addCounter(Interns.info(topCallerPriority, topCallerPriority), priority); } } }
public void updateSnapshotRangeMetrics(MetricsRecordBuilder metricsRecordBuilder, Snapshot snapshot) { long priorRange = 0; long cumNum = 0; final long[] ranges = getRanges(); final String rangeType = getRangeType(); for (int i = 0; i < ranges.length - 1; i++) { long val = snapshot.getCountAtOrBelow(ranges[i]); if (val - cumNum > 0) { metricsRecordBuilder.addCounter( Interns.info(name + "_" + rangeType + "_" + priorRange + "-" + ranges[i], desc), val - cumNum); } priorRange = ranges[i]; cumNum = val; } long val = histogram.getCount(); if (val - cumNum > 0) { metricsRecordBuilder.addCounter( Interns.info(name + "_" + rangeType + "_" + ranges[ranges.length - 1] + "-inf", desc), val - cumNum); } } }
@Override public void snapshot(MetricsRecordBuilder builder, boolean all) { if (all || changed()) { builder.addCounter(info(), value()); clearChanged(); } }
@Override public void snapshot(MetricsRecordBuilder builder, boolean all) { if (all || changed()) { builder.addCounter(info(), value()); clearChanged(); } }
@Test public void testCounterReporting() { final Counter counter = new Counter(); TreeMap<String, Counter> counters = new TreeMap<>(); counters.put("my_counter", counter); // Add the metrics objects to the internal "queues" by hand metrics2Reporter.setDropwizardCounters(counters); // Set some values counter.inc(5L); MetricsCollector collector = mock(MetricsCollector.class); MetricsRecordBuilder recordBuilder = mock(MetricsRecordBuilder.class); Mockito.when(collector.addRecord(recordName)).thenReturn(recordBuilder); metrics2Reporter.getMetrics(collector, true); verify(recordBuilder).addCounter(Interns.info("my_counter", ""), 5L); verifyRecordBuilderUnits(recordBuilder); // Should not be the same instance we gave before. Our map should have gotten swapped out. assertTrue("Should not be the same map instance after collection", counters != metrics2Reporter.getDropwizardCounters()); }
@Override public synchronized void snapshot(MetricsRecordBuilder builder, boolean all) { if (all || changed()) { numSamples += intervalStat.numSamples(); builder.addCounter(numInfo, numSamples) .addGauge(avgInfo, lastStat().mean()); if (extended) { builder.addGauge(stdevInfo, lastStat().stddev()) .addGauge(iMinInfo, lastStat().min()) .addGauge(iMaxInfo, lastStat().max()) .addGauge(minInfo, minMax.min()) .addGauge(maxInfo, minMax.max()) .addGauge(iNumInfo, lastStat().numSamples()); } if (changed()) { if (numSamples > 0) { intervalStat.copyTo(prevStat); intervalStat.reset(); } clearChanged(); } } }
protected static void updateSnapshotMetrics(String name, String desc, Histogram histogram, Snapshot snapshot, MetricsRecordBuilder metricsRecordBuilder) { metricsRecordBuilder.addCounter(Interns.info(name + NUM_OPS_METRIC_NAME, desc), histogram.getCount()); metricsRecordBuilder.addGauge(Interns.info(name + MIN_METRIC_NAME, desc), snapshot.getMin()); metricsRecordBuilder.addGauge(Interns.info(name + MAX_METRIC_NAME, desc), snapshot.getMax()); metricsRecordBuilder.addGauge(Interns.info(name + MEAN_METRIC_NAME, desc), snapshot.getMean()); metricsRecordBuilder.addGauge(Interns.info(name + TWENTY_FIFTH_PERCENTILE_METRIC_NAME, desc), snapshot.get25thPercentile()); metricsRecordBuilder.addGauge(Interns.info(name + MEDIAN_METRIC_NAME, desc), snapshot.getMedian()); metricsRecordBuilder.addGauge(Interns.info(name + SEVENTY_FIFTH_PERCENTILE_METRIC_NAME, desc), snapshot.get75thPercentile()); metricsRecordBuilder.addGauge(Interns.info(name + NINETIETH_PERCENTILE_METRIC_NAME, desc), snapshot.get90thPercentile()); metricsRecordBuilder.addGauge(Interns.info(name + NINETY_FIFTH_PERCENTILE_METRIC_NAME, desc), snapshot.get95thPercentile()); metricsRecordBuilder.addGauge(Interns.info(name + NINETY_EIGHTH_PERCENTILE_METRIC_NAME, desc), snapshot.get98thPercentile()); metricsRecordBuilder.addGauge(Interns.info(name + NINETY_NINETH_PERCENTILE_METRIC_NAME, desc), snapshot.get99thPercentile()); metricsRecordBuilder.addGauge( Interns.info(name + NINETY_NINE_POINT_NINETH_PERCENTILE_METRIC_NAME, desc), snapshot.get999thPercentile()); } }