Package io.opencensus.metrics
Class DoubleGauge
- java.lang.Object
-
- io.opencensus.metrics.DoubleGauge
-
- Direct Known Subclasses:
DoubleGauge.NoopDoubleGauge
,DoubleGaugeImpl
@ThreadSafe public abstract class DoubleGauge extends java.lang.Object
Double Gauge metric, to report instantaneous measurement of a double value. Gauges can go both up and down. The gauges values can be negative.Example 1: Create a Gauge with default labels.
class YourClass { private static final MetricRegistry metricRegistry = Metrics.getMetricRegistry(); List<LabelKey> labelKeys = Arrays.asList(LabelKey.create("Name", "desc")); DoubleGauge gauge = metricRegistry.addDoubleGauge("queue_size", "Pending jobs", "1", labelKeys); // It is recommended to keep a reference of a point for manual operations. DoublePoint defaultPoint = gauge.getDefaultTimeSeries(); void doWork() { // Your code here. defaultPoint.add(10); } }
Example 2: You can also use labels(keys and values) to track different types of metric.
class YourClass { private static final MetricRegistry metricRegistry = Metrics.getMetricRegistry(); List<LabelKey> labelKeys = Arrays.asList(LabelKey.create("Name", "desc")); List<LabelValue> labelValues = Arrays.asList(LabelValue.create("Inbound")); DoubleGauge gauge = metricRegistry.addDoubleGauge("queue_size", "Pending jobs", "1", labelKeys); // It is recommended to keep a reference of a point for manual operations. DoublePoint inboundPoint = gauge.getOrCreateTimeSeries(labelValues); void doSomeWork() { // Your code here. inboundPoint.set(15); } }
- Since:
- 0.17
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
DoubleGauge.DoublePoint
The value of a single point in the Gauge.TimeSeries.private static class
DoubleGauge.NoopDoubleGauge
No-op implementations of DoubleGauge class.
-
Constructor Summary
Constructors Constructor Description DoubleGauge()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract void
clear()
Removes allTimeSeries
from the gauge metric.abstract DoubleGauge.DoublePoint
getDefaultTimeSeries()
Returns aDoublePoint
for a gauge with all labels not set, or default labels.abstract DoubleGauge.DoublePoint
getOrCreateTimeSeries(java.util.List<LabelValue> labelValues)
Creates aTimeSeries
and returns aDoublePoint
if the specifiedlabelValues
is not already associated with this gauge, else returns an existingDoublePoint
.(package private) static DoubleGauge
newNoopDoubleGauge(java.lang.String name, java.lang.String description, java.lang.String unit, java.util.List<LabelKey> labelKeys)
Returns the no-op implementation of theDoubleGauge
.abstract void
removeTimeSeries(java.util.List<LabelValue> labelValues)
Removes theTimeSeries
from the gauge metric, if it is present.
-
-
-
Method Detail
-
getOrCreateTimeSeries
public abstract DoubleGauge.DoublePoint getOrCreateTimeSeries(java.util.List<LabelValue> labelValues)
Creates aTimeSeries
and returns aDoublePoint
if the specifiedlabelValues
is not already associated with this gauge, else returns an existingDoublePoint
.It is recommended to keep a reference to the DoublePoint instead of always calling this method for manual operations.
- Parameters:
labelValues
- the list of label values. The number of label values must be the same to that of the label keys passed toMetricRegistry.addDoubleGauge(java.lang.String, java.lang.String, java.lang.String, java.util.List<io.opencensus.metrics.LabelKey>)
.- Returns:
- a
DoublePoint
the value of single gauge. - Throws:
java.lang.NullPointerException
- iflabelValues
is null OR any element oflabelValues
is null.java.lang.IllegalArgumentException
- if number oflabelValues
s are not equal to the label keys.- Since:
- 0.17
-
getDefaultTimeSeries
public abstract DoubleGauge.DoublePoint getDefaultTimeSeries()
Returns aDoublePoint
for a gauge with all labels not set, or default labels.- Returns:
- a
DoublePoint
for a gauge with all labels not set, or default labels. - Since:
- 0.17
-
removeTimeSeries
public abstract void removeTimeSeries(java.util.List<LabelValue> labelValues)
Removes theTimeSeries
from the gauge metric, if it is present. i.e. references to previousDoublePoint
objects are invalid (not part of the metric).- Parameters:
labelValues
- the list of label values.- Throws:
java.lang.NullPointerException
- iflabelValues
is null or any element oflabelValues
is null.- Since:
- 0.17
-
clear
public abstract void clear()
Removes allTimeSeries
from the gauge metric. i.e. references to all previousDoublePoint
objects are invalid (not part of the metric).- Since:
- 0.17
-
newNoopDoubleGauge
static DoubleGauge newNoopDoubleGauge(java.lang.String name, java.lang.String description, java.lang.String unit, java.util.List<LabelKey> labelKeys)
Returns the no-op implementation of theDoubleGauge
.- Returns:
- the no-op implementation of the
DoubleGauge
. - Since:
- 0.17
-
-