是否有与 Opentelemetry 类似的 Prometheus simpleclient_hotspot?

问题描述 投票:0回答:2

我希望将使用 Prometheus API 公开指标的 Java 应用程序迁移到 OpenTelemetry API。

应用程序自定义指标部分还可以,但是对于 Prometheus API,我们过去使用

DefaultExports.initialize()
,它来自 simpleclient_hotspot 依赖项,并自动生成一堆 JVM 本身的指标,如下所示:

# HELP jvm_memory_bytes_max Max (bytes) of a given JVM memory area.
# TYPE jvm_memory_bytes_max gauge
jvm_memory_bytes_max{area="heap",} 3.221225472E9
jvm_memory_bytes_max{area="nonheap",} -1.0
# HELP jvm_memory_bytes_init Initial bytes of a given JVM memory area.
# TYPE jvm_memory_bytes_init gauge
jvm_memory_bytes_init{area="heap",} 3.221225472E9
jvm_memory_bytes_init{area="nonheap",} 7667712.0

是否有等效的库或方法可以使用 OpenTelemetry 完成相同的任务?

java jvm prometheus open-telemetry
2个回答
5
投票

opentelemetry-java-instrumentation
项目发布了一个用于收集 JVM 运行时指标的库。源代码位于here,并发布到maven坐标
io.opentelemetry.instrumentation:opentelemetry-runtime-metrics:<version>

要使用,请创建一个

OpenTelemetrySdk
实例,并初始化您需要的各种观察者:

OpenTelemetry opentelemetry = OpenTelemetrySdk.builder().build();
MemoryPools.registerObservers(opentelemetry);
BufferPools.registerObservers(opentelemetry);
Classes.registerObservers(opentelemetry);
Cpu.registerObservers(opentelemetry);
Threads.registerObservers(opentelemetry);
GarbageCollector.registerObservers(opentelemetry);

0
投票

以防 2024 年有人在寻找此内容。
看来新的套餐是

io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java17:<version>

参见:https://github.com/open-telemetry/opentelemetry-java-instrumentation/tree/main/instrumentation/runtime-telemetry/runtime-telemetry-java17/library

© www.soinside.com 2019 - 2024. All rights reserved.