全部產品
Search
文件中心

Container Service for Kubernetes:通過PromQL查詢Prometheus監控資料

更新時間:Sep 19, 2025

可通過PromQL(Prometheus Query Language)查詢Prometheus監控資料,以驗證警示規則的正確性和時效性。

通過控制台查詢Prometheus監控資料

阿里雲Prometheus

關於如何部署和使用阿里雲Prometheus監控,請參見使用阿里雲Prometheus監控

  1. 登入ARMS控制台

  2. 在左側導覽列選擇Prometheus監控 > 執行個體列表

  3. Prometheus監控頁面左上方,選擇Container ServiceK8s叢集所在的地區,單擊目標執行個體的grafana工作區所在列的共用版

  4. 在大盤左側導覽列,單擊大盤表徵圖,然後在左上方的Explore右側下拉式清單選擇對應的資料來源。

  5. Metric右側文字框輸入PromQL查詢語句,然後單擊Run query

開源Prometheus

關於如何基於ACK叢集部署開源Prometheus監控,請參見開源Prometheus監控

  1. 登入Container Service管理主控台,在左側導覽列選擇叢集列表

  2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇網路 > 服務

  3. 在服務頁面選擇ack-prometheus-operator部署的命名空間(預設為monitoring),單擊ack-prometheus-operator-prometheus操作列下的更新

  4. 在對話方塊中,選擇負載平衡(LoadBalancer)作為服務類型。選擇建立資源,將訪問方式配置為公網訪問計費方式配置為隨用隨付(PayByCLCU),按照頁面提示提交配置的修改。

    關於CLB的計費說明,請參見CLB計費概述
  5. 更新完成後,複製其外部IP地址,然後在瀏覽器中通過IP地址:連接埠號碼(如47.XX.XX.12:9090)訪問Prometheus。

  6. 在Prometheus控制台,單擊Graph頁簽,然後在文字框輸入PromQL查詢語句,單擊Execute

通過API查詢Prometheus監控資料

阿里雲Prometheus

  1. 登入ARMS控制台

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

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

  4. 設定頁面HTTP API地址(Grafana 讀取地址)地區,根據需求複製公網或內網的HTTP API地址。

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

    重要
  6. 使用HTTP API調用阿里雲Prometheus監控資料。

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

    V1版本

    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"
    
    }

    V2版本

    GET {HTTP API}/api/v1/query
    
    Accept: application/json
    Content-Type: application/json
    Authorization: Basic <base64Encode(<accessKey:secretKey>)>
    
    {
      "query":"arms_prometheus_target_interval_length_seconds_sum",
      "time":"1635302655",
      "timeout":"1000"
    
    }

開源Prometheus

  1. 擷取HTTP API地址。

    如果您是在叢集內訪問開源Prometheus監控,預設ack-prometheus-operator的資料請求Service地址為http://ack-prometheus-operator-prometheus.monitoring:9090

    如果您使用公網訪問開源Prometheus監控,需要為ack-prometheus-operator的資料請求Service綁定SLB。操作如下。

    1. 登入Container Service管理主控台,在左側導覽列選擇叢集列表

    2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇網路 > 服務

    3. 服務頁面頂部,設定命名空間monitoring,然後在ack-prometheus-operator-prometheus右側操作列,單擊更新

    4. 更新服務對話方塊,設定如下參數後單擊更新

      配置項

      配置

      服務類型

      設定服務類型負載平衡(LoadBalancer),並設定訪問方式公網訪問

      連接埠映射

      輸入連接埠名稱,設定服務連接埠為9090,容器連接埠為9090,協議TCP

    5. 服務頁面單擊ack-prometheus-operator-prometheus服務,在基本資料表格擷取外部 IP 位址(External IP),即HTTP API地址。

  2. 使用HTTP API調用Prometheus監控資料。

    • 擷取瞬時監控資料。請求參數如下。

      GET {HTTP API}/api/v1/query
      
      Headers:
      Accept: application/json
      Content-Type: application/json
      Param:
      {
        "query":"{{PromQL}}",
        "time":"1635302655",
        "timeout":"1000"
      
      }
      • time:設定查詢監控資料的具體時間點。

      • timeout:設定超過這個時間,將直接返回結果。單位:毫秒。

    • 查詢某個時間範圍的監控資料。

      GET {HTTP API}/api/v1/query_range
      
      Headers:
      Accept: application/json
      Content-Type: application/json
      Param:
      {
        "query":"{{PromQL}}",
        "start": 1673946024,
        "end": 1673949624,
        "step": 30
      }
      • start:設定查詢監控資料開始時間。

      • end:設定查詢監控資料結束時間。

      • step:返回監控資料時,資料間隔的時間步長。

相關文檔

如需瞭解如何使用自訂PromQL來建立警示規則,請參見使用Prometheus配置警示規則的最佳實務