如何在PrometheusRule的expr字段中使用Helm配置变量替代常量
使用Helm实现可配置复用的PrometheusRule告警规则
1. 在Values.yaml中定义可配置变量
在你的Helm Chart的Values.yaml里添加告警阈值配置项,方便不同环境或服务调整:
# Values.yaml alertThresholds: # Nginx 5XX请求数告警阈值 nginx5xxRequestCount: 50
2. 修改PrometheusRule模板文件
把模板里的VARIABLE_VALUE替换为Helm变量引用,部署时会自动替换成Values中配置的值:
apiVersion: monitoring.coreos.com/v1 kind: PrometheusRule metadata: name: blablaname namespace: blablans spec: groups: - name: {{ include "blabla.fullname" . }}-cache rules: - alert: TOOMANY5XXX annotations: description: too many 5XXs summary: blablabla expr: sum( nginx_ingress_controller_requests{status=~"5.+"} ) > {{ .Values.alertThresholds.nginx5xxRequestCount }} for: 5m labels: severity: critical
3. 可选:添加默认值容错
如果担心Values中未配置该变量导致部署失败,可以给变量设置默认值,无配置时会自动使用默认阈值:
expr: sum( nginx_ingress_controller_requests{status=~"5.+"} ) > {{ .Values.alertThresholds.nginx5xxRequestCount | default 50 }}
这样配置后,只需修改Values.yaml中的阈值,就能快速调整不同服务或环境的告警规则,实现规则的复用与灵活配置。
内容的提问来源于stack exchange,提问作者RyanDotnet
相关产品推荐
相关产品推荐

