【发布时间】:2020-10-15 21:20:14
【问题描述】:
团队,
我创建了一个警报,它正在工作,但我需要将它用于两个值。任何提示我如何在消息之间使用 OR 运算符?当我删除条件时,它会按预期工作。
工作表达式
message: 'Node {{ `{{ $labels.nodename }}` }} was rebooted'
不工作的表达
message: 'Node {{- if or `{{ $labels.nodename }}` `{{ $labels.node }}` }} was rebooted {{- end }}'
- alert: NodeReboot
annotations:
message: 'Node {{- if or `{{ $labels.nodename }}` `{{ $labels.node }}` }} was rebooted {{- end }}'
runbook_url: TODO
expr: (time() - node_boot_time_seconds)/60 < 15
for: {{ .Values.genericAlerts.alertDefinitions.NodeReboot.for }}
{{- if .Values.genericAlerts.alertDefinitions.NodeReboot.labels }}
labels:
{{ toYaml .Values.genericAlerts.alertDefinitions.NodeReboot.labels | indent 8 }}
{{- end }}
{{- end }}
{{- if .Values.genericAlerts.alertDefinitions.GpuNodeMissingPowerLabel.enabled }}
输出:
- alert: NodeReboot
annotations:
message: 'Node was rebooted'
预计
- alert: NodeReboot
annotations:
message: 'Node test-node1 was rebooted'
【问题讨论】:
-
$labels.nodename和$labels.node,您要打印其中一个还是两个都打印?
标签: kubernetes-helm prometheus-alertmanager prometheus-operator