考虑以下定义简单计数器的代码:

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();

推荐答案

计数器很可能只在发生第一次访问时初始化.

因此,初始化它最简单的方法是在创建指标后使用等于0的值调用.add方法.

Java相关问答推荐

将成为一个比较者.比较…在现代Java中,编译器会对`CompareTo`方法进行优化吗?

我无法将附件发送到NetBeans之外

如何在带有Micronaut的YAML中使用包含特殊字符的字符串作为键

现场观看Android Studio中的变化

R.id.main给我一个红色错误,无法解析MainActivity.java中的符号main

对于亚洲/香港,使用ResolverStyle.STRICT的LocalDate.parse返回意外结果

将java.util.Date转换为OffsetDateTime

我可以在MacOS上使用什么Java函数来在适当的设备上以适当的音量播放适当的alert 声音?

GetChildren().emoveAll()不会删除 node

WebSockets和Spring Boot安全性出现错误401

Dijkstra搜索算法的实现

记录是类的语法糖吗?

如何使用jOOQ在PostgreSQL中从枚举类型生成Java枚举

JOOQ:批处理CRUD操作使用动态表定义,如何?

由于可为null,无法在kotlin中实现java接口

ResponseEntity.控制器截断响应的JSON部分

using case default on switch语句返回;预览特征切换中的模式匹配仅在源级别20及以上的情况下可用;

为什么Java编译器为没有参数的方法(getter方法)创建桥接方法

JAVA 正则表达式识别字符串string或字符串内的字符char

Spring Boot应用程序中的自定义constraintvalidator不会被调用