本文演示如何将 Dubbo 接入 Skywalking 全链路监控体系,完整示例请参考 dubbo-samples-tracing-skywalking。依赖的 Skywalking Agent 版本为 skywalking micrometer-1.10 api.
为了能够将 Micrometer 及相关 Metrics 依赖添加到 classpath,需要增加 dubbo-metrics-api
依赖,如下所示:
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-metrics-api</artifactId>
</dependency>
为了将 Dubbo Micrometer tracing 数据集成到 Skywalking,需要添加以下依赖。
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-micrometer-1.10</artifactId>
</dependency>
@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;
}
}
请参考这里了解如何 设置 Skywalking OAP
bash startup.sh
首先,我们假设你已经有一个注册中心来协调地址发现,具体可参见示例里指向的注册中心配置。
之后,启动 Provider 和 Consumer 并确保 skywalking-agent 参数被正确设置,skywalking-agent 确保数据可以被正确的上报到后台系统。
plugins
目录删除即可/path/to/skywalking-agent/agent.config
,对应的参数项为 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
在浏览器中打开 [skywalking-webapp](http://localhost:8080/)
查看效果