Ham*_*med 3 where-clause kubernetes prometheus promql
如何在 PromQL 中添加 where 子句?
我正在尝试构建一个查询,当 Kubernetes 中运行的应用程序运行超过一分钟时显示,但我想按命名空间进行过滤。
这就是我现在的查询的样子
100 * (count(up == 1) BY (job, namespace, service) ) > 1
Run Code Online (Sandbox Code Playgroud)
这工作正常,但它给了我不需要的额外信息。
{job="prometheus-grafana", namespace="monitor", service="prometheus-grafana"}
{job="jenkins", namespace="jenkins", service="jenkins"}
{job="kube-state-metrics", namespace="monitor", service="prometheus-kube-state-metrics"}
{job="node-exporter", namespace="monitor", service="prometheus-prometheus-node-exporter"}
{job="kubelet", namespace="kube-system", service="prometheus-kube-prometheus-kubelet"}
{job="apiserver", namespace="default", service="kubernetes"}
Run Code Online (Sandbox Code Playgroud)
我想要完成的是仅获取jenkins和default命名空间的结果。
{job="apiserver", namespace="default", service="kubernetes"}
{job="jenkins", namespace="jenkins", service="jenkins"}
Run Code Online (Sandbox Code Playgroud)
我试过做
100 * (count(up == 1) BY (job, namespace, service) ) > 1 and ON {namespace="jenkins"}
Run Code Online (Sandbox Code Playgroud)
但我收到invalid parameter "query": 1:65: parse error: unexpected "{" in grouping opts, expected "("错误。
小智 7
您必须通过所需的标签(命名空间)“向上”过滤指标,在您的情况下,它应该看起来像这样:
100 * count(up{namespace=~"default|jenkins"} == 1) > 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5982 次 |
| 最近记录: |