Pinpoint 是一款开源的 APM (Application Performance Management,应用性能管理) 工具,主要用于对大规模的分布式系统进行性能监控和故障诊断。它由韩国 Naver 公司开发,类似于 Google 的 Dapper。
简单来说,它的核心作用是:当用户请求在你的复杂分布式系统中流转时,Pinpoint 能帮你清晰地看到这个请求经过了哪些服务、每个服务耗时多长、是否出现了错误或性能瓶颈。
Pinpoint 的核心功能与应用场景
1. 分布式请求追踪 (Distributed Tracing) - 最核心的功能
这是 Pinpoint 的立身之本。在微服务架构中,一个用户请求(如下单、支付)可能会调用几十个甚至上百个服务。当这个请求变慢或失败时,人工定位问题如同大海捞针。
- Pinpoint 能做什么:
- 可视化调用链:自动绘制出一次请求的完整调用路径(Trace),以树形结构展示所有涉及的服务(Span)。
- 快速定位故障点:在调用链视图中,Pinpoint 会直接标记出出错的服务和方法(显示为红色),并展示错误信息(如异常堆栈),让你一眼找到问题根源。
- 分析性能瓶颈:精确显示每个服务的处理时间、网络延迟、数据库查询时间等。你可以快速发现是哪个服务拖慢了整个请求。
2. 应用拓扑自动发现 (Topology Map)
微服务之间的调用关系是动态变化的,手动维护一张准确的架构图非常困难。
- Pinpoint 能做什么