Package io.opencensus.metrics
Class DerivedLongGauge
java.lang.Object
io.opencensus.metrics.DerivedLongGauge
- Direct Known Subclasses:
DerivedLongGauge.NoopDerivedLongGauge
,DerivedLongGaugeImpl
Derived Long Gauge metric, to report instantaneous measurement of an int64 value. Gauges can go
both up and down. The gauges values can be negative.
Example: Create a Gauge with an object and a callback function.
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"));
DerivedLongGauge gauge = metricRegistry.addDerivedLongGauge(
"queue_size", "Pending jobs in a queue", "1", labelKeys);
QueueManager queueManager = new QueueManager();
gauge.createTimeSeries(labelValues, queueManager,
new ToLongFunction<QueueManager>() {
{@literal @}Override
public long applyAsLong(QueueManager queue) {
return queue.size();
}
});
void doWork() {
// Your code here.
}
}
- Since:
- 0.17
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static final class
No-op implementations of DerivedLongGauge class. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract void
clear()
Removes allTimeSeries
from the gauge metric.abstract <T> void
createTimeSeries
(List<LabelValue> labelValues, T obj, ToLongFunction<T> function) Creates aTimeSeries
.(package private) static DerivedLongGauge
Returns the no-op implementation of theDerivedLongGauge
.abstract void
removeTimeSeries
(List<LabelValue> labelValues) Removes theTimeSeries
from the gauge metric, if it is present.
-
Constructor Details
-
DerivedLongGauge
public DerivedLongGauge()
-
-
Method Details
-
createTimeSeries
public abstract <T> void createTimeSeries(List<LabelValue> labelValues, T obj, ToLongFunction<T> function) Creates aTimeSeries
. The value of a single point in the TimeSeries is observed from a callback function. This function is invoked whenever metrics are collected, meaning the reported value is up-to-date. It keeps aWeakReference
to the object and it is the user's responsibility to manage the lifetime of the object.- Type Parameters:
T
- the type of the object upon which the function derives a measurement.- Parameters:
labelValues
- the list of label values.obj
- the state object from which the function derives a measurement.function
- the function to be called.- Throws:
NullPointerException
- iflabelValues
is null OR any element oflabelValues
is null ORfunction
is null.IllegalArgumentException
- if different time series with the same labels already exists OR if number oflabelValues
s are not equal to the label keys.- Since:
- 0.17
-
removeTimeSeries
Removes theTimeSeries
from the gauge metric, if it is present.- Parameters:
labelValues
- the list of label values.- Throws:
NullPointerException
- iflabelValues
is null.- Since:
- 0.17
-
clear
public abstract void clear()Removes allTimeSeries
from the gauge metric.- Since:
- 0.17
-
newNoopDerivedLongGauge
static DerivedLongGauge newNoopDerivedLongGauge(String name, String description, String unit, List<LabelKey> labelKeys) Returns the no-op implementation of theDerivedLongGauge
.- Returns:
- the no-op implementation of the
DerivedLongGauge
. - Since:
- 0.17
-