This is an automated email from the ASF dual-hosted git repository.

kaili pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/rocketmq.git


The following commit(s) were added to refs/heads/develop by this push:
     new b8610d87bb Replace loggingMetricExporter with 
OtlpJsonLoggingMetricExporter. (#7373)
b8610d87bb is described below

commit b8610d87bb55de1f4413460c05da529dab60c1c1
Author: Jixiang Jin <lolli...@apache.org>
AuthorDate: Thu Sep 21 16:21:44 2023 +0800

    Replace loggingMetricExporter with OtlpJsonLoggingMetricExporter. (#7373)
    
    * Replace loggingMetricExporter with OtlpJsonLoggingMetricExporter.
    
    * Fix bazel workspace
    
    * Move OtlpJsonLoggingMetricExporter to proxy and controller.
    
    * Fix Bazel imports.
---
 WORKSPACE                                                     |  1 +
 broker/BUILD.bazel                                            |  1 +
 .../apache/rocketmq/broker/metrics/BrokerMetricsManager.java  |  9 +++++----
 broker/src/main/resources/rmq.broker.logback.xml              |  5 +++++
 common/BUILD.bazel                                            |  1 +
 common/pom.xml                                                |  4 ++++
 controller/BUILD.bazel                                        |  1 +
 .../rocketmq/controller/metrics/ControllerMetricsManager.java |  9 +++++----
 pom.xml                                                       |  5 +++++
 proxy/BUILD.bazel                                             |  1 +
 .../apache/rocketmq/proxy/metrics/ProxyMetricsManager.java    | 11 ++++++-----
 proxy/src/main/resources/rmq.proxy.logback.xml                |  5 +++++
 tieredstore/BUILD.bazel                                       |  1 +
 13 files changed, 41 insertions(+), 13 deletions(-)

diff --git a/WORKSPACE b/WORKSPACE
index 3126f2d1d5..8640485ba2 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -92,6 +92,7 @@ maven_install(
         "io.opentelemetry:opentelemetry-exporter-prometheus:1.29.0-alpha",
         "io.opentelemetry:opentelemetry-exporter-logging:1.29.0",
         "io.opentelemetry:opentelemetry-sdk:1.29.0",
+        "io.opentelemetry:opentelemetry-exporter-logging-otlp:1.29.0",
         "com.squareup.okio:okio-jvm:3.0.0",
         "io.opentelemetry:opentelemetry-api:1.29.0",
         "io.opentelemetry:opentelemetry-sdk-metrics:1.29.0",
diff --git a/broker/BUILD.bazel b/broker/BUILD.bazel
index 6adcdc7b99..64cb1b3415 100644
--- a/broker/BUILD.bazel
+++ b/broker/BUILD.bazel
@@ -44,6 +44,7 @@ java_library(
         "@maven//:io_opentelemetry_opentelemetry_exporter_otlp",
         "@maven//:io_opentelemetry_opentelemetry_exporter_prometheus",
         "@maven//:io_opentelemetry_opentelemetry_exporter_logging",
+        "@maven//:io_opentelemetry_opentelemetry_exporter_logging_otlp",
         "@maven//:io_opentelemetry_opentelemetry_sdk",
         "@maven//:io_opentelemetry_opentelemetry_sdk_common",
         "@maven//:io_opentelemetry_opentelemetry_sdk_metrics",
diff --git 
a/broker/src/main/java/org/apache/rocketmq/broker/metrics/BrokerMetricsManager.java
 
b/broker/src/main/java/org/apache/rocketmq/broker/metrics/BrokerMetricsManager.java
index 6af5afc141..39af18b9fa 100644
--- 
a/broker/src/main/java/org/apache/rocketmq/broker/metrics/BrokerMetricsManager.java
+++ 
b/broker/src/main/java/org/apache/rocketmq/broker/metrics/BrokerMetricsManager.java
@@ -23,7 +23,7 @@ import io.opentelemetry.api.metrics.LongCounter;
 import io.opentelemetry.api.metrics.LongHistogram;
 import io.opentelemetry.api.metrics.Meter;
 import io.opentelemetry.api.metrics.ObservableLongGauge;
-import io.opentelemetry.exporter.logging.LoggingMetricExporter;
+import io.opentelemetry.exporter.logging.otlp.OtlpJsonLoggingMetricExporter;
 import io.opentelemetry.exporter.otlp.metrics.OtlpGrpcMetricExporter;
 import io.opentelemetry.exporter.otlp.metrics.OtlpGrpcMetricExporterBuilder;
 import io.opentelemetry.exporter.prometheus.PrometheusHttpServer;
@@ -36,6 +36,7 @@ import io.opentelemetry.sdk.metrics.SdkMeterProviderBuilder;
 import io.opentelemetry.sdk.metrics.View;
 import io.opentelemetry.sdk.metrics.ViewBuilder;
 import io.opentelemetry.sdk.metrics.data.AggregationTemporality;
+import io.opentelemetry.sdk.metrics.export.MetricExporter;
 import io.opentelemetry.sdk.metrics.export.PeriodicMetricReader;
 import io.opentelemetry.sdk.metrics.internal.SdkMeterProviderUtil;
 import io.opentelemetry.sdk.resources.Resource;
@@ -113,7 +114,7 @@ public class BrokerMetricsManager {
     private OtlpGrpcMetricExporter metricExporter;
     private PeriodicMetricReader periodicMetricReader;
     private PrometheusHttpServer prometheusHttpServer;
-    private LoggingMetricExporter loggingMetricExporter;
+    private MetricExporter loggingMetricExporter;
     private Meter brokerMeter;
 
     public static Supplier<AttributesBuilder> attributesBuilderSupplier = 
Attributes::builder;
@@ -327,8 +328,8 @@ public class BrokerMetricsManager {
         if (metricsExporterType == MetricsExporterType.LOG) {
             SLF4JBridgeHandler.removeHandlersForRootLogger();
             SLF4JBridgeHandler.install();
-            loggingMetricExporter = 
LoggingMetricExporter.create(brokerConfig.isMetricsInDelta() ? 
AggregationTemporality.DELTA : AggregationTemporality.CUMULATIVE);
-            
java.util.logging.Logger.getLogger(LoggingMetricExporter.class.getName()).setLevel(java.util.logging.Level.FINEST);
+            loggingMetricExporter = 
OtlpJsonLoggingMetricExporter.create(brokerConfig.isMetricsInDelta() ? 
AggregationTemporality.DELTA : AggregationTemporality.CUMULATIVE);
+            
java.util.logging.Logger.getLogger(OtlpJsonLoggingMetricExporter.class.getName()).setLevel(java.util.logging.Level.FINEST);
             periodicMetricReader = 
PeriodicMetricReader.builder(loggingMetricExporter)
                 
.setInterval(brokerConfig.getMetricLoggingExporterIntervalInMills(), 
TimeUnit.MILLISECONDS)
                 .build();
diff --git a/broker/src/main/resources/rmq.broker.logback.xml 
b/broker/src/main/resources/rmq.broker.logback.xml
index 3c51e59d4b..32dc297360 100644
--- a/broker/src/main/resources/rmq.broker.logback.xml
+++ b/broker/src/main/resources/rmq.broker.logback.xml
@@ -672,6 +672,11 @@
         <appender-ref ref="RocketmqTrafficSiftingAppender"/>
     </logger>
 
+    <!-- Use json formatter to log metrics -->
+    <logger 
name="io.opentelemetry.exporter.logging.otlp.OtlpJsonLoggingMetricExporter" 
additivity="false" level="INFO">
+        <appender-ref ref="RocketmqBrokerMetricsSiftingAppender"/>
+    </logger>
+
     <logger name="io.opentelemetry.exporter.logging.LoggingMetricExporter" 
additivity="false" level="INFO">
         <appender-ref ref="RocketmqBrokerMetricsSiftingAppender"/>
     </logger>
diff --git a/common/BUILD.bazel b/common/BUILD.bazel
index a95a19ccd4..e6701d0fcb 100644
--- a/common/BUILD.bazel
+++ b/common/BUILD.bazel
@@ -35,6 +35,7 @@ java_library(
         "@maven//:io_opentelemetry_opentelemetry_sdk",
         "@maven//:io_opentelemetry_opentelemetry_sdk_common",
         "@maven//:io_opentelemetry_opentelemetry_sdk_metrics",
+        "@maven//:io_opentelemetry_opentelemetry_exporter_logging_otlp",
         "@maven//:org_apache_commons_commons_lang3",
         "@maven//:org_lz4_lz4_java",
         "@maven//:io_github_aliyunmq_rocketmq_slf4j_api",
diff --git a/common/pom.xml b/common/pom.xml
index 31eb0f087d..accc7f0a8f 100644
--- a/common/pom.xml
+++ b/common/pom.xml
@@ -80,6 +80,10 @@
             <groupId>io.opentelemetry</groupId>
             <artifactId>opentelemetry-sdk</artifactId>
         </dependency>
+        <dependency>
+            <groupId>io.opentelemetry</groupId>
+            <artifactId>opentelemetry-exporter-logging-otlp</artifactId>
+        </dependency>
         <dependency>
             <groupId>io.grpc</groupId>
             <artifactId>grpc-stub</artifactId>
diff --git a/controller/BUILD.bazel b/controller/BUILD.bazel
index 843d9dc776..b2b743eb2d 100644
--- a/controller/BUILD.bazel
+++ b/controller/BUILD.bazel
@@ -49,6 +49,7 @@ java_library(
         "@maven//:io_opentelemetry_opentelemetry_sdk_common",
         "@maven//:io_opentelemetry_opentelemetry_sdk_metrics",
         "@maven//:io_opentelemetry_opentelemetry_exporter_logging",
+        "@maven//:io_opentelemetry_opentelemetry_exporter_logging_otlp",
         "@maven//:org_slf4j_jul_to_slf4j",
     ],
 )
diff --git 
a/controller/src/main/java/org/apache/rocketmq/controller/metrics/ControllerMetricsManager.java
 
b/controller/src/main/java/org/apache/rocketmq/controller/metrics/ControllerMetricsManager.java
index 650740bcc6..be9e77eeae 100644
--- 
a/controller/src/main/java/org/apache/rocketmq/controller/metrics/ControllerMetricsManager.java
+++ 
b/controller/src/main/java/org/apache/rocketmq/controller/metrics/ControllerMetricsManager.java
@@ -26,7 +26,7 @@ import io.opentelemetry.api.metrics.LongHistogram;
 import io.opentelemetry.api.metrics.LongUpDownCounter;
 import io.opentelemetry.api.metrics.Meter;
 import io.opentelemetry.api.metrics.ObservableLongGauge;
-import io.opentelemetry.exporter.logging.LoggingMetricExporter;
+import io.opentelemetry.exporter.logging.otlp.OtlpJsonLoggingMetricExporter;
 import io.opentelemetry.exporter.otlp.metrics.OtlpGrpcMetricExporter;
 import io.opentelemetry.exporter.otlp.metrics.OtlpGrpcMetricExporterBuilder;
 import io.opentelemetry.exporter.prometheus.PrometheusHttpServer;
@@ -38,6 +38,7 @@ import io.opentelemetry.sdk.metrics.SdkMeterProvider;
 import io.opentelemetry.sdk.metrics.SdkMeterProviderBuilder;
 import io.opentelemetry.sdk.metrics.View;
 import io.opentelemetry.sdk.metrics.data.AggregationTemporality;
+import io.opentelemetry.sdk.metrics.export.MetricExporter;
 import io.opentelemetry.sdk.metrics.export.PeriodicMetricReader;
 import io.opentelemetry.sdk.resources.Resource;
 import java.io.File;
@@ -121,7 +122,7 @@ public class ControllerMetricsManager {
 
     private PrometheusHttpServer prometheusHttpServer;
 
-    private LoggingMetricExporter loggingMetricExporter;
+    private MetricExporter loggingMetricExporter;
 
     public static ControllerMetricsManager getInstance(ControllerManager 
controllerManager) {
         if (instance == null) {
@@ -364,8 +365,8 @@ public class ControllerMetricsManager {
         if (type == MetricsExporterType.LOG) {
             SLF4JBridgeHandler.removeHandlersForRootLogger();
             SLF4JBridgeHandler.install();
-            loggingMetricExporter = 
LoggingMetricExporter.create(config.isMetricsInDelta() ? 
AggregationTemporality.DELTA : AggregationTemporality.CUMULATIVE);
-            
java.util.logging.Logger.getLogger(LoggingMetricExporter.class.getName()).setLevel(java.util.logging.Level.FINEST);
+            loggingMetricExporter = 
OtlpJsonLoggingMetricExporter.create(config.isMetricsInDelta() ? 
AggregationTemporality.DELTA : AggregationTemporality.CUMULATIVE);
+            
java.util.logging.Logger.getLogger(OtlpJsonLoggingMetricExporter.class.getName()).setLevel(java.util.logging.Level.FINEST);
             periodicMetricReader = 
PeriodicMetricReader.builder(loggingMetricExporter)
                 .setInterval(config.getMetricLoggingExporterIntervalInMills(), 
TimeUnit.MILLISECONDS)
                 .build();
diff --git a/pom.xml b/pom.xml
index 9f0b3eb96b..4b382c6dae 100644
--- a/pom.xml
+++ b/pom.xml
@@ -974,6 +974,11 @@
                 <artifactId>opentelemetry-sdk</artifactId>
                 <version>${opentelemetry.version}</version>
             </dependency>
+            <dependency>
+                <groupId>io.opentelemetry</groupId>
+                <artifactId>opentelemetry-exporter-logging-otlp</artifactId>
+                <version>${opentelemetry.version}</version>
+            </dependency>
             <dependency>
                 <groupId>org.slf4j</groupId>
                 <artifactId>jul-to-slf4j</artifactId>
diff --git a/proxy/BUILD.bazel b/proxy/BUILD.bazel
index b4f3c16e22..cb7af92549 100644
--- a/proxy/BUILD.bazel
+++ b/proxy/BUILD.bazel
@@ -52,6 +52,7 @@ java_library(
         "@maven//:io_opentelemetry_opentelemetry_exporter_otlp",
         "@maven//:io_opentelemetry_opentelemetry_exporter_prometheus",
         "@maven//:io_opentelemetry_opentelemetry_exporter_logging",
+        "@maven//:io_opentelemetry_opentelemetry_exporter_logging_otlp",
         "@maven//:io_opentelemetry_opentelemetry_sdk",
         "@maven//:io_opentelemetry_opentelemetry_sdk_common",
         "@maven//:io_opentelemetry_opentelemetry_sdk_metrics",
diff --git 
a/proxy/src/main/java/org/apache/rocketmq/proxy/metrics/ProxyMetricsManager.java
 
b/proxy/src/main/java/org/apache/rocketmq/proxy/metrics/ProxyMetricsManager.java
index f5050858f6..2b8dac5d8b 100644
--- 
a/proxy/src/main/java/org/apache/rocketmq/proxy/metrics/ProxyMetricsManager.java
+++ 
b/proxy/src/main/java/org/apache/rocketmq/proxy/metrics/ProxyMetricsManager.java
@@ -21,15 +21,16 @@ import io.opentelemetry.api.common.Attributes;
 import io.opentelemetry.api.common.AttributesBuilder;
 import io.opentelemetry.api.metrics.Meter;
 import io.opentelemetry.api.metrics.ObservableLongGauge;
+import io.opentelemetry.exporter.logging.otlp.OtlpJsonLoggingMetricExporter;
 import io.opentelemetry.exporter.otlp.metrics.OtlpGrpcMetricExporter;
 import io.opentelemetry.exporter.otlp.metrics.OtlpGrpcMetricExporterBuilder;
 import io.opentelemetry.exporter.prometheus.PrometheusHttpServer;
-import io.opentelemetry.exporter.logging.LoggingMetricExporter;
 import io.opentelemetry.sdk.OpenTelemetrySdk;
 import io.opentelemetry.sdk.metrics.InstrumentType;
 import io.opentelemetry.sdk.metrics.SdkMeterProvider;
 import io.opentelemetry.sdk.metrics.SdkMeterProviderBuilder;
 import io.opentelemetry.sdk.metrics.data.AggregationTemporality;
+import io.opentelemetry.sdk.metrics.export.MetricExporter;
 import io.opentelemetry.sdk.metrics.export.PeriodicMetricReader;
 import io.opentelemetry.sdk.resources.Resource;
 import java.util.HashMap;
@@ -42,9 +43,9 @@ import 
org.apache.rocketmq.broker.metrics.BrokerMetricsManager;
 import org.apache.rocketmq.common.constant.LoggerName;
 import org.apache.rocketmq.common.metrics.MetricsExporterType;
 import org.apache.rocketmq.common.utils.StartAndShutdown;
-import org.apache.rocketmq.proxy.config.ProxyConfig;
 import org.apache.rocketmq.logging.org.slf4j.Logger;
 import org.apache.rocketmq.logging.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.proxy.config.ProxyConfig;
 import org.slf4j.bridge.SLF4JBridgeHandler;
 
 import static 
org.apache.rocketmq.broker.metrics.BrokerMetricsConstant.AGGREGATION_DELTA;
@@ -67,7 +68,7 @@ public class ProxyMetricsManager implements StartAndShutdown {
     private OtlpGrpcMetricExporter metricExporter;
     private PeriodicMetricReader periodicMetricReader;
     private PrometheusHttpServer prometheusHttpServer;
-    private LoggingMetricExporter loggingMetricExporter;
+    private MetricExporter loggingMetricExporter;
 
     public static ObservableLongGauge proxyUp = null;
 
@@ -221,8 +222,8 @@ public class ProxyMetricsManager implements 
StartAndShutdown {
         if (metricsExporterType == MetricsExporterType.LOG) {
             SLF4JBridgeHandler.removeHandlersForRootLogger();
             SLF4JBridgeHandler.install();
-            loggingMetricExporter = 
LoggingMetricExporter.create(proxyConfig.isMetricsInDelta() ? 
AggregationTemporality.DELTA : AggregationTemporality.CUMULATIVE);
-            
java.util.logging.Logger.getLogger(LoggingMetricExporter.class.getName()).setLevel(java.util.logging.Level.FINEST);
+            loggingMetricExporter = 
OtlpJsonLoggingMetricExporter.create(proxyConfig.isMetricsInDelta() ? 
AggregationTemporality.DELTA : AggregationTemporality.CUMULATIVE);
+            
java.util.logging.Logger.getLogger(OtlpJsonLoggingMetricExporter.class.getName()).setLevel(java.util.logging.Level.FINEST);
             periodicMetricReader = 
PeriodicMetricReader.builder(loggingMetricExporter)
                 
.setInterval(proxyConfig.getMetricLoggingExporterIntervalInMills(), 
TimeUnit.MILLISECONDS)
                 .build();
diff --git a/proxy/src/main/resources/rmq.proxy.logback.xml 
b/proxy/src/main/resources/rmq.proxy.logback.xml
index d38827f92d..f968a45e63 100644
--- a/proxy/src/main/resources/rmq.proxy.logback.xml
+++ b/proxy/src/main/resources/rmq.proxy.logback.xml
@@ -418,6 +418,11 @@
         <appender-ref ref="RocketmqProxyWatermarkAppender" />
     </logger>
 
+    <!-- Use json formatter to log metrics -->
+    <logger 
name="io.opentelemetry.exporter.logging.otlp.OtlpJsonLoggingMetricExporter" 
additivity="false" level="INFO">
+        <appender-ref ref="RocketmqProxyMetricsAppender"/>
+    </logger>
+
     <logger name="io.opentelemetry.exporter.logging.LoggingMetricExporter" 
additivity="false" level="INFO">
         <appender-ref ref="RocketmqProxyMetricsAppender" />
     </logger>
diff --git a/tieredstore/BUILD.bazel b/tieredstore/BUILD.bazel
index 5b3885a4ea..dea2c561b2 100644
--- a/tieredstore/BUILD.bazel
+++ b/tieredstore/BUILD.bazel
@@ -36,6 +36,7 @@ java_library(
         "@maven//:io_opentelemetry_opentelemetry_sdk",
         "@maven//:io_opentelemetry_opentelemetry_sdk_common",
         "@maven//:io_opentelemetry_opentelemetry_sdk_metrics",
+        "@maven//:io_opentelemetry_opentelemetry_exporter_logging_otlp",
         "@maven//:org_apache_commons_commons_lang3",
         "@maven//:org_apache_tomcat_annotations_api",
         "@maven//:com_alibaba_fastjson",

Reply via email to