全部產品
Search
文件中心

Application Real-Time Monitoring Service:使用HTTP API地址對接Grafana或自建應用中接入Prometheus資料

更新時間:Jul 06, 2024

可觀測監控 Prometheus 版提供了HTTP API地址,以便您在自建的Grafana中接入Prometheus監控資料,或在二次開發過程中通過Prometheus API擷取監控資料。

前提條件

已接入Prometheus,具體操作,請參見:

步驟一:擷取HTTP API地址

  1. 登入ARMS控制台

  2. 在左側導覽列選擇Prometheus監控 > 執行個體列表,進入可觀測監控 Prometheus 版的執行個體列表頁面。

  3. 在頁面頂部功能表列選擇Prometheus執行個體所在的地區,並在目的地組群右側的操作列單擊設定

  4. 設定頁簽上,根據需求複製公網或內網的HTTP API地址。

    說明

    如果是雲端服務類型的Prometheus執行個體,請根據接入雲端服務的產品類型選擇對應的HTTP API地址。

    image

  5. 可選:如果您需要提高Grafana資料讀取的安全性,可以單擊產生token,擷取Prometheus執行個體的鑒權Token。

    重要

    產生Token後,在Grafana中添加資料來源時必須配置Token,否則無法讀取Prometheus的監控資料。

步驟二:接入自建Grafana

  1. 配置Grafana資料來源。

    1. 以管理員帳號登入本地Grafana系統。

    2. 單擊頁面左上方的image表徵圖。

    3. 在左側導覽列中選擇Configuration > Data Sources

      說明

      僅管理員可以看到此菜單。

    4. Data Sources頁簽上單擊+ Add new data source

    5. Add data source頁面上單擊Prometheus

    6. Settings頁簽的Name欄位中輸入自訂的名稱,在Prometheus server URL欄位中粘貼上文步驟一:擷取HTTP API地址中獲得的HTTP API地址。

    7. 可選:單擊+ Add header,在Custom HTTP Headers地區單擊+Add header,設定Header為Authorization,設定Value為步驟一:擷取HTTP API地址中擷取的鑒權Token。

      image

    8. 單擊頁簽底部的Save & Test

  2. 驗證結果。

    1. 登入本地Grafana系統。

    2. 單擊頁面左上方的image表徵圖,然後在左側導覽列中單擊Dashboards

    3. 單擊Dashboards頁面右側的New,然後在下拉式功能表中單擊New dashboard

    4. 單擊+ Add visualization

    5. Select data source頁面選擇您建立的資料來源。

    6. Edit Panel頁面的Query頁簽下的A地區的Metrics欄位和Label filters欄位中輸入指標名稱和值,單擊Run queries進行查詢。

      如果能顯示出相應指標的圖表,則說明操作成功。否則請檢查填寫的介面地址或Token是否正確,以及資料來源是否有Prometheus的監控資料。

      image

步驟三:擷取Prometheus監控資料

調用Prometheus監控資料的請求樣本如下。更多使用HTTP API擷取Prometheus監控資料的操作,請參見開源版Prometheus HTTP API

GET {HTTP API}/api/v1/query

Accept: application/json
Content-Type: application/json
Authorization: {Token}

{
  "query":"arms_prometheus_target_interval_length_seconds_sum",
  "time":"1635302655",
  "timeout":"1000"

}
說明

{HTTP API}{Token}請替換為上文步驟一:擷取HTTP API地址中擷取的HTTP API和鑒權Token。

返回樣本:

展開查看返回樣本

{
    "status": "success",
    "data": {
        "resultType": "vector",
        "result": [
            {
                "metric": {
                    "__name__": "arms_prometheus_target_interval_length_seconds_sum",
                    "instance": "localhost:9335",
                    "interval": "15s",
                    "job": "_arms-prom/kubelet/1"
                },
                "value": [
                    1635302655,
                    "146655.24420603***"
                ]
            },
            {
                "metric": {
                    "__name__": "arms_prometheus_target_interval_length_seconds_sum",
                    "instance": "localhost:9335",
                    "interval": "30s",
                    "job": "_arms-prom/kubelet/1"
                },
                "value": [
                    1635302655,
                    "879810.747346***"
                ]
            },
            {
                "metric": {
                    "__name__": "arms_prometheus_target_interval_length_seconds_sum",
                    "instance": "localhost:9335",
                    "interval": "20s",
                    "job": "_arms-prom/kubelet/1"
                },
                "value": [
                    1635302655,
                    "73320.13578499***"
                ]
            }
        ]
    }