Pinpoint的特点如下:
- 分布式事务跟踪,跟踪跨分布式应用的消息
- 自动检测应用拓扑,帮助你搞清楚应用的架构
- 水平扩展以便支持大规模服务器集群
- 提供代码级别的可见性以便轻松定位失败点和瓶颈
- 使用字节码增强技术,添加新功能而无需修改代码
- 插件式的设计,即使服务crash,业务系统也不会受到任何影响
Pinpoint主要功能:
事务跟踪和字节码增强。分布式事务跟踪,基于google Dapper。
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; 必须跨整个服务器集群做到全局唯一。由 AgentIds(hostname), JVM (java虚拟机)启动时间, 和 SequenceNumbers/序列号组成。
- SpanId: 当收到RPC消息时处理的工作的ID; 在RPC请求到达节点时生成。
- ParentSpanId (pSpanId): 发起RPC调用的父span的SpanId. 如果节点是事务的起点,这里将没有父span - 对于这种情况, 使用值-1来表示这个span是事务的根span。
- 附:《用ClassFileTransformer实现aop》https://xj84.iteye.com/blog/122110
APM概念:
APM = Application Performance Management,应用性能管理,对企业系统即时 监控以实现对应用程序性能管理和故障管理的系统化的解决方案。
应用性能管理是一个比较新的网络管理方向,主要指对企业的关键业务应用 进行监测、优化,提高企业应用的可靠性和质量,保证用户得到良好的服务,降 低IT总拥有成本(TCO)。一个企业的关键业务应用的性能强大,可以提高竞争力, 并取得商业成功,因此,加强应用性能管理(APM)可以产生巨大商业利益。
APM的覆盖范围包括五个层次的实现:终端用户体验,应用架构映射,应用 事务的分析,深度应用诊断,和数据分析。
APM主要功能:
监测企业关键应用性能:过去,企业的IT部门在测量系统性能时,一般重点测量为最终用户提供服务的硬件组件的利用率,如CPU利用率以及通过网络传输的字节数。虽然这种方法也提供了一些宝贵的信息,但却忽视了最重要的因素--最终用户的响应时间。现在通过事务处理过程监测、模拟等手段可真实测量用户响应时间,此外还可以报告谁正在使用某一应用、该应用的使用频率以及用户所进行的事务处理过程是否成功完成。
快速定位应用系统性能故障:通过对应用系统各种组件(数据库、中间件)的监测,迅速定位系统故障,如发生Oracle数据库死锁等问题。
优化系统性能:精确分析系统各个组件占用系统资源情况,中间件、数据库执行效率,根据应用系统性能要求提出专家建议,保证应用在整个寿命周期内使用的系统资源要求最少,节约TCO。
APM的部署环境特点:
新应用性能管理环境的一个关键特性是部署在需要的地方:靠近服务。有多种方式来实现这一点:
- 在虚拟机管理程序环境中,监控空间内虚拟机的响应时间和资源消耗情况;
- 在没有管理程序(例如专用物理服务器)或管理程序遥不可及(即在IaaS环境)时,在操作系统上运行;
- 在容器内;
- 在Java或.Net应用服务器环境内;
- 在终端用户设备,连续或按需即时下载。
新一代APM:
让整个IT团队参与应用性能监控。
优秀的APM可以让IT组织中原本孤立的各个方面集中在一起,比如自动生成准确的业务应用系统组件关系视图、关系视图实时更新、准确掌握应用访问逻辑关系等。APM工具可以帮助那些原本一直局限于监控自身领域的管理员,使他们成长为理解应用及其支持基础架构的更有战略价值的性能管理专业人员。此外,软件即服务提供商也希望有一些不需要指派专职应用管理专业人员的工具。
三款典型的APM产品:
1) Pinpoint产品调研(韩国人开发)
2) Aliapm产品调研(阿里巴巴)
3) Cat产品的调研(大众点评)