APM 作为云应用诊断服务,拥有全链路拓扑、调用链追踪、事务分析和洞察、端侧分析功能。
全链路拓扑
可视化拓扑:APM通过拓扑可视化展示应用间调用关系和依赖关系。拓扑使用应用性能指数(Apdex)对应用性能满意度进行量化,并使用不同颜色对不同区间Apdex的值进行标识,方便您快速发现应用性能问题,并进行定位。如图1所示,拓扑清晰地展示应用间关系、调用数据(服务、实例指标)、健康状况等详细内容。
图1拓扑图
微服务名称:Tier2,实例数量:3,容器类型:Tomcat。
图例:环状图表示微服务,环按照实例数量被拆分3段,每段的颜色表示每实例的状态,红色表示异常,黄色表示警告,绿色表示正常。
跨应用调用:拓扑图支持在不同应用服务间的调用关系,对于不同应用之间有服务调用时,可实现跨应用调用关系的采集并展示应用的性能数据。
异常SQL分析:拓扑图可以统计并展示 数据库 或SQL语句的关键指标。APM提供数据库、SQL语句的调用次数、响应时间、错误次数等关键指标视图,通过这些指标视图,您可以分析异常(慢或调用出错)SQL语句导致的数据库性能问题。
JVM指标监控:拓扑图可以统计并展示实例的JVM指标数据。APM实时监控JVM运行环境的内存和线程指标,快速发现内存泄漏、线程异常等问题。
调用链追踪
调用链:APM能够针对应用的调用情况,对调用次数、响应时间和出错次数进行全方面的监控,可视化地还原业务的执行轨迹和状态,协助性能及故障快速定界。如图调用链追踪所示,在拓扑图中发现红色的服务出现异常后,通过查看调用状态、耗时、接口调用的详细信息,进一步定界问题产生的原因。
图2调用链追踪
方法追踪:方法追踪是对某个类的某个方法进行动态埋点,当这个类的方法被调用时,APM采集探针会按照您配置的方法追踪规则对方法的调用数据进行采集,并将调用数据展现在调用链页面中。方法追踪主要用来帮助应用的开发人员在线定位方法级性能问题。
事务分析
事务分析:APM通过对服务端业务流实时分析,展示事务的吞吐率、错误率、时延等关键指标,使用健康指标Apdex对应用打分,直观体现用户对应用的满意度。当事务异常,则上报告警;对于用户体验差的事务,通过拓扑和调用链完成事务问题定位。如图事务分析所示,以电商应用为例展示事务状况,健康指标异常的事务表示体验不佳。
图3事务分析