1. 笔记
1.1 介绍
[1]Pinpoint是一个韩国人开源的大型分布式系统的n层架构跟踪平台。特点有五:
- 分布式事物跟踪用于跟踪分布式应用的消息;
- 自动检测应用拓扑帮助理解应用架构;
- 可水平扩展支持大规模集群;
- 提供代码级可见功能以便发现问题和瓶颈;
- 字节码增强技术添加功能无需修改代码。
[5][6]架构
- Pinpoint agent使用javaagent技术对java应用插桩,对于标记了需要插桩的class,class装载时在预先定义的方法前后插入代码收集数据并发送到pinpoint collector。收集的数据包括trace数据、应用数据(包括jvm参数、装载的库、cpu内存使用、gc信息)
- Pinpoint collector接收agent的数据写入到HBase
- Pinpoint Web展示应用的拓扑结构,调用链,以及应用的其他信息
1.1.1 分布式事物跟踪
- 基于Google的Dapper论文。Dapper对rpc插桩传递span id和trace id,Pinpoint则在调用header中添加类似信息。
- 与Dapper的术语差异。Pinpoit统称span id、transaction id(Dapper的traceid)、parent span id为trace id