阿里云应用实时监控服务ARMS完全接入指南:从探针部署到全链路可观测

简介: 本文全面解析阿里云应用实时监控服务ARMS的接入与使用。从ARMS产品矩阵概述入手,详细拆解应用监控、前端监控、链路追踪、Prometheus监控四大核心模块的接入流程。重点讲解Java应用通过探针无侵入接入、Web前端通过CDN或NPM方式接入、ACK容器环境一键接入等实战操作,并提供完整的代码示例与配置参数说明。深入探讨告警规则的分层设计策略、统一告警管理、可观测大屏自定义等高级功能。最后结合成本优化与最佳实践,帮助读者构建从终端到后端、从基础设施到业务的全栈可观测体系。文章适合运维工程师、开发工程师及架构师阅读参考。

1. ARMS产品概述与核心能力

应用实时监控服务ARMS是阿里云推出的一站式全栈可观测平台,覆盖浏览器、小程序、APP、分布式应用、容器等不同可观测环境与场景。ARMS包含用户体验监控、应用监控、可观测链路OpenTelemetry版等模块,满足不同语言、架构、部署环境的应用性能观测需求。其核心价值在于通过模块化、即插即用的设计,帮助企业快速构建全栈可观测平台。

ARMS的产品矩阵主要包括以下四个核心模块:应用监控面向服务端应用,支持Java、Go、Python等主流语言,通过探针无侵入方式采集接口调用、JVM性能、数据库访问等数据;前端监控聚焦Web、H5、小程序等终端,监控页面加载速度、JS错误、API成功率等用户体验指标;可观测链路OpenTelemetry版提供分布式链路追踪能力,兼容OpenTelemetry、SkyWalking、Zipkin等主流链路框架;Prometheus监控则面向基础设施与云原生场景,提供容器、主机、中间件等监控能力。

需要先登录阿里云控制台,点击:阿里云控制台

2. 开通ARMS服务与接入中心概述

使用ARMS前需要先开通服务。新版计费模式下,计费项分为按写入的可观测数据量收费和按可观测功能收费两种模式。ARMS管理计费周期为1天,次日00:00开始计算前一天的资源消耗量,账单一般在扣费当天08:00前出账。新版计费取消了新账号的15天免费试用,但每月提供一定的免费额度。

ARMS支持通过接入中心和各子产品实例列表页面接入应用或组件。接入中心作为统一入口,目前已提供100+组件的接入能力,涵盖Java应用监控、链路追踪、前端监控、容器监控、MySQL、Kafka、阿里云服务监控等。接入中心的每一个选项即一个组件,每个组件负责以特定方式监控一类基础设施或服务,实现指标采集、数据可视化和告警规则等监控功能。在实际接入时,可以任意选择其中一种方式进行接入。

3. 应用监控接入实战

3.1 Java应用探针接入

对于Java应用,ARMS推荐使用自研探针接入,以获得更多功能支持和更好的探针稳定性保障。ARMS 2024年发布的JavaAgent 4.0全面拥抱OpenTelemetry生态,探针底座基于OpenTelemetry框架进行了全新升级,并额外提供多种资源监控、性能诊断、应用安全等数据。探针支持更加灵活的调用链采样策略、白屏化探针管理、全方位自监控、动态功能降级等高阶特性。

Java应用接入的基本流程如下:首先在ARMS控制台的应用列表页面点击添加应用,选择Java语言,系统会生成对应的接入配置信息。然后根据应用部署方式选择对应的接入方案:对于ECS部署的应用,下载ARMS探针包并在Java启动命令中添加-javaagent参数;对于容器环境,在Dockerfile中集成探针或通过ACK的组件管理一键安装。

以下是一个典型的Spring Boot应用通过-javaagent方式接入的启动命令示例:

java -javaagent:/path/to/arms-agent/arms-bootstrap-1.0.0-SNAPSHOT.jar -Darms.licenseKey=your_license_key -Darms.appName=your-app-name -jar your-app.jar

其中arms.licenseKey是ARMS控制台生成的应用标识,arms.appName是自定义的应用名称。探针启动后会自动采集HTTP接口调用、Dubbo调用、数据库访问、JVM内存与GC等数据。接入成功后,可以在ARMS控制台的應用概覽页面查看应

用的请求数、错误数、耗时、实例数等信息。应用概览页面会根据应用接入的信息自动适配展示大盘,并针对ECS环境和容器环境对CPU信息做区别展示。

3.2 Go与Python应用接入

