PinPoint最全详解(定义特点及原理使用)

PinPoint最全详解(定义特点及原理使用)-mikechen

PinPoint简介

Pinpoint 是一个开源的分布式应用性能监控工具,它由 Naver韩国搜索引擎公司开发,主要用于跟踪和监控分布式应用程序和微服务架构中的性能问题。

 

PinPoint特点

Pinpoint的特点如下:

1.全链路追踪

Pinpoint 支持实时的全链路追踪,可以追踪请求在不同服务之间的传播路径,帮助用户了解整个操作流程和性能瓶颈。

PinPoint最全详解(定义特点及原理使用)-mikechen

2.应用地图

Pinpoint 可以生成应用地图,显示不同服务之间的关系,帮助用户了解微服务架构的拓扑结构。

PinPoint最全详解(定义特点及原理使用)-mikechen

3.性能指标

除了追踪数据,Pinpoint 还可以收集和显示性能指标,如响应时间、调用次数、错误率等。

PinPoint最全详解(定义特点及原理使用)-mikechen

4.告警与通知

Pinpoint 具备警报功能,可以设置性能问题的警报规则,并在达到阈值时触发通知。

5.数据可视化

Pinpoint 提供直观的数据可视化仪表板,用于展示追踪数据、性能指标和应用地图。

6.多语言支持

Pinpoint 支持多种编程语言,包括Java、Python、PHP等,可以用于跟踪不同语言的应用程序。

 

PinPoint原理

Pinpoint 的工作原理涉及:数据收集、数据存储、数据查询和数据可视化等方面。

Pinpoint 通过在应用程序中嵌入探针(Agent),收集分布式追踪数据,并将其发送到后端存储,然后用户可以通过界面查询和可视化这些数据。

Pinpoint 完整组件分为五部分: 探针、收集器、流计算、存储和用户接口。

如下图所示:

PinPoint最全详解(定义特点及原理使用)-mikechen

  • Pinpoint-Collector:收集各种性能数据;
  • Pinpoint-Agent:在每个应用程序节点中嵌入 Pinpoint 探针(Agent),这个探针会监控应用程序的方法调用、跨服务调用和其他操作,并生成跨度(Span)数据;
  • Pinpoint-Web:将收集到的数据层现在web展示;
  • Pinpoint-Flink: 将收集到的数据进行聚合等运算得出指标;
  • HBase Storage:Pinpoint 使用 HBase 作为默认的后端存储,收集到数据存到HBase中。

 

PinPoint使用

1.添加 Pinpoint 依赖

<dependency>
    <groupId>com.navercorp.pinpoint</groupId>
    <artifactId>pinpoint-bootstrap</artifactId>
    <version>2.2.3</version>
</dependency>

 

2.配置 Pinpoint

src/main/resources 目录下创建 pinpoint.config 文件,配置 Pinpoint 的参数。

profiler.applicationName=YourAppName
profiler.agentId=YourAgentId

 

3.编写示例代码

@RestController
public class DemoController {

    @GetMapping("/")
    public String home() {
        return "Hello, Pinpoint!";
    }

    @GetMapping("/call")
    public String callAnotherService() {
        // 模拟调用另一个服务
        return "Calling another service...";
    }
}

 

4.访问 Pinpoint 界面

运行您的 Spring Boot 应用程序,并访问 http://localhost:8080/http://localhost:8080/call,以触发跨度数据的生成。

打开浏览器,访问 http://localhost:8079(默认的 Pinpoint 界面端口),就可以在界面上查看应用地图、性能指标、跨度数据等信息。

PinPoint最全详解(定义特点及原理使用)-mikechen

 

PinPoint总结

Pinpoint的优势在于追踪数据粒度非常细、功能强大的用户接口、以及使用HBase作为存储带来的海量存储能力。

总之,Pinpoint 是一个开源的分布式应用性能监控工具,适用于分布式系统和微服务架构,帮助用户实时监控和优化系统性能,了解应用程序的运行状况和性能指标。

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注「mikechen」公众号,获取更多技术干货!

后台回复面试即可获取《史上最全阿里Java面试题总结》,后台回复架构,即可获取《阿里架构师进阶专题全部合集

评论交流
    说说你的看法