SpringCloud第十六篇:微服务利剑之APM平台(二)Pinpoint

本文介绍了Pinpoint,一个无侵入的分布式系统链路跟踪平台,提供事务跟踪、应用拓扑自动检测等功能。文章详细阐述了Pinpoint的主要特性、优势、架构及核心数据结构,并分享了如何部署HBase、Collector、Web UI,以及启用Pinpoint Agent的实战步骤,展示了Pinpoint在监控Spring Cloud应用中的作用。
摘要由CSDN通过智能技术生成
  1. Pinpoint概述
    Pinpoint是一个由韩国人编写的为大型分布式系统服务的链路跟踪平台,并提供大量链路跟踪数据分析汇总解决方案。自2012年7月开始开发,与2015年1月做为一个开源项目推出。

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

  3. Pinpoint优势
    无入侵:采用字节码增强技术,新增功能无需修改代码。
    性能高:对性能的影响非常小(资源使用量最小仅增加3%),异步数据传输,采用UDP协议让出网络连接优先级。

  4. Pinpoint架构简介
    先看一下官方提供的架构图,如图:
    在这里插入图片描述
    Pinpoint主要包含了4个组件:

Pinpoint Agent:探针,附加到用于分析的Java服务
Pinpoint Collector:数据收集组件,部署在Web容器上
Pinpoint Web UI:数据展示组件,部署在Web容器上
HBase Storage:数据存储组件
架构图从上往下看,首先是通过Agent组件收集需要的数据,通过UPD/TCP的方式将数据发送给Collector,由Collector将数据分析整理过后存入HBase,通过Web UI组件将分析好的数据从HBase中读出,展示在现代化的UI界面上。

  1. Pinpoint数据结构简介
    Pinpoint中,核心数据结构由Span, Trace, 和 TraceId组成。

Span: RPC (远程过程调用/remote procedure call)跟踪的基本单元; 当一个RPC调用到达时指示工作已经处理完成并包含跟踪数据。为了确保代码级别的可见性,Span拥有带SpanEvent标签的子结构作为数据结构。每个Span包含一个TraceId。
Trace: 多个Span的集合; 由关联的RPC (Spans)组成. 在同一个trace中的span共享相同的TransactionId。Trace通过SpanId和ParentSpanId整理为继承树结构.
TraceId: 由 TransactionId, SpanId, 和 ParentSpanId 组成的key的集合. TransactionId 指明消息ID,而SpanId 和 ParentSpanId 表示RPC的父-子关系。
TransactionId (TxId): 在分布式系统间单个事务发送/接收的消息的ID; 必须跨整个服务器集群做到全局唯一.
SpanId: 当收到RPC消息时处理的工作的ID; 在RPC请求到达节点时生成。
ParentSpanId (pSpanId): 发起RPC调用的父span的SpanId. 如果节点是事务的起点,这里将没有父span – 对于这种情况, 使用值-1来表示这个span是事务的根span。
6. Pinpoint版本依赖
Pinpoint所需要的Java版本兼容:


Pinpoint Version	Agent	Collector	Web
1.0.x	6-8	6-8	6-8
1.1.x	6-8	7-8	7-8
1.5.x	6-8	7-8	7-8
1.6.x	6-8	7-8	7-8
1.7.x	6-8	8	8
1.8.0	6-10	8	8
1.8<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值