除了Java,ARMS应用监控也支持Go和Python语言的自动埋点接入。Go应用通过引入ARMS Go探针包,在main函数前添加探针初始化代码即可完成接入。Python应用通过安装ARMS Python探针包,在应用入口处添加探针配置即可。对于Node.js、.NET、PHP等其他语言,可以通过可观测链路OpenTelemetry版使用开源客户端进行接入。

4. 前端监控接入实战

4.1 Web与H5应用接入

ARMS前端监控专注于Web端体验数据监控,从页面打开速度(测速)、页面稳定性(JS Error)和外部服务调用成功率(API)三个方面监测Web页面的健康度。接入流程轻便灵活,通过在前端应用项目中引入依赖包并简单配置初始化代码,无需额外埋点动作即可采集端侧应用性能数据。

ARMS前端监控支持三种接入方式:CDN异步加载、CDN同步加载和npm包方式。异步加载对页面性能影响最小,但无法捕捉到监控SDK加载初始化完成之前的JS错误和资源加载错误。同步加载可以捕捉从页面打开到关闭的整个过程中的JS错误和资源加载错误。npm包方式可以减少页面中Script的加载个数,并可以自行控制页面Script的CDN业务方向。

以下是通过CDN异步加载方式接入前端监控的HTML代码示例:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>ARMS前端监控示例</title>
  </head>
  <body>
    <script>
      !(function(c,b,d,a){
        c[a]||(c[a]={});
        c[a].config={
          pid:'your_pid_here',
          appType:'web',
          imgUrl:'https://arms-retcode.aliyuncs.com/r.png?',
          sendResource:true,
          enableLinkTrace:true,
          behavior:true,
          useFmp:true,
          enableSPA:true
        };
        with(b)with(body)with(insertBefore(createElement('script'),firstChild))
        setAttribute('crossorigin','',(src=d));
      })(window,document,'https://sdk.rum.aliyuncs.com/v1/bl.js','__bl');
    </script>
    <div id="app"></div>
  </body>
</html>

其中pid是在ARMS控制台创建应用后生成的应用标识。配置参数中sendResource表示上报页面加载的静态资源,enableLinkTrace表示API请求与后端应用监控进行端到端关联,behavior表示开启用户行为回溯,useFmp表示采集首屏FMP数据,enableSPA表示开启SPA单页面应用支持。

通过npm包方式接入的代码示例:

npm install alife-logger --save
const BrowserLogger = require('alife-logger');
const __bl = BrowserLogger.singleton({
  pid: "your_pid_here",
  appType: "web",
  imgUrl: "https://arms-retcode.aliyuncs.com/r.png?",
  sendResource: true,
  behavior: true,
  enableLinkTrace: true,
  enableConsole: true
});

4.2 小程序与移动端监控

ARMS用户体验监控同样支持小程序和移动端应用。小程序端通过引入对应的SDK,在应用启动时完成初始化,即可采集小程序页面的性能数据和用户行为数据。移动端应用(iOS/Android)则通过集成ARMS移动端SDK,实现崩溃分析、性能监控和用户行为追踪。

5. 链路追踪接入实战

链路追踪的核心价值在于连接,用户终端、网关、后端应用、依赖组件等共同构成了链路追踪的轨迹拓扑大图。ARMS(含可观测链路OpenTelemetry版)目前已经支持用户终端到云网关到后端应用到云组件的端到端全链路打通。

对于Java/Go/Python等主流语言,推荐接入ARMS自研探针,自研探针与可观测链路OpenTelemetry版数据完全互通。对于其他语言,可观测链路OpenTelemetry版全面兼容OpenTelemetry、SkyWalking、Zipkin和Jaeger四种主流链路框架。

在云产品链路接入方面,可观测链路OpenTelemetry版与阿里云近10款云产品深度合作,用户只需在相应的云产品控制台一键启用链路追踪开关即可。具体操作位置包括:在ALB监听详情页的链路追踪区域开启开关,在MSE创建实例页面的链路追踪选项中选择使用可观测链路OpenTelemetry版,在用户体验监控创建应用的参数配置中勾选链路追踪配置。

以下是通过OpenTelemetry Java SDK手动接入链路追踪的代码示例:

<dependency>
    <groupId>io.opentelemetry</groupId>
    <artifactId>opentelemetry-api</artifactId>
    <version>1.31.0</version>
</dependency>
<dependency>
    <groupId>io.opentelemetry</groupId>
    <artifactId>opentelemetry-exporter-otlp</artifactId>
    <version>1.31.0</version>
