@ThreadSafe public interface DoubleObserver extends Observer<DoubleObserver.ResultDoubleObserver>
Example:
class YourClass {
private static final Meter meter = OpenTelemetry.getMeterRegistry().get("my_library_name");
private static final DoubleObserver observer =
meter.
.observerDoubleBuilder("doWork_latency")
.setDescription("gRPC Latency")
.setUnit("ms")
.build();
private static final LabelSet labelSet = meter.createLabelSet("my_label");
void init() {
observer.setCallback(
new DoubleObserver.Callback<DoubleObserver.ResultDoubleObserver>() {
final AtomicInteger count = new AtomicInteger(0);
{@literal @}Override
public void update(Result result) {
result.observe(0.8 * count.addAndGet(1), labelSet);
}
});
}
}
| Modifier and Type | Interface and Description |
|---|---|
static interface |
DoubleObserver.Builder
Builder class for
DoubleObserver. |
static interface |
DoubleObserver.ResultDoubleObserver
The result for the
Observer.Callback. |
Observer.Callback<R>| Modifier and Type | Method and Description |
|---|---|
void |
setCallback(Observer.Callback<DoubleObserver.ResultDoubleObserver> metricUpdater)
Sets a callback that gets executed every time before exporting this metric.
|
void setCallback(Observer.Callback<DoubleObserver.ResultDoubleObserver> metricUpdater)
ObserverEvaluation is deferred until needed, if this Observer metric is not exported then it
will never be called.
setCallback in interface Observer<DoubleObserver.ResultDoubleObserver>metricUpdater - the callback to be executed before export.