jvm 是否有一个与Prometheus simpleclient_hotspot等效的开放遥测系统?

q9yhzks0  于 2022-11-07  发布在  其他
关注(0)|答案(1)|浏览(205)

我希望将一个通过使用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实现相同功能的方法?

3htmauhk

3htmauhk1#

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

相关问题