【发布时间】:2022-01-03 03:01:05
【问题描述】:
我正在尝试创建一个规则,它将作为记录规则的过滤器输出。
我创建了一个警报规则,用于监控最近的 cronjob 是否失败。 我使用重新编码规则来获取 cronjob 的最后一次运行的时间,并希望使用该值来过滤掉失败状态设置太真实的作业。我尝试了几件事,但接缝好像我无法在下一个查询中引用记录的值。
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
name: cron-job-alerts
namespace: openshift-monitoring
labels:
openshift.io/prometheus-rule-evaluation-scope: leaf-prometheus
spec:
groups:
- name: kube-cron
rules:
- record: job_cronjob:job:name
expr: |
kube_cronjob_labels{namespace="dev-v1", label_cronjob="weekly-availability-reporting-cronjob"} * on() kube_cronjob_status_last_schedule_time{namespace="dev-v1"}
- alert: CronJobStatusFailed
expr: |
kube_job_failed{namespace="dev-v1",condition="true", job_name="weekly-availability-reporting-cronjob-{{ job_cronjob:job:name}}"}==1
# for: 1m
annotations:
description: 'Attempt 1'
有人知道如何在表达式过滤器中正确引用 job_cronjob:job:name 值吗?
【问题讨论】:
标签: prometheus promql prometheus-alertmanager