001package org.avaje.metric;
002
003/**
004 * Metric based on a gauge returning double values.
005 * <p>
006 * A GaugeDoubleMetric is created by {@link MetricManager#register(MetricName, GaugeDouble)}.
007 *
008 * <p>
009 * Example:
010 *
011 * <pre>
012 * <code>
013 *   class FreeMemoryGauge implements GaugeDouble {
014 *
015 *       public double getValue() {
016 *         return mxBean.getFreeMemory() / mxBean.getTotalMemory();
017 *       }
018 *     }
019 *
020 *
021 *   GaugeDoubleMetric gauge = MetricManager.register("jvm.memory.pctfree", freeMemoryGauge);
022 *
023 * </code>
024 * </pre>
025 * <p>
026 * Note that <em>metric-core</em> registers some core JVM gauges that include threads, memory
027 * and garbage collection.
028 */
029public interface GaugeDoubleMetric extends Metric {
030
031  /**
032   * Return the value.
033   */
034  double getValue();
035
036}