@ThreadSafe public abstract class DerivedDoubleGauge extends Object
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"));
DerivedDoubleGauge gauge = metricRegistry.addDerivedDoubleGauge(
"queue_size", "Pending jobs in a queue", "1", labelKeys);
QueueManager queueManager = new QueueManager();
gauge.createTimeSeries(labelValues, queueManager,
new ToDoubleFunction<QueueManager>() {
{@literal @}Override
public double applyAsDouble(QueueManager queue) {
return queue.size();
}
});
void doWork() {
// Your code here.
}
}
Constructor and Description |
---|
DerivedDoubleGauge() |
Modifier and Type | Method and Description |
---|---|
abstract void |
clear()
Removes all
TimeSeries from the gauge metric. |
abstract <T> void |
createTimeSeries(List<LabelValue> labelValues,
T obj,
ToDoubleFunction<T> function)
Creates a
TimeSeries . |
abstract void |
removeTimeSeries(List<LabelValue> labelValues)
Removes the
TimeSeries from the gauge metric, if it is present. |
public abstract <T> void createTimeSeries(List<LabelValue> labelValues, T obj, ToDoubleFunction<T> function)
TimeSeries
. 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 a WeakReference
to the object and it is the
user's responsibility to manage the lifetime of the object.T
- the type of the object upon which the function derives a measurement.labelValues
- the list of label values.obj
- the state object from which the function derives a measurement.function
- the function to be called.NullPointerException
- if labelValues
is null OR any element of labelValues
is null OR function
is null.IllegalArgumentException
- if different time series with the same labels already exists
OR if number of labelValues
s are not equal to the label keys.public abstract void removeTimeSeries(List<LabelValue> labelValues)
TimeSeries
from the gauge metric, if it is present.labelValues
- the list of label values.NullPointerException
- if labelValues
is null.public abstract void clear()
TimeSeries
from the gauge metric.