Skywalking
本文演示如何将 Dubbo 接入 Skywalking 全链路监控体系,完整示例请参考 dubbo-samples-tracing-skywalking。依赖的 Skywalking Agent 版本为 skywalking micrometer-1.10 api.
1. 添加 Micrometer Observation 依赖到你的项目
为了能够将 Micrometer 及相关 Metrics 依赖添加到 classpath,需要增加 dubbo-metrics-api
依赖,如下所示:
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-metrics-api</artifactId>
</dependency>
2. 添加 Skywalking Micrometer-1.10 Api 到项目
为了将 Dubbo Micrometer tracing 数据集成到 Skywalking,需要添加以下依赖。
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-micrometer-1.10</artifactId>
</dependency>
3. 配置 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. 启动 Skywalking OAP
请参考这里了解如何 设置 Skywalking OAP
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
。
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. 示例效果
在浏览器中打开 [skywalking-webapp](http://localhost:8080/)
查看效果
最后修改 September 29, 2023: fix: fix skywalking title error (#2820) (8f29c7275d)