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:-}]'
+