考虑以下定义简单计数器的代码:
OpenTelemetry otel = ...
var meter = otel.getMeter("com.my.app");
LongCounter MyCounter = meter
.counterBuilder("my_app_my_counter")
.build();
只要我们不增加计数器的值(例如.add(1, ...)
),普罗米修斯抓取就看不到计数器值.
How to have the initial value (zero) visible to Prometheus from the beginning?个
为了完整起见,以下是我们用来向普罗米修斯公开指标的代码,这要归功于开放遥测普罗米修斯模块:
import io.opentelemetry.exporter.prometheus.PrometheusHttpServer
PrometheusHttpServer prometheusServer = ...
SdkMeterProvider meterProvider = SdkMeterProvider
.builder()
.setResource(...)
.registerMetricReader(prometheusServer)
.build();
OpenTelemetrySdk openTelemetrySdk = OpenTelemetrySdk
.builder()
.setMeterProvider(meterProvider)
.buildAndRegisterGlobal();