</dependency>
// 初始化OpenTelemetry并配置OTLP导出器
OpenTelemetry openTelemetry = OpenTelemetrySdk.builder()
    .setTracerProvider(
        SdkTracerProvider.builder()
            .addSpanProcessor(
                BatchSpanProcessor.builder(
                    OtlpGrpcSpanExporter.builder()
                        .setEndpoint("https://arms-apm.aliyuncs.com/otlp/v1/traces")
                        .addHeader("Authentication", "your_license_key")
                        .build()
                ).build()
            )
            .build()
    )
    .buildAndRegisterGlobal();

6. Prometheus监控接入实战

6.1 ACK集群Prometheus监控

在开通ARMS之后,可以在ARMS中为ACK集群一键安装Prometheus监控插件,此后即可通过ARMS预定义的仪表板监控Kubernetes集群的众多性能指标。接入流程为:在ARMS控制台的接入中心选择容器服务环境,选择目标ACK集群,点击确定即可完成接入。

6.2 ECS主机监控

使用Prometheus监控ECS主机,接入后会自动安装Node-exporter和Process-exporter,托管Prometheus Agent自动采集数据,单次采集指标量约为1000条/台。接入步骤为:在ARMS控制台的接入中心>基础设施页面,单击主机监控,选择目标ECS所属的VPC,配置相关信息后点击确定,等待1-2分钟即可完成接入。

ECS接入主机监控后,如果监控大盘没有数据,需要检查安全组配置是否正确。接入后还可以根据需求配置主机监控组件参数、废弃不需要采集的指标以节省费用、配置告警规则等。

6.3 数据库与中间件监控

ARMS接入中心支持MySQL、Redis、Kafka等多种数据库和中间件的监控接入。以MySQL为例,接入时需要配置MySQL服务地址、服务端口、MySQL账号和密码。需要注意的是,不建议使用管理员账号,应创建一个供mysqld_exporter使用的专用账号并最小化授权。

7. 告警规则配置与管理

7.1 告警规则创建

ARMS应用监控告警支持对采集到的各种应用指标配置告警规则,用户可以根据需求和业务场景配置合理的告警规则,在应用不符合预期时及时收到通知。ARMS支持四种告警级别,从低到高为P4、P3、P2、P1。

创建告警规则的典型场景:以核心业务接口的响应时间和成功率为例,可以配置当最近3分钟平均响应时间大于等于500ms时触发告警,或当请求成功率小于等于90%时触发告警。告警规则创建后,系统会以指定的通知方式(短信、邮件、钉钉群等)向告警联系人发送告警信息。

7.2 分层告警策略

有效的告警策略遵循从业务到应用再到基础设施的分层设计。业务层关注核心接口的调用量、错误率和响应时间,用于检测面向用户的影响。应用层关注异常、HTTP 5xx状态码、JVM健康、线程池状态等,用于定位故障组件。基础设施层关注CPU利用率、内存使用率、磁盘利用率,用于揭示应用问题背后的资源约束。

对于核心告警条件,建议为CPU利用率、内存利用率和磁盘利用率分别设置上限阈值。ARMS应用监控提供了预设的告警指标,涵盖业务、应用和基础设施三个层面。由于ARMS应用监控数据默认集成了Prometheus,用户还可以通过PromQL语句编写超越预设的自定义告警规则。

7.3 统一告警管理

ARMS告警管理提供了开箱即用的ITSM系统,支持配置Grafana原生告警规则并将告警事件转发到ARMS。用户可以通过ARMS告警管理统一集成ARMS、云监控、SLS等多个告警源,创建事件处理流实现对告警事件的压缩、降噪、去重等。

8. 可观测大屏自定义

基于ARMS提供的能力,用户可以自定义可观测大盘并配置更加灵活的告警规则。通过ARMS前端监控实时大屏,可以一次性查看被监控应用的所有关键实时监控数据。对于PAI EAS等服务,开启高级监控指标开关后,可以获取包含大模型推理架构指标、GPU算力指标、服务维度统计指标以及自定义指标等在内的全面监控数据。

9. 成本优化与最佳实践

在使用ARMS过程中,合理的成本控制策略同样重要。新版计费模式下,费用主要取决于写入的可观测数据量。以下是一些成本优化建议:通过SDK配置中的采样上报来减小上报量并降低负载;废弃不需要采集的Prometheus指标,使指标数据更清晰的同时节省费用;合理设置告警阈值避免大量误告警产生的通知成本。

在最佳实践方面,ARMS 2024年发布的JavaAgent 4.0建议升级使用,以获得更好的性能和更丰富的功能。对于容器环境,建议接入Managed Service for Prometheus以获得更完善的容器监控数据。前端监控建议开启与应用监控的关联,实现前后端链路追踪的端到端诊断。

10. 常见问题解答

问:ARMS应用监控接入后,如何验证是否接入成功?

