Skywalking
本文演示如何将 Dubbo 接入 Skywalking 全链路监控体系
本文演示如何将 Dubbo 接入 Skywalking 全链路监控体系,完整示例请参考 dubbo-samples-tracing-skywalking。依赖的 Skywalking Agent 版本为 skywalking micrometer-1.10 api.
1. 添加 Micrometer Observation 依赖到你的项目
为了能够将 Micrometer 及相关 Metrics 依赖添加到 classpath,需要增加 dubbo-metrics-api 依赖,如下所示:
2. <dependency>
3. <groupId>org.apache.dubbo</groupId>
4. <artifactId>dubbo-metrics-api</artifactId>
5. </dependency>
2. 添加 Skywalking Micrometer-1.10 Api 到项目
为了将 Dubbo Micrometer tracing 数据集成到 Skywalking,需要添加以下依赖。
1. <dependency>
2. <groupId>org.apache.skywalking</groupId>
3. <artifactId>apm-toolkit-micrometer-1.10</artifactId>
4. </dependency>
3. 配置 ObservationRegistry
1. @Configuration
2. public class ObservationConfiguration {
3. @Bean
4. ApplicationModel applicationModel(ObservationRegistry observationRegistry) {
5. ApplicationModel applicationModel = ApplicationModel.defaultModel();
6. observationRegistry.observationConfig()
7. .observationHandler(new ObservationHandler.FirstMatchingCompositeObservationHandler(
8. new SkywalkingSenderTracingHandler(), new SkywalkingReceiverTracingHandler(),
9. new SkywalkingDefaultTracingHandler()
10. ));
11. applicationModel.getBeanFactory().registerBean(observationRegistry);
12. return applicationModel;
13. }
14. }
4. 启动 Skywalking OAP
请参考这里了解如何 设置 Skywalking OAP
1. bash startup.sh
5. 启动示例 Demo (skywalking-agent)
首先,我们假设你已经有一个注册中心来协调地址发现,具体可参见示例里指向的注册中心配置。
之后,启动 Provider 和 Consumer 并确保 skywalking-agent 参数被正确设置,skywalking-agent 确保数据可以被正确的上报到后台系统。
- 考虑到 skywalking-agent 本身也有内置的 Dubbo 拦截器,为了确保示例能使用 Dubbo 自带的 Micrometer 集成,我们需要你删除 skywalking-agent 自带的拦截器,直接将
plugins目录删除即可 - 配置 Skywalking OAP 服务器地址,在以下文件中配置 OAP 地址
/path/to/skywalking-agent/agent.config,对应的参数项为collector.backend_service。
1. java -javaagent:/path/to/skywalking-agent/skywalking-agent.jar -jar dubbo-samples-spring-boot-tracing-skwalking-provider-1.0-SNAPSHOT.jar
1. java -javaagent:/path/to/skywalking-agent/skywalking-agent.jar -jar dubbo-samples-spring-boot-tracing-skwalking-consumer-1.0-SNAPSHOT.jar
6. 示例效果
在浏览器中打开 [skywalking-webapp](http://localhost:8080/) 查看效果

最后修改 September 13, 2024: Refactor website structure (#2860) (1a4b998f54b)
