sharetwitterlinkedIn

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

October 10, 2019
head img

概览

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

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

准备工作

请安装好 Git、JDK 8、Maven 3 和 Pulsar(集群或单机)。如需安装 Pulsar,参阅 Pulsar 官网

构建 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 文件夹。

        ```shell
          
            $ tar -xf apache-SkyWalking-apm-bin.tar.gz
       
        ```
    

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

启动 SkyWalking 后台服务

如果你已安装 SkyWalking 后台服务,可以忽略该步骤;如果未安装,可参阅此链接进行安装。

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

下载测试用例代码设置并开启 Pulsar agent 插件

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

  1. 下载 SkyWalking 集成测试源代码。
$ git clone https://github.com/SkyAPMTest/agent-auto-integration-testcases.git

下载后,该代码库中包含 pulsar-scenario 项目。
  1. 导入 pulsar-scenario 项目至 IDE。

    本示例以 Intelli IDEA 为例。如下图所示,pulsar-scenario 项目是一个 Spring Boot 应用程序,包含一个 CaseController。

  2. 设置 Pulsar agent 插件。

    启动 Spring Boot 应用程序前,你需要设置 Pulsar agent 插件。

    提示:

  • 如需设置 Java agent 及其属性,参阅这里。
  • 默认情况下,pulsar-scenario 项目使用 8082 端口。
  • 下图中的 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
         
    ```
    

测试并在 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 社区给予我的大力支持和帮助。

© 北京原流科技有限公司Apache、Apache Pulsar、Apache BookKeeper、Apache Flink 及相关开源项目名称均为 Apache 软件基金会商标。条款隐私