答:接入后登录ARMS控制台,在应用列表页面点击目标应用名称,进入应用总览页面。如果页面正常展示总请求量、平均响应时间、错误数等汇总指标,以及应用提供服务和应用依赖服务的请求量与响应时间趋势图,则表示应用已成功接入应用监控。

问:Java应用接入ARMS探针需要重启应用吗?

答:是的,Java应用通过-javaagent方式接入探针需要重启应用。探针在JVM启动时加载,因此必须重启应用才能使探针生效。对于容器环境,可以通过重新部署应用或滚动更新来使探针生效。

问:前端监控的异步加载和同步加载方式有什么区别?

答:异步加载是非阻塞加载,浏览器在下载执行JS后还会继续处理后续页面,对页面性能影响小,但无法捕捉到监控SDK加载初始化完成之前的JS错误和资源加载错误。同步加载是阻塞加载,当前JS加载完毕后才会进行后续处理,可以捕捉从页面打开到关闭的整个过程中的JS错误和资源加载错误。

问:ARMS新版计费和旧版计费的主要区别是什么?

答:新版计费的计费项变更为按写入的可观测数据量计费。ARMS应用监控、可观测链路OpenTelemetry版和Prometheus版的计费项目统一变更为按数据量计费。新版计费取消了新账号的15天免费试用,但每月提供一定的免费额度。ARMS基础版已不支持开通。

问:ARMS支持哪些编程语言的应用监控?

答:ARMS应用监控对Java、Go、Python提供自研探针的自动埋点支持。对于Node.js、.NET、PHP、Erlang、C++等语言,可以通过可观测链路OpenTelemetry版使用开源客户端进行接入。ARMS与可观测链路OpenTelemetry版数据完全互通,在多语言场景建议结合使用。

问:如何在ARMS中配置告警通知?

答:在ARMS控制台的告警管理模块中创建通知策略,配置告警事件的匹配规则和通知方式。支持的通知方式包括短信、邮件、钉钉群等。创建告警规则时选择对应的通知策略即可。告警触发后,系统会按照通知策略配置的方式向通知对象发送告警信息。

