Rainbond文档中心
基于 PinPoint 实现微服务无侵入的监控与链路追踪 编辑此页面

应⽤性能管理(Application Performance Management,APM)是指对企业的关键业务应⽤进⾏监测、优化,提⾼企业应⽤的可靠性和质量,保证⽤户得到良好的服务,降低 IT 总运维成本,为企业带来更多的商业利益。

Pinpoint 是一个 APM(应用程序性能管理)工具,适用于用 Java / PHP 编写的大型分布式系统。在使用上力图简单高效,通过在启动时安装 agent,不需要修改哪怕一行代码,最小化性能损失(3%)。

  • 优势:

1)分布式事务跟踪,跟踪跨分布式应用的消息;
2)自动检测应用拓扑,帮助你搞清楚应用的架构;
3)水平扩展以便支持大规模服务器集群;
4)提供代码级别的可见性以便轻松定位失败点和瓶颈;
5)使用字节码增强技术,添加新功能而无需修改代码。

  • 本文档适合需要通过 PinPoint 实施微服务监控与链路追踪的企业开发、测试、运维人员阅读。
PinPoint组件

| 组件 | 组件功能 | | :————-: | :—————–: | —- | | Pinpoint-Collector| 收集各种性能数据 | | Pinpoint-Agent | 探针与应用服务器(例如 tomcat) 关联,部署到同一台服务器上 | | HBase Storage | 收集到数据存到 HBase 中 | | Pinpoint-Web | 将收集到的数据层现在 web 展示 |

本文档适合需要通过 PinPoint 实施微服务监控与链路追踪的企业开发、测试、运维人员阅读。

本文档预设的场景是通过演示用例,学习如何将 PinPoint 部署在 Rainbond 环境中,并监控测试业务,并追踪其链路。

操作步骤

通过官方应用市场一键部署的方式,可以将 PinPoint部署到你的 Rainbond 环境中去。

  • 安装Pinpoint

​ 1)进入团队视图 > 新增 > 基于应用市场创建组件 。

​ 2)在Rainbond社区开源商店中搜索 pinpoint > 安装 ,安装最新版本 2.1.0

安装示例
  • 配置 websocket

PinPoint 支持实时显示链路追踪数据,这需要 pinpoint 的访问地址支持 websocket 协议。

网关 中找到 pinpoint-web 8080端口的域名,点击 参数设置,打开 websocket 支持。

开启WebSocket
  • 运行效果
运行效果
  • 使用官方DEMO演示 Pinpoint-agent

基于源码构建的 Java项目默认都会集成 pinpoint-agent

​ 1)参考 快速入门 安装基于源码创建的组件

​ 2)进入第一步创建的组件视图 > 依赖 > 添加依赖组件名称Pinpoint-collector

​ 3)进入组件监控 > 链路追踪 > 开启 。

​ 4)更新组件 。

效果展示:

​ 访问 Pinpoint-web,会看到上一步的应用名称。至此,完成。

运行效果

Spring Cloud Pig 效果展示:

Spring Cloud Pig运行效果
  • Pinpoint说明

| Pinpoint版本 | 2.1.0 | | :–: | :–: | | applicationName | 默认取值组件应用名称 (注意不能使用中文名称) | | | 如不想改变组件名称,可修改组件环境变量 ES_TRACE_APP_NAME 来更改 applicationName | | agentId | 取值POD变量HOSTNAME |

  • 常见问题

1)pinpoint-hbase组件一直初始化或不健康状态

尝试把 pinpoint-hbase 组件的存储改为本地存储。如还是起不来,建议换掉08年的硬盘。

2)依赖添加了,也在监控 > 链路追踪 开启了,为啥Pinpoint web页面 APP_LIST 没有我的应用

请检查是否更新了组件。如更新了组件请查看日志是否有 pinpoint-agent启动日志。

3)用了一段时间pinpoint突然不能访问了

伸缩 > 查看实例内存占用情况,尝试加大内存,默认给的1G。

4)为什么我的源码构建没有默认集成pinpoint-agent

请更新builder镜像:

  #拉取最新builder镜像
  docker pull registry.cn-hangzhou.aliyuncs.com/goodrain/builder:5.2.0
  #重新打tag,推送到默认镜像仓库
  docker tag registry.cn-hangzhou.aliyuncs.com/goodrain/builder:5.2.0 goodrain.me/builder:latest
  docker push goodrain.me/builder:latest

新安装的则不需要更新镜像。