在Prometheus中,你可以使用promql
語言來編寫SQL-like查詢語句,以從時間序列數據中檢索信息。雖然Prometheus的查詢語言與傳統的SQL有所不同,但它提供了強大的功能來查詢和聚合時間序列數據。
以下是一些常見的PromQL查詢示例:
rate(http_requests_total[1h])
這個查詢將返回過去一小時內http_requests_total
指標的平均速率。
sum_over_time(http_requests_total{job="my-service"}[1h])
這個查詢將返回過去一小時內http_requests_total
指標的總和,但僅針對標簽job
值為my-service
的數據。
max_over_time(http_response_codes{code=200}[1h])
min_over_time(http_response_codes{code=500}[1h])
avg_over_time(http_response_codes{code=200}[1h])
這些查詢分別返回過去一小時內http_response_codes
指標的最大值、最小值和平均值,但僅針對代碼為200的數據。
sum(http_requests_total) / count(http_requests_total)
這個查詢計算過去一小時內http_requests_total
指標的總和,然后除以該時間段內的數據點數量,從而得到平均速率。
by
子句對結果進行分組:sum_over_time(http_requests_total{job="my-service"}[1h]) by (instance)
這個查詢將返回過去一小時內http_requests_total
指標的總和,并按instance
標簽對結果進行分組。
請注意,PromQL使用自己的標簽語法,而不是SQL中的標簽語法。此外,Prometheus不支持所有SQL功能,因此你可能需要調整查詢以滿足你的需求。
希望這些示例能幫助你開始使用PromQL查詢時間序列數據!