相关文章
|
4月前
|
Prometheus 监控 前端开发
阿里云应用实时监控服务ARMS完全对接使用指南:从零构建全栈可观测体系
本文全面解析阿里云应用实时监控服务ARMS的对接与使用方法。从ARMS产品矩阵与服务开通入手,详细拆解接入中心统一接入流程,深入讲解Java应用通过探针无侵入接入、Python应用环境变量配置接入、Web前端通过CDN与npm方式接入等实战操作,并提供完整的代码示例与配置参数说明。系统阐述调用链采样策略、告警规则分层设计、统一告警管理、基于Grafana的自定义可观测大盘等高级功能。最后结合成本优化策略与常见问题排查,帮助读者构建从终端到后端、从基础设施到业务的全栈可观测体系。
|
4月前
|
人工智能 JSON API
AI Agent 完全入门:从“大模型”到“能干活”的智能体,一篇讲透
本文深入浅出解析AI Agent本质:非 merely 工具调用,而是“感知-规划-记忆-工具”四层闭环的行动系统。对比普通大模型“只生成答案”,Agent能自主拆解目标、多步执行任务。聚焦测试场景,详解其在自动生成数据、UI自愈、智能断言三大落地点的实效价值。
|
4月前
|
关系型数据库 Java 数据库连接
阿里云实时数仓 Hologres 对接使用完全指南
本文系统性地介绍了阿里云实时数仓Hologres的对接与使用方法。Hologres作为一款兼容PostgreSQL协议的一站式实时数仓引擎,支持海量数据实时写入与亚秒级OLAP查询。文章首先阐述了Hologres的核心架构与关键特性,然后详细讲解了通过JDBC、Python Psycopg2、Flink、Spark、DataWorks等多种方式接入Hologres的完整流程与代码示例。接着深入探讨了实时数据写入、整库同步、物化视图加速、Dynamic Table等进阶能力,并给出了表设计、分布键与分区键选择、计算资源隔离等最佳实践。最后总结了安全管理与监控告警的配置要点。全文旨在帮助读者快速上
|
4月前
|
人工智能 自然语言处理 数据库
智能分诊+AI问诊+电子处方,互联网医院系统源码功能开发技术架构揭秘
本文从软件开发与系统架构视角,深入解析互联网医院系统源码的核心设计逻辑,重点拆解智能分诊、AI问诊与电子处方三大核心模块,并结合微服务架构、高并发设计、医疗数据安全与AI大模型接入等关键技术。
|
4月前
|
人工智能 开发工具 数据库
告别随性AI编程:Spec-Kit规范驱动开发与OpenCode协同实战指南
在AI编程工具广泛普及的当下,很多开发者在使用OpenCode这类智能编码助手时,常会遇到需求表达模糊、代码质量不稳定、功能迭代牵一发而动全身、版本管理混乱等一系列问题。GitHub官方推出的Spec-Kit工具,以Spec-Driven Development(规范驱动开发,简称SDD)为核心思想,为OpenCode及主流AI编程工具搭建起一套标准化、可落地的开发流程。它彻底改变了传统“口头提需求、AI自由编码”的模式,将软件开发的规范、流程、文档与AI编码深度融合,让AI编程从“凭感觉的随性创作”转变为“按图纸施工的工程化作业”。本文将结合理论、安装步骤、全流程实操、进阶用法、场景选型以及
730 6
|
4月前
|
机器学习/深度学习 自然语言处理 安全
从零构建车载语音对话系统:NLU → DST → Policy → NLG → TTS 全链路工程实践
本文详解车载语音助手全链路工程实践,涵盖NLU(意图识别+槽位抽取)、DST(多轮状态追踪)、Policy(安全驱动决策)、NLG(模板化自然语言生成)与TTS(双引擎语音合成)五大模块,基于Pipeline架构实现高可解释、可调试、强安全的工业级Demo,代码开源、开箱即用。(239字)
|
4月前
|
人工智能 安全 JavaScript
阿里云无影AgentBay对接全指南:MCP/SDK/Web全链路接入与实战
在AI智能体快速落地的当下,安全、稳定、可扩展的云端执行环境成为核心刚需。阿里云无影AgentBay作为专为AI Agent打造的云端沙箱基础设施,提供浏览器、桌面、代码、移动端四大场景的隔离执行能力,解决了本地环境依赖、安全风险、并发限制等痛点,是构建企业级智能体的首选底座。2026年,AgentBay已完成多轮迭代,接入方式更灵活、环境更丰富、生态更完善,支持MCP协议、多语言SDK、Web SDK三种主流接入方式,覆盖从简单工具调用到复杂自动化流程的全场景需求。本文从核心概念、接入准备、三种对接方式、实战案例、高级配置到运维优化,提供完整的对接使用指南,搭配可直接运行的代码命令,帮助开发
698 4
|
4月前
|
自然语言处理 算法 测试技术
阿里云百炼Qwen 3.7 Plus vs Max:纯文本旗舰性能、成本与场景适配实与多模态全能的选型指南
2026年,大模型市场进入精细化竞争阶段,单一能力的模型已难以满足多元场景需求,厂商纷纷推出差异化产品线,在性能、成本、模态能力间寻找最优平衡。阿里云百炼平台推出的Qwen 3.7系列,包含Max与Plus两款旗舰模型,前者定位纯文本推理旗舰,后者主打多模态全能,二者共享百万级上下文窗口与超长自治执行能力,却在核心能力、价格与适用场景上形成鲜明差异。本文基于2026年最新实测数据,从核心参数、文本能力、多模态能力、智能体表现、性价比与场景选型六大维度,全面解析两款模型的差异,为个人开发者、企业用户提供精准选型参考,帮助在不同业务场景中实现能力与成本的最优匹配。
716 0
|
4月前
|
人工智能 缓存 自然语言处理
阿里云百炼Token Plan团队版:多模型兼容、团队管理与Credits计费全攻略
阿里云Token Plan(团队版)是阿里云百炼平台面向企业、团队及一人公司推出的AI大模型订阅服务,以Credits为统一计量单位,整合文本生成、图像生成等多模态模型能力,兼容主流AI编程与智能体工具,提供团队管理、预算管控、数据安全等企业级能力,解决团队规模化使用大模型时的成本失控、模型单一、协作不便等痛点。2026年,该服务已完成多轮迭代,模型覆盖更全面、工具兼容性更强、团队管理功能更精细化,成为企业落地AI生产力的核心订阅方案之一。
499 0
阿里云百炼Token Plan团队版:多模型兼容、团队管理与Credits计费全攻略
|
4月前
|
人工智能 JSON 机器人
10 个 AI 工程师必须掌握的 LangChain & LangGraph 概念
本文详解2026年构建生产级AI Agent的10大核心架构原则:状态管理、函数化节点、图编排替代线性链、智能路由、多层检索、结构化输出、操作型记忆、检查点恢复、人机协同等。强调可靠AI系统的关键不在模型调优,而在健壮的工作流设计。
273 0
10 个 AI 工程师必须掌握的 LangChain & LangGraph 概念