diff options
3 files changed, 13 insertions, 1 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/VespaMetricSet.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/VespaMetricSet.java index 09e2e7680f8..6ce8c54f98c 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/VespaMetricSet.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/VespaMetricSet.java @@ -240,6 +240,7 @@ public class VespaMetricSet { addMetric(metrics, "jdisc.http.filter.rule.blocked_requests", List.of("rate")); addMetric(metrics, "jdisc.http.filter.rule.allowed_requests", List.of("rate")); + addMetric(metrics, "jdisc.jvm", List.of("last")); return metrics; } diff --git a/container-disc/src/main/java/com/yahoo/container/jdisc/metric/MetricUpdater.java b/container-disc/src/main/java/com/yahoo/container/jdisc/metric/MetricUpdater.java index f4e3abb44ed..4b75bc233d6 100644 --- a/container-disc/src/main/java/com/yahoo/container/jdisc/metric/MetricUpdater.java +++ b/container-disc/src/main/java/com/yahoo/container/jdisc/metric/MetricUpdater.java @@ -15,6 +15,7 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.time.Clock; import java.time.Duration; +import java.util.Map; import java.util.Timer; import java.util.TimerTask; @@ -128,6 +129,15 @@ public class MetricUpdater extends AbstractComponent { metric.set(NATIVE_TOTAL_MEMORY_BYTES, nativeHeap.totalSize(), null); } + private void jvmDetails() { + Metric.Context ctx = metric.createContext(Map.of( + "version", System.getProperty("java.runtime.version"), + "home", System.getProperty("java.home"), + "vendor", System.getProperty("java.vm.vendor"), + "arch", System.getProperty("os.arch"))); + metric.set("jdisc.jvm", Runtime.version().feature(), ctx); + } + @Override public void run() { long freeMemory = runtime.freeMemory(); @@ -144,6 +154,7 @@ public class MetricUpdater extends AbstractComponent { containerWatchdogMetrics.emitMetrics(metric); garbageCollectionMetrics.emitMetrics(metric); jrtMetrics.emitMetrics(); + jvmDetails(); } } diff --git a/container-disc/src/test/java/com/yahoo/container/jdisc/metric/MetricUpdaterTest.java b/container-disc/src/test/java/com/yahoo/container/jdisc/metric/MetricUpdaterTest.java index f49ccf2c2f6..0652f35a5d1 100644 --- a/container-disc/src/test/java/com/yahoo/container/jdisc/metric/MetricUpdaterTest.java +++ b/container-disc/src/test/java/com/yahoo/container/jdisc/metric/MetricUpdaterTest.java @@ -27,7 +27,7 @@ public class MetricUpdaterTest { ContainerWatchdogMetrics containerWatchdogMetrics = mock(ContainerWatchdogMetrics.class); new MetricUpdater(new MockScheduler(), metric, containerWatchdogMetrics); verify(containerWatchdogMetrics, times(1)).emitMetrics(any()); - verify(metric, times(12 + 2 * gcCount)).set(anyString(), any(), any()); + verify(metric, times(13 + 2 * gcCount)).set(anyString(), any(), any()); } private static class MockScheduler implements MetricUpdater.Scheduler { |