From 774a31099ca0704b46668ccef8a5f2a5d94b9508 Mon Sep 17 00:00:00 2001 From: schmikei Date: Wed, 22 Jan 2025 10:50:41 -0500 Subject: [PATCH 1/3] add jvm.fd.open and jvm.runtime.uptime to jmx configs --- .../target_systems/JvmTargetSystemIntegrationTest.java | 6 +++++- jmx-metrics/src/main/resources/target-systems/jvm.groovy | 9 +++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/jmx-metrics/src/integrationTest/java/io/opentelemetry/contrib/jmxmetrics/target_systems/JvmTargetSystemIntegrationTest.java b/jmx-metrics/src/integrationTest/java/io/opentelemetry/contrib/jmxmetrics/target_systems/JvmTargetSystemIntegrationTest.java index 682e23957..c5b17f6ab 100644 --- a/jmx-metrics/src/integrationTest/java/io/opentelemetry/contrib/jmxmetrics/target_systems/JvmTargetSystemIntegrationTest.java +++ b/jmx-metrics/src/integrationTest/java/io/opentelemetry/contrib/jmxmetrics/target_systems/JvmTargetSystemIntegrationTest.java @@ -5,13 +5,15 @@ package io.opentelemetry.contrib.jmxmetrics.target_systems; -import io.opentelemetry.contrib.jmxmetrics.AbstractIntegrationTest; import java.util.Arrays; import java.util.List; + import org.junit.jupiter.api.Test; import org.testcontainers.containers.GenericContainer; import org.testcontainers.junit.jupiter.Container; +import io.opentelemetry.contrib.jmxmetrics.AbstractIntegrationTest; + class JvmTargetSystemIntegrationTest extends AbstractIntegrationTest { JvmTargetSystemIntegrationTest() { @@ -55,6 +57,8 @@ void endToEnd() { metric -> assertGauge(metric, "jvm.memory.nonheap.init", "current non-heap usage", "By"), metric -> assertGauge(metric, "jvm.memory.nonheap.max", "current non-heap usage", "By"), metric -> assertGauge(metric, "jvm.memory.nonheap.used", "current non-heap usage", "By"), + metric -> assertGauge(metric, "jvm.runtime.uptime", "uptime", "ms"), + metric -> assertGauge(metric, "jvm.fd.open", "open file descriptors", "1"), metric -> assertTypedGauge( metric, "jvm.memory.pool.committed", "current memory pool usage", "By", gcLabels), diff --git a/jmx-metrics/src/main/resources/target-systems/jvm.groovy b/jmx-metrics/src/main/resources/target-systems/jvm.groovy index 73e33b0d5..8aa8b8f53 100644 --- a/jmx-metrics/src/main/resources/target-systems/jvm.groovy +++ b/jmx-metrics/src/main/resources/target-systems/jvm.groovy @@ -33,6 +33,15 @@ otel.instrument(memory, "jvm.memory.heap", "current heap usage", otel.instrument(memory, "jvm.memory.nonheap", "current non-heap usage", "By", "NonHeapMemoryUsage", otel.&longValueCallback) +def runtime = otel.mbean("java.lang:type=Runtime") +otel.instrument(runtime, "jvm.runtime.uptime", "uptime", + "ms", "Uptime", otel.&longValueCallback) + +def os = otel.mbean("java.lang:type=OperatingSystem") +otel.instrument(os, "jvm.fd.open", "open file descriptors", + "1", "OpenFileDescriptorCount", otel.&longValueCallback) + + def memoryPool = otel.mbeans("java.lang:type=MemoryPool,*") otel.instrument(memoryPool, "jvm.memory.pool", "current memory pool usage", "By", ["name" : { mbean -> mbean.name().getKeyProperty("name") }], From 9bcbf445c38edd63734a2bf589f5882e0f176638 Mon Sep 17 00:00:00 2001 From: schmikei Date: Tue, 18 Mar 2025 14:42:35 -0400 Subject: [PATCH 2/3] consolidate name on jvm.file_descriptor.count --- .../target_systems/JvmTargetSystemIntegrationTest.java | 4 +--- jmx-metrics/src/main/resources/target-systems/jvm.groovy | 6 +----- jmx-scraper/src/main/resources/jvm.yaml | 7 +++++++ 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/jmx-metrics/src/integrationTest/java/io/opentelemetry/contrib/jmxmetrics/target_systems/JvmTargetSystemIntegrationTest.java b/jmx-metrics/src/integrationTest/java/io/opentelemetry/contrib/jmxmetrics/target_systems/JvmTargetSystemIntegrationTest.java index c5b17f6ab..85ac4e774 100644 --- a/jmx-metrics/src/integrationTest/java/io/opentelemetry/contrib/jmxmetrics/target_systems/JvmTargetSystemIntegrationTest.java +++ b/jmx-metrics/src/integrationTest/java/io/opentelemetry/contrib/jmxmetrics/target_systems/JvmTargetSystemIntegrationTest.java @@ -5,15 +5,13 @@ package io.opentelemetry.contrib.jmxmetrics.target_systems; +import io.opentelemetry.contrib.jmxmetrics.AbstractIntegrationTest; import java.util.Arrays; import java.util.List; - import org.junit.jupiter.api.Test; import org.testcontainers.containers.GenericContainer; import org.testcontainers.junit.jupiter.Container; -import io.opentelemetry.contrib.jmxmetrics.AbstractIntegrationTest; - class JvmTargetSystemIntegrationTest extends AbstractIntegrationTest { JvmTargetSystemIntegrationTest() { diff --git a/jmx-metrics/src/main/resources/target-systems/jvm.groovy b/jmx-metrics/src/main/resources/target-systems/jvm.groovy index 8aa8b8f53..6d01a413a 100644 --- a/jmx-metrics/src/main/resources/target-systems/jvm.groovy +++ b/jmx-metrics/src/main/resources/target-systems/jvm.groovy @@ -33,12 +33,8 @@ otel.instrument(memory, "jvm.memory.heap", "current heap usage", otel.instrument(memory, "jvm.memory.nonheap", "current non-heap usage", "By", "NonHeapMemoryUsage", otel.&longValueCallback) -def runtime = otel.mbean("java.lang:type=Runtime") -otel.instrument(runtime, "jvm.runtime.uptime", "uptime", - "ms", "Uptime", otel.&longValueCallback) - def os = otel.mbean("java.lang:type=OperatingSystem") -otel.instrument(os, "jvm.fd.open", "open file descriptors", +otel.instrument(os, "jvm.file_descriptor.count", "open file descriptors", "1", "OpenFileDescriptorCount", otel.&longValueCallback) diff --git a/jmx-scraper/src/main/resources/jvm.yaml b/jmx-scraper/src/main/resources/jvm.yaml index 733e679fd..4a3572ffc 100644 --- a/jmx-scraper/src/main/resources/jvm.yaml +++ b/jmx-scraper/src/main/resources/jvm.yaml @@ -83,6 +83,13 @@ rules: metric: jvm.memory.pool.used desc: current memory pool usage + - bean: java.lang:type=OperatingSystem + mapping: + OpenFileDescriptorCount: + metric: jvm.file_descriptor.count + unit: 1 + desc: open file descriptors + - bean: java.lang:type=Threading mapping: ThreadCount: From 2661e0268bf8a2e2319217d10ccad0e9bc4332c7 Mon Sep 17 00:00:00 2001 From: schmikei Date: Tue, 18 Mar 2025 16:41:31 -0400 Subject: [PATCH 3/3] fix test --- .../target_systems/JvmTargetSystemIntegrationTest.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/jmx-metrics/src/integrationTest/java/io/opentelemetry/contrib/jmxmetrics/target_systems/JvmTargetSystemIntegrationTest.java b/jmx-metrics/src/integrationTest/java/io/opentelemetry/contrib/jmxmetrics/target_systems/JvmTargetSystemIntegrationTest.java index 85ac4e774..b913e4c67 100644 --- a/jmx-metrics/src/integrationTest/java/io/opentelemetry/contrib/jmxmetrics/target_systems/JvmTargetSystemIntegrationTest.java +++ b/jmx-metrics/src/integrationTest/java/io/opentelemetry/contrib/jmxmetrics/target_systems/JvmTargetSystemIntegrationTest.java @@ -55,8 +55,7 @@ void endToEnd() { metric -> assertGauge(metric, "jvm.memory.nonheap.init", "current non-heap usage", "By"), metric -> assertGauge(metric, "jvm.memory.nonheap.max", "current non-heap usage", "By"), metric -> assertGauge(metric, "jvm.memory.nonheap.used", "current non-heap usage", "By"), - metric -> assertGauge(metric, "jvm.runtime.uptime", "uptime", "ms"), - metric -> assertGauge(metric, "jvm.fd.open", "open file descriptors", "1"), + metric -> assertGauge(metric, "jvm.file_descriptor.count", "open file descriptors", "1"), metric -> assertTypedGauge( metric, "jvm.memory.pool.committed", "current memory pool usage", "By", gcLabels),