This is an automated email from the ASF dual-hosted git repository.
crazyhzm pushed a commit to branch 3.2
in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/3.2 by this push:
new b7b7ddfc58 jvm meter add application name label (#11255)
b7b7ddfc58 is described below
commit b7b7ddfc583dc9dded15082e12f11d0e3139d4b5
Author: songxiaosheng <[email protected]>
AuthorDate: Tue Jan 10 11:35:39 2023 +0800
jvm meter add application name label (#11255)
* fix MetericsService resource location bug
* :art:为jvm指标增加dubbo应用名称
* :art: jvm meter add application name label
* fix unit test failure
---
.../apache/dubbo/metrics/AbstractMetricsReporter.java | 17 ++++++++++++-----
.../prometheus/PrometheusMetricsReporterTest.java | 10 +++++++---
2 files changed, 19 insertions(+), 8 deletions(-)
diff --git
a/dubbo-metrics/dubbo-metrics-api/src/main/java/org/apache/dubbo/metrics/AbstractMetricsReporter.java
b/dubbo-metrics/dubbo-metrics-api/src/main/java/org/apache/dubbo/metrics/AbstractMetricsReporter.java
index 74c0407675..571fcc5e25 100644
---
a/dubbo-metrics/dubbo-metrics-api/src/main/java/org/apache/dubbo/metrics/AbstractMetricsReporter.java
+++
b/dubbo-metrics/dubbo-metrics-api/src/main/java/org/apache/dubbo/metrics/AbstractMetricsReporter.java
@@ -20,13 +20,16 @@ package org.apache.dubbo.metrics;
import io.micrometer.core.instrument.Gauge;
import io.micrometer.core.instrument.MeterRegistry;
import io.micrometer.core.instrument.Tag;
+import io.micrometer.core.instrument.Tags;
import io.micrometer.core.instrument.binder.jvm.ClassLoaderMetrics;
import io.micrometer.core.instrument.binder.jvm.JvmGcMetrics;
import io.micrometer.core.instrument.binder.jvm.JvmMemoryMetrics;
import io.micrometer.core.instrument.binder.jvm.JvmThreadMetrics;
import io.micrometer.core.instrument.binder.system.ProcessorMetrics;
+import io.micrometer.core.instrument.binder.system.UptimeMetrics;
import io.micrometer.core.instrument.composite.CompositeMeterRegistry;
import org.apache.dubbo.common.URL;
+import org.apache.dubbo.common.constants.MetricsConstants;
import org.apache.dubbo.common.lang.ShutdownHookCallbacks;
import org.apache.dubbo.common.logger.ErrorTypeAwareLogger;
import org.apache.dubbo.common.logger.LoggerFactory;
@@ -41,6 +44,7 @@ import org.apache.dubbo.rpc.model.ApplicationModel;
import java.util.ArrayList;
import java.util.List;
+import java.util.Optional;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
@@ -105,11 +109,14 @@ public abstract class AbstractMetricsReporter implements
MetricsReporter {
private void addJvmMetrics() {
boolean enableJvmMetrics = url.getParameter(ENABLE_JVM_METRICS_KEY,
false);
if (enableJvmMetrics) {
- new ClassLoaderMetrics().bindTo(compositeRegistry);
- new JvmMemoryMetrics().bindTo(compositeRegistry);
- new JvmGcMetrics().bindTo(compositeRegistry);
- new ProcessorMetrics().bindTo(compositeRegistry);
- new JvmThreadMetrics().bindTo(compositeRegistry);
+ Tags extraTags = Tags.of(MetricsConstants.TAG_APPLICATION_NAME,
+
Optional.ofNullable(applicationModel.getApplicationName()).orElse(""));
+ new ClassLoaderMetrics(extraTags).bindTo(compositeRegistry);
+ new JvmMemoryMetrics(extraTags).bindTo(compositeRegistry);
+ new JvmGcMetrics(extraTags).bindTo(compositeRegistry);
+ new ProcessorMetrics(extraTags).bindTo(compositeRegistry);
+ new JvmThreadMetrics(extraTags).bindTo(compositeRegistry);
+ new UptimeMetrics(extraTags).bindTo(compositeRegistry);
}
}
diff --git
a/dubbo-metrics/dubbo-metrics-prometheus/src/test/java/org/apache/dubbo/metrics/prometheus/PrometheusMetricsReporterTest.java
b/dubbo-metrics/dubbo-metrics-prometheus/src/test/java/org/apache/dubbo/metrics/prometheus/PrometheusMetricsReporterTest.java
index 5ea7d9ffe3..333286f67e 100644
---
a/dubbo-metrics/dubbo-metrics-prometheus/src/test/java/org/apache/dubbo/metrics/prometheus/PrometheusMetricsReporterTest.java
+++
b/dubbo-metrics/dubbo-metrics-prometheus/src/test/java/org/apache/dubbo/metrics/prometheus/PrometheusMetricsReporterTest.java
@@ -18,6 +18,7 @@
package org.apache.dubbo.metrics.prometheus;
import org.apache.dubbo.common.utils.NetUtils;
+import org.apache.dubbo.config.ApplicationConfig;
import org.apache.dubbo.config.MetricsConfig;
import org.apache.dubbo.config.nested.PrometheusConfig;
import org.apache.dubbo.rpc.model.ApplicationModel;
@@ -61,13 +62,16 @@ class PrometheusMetricsReporterTest {
@Test
void testJvmMetrics() {
metricsConfig.setEnableJvmMetrics(true);
+ String name = "metrics-test";
+
ApplicationModel.defaultModel().getApplicationConfigManager().setApplication(new
ApplicationConfig(name));
+
PrometheusMetricsReporter reporter = new
PrometheusMetricsReporter(metricsConfig.toUrl(), applicationModel);
reporter.init();
PrometheusMeterRegistry prometheusRegistry =
reporter.getPrometheusRegistry();
Double d1 =
prometheusRegistry.getPrometheusRegistry().getSampleValue("none_exist_metric");
- Double d2 =
prometheusRegistry.getPrometheusRegistry().getSampleValue("jvm_gc_memory_promoted_bytes_total");
-
+ Double d2 =
prometheusRegistry.getPrometheusRegistry().getSampleValue("jvm_gc_memory_promoted_bytes_total",
+ new String[]{"application_name"},new String[]{name});
Assertions.assertNull(d1);
Assertions.assertNotNull(d2);
}
@@ -84,7 +88,7 @@ class PrometheusMetricsReporterTest {
prometheusConfig.setExporter(exporter);
metricsConfig.setPrometheus(prometheusConfig);
metricsConfig.setEnableJvmMetrics(true);
-
+
ApplicationModel.defaultModel().getApplicationConfigManager().setApplication(new
ApplicationConfig("metrics-test"));
PrometheusMetricsReporter reporter = new
PrometheusMetricsReporter(metricsConfig.toUrl(), applicationModel);
reporter.init();