APM

应用性能管理 (APM) 与分布式链路追踪 (Distributed Tracing)

从功能定位上看,业务实时监控服务 定位于重量级的应用性能管理类(Application Performance Management, 简称 APM)工具,包含的功能相对丰富。应用程序通过挂载 Agent 方式接入监控,Agent 内部功能相对丰富,包括性能监控,用户体验监控,链路追踪,故障诊断,等多种功能。

而链路追踪定位于分布式链路追踪解决方案工具,功能比较专一,专业面向解决分布式环境下的链路追踪这一个问题。用户通过接入链路追踪 SDK 来实现分布式链路追踪,SDK 本身只负责链路监控,功能相对专注。

接入方式

无侵入式接入 vs 基于标准的侵入式接入

定位于 APM 的业务实时监控服务的监控接入方式使用的是业界商业化 APM 工具中比较流行的无侵入式接入方案。用户无需改动代码,即可接入。不过一般需要在应用程序中加载 Agent,需要修改程序启动方式。例如以业务实时监控服务为例,在启动 Java 程序时需要增加 -javaagent 启动参数。

定位于分布式链路追踪的链路追踪产品是基于开源产品 Jaeger, Zipkin 等开源产品和开源标准 Opentracing 的监控产品。用户可以基于以上任意一种标准 SDK 接入到链路追踪中。这样的好处是:

  • 已在用 Jaeger, Zipkin 或其他 Opentracing 标准 SDK 的应用可无缝迁移到链路追踪产品中,而不用修改代码;

  • 由于产品 SDK 是基于开源标准的,因此用户不用担心 lock-in 问题;

  • 借助社区力量,用户可以一次性大量支持多种开发语言,使得面向异构环境的开发者在监控方面接入门槛大幅度降低。

业务实时监控与链路追踪