- 背景
调研市面主流APM(Application Performance Management)工具,了解不同工具的优缺点,再结合团队目前遇到的主要问题,选择最合适的一款。
2.APM和APM工具介绍
2.1 APM介绍
APM代表应用程序性能管理。有时也被称为应用程序性能监控,主要包含三个方面的内容:
- Logs(日志)
- Traces(链路追踪)
- Metrics(报表统计)
那么,什么是APM?
- 百度对其的定义是:
- 对企业系统即时监控以实现对应用程序性能管理和故障管理的系统化的解决方案
- Gartner 给出了APM市场定义的五个维度模式,分别是:
- 终端用户体验监控
- 应用程序运行时架构发现和建模
- 用户定义的事务分析
- 应用组件监控
- 报告和应用程序数据分析
简而言之:
它涉及从面向用户和后端的角度监控应用,发现Web应用程序中的潜在问题和性能瓶颈。
然后使用这些数据来诊断、排除故障和解决问题,以改善用户体验。
2.2 APM工具
APM工具是用于收集和分析所有数据的软件套件。
APM工具提供了一个平台,用户可以在其中监控和管理您的所有软件和应用程序。
3.如何选择APM工具
- 产品体验:侧重生产环境的 APM 功能上易用性、实用性,个人喜好程度;
- 数据采样:很多 APM 在生产环境中收集链路数据过多,会遇到很多性能问题。特别大型分布式系统中,APM 采样能力、存储能力决定 APM 的靠谱程度;
- Agent 观察:从 Agent 的技术生态、支持组件、开发语言能力。可能很多公司生产系统在这个维度就已经做了 APM 的选型了。比如你是.Net 业务系统,上面提到一大半压根不支持;
- 报警 DB 支持:预警、告警的能力、对调用链路中最典型数据库的支持能力;
- 对云原生的支持能力:在 Kubernetes 和 Istio 生产环境的成熟度,这个门槛也排除了很多 APM , 特别是一些开源产品,在这方面普遍做得不理想;
- 数据大屏:题外话,数据大屏,是公司希望在监控系统中,更多地展示业务监控的产品诉求体现;
- 社区和文档支持:产品对应的技术社区成熟度和产品文档的质量;
4.市面主流工具
产品 | 起始价 | 免费试用 | 突出特点 | 适合谁 |
---|---|---|---|---|
Datadog | $31/月 | 14天 | 性能数据清晰可视化 | 小本生意 |
New Relic | $99/月 | 有限的免费计划 | 强大的WordPress特定监控 | 基于WordPress的业务 |
Pinpoint | 自由 | 不适用 | 广泛的数据概览,直至代码级事务可见性 | 企业 |
SkyWalking | 免费 | 适用 | 支持多种插件,UI功能较强,接入端无代码侵入 | 想白嫖的团队 |
Instana | $75/月 | 14天 | 支持基于AI的性能监控和分析 | 企业 |
国内的一些其他工具,比如听云、博睿宏远等,有兴趣的也可以去了解一下。
Datadog
Datadog 是用于大规模应用程序的监视和分析平台。它包括基础结构监视、应用程序性能监视、日志管理和用户体验监视。Datadog 通过 400 多项集成来聚合整个堆栈中的数据,以便进行故障排除、发出警报和图形处理。可以将其用作单个源,以便进行故障排除、优化性能和跨团队协作。
目前已经与 Azure 云市场集成,直接可以订阅 Datadog 产品/服务,可以在 Azure 控制台中将 Datadog 作为集成服务进行管理。
目前Datadog已经对接Azure云,使用相对简单,直接市场订阅即可。
核心卖点是,性能数据的可视化追踪(BI能力比较强大)
查看Datalog相关的集成、部署、定价策略的可以直接访问官方网站,查询相关信息。
New Relic
New Relic公司提供了一套集成的可观测性平台,平台允许用户对部署在云中心或在数据中心的 NET, Java, JavaScript, Node.js, PHP, Python, and Ruby 、基础设施、端等进行运维监控。通过该平台开发人员和运营团队监控用来故障排除和优化他们的应用程序。
核心卖点是其基于WordPress类型项目的特定监控
查看New Relic相关的集成、部署、定价策略的可以直接访问官方网站,查询相关信息。
Pinpoint
Pinpoint 是用 Java 编写的 APM(应用性能管理)工具,用于大规模分布式系统。在 Dapper 之后,Pinpoint 提供了一个解决方案,以帮助分析系统的总体结构以及分布式应用程序的组件之间是如何进行数据互联的。
核心卖点,安装agent非侵入式,性能影响小。广泛的数据概览,直至代码级事务可见性
pinpoint的相关集成、部署,可直接去github上查看
SkyWalking
由国内大神吴晟出品,随后被Apache收购的开源项目。skywalking是分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。SkyWalking 是观察性分析平台和应用性能管理系统。提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。
核心卖点是,支持多种插件,UI功能较强,接入端无代码侵入。
查看SkyWalking相关的集成、部署、定价策略的可以直接访问官方网站,查询相关信息。
Instana
使用 Instana 可以增强企业应用程序性能监视的功能和可观察性。改进应用程序性能管理并加速 CI/CD 管道,无论应用程序位于何处,如公有云、私有云、混合云、本地、IBM Z® 等。通过 IBM® Observability by Instana,用户可将 APM 与自动化功能相结合,并在本地部署或作为 SaaS 解决方案进行部署。
核心卖点,这里就不再赘述了,主要就是基于IBM平台的全链路跟踪工具。(小道消息,IBM2022年主推instana,有使用他们家其他产品或者平台的应该可以谈一个比较美丽的价格)。主要功能,有兴趣的可以参考一下官方的英文介绍(Why instana?)
查看Instana相关的集成、部署、定价策略的可以直接访问官方网站(中文),查询相关信息。