传统自建应用监控是指企业自行搭建和维护的应用监控系统,其目的在于及时发现和解决应用中的性能瓶颈、故障和安全威胁,保障系统的稳定性和用户体验,优化资源利用,并满足合规性要求。传统自建应用监控在自建过程中所面临的挑战主要存在以下几点:
应用架构分层在各个层级都存在多样化的技术选型,如客户端、网关、中间件、容器等,不同的技术架构都存在各自的采集工具。
数据模型类型繁多,如链路、指标、日志、剖析、事件、异常等,不同模型数据缺少关联标准,导致存在数据孤岛。
数据采集、清洗、计算、可视化以及多套组件间的集成,需要投入大量的资源成本和维护成本。
跨云、多环境、权限划分、统一告警、超大热点等场景都为监控方案的落地增加了复杂度。
阿里云 ARMS 应用监控是一款应用性能管理(Application Performance Management,简称APM)产品。使用 ARMS 应用监控可以轻松实现自动发现应用拓扑(自动发现应用的上下游依赖关系),对服务、接口、服务实例及系统组件的调用数据进行持续下钻分析,自动构建请求的完整路径并收集上下游信息,实现一站式全链路访问追踪,从而大幅提升线上问题诊断的效率。
自建方案 | VS | 阿里云搭建方案 |
语言支持有限,标准兼容差 使用开源探针无法覆盖所有主流技术栈,限制适用范围;不同自建方案数据标准不一致,导致数据采集和处理的标准化程度较低,增加集成与互通难度。 | 覆盖度 & 兼容性 | 全语言覆盖 & 多协议兼容 针对Java、Python、Golang等主流编程语言,提供阿里云自研探针,保障链路插桩质量、性能、可用性、稳定性,全面拥抱OpenTelemetry标准,自适应不同协议的链路上下文。并对Node.js、PHP、.NET等编程语言,支持通过开源OpenTelemetry-SDK进行业务自定义埋点,无需担心厂商锁定,全面支持混合云模式,以及跨云应用接入。 |
性能开销大,影响业务稳定性 当业务达到一定规模,自建方案的开源探针性能开销、数据采样质量难以满足生产环境下的业务要求。在高吞吐量场景下,性能开销在10% 以上,稳定性无法保障。 | 稳定性 | 多方式保障探针稳定性 阿里云自研探针性能开销低于5%。通过惰性类加载、无损计数、链路限流采样保护、URL自动收敛、长文本压缩编码、内存控制等技术,保障探针长时间稳定运行。 |
接入配置复杂,高技术门槛 针对不同开发语言、不同技术框架,要求团队具备较强技术能力并花费大量时间,围绕自身业务需求构建探针或对开源探针进行改造与适配,并在这一过程中确保可用性、性能开销可控,不影响业务正常运行。 | 易用性 | 一键非入侵式快速接入 通过探针技术在应用运行时进行字节码增强,实现应用性能管理能力,无需做任何代码改动,无需感知探针的存在即可快速接入;部署在云服务器ECS、Serverless应用引擎SAE、容器服务ACK中的应用,支持探针自动注入,用户只需在云产品控制台一键启用链路追踪即可查阅调用链;可观测链路 OpenTelemetry 版与阿里云近10款云产品深度合作,完成了云产品内部链路插桩与数据上报,大幅简化了链路集成。 |
数据断链,前后无法打通 前后端监控通常采用不同自建方案,客户端请求明细数据与后端应用调用数据无法打通,对常见的错误、高延时、异常问题,无法实现全链路追踪与诊断。 | 完整性 | 上下文透传,端到端链路打通 统一阿里云端到端链路协议,自研探针兼容多协议转换,基于 OpenTelemetry W3C 协议实现端到端链路打通,实现更多协议、更多组件的全链路透传,客户端与后端应用的全链路打通,可在同一页面看到完整链路,构建更完整、更灵活的链路生态。 |
埋点密度较低,分析诊断能力不足 埋点密度通常较低,对SpringCloud等生态组件的埋点不够精准,难以覆盖所有第三方组件;仅支持简单的指标展示,缺乏多维度和自定义聚合能力,与调用链及日志的关联分析能力较弱;缺少高阶诊断工具集,根因定位能力不足。 | 场景化 | 持续剖析 & 线程分析 & 全面诊断 提供持续剖析能力,有效发现Java应用中因CPU、内存和IO导致的瓶颈问题;提供线程分析能力,对慢调用场景自动保存本地方法栈信息以便剖析方法栈执行过程中的性能瓶颈;集成线上问题诊断利器Arthas,利用字节码增强技术,可以在不重启进程情况下,查看应用运行明细情况。 |
固定成本高,缺乏弹性优惠 前期投入一整套技术组件,包括服务器、存储、网络设备等,无法根据实际使用量进行灵活计费;开源方案依赖100%采样来确保指标准确性,当请求量达到一定规模的时候,成本急剧飙升;需要持续的运维人力和技术支持,对于新框架、新语言的支持维护,进一步增加长期运营成本。 | 成本 | 按需扩展和按量付费 通过端侧预聚合、自适应采样技术,确保数据准确性不受采样率影响,在大规模场景下具备明显成本优势。结合按写入数据量付费,通过节省计划可以更进一步降低成本。相同使用规模,成本比开源方案节省30%以上,此外,阿里云还提供了每月 200GB 免费额度(不同独立子产品 50GB 免费额度)。 |
本方案为您介绍如何将应用快速接入至 ARMS 应用监控,自动发现应用上下游依赖关系,覆盖 HTTP 框架、RPC 框架、异步消息通信框架和数据库等完整链路的接口监控和调用链路视图, 帮助您快速定位问题,洞察性能瓶颈。