List of usage examples for org.apache.hadoop.metrics2 MetricsRecordBuilder addGauge
public abstract MetricsRecordBuilder addGauge(MetricsInfo info, double value);
From source file:com.github.joshelser.dropwizard.metrics.hadoop.HadoopMetrics2Reporter.java
License:Apache License
/** * Consumes the current metrics collected by dropwizard and adds them to the {@code builder}. * * @param builder A record builder/*w ww . j a v a 2 s.c o m*/ */ void snapshotAllMetrics(MetricsRecordBuilder builder) { try { // Pass through the gauges @SuppressWarnings("rawtypes") Iterator<Entry<String, Gauge>> gaugeIterator = dropwizardGauges.entrySet().iterator(); while (gaugeIterator.hasNext()) { @SuppressWarnings("rawtypes") Entry<String, Gauge> gauge = gaugeIterator.next(); final MetricsInfo info = Interns.info(gauge.getKey(), EMPTY_STRING); final Object o = gauge.getValue().getValue(); // Figure out which gauge types metrics2 supports and call the right method if (o instanceof Integer) { builder.addGauge(info, (int) o); } else if (o instanceof Long) { builder.addGauge(info, (long) o); } else if (o instanceof Float) { builder.addGauge(info, (float) o); } else if (o instanceof Double) { builder.addGauge(info, (double) o); } else { LOG.trace("Ignoring Gauge ({}) with unhandled type: {}", gauge.getKey(), o.getClass()); } } } finally { dropwizardGauges = EMPTY_GAUGE_MAP; } try { // Pass through the counters Iterator<Entry<String, Counter>> counterIterator = dropwizardCounters.entrySet().iterator(); while (counterIterator.hasNext()) { Entry<String, Counter> counter = counterIterator.next(); MetricsInfo info = Interns.info(counter.getKey(), EMPTY_STRING); builder.addCounter(info, counter.getValue().getCount()); } } finally { dropwizardCounters = EMPTY_COUNTER_MAP; } try { // Pass through the histograms Iterator<Entry<String, Histogram>> histogramIterator = dropwizardHistograms.entrySet().iterator(); while (histogramIterator.hasNext()) { final Entry<String, Histogram> entry = histogramIterator.next(); final String name = entry.getKey(); final Histogram histogram = entry.getValue(); addSnapshot(builder, name, EMPTY_STRING, histogram.getSnapshot(), histogram.getCount()); } } finally { dropwizardHistograms = EMPTY_HISTOGRAM_MAP; } try { // Pass through the meter values Iterator<Entry<String, Meter>> meterIterator = dropwizardMeters.entrySet().iterator(); while (meterIterator.hasNext()) { final Entry<String, Meter> meterEntry = meterIterator.next(); final String name = meterEntry.getKey(); final Meter meter = meterEntry.getValue(); addMeter(builder, name, EMPTY_STRING, meter.getCount(), meter.getMeanRate(), meter.getOneMinuteRate(), meter.getFiveMinuteRate(), meter.getFifteenMinuteRate()); } } finally { dropwizardMeters = EMPTY_METER_MAP; } try { // Pass through the timers (meter + histogram) Iterator<Entry<String, Timer>> timerIterator = dropwizardTimers.entrySet().iterator(); while (timerIterator.hasNext()) { final Entry<String, Timer> timerEntry = timerIterator.next(); final String name = timerEntry.getKey(); final Timer timer = timerEntry.getValue(); final Snapshot snapshot = timer.getSnapshot(); // Add the meter info (mean rate and rate over time windows) addMeter(builder, name, EMPTY_STRING, timer.getCount(), timer.getMeanRate(), timer.getOneMinuteRate(), timer.getFiveMinuteRate(), timer.getFifteenMinuteRate()); // Count was already added via the meter addSnapshot(builder, name, EMPTY_STRING, snapshot); } } finally { dropwizardTimers = EMPTY_TIMER_MAP; } // Add in metadata about what the units the reported metrics are displayed using. builder.tag(RATE_UNIT_LABEL, getRateUnit()); builder.tag(DURATION_UNIT_LABEL, getDurationUnit()); }
From source file:com.github.joshelser.dropwizard.metrics.hadoop.HadoopMetrics2Reporter.java
License:Apache License
/** * Add Dropwizard-Metrics rate information to a Hadoop-Metrics2 record builder, converting the * rates to the appropriate unit.//from www .j a v a 2 s . c om * * @param builder A Hadoop-Metrics2 record builder. * @param name A base name for this record. * @param desc A description for the record. * @param count The number of measured events. * @param meanRate The average measured rate. * @param oneMinuteRate The measured rate over the past minute. * @param fiveMinuteRate The measured rate over the past five minutes * @param fifteenMinuteRate The measured rate over the past fifteen minutes. */ private void addMeter(MetricsRecordBuilder builder, String name, String desc, long count, double meanRate, double oneMinuteRate, double fiveMinuteRate, double fifteenMinuteRate) { builder.addGauge(Interns.info(name + "_count", EMPTY_STRING), count); builder.addGauge(Interns.info(name + "_mean_rate", EMPTY_STRING), convertRate(meanRate)); builder.addGauge(Interns.info(name + "_1min_rate", EMPTY_STRING), convertRate(oneMinuteRate)); builder.addGauge(Interns.info(name + "_5min_rate", EMPTY_STRING), convertRate(fiveMinuteRate)); builder.addGauge(Interns.info(name + "_15min_rate", EMPTY_STRING), convertRate(fifteenMinuteRate)); }
From source file:com.github.joshelser.dropwizard.metrics.hadoop.HadoopMetrics2Reporter.java
License:Apache License
/** * Add Dropwizard-Metrics value-distribution data to a Hadoop-Metrics2 record building, converting * the durations to the appropriate unit. * * @param builder A Hadoop-Metrics2 record builder. * @param name A base name for this record. * @param desc A description for this record. * @param snapshot The distribution of measured values. * @param count The number of values which were measured. *//*from ww w . j av a 2s . c om*/ private void addSnapshot(MetricsRecordBuilder builder, String name, String desc, Snapshot snapshot, long count) { builder.addGauge(Interns.info(name + "_count", desc), count); addSnapshot(builder, name, desc, snapshot); }
From source file:com.github.joshelser.dropwizard.metrics.hadoop.HadoopMetrics2Reporter.java
License:Apache License
/** * Add Dropwizard-Metrics value-distribution data to a Hadoop-Metrics2 record building, converting * the durations to the appropriate unit. * * @param builder A Hadoop-Metrics2 record builder. * @param name A base name for this record. * @param desc A description for this record. * @param snapshot The distribution of measured values. *//*from w ww.j a va2 s.c o m*/ private void addSnapshot(MetricsRecordBuilder builder, String name, String desc, Snapshot snapshot) { builder.addGauge(Interns.info(name + "_mean", desc), convertDuration(snapshot.getMean())); builder.addGauge(Interns.info(name + "_min", desc), convertDuration(snapshot.getMin())); builder.addGauge(Interns.info(name + "_max", desc), convertDuration(snapshot.getMax())); builder.addGauge(Interns.info(name + "_median", desc), convertDuration(snapshot.getMedian())); builder.addGauge(Interns.info(name + "_stddev", desc), convertDuration(snapshot.getStdDev())); builder.addGauge(Interns.info(name + "_75thpercentile", desc), convertDuration(snapshot.get75thPercentile())); builder.addGauge(Interns.info(name + "_95thpercentile", desc), convertDuration(snapshot.get95thPercentile())); builder.addGauge(Interns.info(name + "_98thpercentile", desc), convertDuration(snapshot.get98thPercentile())); builder.addGauge(Interns.info(name + "_99thpercentile", desc), convertDuration(snapshot.get99thPercentile())); builder.addGauge(Interns.info(name + "_999thpercentile", desc), convertDuration(snapshot.get999thPercentile())); }
From source file:org.apache.accumulo.tserver.metrics.Metrics2TabletServerMetrics.java
License:Apache License
@Override public void getMetrics(MetricsCollector collector, boolean all) { MetricsRecordBuilder builder = collector.addRecord(RECORD).setContext(CONTEXT); // Update each MutableMetric with the new value snapshot();//from w w w . j a v a 2 s .co m // Add then all to the builder registry.snapshot(builder, all); // TODO Some day, MetricsRegistry will also support the MetricsGaugeDouble or allow us to instantiate it directly builder.addGauge(Interns.info(FILES_PER_TABLET, "Number of files per tablet"), util.getAverageFilesPerTablet()); builder.addGauge(Interns.info(HOLD_TIME, "Time commits held"), util.getHoldTime()); }
From source file:org.apache.calcite.dropwizard.metrics.hadoop.HadoopMetrics2Reporter.java
License:Apache License
/** * Consumes the current metrics collected by dropwizard and adds them to the {@code builder}. * * @param builder A record builder// w w w . j a v a 2 s . c o m */ void snapshotAllMetrics(MetricsRecordBuilder builder) { // Pass through the gauges @SuppressWarnings("rawtypes") Iterator<Entry<String, Gauge>> gaugeIterator = dropwizardGauges.iterator(); while (gaugeIterator.hasNext()) { @SuppressWarnings("rawtypes") Entry<String, Gauge> gauge = gaugeIterator.next(); final MetricsInfo info = Interns.info(gauge.getKey(), EMPTY_STRING); final Object o = gauge.getValue().getValue(); // Figure out which gauge types metrics2 supports and call the right method if (o instanceof Integer) { builder.addGauge(info, (int) o); } else if (o instanceof Long) { builder.addGauge(info, (long) o); } else if (o instanceof Float) { builder.addGauge(info, (float) o); } else if (o instanceof Double) { builder.addGauge(info, (double) o); } else { LOG.info("Ignoring Gauge ({}) with unhandled type: {}", gauge.getKey(), o.getClass()); } gaugeIterator.remove(); } // Pass through the counters Iterator<Entry<String, Counter>> counterIterator = dropwizardCounters.iterator(); while (counterIterator.hasNext()) { Entry<String, Counter> counter = counterIterator.next(); MetricsInfo info = Interns.info(counter.getKey(), EMPTY_STRING); LOG.info("Adding counter {} {}", info, counter.getValue().getCount()); builder.addCounter(info, counter.getValue().getCount()); counterIterator.remove(); } // Pass through the histograms Iterator<Entry<String, Histogram>> histogramIterator = dropwizardHistograms.iterator(); while (histogramIterator.hasNext()) { final Entry<String, Histogram> entry = histogramIterator.next(); final String name = entry.getKey(); final Histogram histogram = entry.getValue(); addSnapshot(builder, name, EMPTY_STRING, histogram.getSnapshot(), histogram.getCount()); histogramIterator.remove(); } // Pass through the meter values Iterator<Entry<String, Meter>> meterIterator = dropwizardMeters.iterator(); while (meterIterator.hasNext()) { final Entry<String, Meter> meterEntry = meterIterator.next(); final String name = meterEntry.getKey(); final Meter meter = meterEntry.getValue(); addMeter(builder, name, EMPTY_STRING, meter.getCount(), meter.getMeanRate(), meter.getOneMinuteRate(), meter.getFiveMinuteRate(), meter.getFifteenMinuteRate()); meterIterator.remove(); } // Pass through the timers (meter + histogram) Iterator<Entry<String, Timer>> timerIterator = dropwizardTimers.iterator(); while (timerIterator.hasNext()) { final Entry<String, Timer> timerEntry = timerIterator.next(); final String name = timerEntry.getKey(); final Timer timer = timerEntry.getValue(); final Snapshot snapshot = timer.getSnapshot(); // Add the meter info (mean rate and rate over time windows) addMeter(builder, name, EMPTY_STRING, timer.getCount(), timer.getMeanRate(), timer.getOneMinuteRate(), timer.getFiveMinuteRate(), timer.getFifteenMinuteRate()); // Count was already added via the meter addSnapshot(builder, name, EMPTY_STRING, snapshot); timerIterator.remove(); } // Add in metadata about what the units the reported metrics are displayed using. builder.tag(RATE_UNIT_LABEL, getRateUnit()); builder.tag(DURATION_UNIT_LABEL, getDurationUnit()); }
From source file:org.apache.spark.network.yarn.YarnShuffleServiceMetrics.java
License:Apache License
/** * The metric types used in//from w ww . j a v a 2s . co m * {@link org.apache.spark.network.shuffle.ExternalShuffleBlockHandler.ShuffleMetrics}. * Visible for testing. */ public static void collectMetric(MetricsRecordBuilder metricsRecordBuilder, String name, Metric metric) { if (metric instanceof Timer) { Timer t = (Timer) metric; metricsRecordBuilder .addCounter(new ShuffleServiceMetricsInfo(name + "_count", "Count of timer " + name), t.getCount()) .addGauge(new ShuffleServiceMetricsInfo(name + "_rate15", "15 minute rate of timer " + name), t.getFifteenMinuteRate()) .addGauge(new ShuffleServiceMetricsInfo(name + "_rate5", "5 minute rate of timer " + name), t.getFiveMinuteRate()) .addGauge(new ShuffleServiceMetricsInfo(name + "_rate1", "1 minute rate of timer " + name), t.getOneMinuteRate()) .addGauge(new ShuffleServiceMetricsInfo(name + "_rateMean", "Mean rate of timer " + name), t.getMeanRate()); } else if (metric instanceof Meter) { Meter m = (Meter) metric; metricsRecordBuilder .addCounter(new ShuffleServiceMetricsInfo(name + "_count", "Count of meter " + name), m.getCount()) .addGauge(new ShuffleServiceMetricsInfo(name + "_rate15", "15 minute rate of meter " + name), m.getFifteenMinuteRate()) .addGauge(new ShuffleServiceMetricsInfo(name + "_rate5", "5 minute rate of meter " + name), m.getFiveMinuteRate()) .addGauge(new ShuffleServiceMetricsInfo(name + "_rate1", "1 minute rate of meter " + name), m.getOneMinuteRate()) .addGauge(new ShuffleServiceMetricsInfo(name + "_rateMean", "Mean rate of meter " + name), m.getMeanRate()); } else if (metric instanceof Gauge) { final Object gaugeValue = ((Gauge) metric).getValue(); if (gaugeValue instanceof Integer) { metricsRecordBuilder.addGauge(getShuffleServiceMetricsInfo(name), (Integer) gaugeValue); } else if (gaugeValue instanceof Long) { metricsRecordBuilder.addGauge(getShuffleServiceMetricsInfo(name), (Long) gaugeValue); } else if (gaugeValue instanceof Float) { metricsRecordBuilder.addGauge(getShuffleServiceMetricsInfo(name), (Float) gaugeValue); } else if (gaugeValue instanceof Double) { metricsRecordBuilder.addGauge(getShuffleServiceMetricsInfo(name), (Double) gaugeValue); } else { throw new IllegalStateException( "Not supported class type of metric[" + name + "] for value " + gaugeValue); } } else if (metric instanceof Counter) { Counter c = (Counter) metric; long counterValue = c.getCount(); metricsRecordBuilder.addGauge( new ShuffleServiceMetricsInfo(name, "Number of " + "connections to shuffle service " + name), counterValue); } }