消息链路追踪能帮助开发人员排查消息发布和接收时产生的问题。本文主要讲述如何使用 Apache SkyWalking 对 Apache Pulsar 进行消息链路追踪与性能监控。
请安装好 Git、JDK 8、Maven 3 和 Pulsar(集群或单机)。如需安装 Pulsar,参阅 Pulsar 官网。
Apache Pulsar agent 插件将在 SkyWalking 6.5.0 正式发布。目前最新版本的 SkyWalking 为 6.4.0,因此,您需要从 SkyWalking 源代码中构建 Pulsar agent 插件。
下载 SkyWalking 源代码,构建 Pulsar agent 插件。
$ git clone https://github.com/apache/SkyWalking.git
$ cd SkyWalking
$ git submodule init
$ git submodule update
$ ./mvnw clean package -DskipTests
解压 apache-skywalking-apm-bin.tar.gz。
解压后,所有 packages 会在 apm-dist/target 文件夹。Pulsar agent 插件在 agent/plugins 文件夹。
```shell
$ tar -xf apache-SkyWalking-apm-bin.tar.gz
```
恭喜你,你已成功构建 Pulsar agent 插件。
如果你已安装 SkyWalking 后台服务,可以忽略该步骤;如果未安装,可参阅此链接进行安装。
提示: 如果你在同一台机器上运行 SkyWalking 后台服务和 Pulsar broker,则需更改 SkyWalking 或 Pulsar broker 的网络服务端口(默认情况下,它们都会使用 8080 端口)。
conf/broker.conf
配置文件进行更改。本示例使用 Pulsar agent 集成测试的测试用例,你也可以编写符合自身需求的测试用例。
$ git clone https://github.com/SkyAPMTest/agent-auto-integration-testcases.git
下载后,该代码库中包含 pulsar-scenario 项目。
导入 pulsar-scenario 项目至 IDE。
本示例以 Intelli IDEA 为例。如下图所示,pulsar-scenario 项目是一个 Spring Boot 应用程序,包含一个 CaseController。
设置 Pulsar agent 插件。
启动 Spring Boot 应用程序前,你需要设置 Pulsar agent 插件。
提示:
下图中的 VM 选项为:
```bash
-javaagent:<your-SkyWalking-home>/apm-dist/target/apache-SkyWalking-apm-bin/agent/SkyWalking-agent.jar -DSW_AGENT_COLLECTOR_BACKEND_SERVICES=<SkyWalking-backend-host>:11800 -DSW_AGENT_NAME=pulsar-demo -Dservice.url=pulsar://<your-pulsar-broker-ip>:6650
```
至此,你已准备好了所需环境,下一步可以模拟请求并查看结果。
执行以下 HTTP 请求后,一些消息链路追踪及监控数据会上传至 SkyWalking。此时,可以在 SkyWalking UI 中查看。
$ curl http://localhost:8082/pulsar-scenario/case/pulsar-case
面板显示有 2 个 endpoint、1 个 service 和 1 个 MQ。
拓扑视图显示以下信息:
链路追踪视图显示每个请求的详细信息。
目前,Pulsar agent 插件支持 3 类 span:
如前文所述,Apache Pulsar agent 插件是一个非常实用的工具,通过集成 SkyWalking 与 Pulsar,可以利用 Apache SkyWalking 对 Apache Pulsar 进行消息链路追踪与性能监控。欢迎大家使用和建议。
最后,感谢 SkyWalking 社区给予我的大力支持和帮助。