tree: a601ebfa5db29a9e24e291b069000a0ec7f7aa8f [path history] [tgz]
  1. dubbo-samples-spring-boot-tracing-skwalking-consumer/
  2. dubbo-samples-spring-boot-tracing-skwalking-interface/
  3. dubbo-samples-spring-boot-tracing-skwalking-provider/
  4. pom.xml
  5. README.md
  6. skywalking-trace-result-1.png
  7. skywalking-trace-result-2.png
  8. skywalking-trace-result-3.png
4-governance/dubbo-samples-spring-boot-tracing-skywalking/README.md

Overview

Apache Dubbo has inbuilt tracing through Micrometer Observations and Micrometer Tracing. And the micrometer can integrate with skywalking by skywalking micrometer-1.10 api.

1. Adding Micrometer Observation To Your Project

In order to add Micrometer to the classpath and add metrics for Dubbo you need to add the dubbo-metrics-api dependency as shown below:


<dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-metrics-api</artifactId> </dependency>

2. Add Skywalking Micrometer-1.10 Api To Your Project

To integrate the dubbo's micrometer tracing data to skywalking, you should add this toolkit dependency.

<dependency>
    <groupId>org.apache.skywalking</groupId>
    <artifactId>apm-toolkit-micrometer-1.10</artifactId>
</dependency>

3. Configuration ObservationRegistry

@Configuration
public class ObservationConfiguration {
    @Bean
    ApplicationModel applicationModel(ObservationRegistry observationRegistry) {
        ApplicationModel applicationModel = ApplicationModel.defaultModel();
        observationRegistry.observationConfig()
                .observationHandler(new ObservationHandler.FirstMatchingCompositeObservationHandler(
                        new SkywalkingSenderTracingHandler(), new SkywalkingReceiverTracingHandler(),
                        new SkywalkingDefaultTracingHandler()
                ));
        applicationModel.getBeanFactory().registerBean(observationRegistry);
        return applicationModel;
    }
}

4. Start the Skywalking OAP

skywalking oap setup

bash startup.sh

5. Start Provider and Application With Skywalking Agent

After starting the registration center, we start provider and Consumer with skywalking agent, so skywalking can report trace data. And because skywalking java agent have instrumented the dubbo and spring framework, to verify dubbo integrates with skywalking by micrometer, we should delete plugin jars in “plugins” directory. To connect the skywalking oap, we should config the backend address in /path/to/skywalking-agent/agent.config. The relevant field is collector.backend_service.

java -javaagent:/path/to/skywalking-agent/skywalking-agent.jar -jar dubbo-samples-spring-boot-tracing-skwalking-provider-1.0-SNAPSHOT.jar
java -javaagent:/path/to/skywalking-agent/skywalking-agent.jar -jar dubbo-samples-spring-boot-tracing-skwalking-consumer-1.0-SNAPSHOT.jar

6. Result

Open skywalking-webapp in browser.

skywalking-trace-result-1 skywalking-trace-result-2 skywalking-trace-result-2