全部產品
Search
文件中心

Application Real-Time Monitoring Service:自訂可觀測頁面

更新時間:Jun 03, 2026

ARMS控制台全面擁抱開源,針對高定製需求情境(例如自訂可觀測大盤),本文提供了一份基於Grafana + Prometheus的解決方案案例,以及如何自訂查詢語句用於擷取資料的樣本。

背景資訊

阿里雲可觀測監控 Prometheus 版預設整合了ARMS應用監控資料來源,您可以直接在可觀測監控 Prometheus 版下擷取應用監控相關資料、查看應用監控預置大盤,並根據需求進行二次開發。

前提條件

ARMS應用監控服務會根據地區自動建立免費的阿里雲Prometheus執行個體,如下圖所示應用監控杭州對應的所有資料指標都會存入Prometheus監控杭州地區下的arms_metrics_cn-hangzhou_cloud_hangzhou執行個體中。

使用情境

  • 需要基於ARMS應用監控的資料指標重新繪製資料大盤。

  • 在日常營運工作中,通過將ARMS應用監控的資料指標與其他資料來源特定組件的資料指標相結合,繪製專屬資料大盤。

  • 在網站流量峰值來臨前期,通過將ARMS應用監控的資料指標與其他資料來源的上下遊組件的指標相結合,繪製特定情境下資料大盤。

  • 在自建Grafana上展示通過Prometheus監控擷取的ARMS應用監控資料。

  • 對Prometheus監控中擷取的ARMS應用監控資料進行二次開發。

前提條件

  • 已為應用安裝探針,具體操作,請參見應用監控接入概述

  • 已在本地成功安裝Grafana軟體或者已建立阿里雲Managed Service for 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以內。如果有不可避免的持續高消耗的查詢,可以提前提交工單申請擴容。