全部产品
Search
文档中心

应用实时监控服务ARMS:自定义可观测页面

更新时间:Jun 02, 2026

ARMS控制台全面拥抱开源,针对高定制需求场景(例如自定义可观测大盘),本文提供了一份基于Grafana + Prometheus的解决方案案例,以及如何自定义查询语句用于获取数据的示例。

背景信息

阿里云可观测监控 Prometheus 版默认集成了ARMS应用监控数据源,您可以直接在可观测监控 Prometheus 版下获取应用监控相关数据、查看应用监控预置大盘,并根据需求进行二次开发。

前提条件

ARMS应用监控服务会根据地域自动创建免费的阿里云Prometheus实例,如下图所示应用监控杭州对应的所有数据指标都会存入Prometheus监控杭州地域下的arms_metrics_cn-hangzhou_cloud_hangzhou实例中。

image

使用场景

  • 需要基于ARMS应用监控的数据指标重新绘制数据大盘。

  • 在日常运维工作中,通过将ARMS应用监控的数据指标与其他数据源特定组件的数据指标相结合,绘制专属数据大盘。

  • 在网站流量峰值来临前期,通过将ARMS应用监控的数据指标与其他数据源的上下游组件的指标相结合,绘制特定场景下数据大盘。

  • 在自建Grafana上展示通过Prometheus监控获取的ARMS应用监控数据。

  • 对Prometheus监控中获取的ARMS应用监控数据进行二次开发。

前提条件

  • 已为应用安装探针,具体操作,请参见应用监控接入概述

  • 已在本地成功安装Grafana软件或者已创建阿里云可观测可视化 Grafana 版工作区

自定义可视化大盘

步骤一:在Grafana中添加应用监控数据源

由于阿里云可观测监控 Prometheus 版默认集成了应用监控数据源,此处只需在Grafana中添加可观测监控 Prometheus 版下应用监控对应实例的数据源。

在自建Grafana中添加数据源

  1. 获取Prometheus HTTP API。

    1. ARMS控制台Prometheus监控 > 实例列表页面顶部菜单栏选择应用接入的地域。

      实例类型为Prometheus for 应用监控的实例即为默认集成的应用监控实例。

    2. 单击应用监控实例名称,然后单击左侧导航栏的设置,查看HTTP API地址。

      设置 页面底部的 HTTP API地址(Grafana 读取地址) 区域,可获取公网和内网两种URL地址。

    3. (可选)如果您需要提高Grafana数据读取的安全性,可以单击生成token,获取Prometheus实例的鉴权Token。

      重要

      生成Token后,在Grafana中添加数据源时必须配置Token,否则无法读取Prometheus的监控数据。

  2. 在Grafana中添加Prometheus数据源。

    此处以10.x版本Grafana为例,其他版本Grafana添加数据源的操作请参见Grafana官方文档

    1. 以管理员账号登录自建Grafana。

    2. 单击页面左上角的image图标,然后选择管理 > 数据源

    3. 单击+ Add new data source,然后选择数据源类型为Prometheus

    4. Settings页签的Name字段中输入自定义的名称,在Prometheus server URL字段中粘贴上一步获取的HTTP API地址。

    5. (可选)在Custom HTTP Headers区域单击+Add header,设置Header为Authorization,设置Value为上一步获取的鉴权Token。

    6. 单击页签底部的Save & Test

在可观测可视化 Grafana 版中集成数据源

阿里云可观测可视化 Grafana 版支持一键集成ARMS应用监控数据源和大盘。

  1. ARMS控制台Grafana 服务 > 工作区管理页面单击工作区ID。

  2. 工作区信息页面的云服务集成区域单击ARMS应用监控服务,然后在对应地域的实例右侧单击集成

  3. 在弹出的对话框中单击确认

  4. 同步完成后,单击右侧的文件夹

  5. 在Grafana的Dashboards页签单击大盘名称可以查看应用监控预置的默认大盘。

    应用监控预置的默认大盘包括 DB应用接口机器 四个仪表盘。

  6. 单击页面左上角的image图标,然后选择管理 > 数据源,可以查看已添加的应用监控数据源。

    添加成功后,数据源列表中将显示类型为 Prometheus 的数据源,名称格式类似 arms_metrics_cn-hangzhou_cloud_hangzhou_xxx,对应 URL 为 http://cn-hangzhou.arms.aliyuncs.com:9090/api/v1/prometheus/<实例ID>

