技术架构 1. 架构组成
Pinpoint 主要由 3 个组件外加 Hbase 数据库组成,三个组件分别为:Agent、Collector 和 Web UI。
- Agent组件
Agent组件是用于收集应用端监控数据,无侵入式,只需要在启动命令中加入部分参数即可
- Collector组件
数据收集模块,接收Agent发送过来的监控数据,并存储到HBase
- WebUI
监控展示模块,展示系统调用关系、调用详情、应用状态等,并支持报警等功能
2. 系统特色
-
分布式交易追踪,追踪分布式系统中穿梭的消息
-
自动侦测应用程序拓扑,以帮助指明应用程序的配置
-
横向扩展以支持大规模的服务器组
-
提供代码级别的可见性,以方便识别故障点和瓶颈
-
使用字节码注入技术,无需修改代码就可以添加新功能,对业务代码无强侵入性工作原理
Pinpoint基于GoogleDapper论文进行了实现,核心思想就是在服务各节点彼此调用的时候,记录并传递一个应用级别的标记,这个标记可以用来关联各个服务节点之间的关系。比如两个节点之间使用 HTTP 作为请求协议的话,那么这些标记就会被加入到HTTP头中,各应用的Agent在进行上报的时候,将该标记以及对应的上下级应用上报到Pinpoint中,通过该标记标识请求,并将各个应用串联成完整的调用链路。