您可以通過PromQL(Prometheus Query Language)查詢Prometheus監控資料,以驗證警示規則的正確性和時效性。
通過控制台查詢Prometheus監控資料
阿里雲Prometheus
關於如何部署和使用阿里雲Prometheus監控,請參見使用阿里雲Prometheus監控。
登入ARMS控制台。
在左側導覽列選擇 。
在Prometheus監控頁面左上方,選擇Container ServiceK8s叢集所在的地區,單擊目標執行個體的Grafana工作區所在列的共用版。
在大盤左側導覽列,單擊表徵圖,然後在左上方的Explore右側下拉式清單選擇對應的資料來源。
在Metrics右側文字框輸入PromQL查詢語句,然後單擊Run query。
開源Prometheus
關於如何基於ACK叢集部署開源Prometheus監控,請參見開源Prometheus監控。
執行以下命令,將叢集中的Prometheus映射到本地9090連接埠。
kubectl port-forward svc/ack-prometheus-operator-prometheus 9090:9090 -n monitoring
在瀏覽器輸入localhost:9090,在控制台首頁通過PromQL查詢對應監控資料。
通過API查詢Prometheus監控資料
阿里雲Prometheus
登入ARMS控制台。
在左側導覽列選擇 ,進入可觀測監控 Prometheus 版的執行個體列表頁面。
在執行個體列表頁面頂部,選擇Prometheus執行個體所在的地區,並在目的地組群右側的操作列,單擊設定。
在設定頁面HTTP API地址(Grafana 讀取地址)地區,根據需求複製公網或內網的HTTP API地址。
可選:如果您需要提高Grafana資料讀取的安全性,可以單擊產生token,擷取Prometheus執行個體的鑒權Token。
重要產生Token後,在Grafana中添加資料來源時必須配置Token,否則無法讀取Prometheus監控資料。
使用HTTP API調用阿里雲Prometheus監控資料。
調用阿里雲Prometheus監控資料的請求樣本如下。更多使用HTTP API擷取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" }
開源Prometheus
擷取HTTP API地址。
如果您是在叢集內訪問開源Prometheus監控,預設ack-prometheus-operator的資料請求Service地址為http://ack-prometheus-operator-prometheus.monitoring:9090。
如果您使用公網訪問開源Prometheus監控,需要為ack-prometheus-operator的資料請求Service綁定SLB。操作如下。
登入Container Service管理主控台,在左側導覽列選擇叢集。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇 。
在服務頁面頂部,設定命名空間為monitoring,然後在ack-prometheus-operator-prometheus右側操作列,單擊更新。
在更新服務對話方塊,設定如下參數後單擊更新。
配置項
配置
服務類型
設定服務類型為負載平衡(LoadBalancer),並設定訪問方式公網訪問。
連接埠映射
輸入連接埠名稱,設定服務連接埠為9090,容器連接埠為9090,協議為TCP
在服務頁面單擊ack-prometheus-operator-prometheus服務,在基本資料表格擷取外部 IP 位址(External IP),即HTTP API地址。
使用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配置警示規則的最佳實務。