步骤二:配置自定义大盘

  1. 在Grafana中单击页面左上角的image图标,然后单击仪表板

  2. 仪表板页面选择新建 > 新建仪表板,在New dashboard页面单击添加可视化创建面板。

  3. 在弹出的Select data source对话框中选择应用监控数据源,数据源名称默认为arms_metrics_{regionid}_cloud

    重要

    请确认当前数据源中已有数据。

  4. 在折叠面板A下设置查询指标。

    通过PromQL查询语句设置

    Code模式下在Metrics browser右侧直接输入PromQL查询语句。

    ARMS控制台应用监控的监控详情页面单击image图标可以查看指标对应的PromQL语句。更多信息,请参见查询语句

    例如,展开请求数指标面板后,可在 PromQL 查询编辑区域看到对应的查询语句,如 sum by (callType,)(sum_over_time_lorc(arms_app_requests_count_ign_destid_endpoint_ppid_prpc{pid="...",callKind=~"http|rpc|custom_entry|server|consumer|schedule",source="apm"}[1m]))

    更多PromQL查询语句的使用方法,请参见Prometheus官方文档

    通过应用监控指标设置

    Builder模式下在Metric下拉框中选择具体的指标,例如arms_jvm_threads_count,查询JVM线程数。应用监控支持的指标详情,请参见应用监控指标说明

    Label filters 区域设置标签过滤条件(例如 host = 目标 IP),下方自动生成对应的 PromQL 查询语句,如 arms_jvm_threads_count{host="xxx.xxx.xx.67"}

  5. 在右侧区域设置面板Title,并选择展示的图表类型。

    说明

    同一数据指标,选择不同的图表类型,可以获得不同颗粒度的数据图表。

    在面板编辑器右侧配置区域,将可视化类型选择为 Time series,并在 Panel options 区域的 Title 输入框中填写 JVM Threads Count

  6. 设置完成后,单击右上角的Apply

自定义查询语句

根据ARMS控制台获取到的Prometheus HTTP APIPromQL语句,您可以通过Shell脚本或Java编码进行HTTP请求,对获取到结果数据做进一步定制处理。

例如,Prometheus HTTP API地址为https://cn-hangzhou.arms.aliyuncs.com:9443/api/v1/prometheus/7a8f8e783c66a44a0f6a1dc9a0b8f1/1277589232893727/arms-metrics-99214ff7de7d0b2d/cn-hangzhou,与PromQL按以下格式进行组合:

{{Prometheus HTTP API}}/api/v1/query_range?query={{PromQL}}&start={{startTime}}&end={{endTime}}&step={{step}}

得到如下查询语句:

https://cn-hangzhou.arms.aliyuncs.com:9443/api/v1/prometheus/7a8f8e783c66a44a0f6a1dc9a0b8f1/1277589232893727/arms-metrics-99214ff7de7d0b2d/cn-hangzhou/api/v1/query_range?query=sum by (callType,)(sum_over_time_lorc(arms_app_requests_count_ign_destid_endpoint_ppid_prpc{pid="ckv8e2vzfj@7e393063f3fd6ad",serverIp=~".*",callKind=~"http|rpc|custom_entry|server|consumer|schedule",source="apm", }[1m]))&start=1728719399&end=1728722999&step=60s

查询到的数据示例:

{"status":"success","data":{"resultType":"matrix","result":[{"metric":{"callType":"http"},"values":[[1728719399,"1575"],[1728719459,"1599"],[1728719519,"1593"],[1728719579,"1584"],[1728719639,"1578"],[1728719699,"1568"],[1728719759,"1561"],[1728719819,"1555"],[1728719879,"1547"],[1728719939,"1540"],[1728719999,"1533"],[1728720059,"1524"],[1728720119,"1518"],[1728720179,"1512"],[1728720239,"1503"],[1728720299,"1497"],[1728720359,"1491"],[1728720419,"1482"],[1728720479,"1476"],[1728720539,"1467"],[1728720599,"1464"],[1728720659,"1453"],[1728720719,"1448"],[1728720779,"1443"],[1728720839,"1434"],[1728720899,"1428"],[1728720959,"1419"],[1728721019,"1416"],[1728721079,"1407"],[1728721139,"1401"],[1728721199,"1395"],[1728721259,"1389"],[1728721319,"1381"],[1728721379,"1374"],[1728721439,"1366"],[1728721499,"1367"],[1728721559,"1350"],[1728721619,"1350"],[1728721679,"1344"],[1728721739,"1335"],[1728721799,"1331"],[1728721859,"1324"],[1728721919,"1320"],[1728721979,"1314"],[1728722039,"1305"],[1728722099,"1302"],[1728722159,"1296"],[1728722219,"1287"],[1728722279,"1284"],[1728722339,"1233"],[1728722399,"1272"],[1728722459,"1155"],[1728722519,"1116"],[1728722579,"1110"],[1728722639,"1107"],[1728722699,"1098"],[1728722759,"1095"],[1728722819,"1086"],[1728722879,"1083"],[1728722939,"1077"],[1728722999,"1184"]]}]}}

常见问题

查询是否免费?

免费

PromQL查询是否有限流

有限流防护,但不是根据入口的QPS做的限制,不同的查询消耗不一样。建议尽量避免耗时高的查询(例如查询全部接口或者查询30天以上范围时间数据),入口查询控制在50 QPS以内。如果有不可避免的持续高消耗的查询,可以提前提交工单申请扩容。