ARMS控制台全面擁抱開源,針對高定製需求情境(例如自訂可觀測大盤),本文提供了一份基於Grafana + Prometheus的解決方案案例,以及如何自訂查詢語句用於擷取資料的樣本。
背景資訊
阿里雲可觀測監控 Prometheus 版預設整合了ARMS應用監控資料來源,您可以直接在可觀測監控 Prometheus 版下擷取應用監控相關資料、查看應用監控預置大盤,並根據需求進行二次開發。
前提條件
ARMS應用監控服務會根據地區自動建立免費的阿里雲Prometheus執行個體,如下圖所示應用監控杭州對應的所有資料指標都會存入Prometheus監控杭州地區下的arms_metrics_cn-hangzhou_cloud_hangzhou執行個體中。
使用情境
需要基於ARMS應用監控的資料指標重新繪製資料大盤。
在日常營運工作中,通過將ARMS應用監控的資料指標與其他資料來源特定組件的資料指標相結合,繪製專屬資料大盤。
在網站流量峰值來臨前期,通過將ARMS應用監控的資料指標與其他資料來源的上下遊組件的指標相結合,繪製特定情境下資料大盤。
在自建Grafana上展示通過Prometheus監控擷取的ARMS應用監控資料。
對Prometheus監控中擷取的ARMS應用監控資料進行二次開發。
前提條件
自訂可視化大盤
步驟一:在Grafana中添加應用監控資料來源
由於阿里雲可觀測監控 Prometheus 版預設整合了應用監控資料來源,此處只需在Grafana中添加可觀測監控 Prometheus 版下應用監控對應執行個體的資料來源。
在自建Grafana中添加資料來源
擷取Prometheus HTTP API。
在ARMS控制台的頁面頂部功能表列選擇應用接入的地區。
執行個體類型為Prometheus for 應用監控的執行個體即為預設整合的應用監控執行個體。

單擊應用監控執行個體名稱,然後單擊左側導覽列的設定,查看HTTP API地址。

(可選)如果您需要提高Grafana資料讀取的安全性,可以單擊產生token,擷取Prometheus執行個體的鑒權Token。
重要產生Token後,在Grafana中添加資料來源時必須配置Token,否則無法讀取Prometheus的監控資料。
在Grafana中添加Prometheus資料來源。
此處以10.x版本Grafana為例,其他版本Grafana添加資料來源的操作請參見Grafana官方文檔。
以管理員帳號登入自建Grafana。
單擊頁面左上方的
表徵圖,然後選擇。單擊+ Add new data source,然後選擇資料來源類型為Prometheus。
在Settings頁簽的Name欄位中輸入自訂的名稱,在Prometheus server URL欄位中粘貼上一步擷取的HTTP API地址。

(可選)在Custom HTTP Headers地區單擊+Add header,設定Header為Authorization,設定Value為上一步擷取的鑒權Token。

單擊頁簽底部的Save & Test。
在可觀測可視化 Grafana 版中整合資料來源
阿里雲可觀測可視化 Grafana 版支援一鍵整合ARMS應用監控資料來源和大盤。
在ARMS控制台的頁面單擊工作區ID。
在工作區資訊頁面的雲端服務整合地區單擊ARMS應用監控服務,然後在對應地區的執行個體右側單擊整合。
在彈出的對話方塊中單擊確認。
同步完成後,單擊右側的檔案夾。
在Grafana的Dashboards頁簽單擊大盤名稱可以查看應用監控預置的預設大盤。

單擊頁面左上方的
表徵圖,然後選擇,可以查看已添加的應用監控資料來源。
步驟二:配置自訂大盤
在Grafana中單擊頁面左上方的
表徵圖,然後單擊儀表板。在儀表板頁面選擇,在New dashboard頁面單擊添加可視化建立面板。
在彈出的Select data source對話方塊中選擇應用監控資料來源,資料來源名稱預設為arms_metrics_{regionid}_cloud。
重要請確認當前資料來源中已有資料。
在摺疊面板A下設定查詢指標。
通過PromQL查詢語句設定
Code模式下在Metrics browser右側直接輸入PromQL查詢語句。

在ARMS控制台應用監控的監控詳情頁面單擊
表徵圖可以查看指標對應的PromQL語句。更多資訊,請參見查詢語句。
更多PromQL查詢語句的使用方法,請參見Prometheus官方文檔。
通過應用監控指標設定
Builder模式下在Metric下拉框中選擇具體的指標,例如
arms_jvm_threads_count,查詢JVM線程數。應用監控支援的指標詳情,請參見應用監控指標說明。在Label filters地區選取項目具體維度標籤和標籤值。

在右側地區設定面板Title,並選擇展示的圖表類型。
說明同一資料指標,選擇不同的圖表類型,可以獲得不同顆粒度的資料圖表。

設定完成後,單擊右上方的Apply。
自訂查詢語句
根據ARMS控制台擷取到的Prometheus HTTP API和PromQL語句,您可以通過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
查詢到的資料樣本:

常見問題
查詢是否免費?
免費
PromQL查詢是否有限流
有限流防護,但不是根據入口的QPS做的限制,不同的查詢消耗不一樣。建議盡量避免耗時高的查詢(例如查詢全部介面或者查詢30天以上範圍時間資料),入口查詢控制在50 QPS以內。如果有不可避免的持續高消耗的查詢,可以提前提交工單申請擴容。