说我在普罗米修斯有两个指标,两个计数器:
requests_processed_total
requests_failed_total
它们都具有匹配的service
标签。示例:
requests_processed_total{service="news"} 1097
requests_processed_total{service="store"} 487
requests_failed_total{service="news"} 23
requests_failed_total{service="store"} 89
如何查询requests_failed_total
,但仅查询其request_processed_total > 1000
的服务。
我希望得到以下答复:
requests_failed_total{service="news"} 23
# Note that the "store" service is excluded
答案 0 :(得分:2)
如果您使用的是Grafana,则可以执行以下操作:
(1)创建一个仪表板
(2)单击仪表板设置>变量>新建
(3)使用以下命令创建一个变量:
Name = service
Type = Query
Data source = Prometheus
Query = query_result(request_processed_total>5)
Regex = /service="(.*)"/
(4)使用“服务”变量在任何面板中显示“ requests_failed_total”指标(您也可以使用“重复” Grafana功能。
答案 1 :(得分:0)
您可以使用HTTP API进行此操作。
以下命令将查找request_processed_total> 1000的服务:
C =
84333 266452
46609 223000
176395 328914
84865 94391
104444 227034
221905 302546
227497 335959
188486 344305
164789 266497
153603 354932
以下命令将显示给定服务的requests_failed_total:
curl --silent --user USER:PASS --globoff --request GET "https://PROMETHEUS-SERVER/query?query=request_processed_total>1000" | jq --raw-output '.data.result[].metric.service'
因此,如果两者兼得,您将得到想要的东西:
curl --silent --user USER:PASS --globoff --request GET "https://PROMETHEUS-SERVER/query?query=request_failed_total{service=\"SERVICE\"}" | jq --raw-output '.data.result[].value[1]'