查看原文
其他

使用 Apache SkyWalking 对 Apache Pulsar 进行消息链路追踪与性能监控

李鹏辉 ApachePulsar 2021-10-18

🎙️阅读本文需要约 6 分钟


📚概览


  • Apache Pulsar 是下一代云原生流数据消息平台。

  • Apache SkyWalking 是专门为微服务、云原生和容器设计的 APM 系统,支持消息链路追踪与性能监控。


消息链路追踪能帮助开发人员排查消息发布和接收时产生的问题。本文主要讲述如何使用 Apache SkyWalking 对 Apache Pulsar 进行消息链路追踪与性能监控。


🎒准备工作


请安装好 Git、JDK 8、Maven 3 和 Pulsar(集群或单机)。如需安装 Pulsar,参阅 Pulsar 官网(http://pulsar.apache.org/docs/en/standalone/)。




⚙️构建 Pulsar agent 插件


Apache Pulsar agent 插件将在 SkyWalking 6.5.0 正式发布。目前最新版本的 SkyWalking 为 6.4.0,因此,您需要从 SkyWalking 源代码中构建 Pulsar agent 插件。


1. 下载 SkyWalking 源代码,构建 Pulsar agent 插件。
$ git clone https://github.com/apache/skywalking.git$ cd skywalking$ git submodule init$ git submodule update$ ./mvnw clean package -DskipTests


2. 解压 apache-skywalking-apm-bin.tar.gz。


解压后,所有 packages 会在 apm-dist/target 文件夹。Pulsar agent 插件在 agent/plugins 文件夹。
$ tar -xf apache-skywalking-apm-bin.tar.gz


恭喜你,你已成功构建 Pulsar agent 插件。



⚙️启动 SkyWalking 后台服务


如果你已安装 SkyWalking 后台服务,可以忽略该步骤;如果未安装,可参阅(https://github.com/apache/skywalking/blob/master/docs/en/setup/backend/backend-ui-setup.md#deploy-backend-and-ui)进行安装。


🙋提示:

如果你在同一台机器上运行 SkyWalking 后台服务和 Pulsar broker,则需更改 SkyWalking 或 Pulsar broker 的网络服务端口(默认情况下,它们都会使用 8080 端口)。


  • 如需更改 Skywalking UI 的网络服务端口,可参阅https://github.com/apache/skywalking/blob/master/docs/en/setup/backend/ui-setup.md。

  • 如需更改 Pulsar broker 的网络服务端口,可通过编辑 conf/broker.conf 配置文件进行更改。



⚙️下载测试用例代码

设置并开启 Pulsar agent 插件

本示例使用 Pulsar agent 集成测试的测试用例,你也可以编写符合自身需求的测试用例。


1. 下载 SkyWalking 集成测试源代码。
$ git clone https://github.com/SkyAPMTest/agent-auto-integration-testcases.git
下载后,该代码库中包含 pulsar-scenario 项目。


2. 导入 pulsar-scenario 项目至 IDE。
本示例以 Intelli IDEA 为例。如下图所示,pulsar-scenario 项目是一个 Spring Boot 应用程序,包含一个 CaseController。
3. 设置 Pulsar agent 插件。
启动 Spring Boot 应用程序前,你需要设置 Pulsar agent 插件。
🙋提示:
  • 如需设置 Java agent 及其属性,参阅这里。
  • 默认情况下,pulsar-scenario 项目使用 8082 端口。
  • 下图中的 VM 选项为:
    -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



⚙️测试并在 SkyWalking 中查看结果


至此,你已准备好了所需环境,下一步可以模拟请求并查看结果。


执行以下 HTTP 请求后,一些消息链路追踪及监控数据会上传至 SkyWalking。此时,可以在 SkyWalking UI 中查看。
$ curl http://localhost:8082/pulsar-scenario/case/pulsar-case


📊面板视图


面板显示有 2 个 endpoint、1 个 service 和 1 个 MQ。


📊拓扑视图

拓扑视图显示以下信息:
  • 用户向服务(即,你的测试网络应用程序)发送请求
  • 服务向 Pulsar broker 发送消息和从 Pulsar broker 接收消息


📊链路追踪视图

链路追踪视图显示每个请求的详细信息。


目前,Pulsar agent 插件支持 3 类 span:
  • 生产者发送消息 span, 记录生产者发送消息。
  • 生产者发送消息回调 span:记录消息已发送完成。
  • 消费者接收消息 span:记录消费者接收到消息。




🎙️ 总结

如前文所述,Apache Pulsar agent 插件是一个非常实用的工具,通过集成 SkyWalking 与 Pulsar,可以利用 Apache SkyWalking 对 Apache Pulsar 进行消息链路追踪与性能监控。欢迎大家使用和建议。


最后,感谢 SkyWalking 社区给予我的大力支持和帮助。


作者 | 李鹏辉
审校 | Anonymitaet
编辑 | Sylvia


📣Join Pulsar 📣


Apache Pulsar 鼓励大家参与开源社区,欢迎大家积极提交 PR,我们会统计参与 Pulsar 的contributor ,后期还有礼品赠送鸭🎁。


👇🏻点击「阅读原文」获取 SkyWalking 下载页

: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存