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

albumenj 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 32cd9761f9 Polish ObservationConfiguration (#11456)
32cd9761f9 is described below

commit 32cd9761f936ab7daaa72cbe2c60c14cb6726ede
Author: ShenFeng312 <[email protected]>
AuthorDate: Mon Feb 6 19:57:37 2023 +0800

    Polish ObservationConfiguration (#11456)
    
    * polish ObservationConfiguration
    
    * update application.yml
---
 .../demo/consumer/ObservationConfiguration.java    | 31 +++++++++++-----------
 .../src/main/resources/application.yml             | 11 +++++++-
 .../springboot/demo/provider/DemoServiceImpl.java  |  6 ++++-
 .../demo/provider/ObservationConfiguration.java    | 31 +++++++++++-----------
 .../src/main/resources/application.yml             | 11 +++++++-
 5 files changed, 56 insertions(+), 34 deletions(-)

diff --git 
a/dubbo-demo/dubbo-demo-spring-boot/dubbo-demo-spring-boot-consumer/src/main/java/org/apache/dubbo/springboot/demo/consumer/ObservationConfiguration.java
 
b/dubbo-demo/dubbo-demo-spring-boot/dubbo-demo-spring-boot-consumer/src/main/java/org/apache/dubbo/springboot/demo/consumer/ObservationConfiguration.java
index 450415362a..717e36a8f9 100644
--- 
a/dubbo-demo/dubbo-demo-spring-boot/dubbo-demo-spring-boot-consumer/src/main/java/org/apache/dubbo/springboot/demo/consumer/ObservationConfiguration.java
+++ 
b/dubbo-demo/dubbo-demo-spring-boot/dubbo-demo-spring-boot-consumer/src/main/java/org/apache/dubbo/springboot/demo/consumer/ObservationConfiguration.java
@@ -18,11 +18,6 @@
 package org.apache.dubbo.springboot.demo.consumer;
 
 
-import java.util.Collections;
-
-import javax.annotation.PostConstruct;
-import javax.annotation.PreDestroy;
-
 import io.micrometer.core.instrument.MeterRegistry;
 import 
io.micrometer.core.instrument.observation.DefaultMeterObservationHandler;
 import io.micrometer.core.instrument.simple.SimpleMeterRegistry;
@@ -34,6 +29,7 @@ import 
io.micrometer.tracing.handler.PropagatingReceiverTracingObservationHandle
 import 
io.micrometer.tracing.handler.PropagatingSenderTracingObservationHandler;
 import io.micrometer.tracing.handler.TracingAwareMeterObservationHandler;
 import io.micrometer.tracing.otel.bridge.ArrayListSpanProcessor;
+import io.micrometer.tracing.otel.bridge.EventPublishingContextWrapper;
 import io.micrometer.tracing.otel.bridge.OtelBaggageManager;
 import io.micrometer.tracing.otel.bridge.OtelCurrentTraceContext;
 import io.micrometer.tracing.otel.bridge.OtelPropagator;
@@ -42,6 +38,7 @@ import 
io.micrometer.tracing.otel.bridge.Slf4JBaggageEventListener;
 import io.micrometer.tracing.otel.bridge.Slf4JEventListener;
 import io.micrometer.tracing.propagation.Propagator;
 import io.opentelemetry.api.common.Attributes;
+import io.opentelemetry.context.ContextStorage;
 import io.opentelemetry.context.propagation.ContextPropagators;
 import io.opentelemetry.extension.trace.propagation.B3Propagator;
 import io.opentelemetry.sdk.OpenTelemetrySdk;
@@ -54,26 +51,28 @@ import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.core.env.Environment;
 
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+import java.util.Collections;
+
 import static io.opentelemetry.sdk.trace.samplers.Sampler.alwaysOn;
 
 @Configuration
 public class ObservationConfiguration {
-
     /**
      * Default value for application name if {@code spring.application.name} 
is not set.
      */
     private static final String DEFAULT_APPLICATION_NAME = "application";
 
-    @Bean
-    ApplicationModel applicationModel() {
-        ApplicationModel applicationModel = ApplicationModel.defaultModel();
-        applicationModel.getBeanFactory().registerBean(observationRegistry());
-        return applicationModel;
-    }
+    @javax.annotation.Resource
+    private ApplicationModel applicationModel;
 
     @Bean
     ObservationRegistry observationRegistry() {
-        return ObservationRegistry.create();
+        ObservationRegistry observationRegistry = ObservationRegistry.create();
+        applicationModel.getBeanFactory().registerBean(observationRegistry);
+        return observationRegistry;
+
     }
 
     @Bean
@@ -129,10 +128,12 @@ public class ObservationConfiguration {
     OtelTracer tracer(io.opentelemetry.api.trace.Tracer otelTracer, 
OtelCurrentTraceContext otelCurrentTraceContext) {
         Slf4JEventListener slf4JEventListener = slf4JEventListener();
         Slf4JBaggageEventListener slf4JBaggageEventListener = 
slf4JBaggageEventListener();
-        return new OtelTracer(otelTracer, otelCurrentTraceContext, event -> {
+        OtelTracer.EventPublisher eventPublisher = event -> {
             slf4JEventListener.onEvent(event);
             slf4JBaggageEventListener.onEvent(event);
-        }, new OtelBaggageManager(otelCurrentTraceContext, 
Collections.emptyList(), Collections.emptyList()));
+        };
+        ContextStorage.addWrapper(new 
EventPublishingContextWrapper(eventPublisher));
+        return new OtelTracer(otelTracer, otelCurrentTraceContext, 
eventPublisher, new OtelBaggageManager(otelCurrentTraceContext, 
Collections.emptyList(), Collections.emptyList()));
     }
 
     @Bean
diff --git 
a/dubbo-demo/dubbo-demo-spring-boot/dubbo-demo-spring-boot-consumer/src/main/resources/application.yml
 
b/dubbo-demo/dubbo-demo-spring-boot/dubbo-demo-spring-boot-consumer/src/main/resources/application.yml
index 9f29958e6e..10d0ec74e7 100644
--- 
a/dubbo-demo/dubbo-demo-spring-boot/dubbo-demo-spring-boot-consumer/src/main/resources/application.yml
+++ 
b/dubbo-demo/dubbo-demo-spring-boot/dubbo-demo-spring-boot-consumer/src/main/resources/application.yml
@@ -14,9 +14,13 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-dubbo:
+spring:
   application:
     name: dubbo-springboot-demo-consumer
+
+dubbo:
+  application:
+    name: ${spring.application.name}
   protocol:
     name: dubbo
     port: -1
@@ -27,3 +31,8 @@ dubbo:
     address: zookeeper://127.0.0.1:2181
   metadata-report:
     address: zookeeper://127.0.0.1:2181
+
+logging:
+  pattern:
+    level: '%5p [${spring.application.name:},%X{traceId:-},%X{spanId:-}]'
+
diff --git 
a/dubbo-demo/dubbo-demo-spring-boot/dubbo-demo-spring-boot-provider/src/main/java/org/apache/dubbo/springboot/demo/provider/DemoServiceImpl.java
 
b/dubbo-demo/dubbo-demo-spring-boot/dubbo-demo-spring-boot-provider/src/main/java/org/apache/dubbo/springboot/demo/provider/DemoServiceImpl.java
index 0c1460ce74..f0c1aecc3e 100644
--- 
a/dubbo-demo/dubbo-demo-spring-boot/dubbo-demo-spring-boot-provider/src/main/java/org/apache/dubbo/springboot/demo/provider/DemoServiceImpl.java
+++ 
b/dubbo-demo/dubbo-demo-spring-boot/dubbo-demo-spring-boot-provider/src/main/java/org/apache/dubbo/springboot/demo/provider/DemoServiceImpl.java
@@ -20,14 +20,18 @@ package org.apache.dubbo.springboot.demo.provider;
 import org.apache.dubbo.config.annotation.DubboService;
 import org.apache.dubbo.rpc.RpcContext;
 import org.apache.dubbo.springboot.demo.DemoService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 @DubboService
 public class DemoServiceImpl implements DemoService {
 
+    private static final Logger logger = 
LoggerFactory.getLogger(DemoServiceImpl.class);
     @Override
     public String sayHello(String name) {
-        System.out.println("Hello " + name + ", request from consumer: " + 
RpcContext.getContext().getRemoteAddress());
+        logger.info("Hello " + name + ", request from consumer: " + 
RpcContext.getContext().getRemoteAddress());
         return "Hello " + name;
+
     }
 
 
diff --git 
a/dubbo-demo/dubbo-demo-spring-boot/dubbo-demo-spring-boot-provider/src/main/java/org/apache/dubbo/springboot/demo/provider/ObservationConfiguration.java
 
b/dubbo-demo/dubbo-demo-spring-boot/dubbo-demo-spring-boot-provider/src/main/java/org/apache/dubbo/springboot/demo/provider/ObservationConfiguration.java
index 77e0b06277..722427fcc5 100644
--- 
a/dubbo-demo/dubbo-demo-spring-boot/dubbo-demo-spring-boot-provider/src/main/java/org/apache/dubbo/springboot/demo/provider/ObservationConfiguration.java
+++ 
b/dubbo-demo/dubbo-demo-spring-boot/dubbo-demo-spring-boot-provider/src/main/java/org/apache/dubbo/springboot/demo/provider/ObservationConfiguration.java
@@ -18,11 +18,6 @@
 package org.apache.dubbo.springboot.demo.provider;
 
 
-import java.util.Collections;
-
-import javax.annotation.PostConstruct;
-import javax.annotation.PreDestroy;
-
 import io.micrometer.core.instrument.MeterRegistry;
 import 
io.micrometer.core.instrument.observation.DefaultMeterObservationHandler;
 import io.micrometer.core.instrument.simple.SimpleMeterRegistry;
@@ -34,6 +29,7 @@ import 
io.micrometer.tracing.handler.PropagatingReceiverTracingObservationHandle
 import 
io.micrometer.tracing.handler.PropagatingSenderTracingObservationHandler;
 import io.micrometer.tracing.handler.TracingAwareMeterObservationHandler;
 import io.micrometer.tracing.otel.bridge.ArrayListSpanProcessor;
+import io.micrometer.tracing.otel.bridge.EventPublishingContextWrapper;
 import io.micrometer.tracing.otel.bridge.OtelBaggageManager;
 import io.micrometer.tracing.otel.bridge.OtelCurrentTraceContext;
 import io.micrometer.tracing.otel.bridge.OtelPropagator;
@@ -42,6 +38,7 @@ import 
io.micrometer.tracing.otel.bridge.Slf4JBaggageEventListener;
 import io.micrometer.tracing.otel.bridge.Slf4JEventListener;
 import io.micrometer.tracing.propagation.Propagator;
 import io.opentelemetry.api.common.Attributes;
+import io.opentelemetry.context.ContextStorage;
 import io.opentelemetry.context.propagation.ContextPropagators;
 import io.opentelemetry.extension.trace.propagation.B3Propagator;
 import io.opentelemetry.sdk.OpenTelemetrySdk;
@@ -50,11 +47,14 @@ import io.opentelemetry.sdk.trace.SdkTracerProvider;
 import io.opentelemetry.sdk.trace.export.BatchSpanProcessor;
 import io.opentelemetry.semconv.resource.attributes.ResourceAttributes;
 import org.apache.dubbo.rpc.model.ApplicationModel;
-
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.core.env.Environment;
 
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+import java.util.Collections;
+
 import static io.opentelemetry.sdk.trace.samplers.Sampler.alwaysOn;
 
 @Configuration
@@ -64,17 +64,14 @@ public class ObservationConfiguration {
      * Default value for application name if {@code spring.application.name} 
is not set.
      */
     private static final String DEFAULT_APPLICATION_NAME = "application";
-
-    @Bean
-    ApplicationModel applicationModel() {
-        ApplicationModel applicationModel = ApplicationModel.defaultModel();
-        applicationModel.getBeanFactory().registerBean(observationRegistry());
-        return applicationModel;
-    }
+    @javax.annotation.Resource
+    private ApplicationModel applicationModel;
 
     @Bean
     ObservationRegistry observationRegistry() {
-        return ObservationRegistry.create();
+        ObservationRegistry observationRegistry = ObservationRegistry.create();
+        applicationModel.getBeanFactory().registerBean(observationRegistry);
+        return observationRegistry;
     }
 
     @Bean
@@ -130,10 +127,12 @@ public class ObservationConfiguration {
     OtelTracer tracer(io.opentelemetry.api.trace.Tracer otelTracer, 
OtelCurrentTraceContext otelCurrentTraceContext) {
         Slf4JEventListener slf4JEventListener = slf4JEventListener();
         Slf4JBaggageEventListener slf4JBaggageEventListener = 
slf4JBaggageEventListener();
-        return new OtelTracer(otelTracer, otelCurrentTraceContext, event -> {
+        OtelTracer.EventPublisher eventPublisher = event -> {
             slf4JEventListener.onEvent(event);
             slf4JBaggageEventListener.onEvent(event);
-        }, new OtelBaggageManager(otelCurrentTraceContext, 
Collections.emptyList(), Collections.emptyList()));
+        };
+        ContextStorage.addWrapper(new 
EventPublishingContextWrapper(eventPublisher));
+        return new OtelTracer(otelTracer, otelCurrentTraceContext, 
eventPublisher, new OtelBaggageManager(otelCurrentTraceContext, 
Collections.emptyList(), Collections.emptyList()));
     }
 
     @Bean
diff --git 
a/dubbo-demo/dubbo-demo-spring-boot/dubbo-demo-spring-boot-provider/src/main/resources/application.yml
 
b/dubbo-demo/dubbo-demo-spring-boot/dubbo-demo-spring-boot-provider/src/main/resources/application.yml
index 37a249fdcc..19a08111b6 100644
--- 
a/dubbo-demo/dubbo-demo-spring-boot/dubbo-demo-spring-boot-provider/src/main/resources/application.yml
+++ 
b/dubbo-demo/dubbo-demo-spring-boot/dubbo-demo-spring-boot-provider/src/main/resources/application.yml
@@ -14,9 +14,13 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-dubbo:
+spring:
   application:
     name: dubbo-springboot-demo-provider
+
+dubbo:
+  application:
+    name: ${spring.application.name}
   protocol:
     name: dubbo
     port: -1
@@ -27,3 +31,8 @@ dubbo:
     address: zookeeper://127.0.0.1:2181
   metadata-report:
     address: zookeeper://127.0.0.1:2181
+
+logging:
+  pattern:
+    level: '%5p [${spring.application.name:},%X{traceId:-},%X{spanId:-}]'
+

Reply via email to