您可以通過PromQL(Prometheus Query Language)查詢Prometheus監控數據,以驗證報警規則的正確性和時效性。
通過控制臺查詢Prometheus監控數據
阿里云Prometheus
關于如何部署和使用阿里云Prometheus監控,請參見使用阿里云Prometheus監控。
登錄ARMS控制臺。
在左側導航欄選擇 。
在Prometheus監控頁面左上角,選擇容器服務K8s集群所在的地域,單擊目標實例的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。操作如下。
登錄容器服務管理控制臺,在左側導航欄選擇集群。
在集群列表頁面,單擊目標集群名稱,然后在左側導航欄,選擇 。
在服務頁面頂部,設置命名空間為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配置報警規則的最佳實踐。