diff --git a/prometheus-stack/alertmanager.yaml b/prometheus-stack/alertmanager.yaml index 04c071b..9d2b00b 100644 --- a/prometheus-stack/alertmanager.yaml +++ b/prometheus-stack/alertmanager.yaml @@ -1,5 +1,10 @@ route: receiver: default + routes: + - receiver: "null" + matchers: + - alertname="Watchdog" receivers: - name: default + - name: "null" diff --git a/prometheus-stack/k8s/alertmanager-config.example.yaml b/prometheus-stack/k8s/alertmanager-config.example.yaml index 5143129..8a9b957 100644 --- a/prometheus-stack/k8s/alertmanager-config.example.yaml +++ b/prometheus-stack/k8s/alertmanager-config.example.yaml @@ -1,3 +1,6 @@ +templates: + - "/etc/alertmanager/config/telegram.tmpl" + route: receiver: telegram group_by: @@ -7,10 +10,10 @@ route: group_interval: 5m repeat_interval: 12h routes: - - receiver: null + - receiver: "null" matchers: - alertname="InfoInhibitor" - - receiver: null + - receiver: "null" matchers: - alertname="Watchdog" @@ -35,4 +38,5 @@ receivers: chat_id: REPLACE_WITH_TELEGRAM_CHAT_ID parse_mode: HTML send_resolved: true - - name: null + message: '{{ template "telegram.forust.message" . }}' + - name: "null" diff --git a/prometheus-stack/k8s/alertmanager-telegram.tmpl b/prometheus-stack/k8s/alertmanager-telegram.tmpl new file mode 100644 index 0000000..54d90a6 --- /dev/null +++ b/prometheus-stack/k8s/alertmanager-telegram.tmpl @@ -0,0 +1,44 @@ +{{- define "telegram.forust.message" -}} +{{- $statusEmoji := "🚨" -}} +{{- if ne .Status "firing" -}}{{- $statusEmoji = "✅" -}}{{- end -}} +{{- $count := len .Alerts.Firing -}} +{{- if eq .Status "resolved" -}}{{- $count = len .Alerts.Resolved -}}{{- end -}} +{{ $statusEmoji }} {{ .Status | toUpper }} ({{ $count }}) +{{- range .Alerts }} + +{{ .Labels.alertname }} +{{- $sev := .Labels.severity }} +{{- if eq $sev "critical" }} đŸ”Ĩ critical +{{- else if eq $sev "warning" }} âš ī¸ warning +{{- else if eq $sev "info" }} â„šī¸ info +{{- else if $sev }} â€ĸ {{ $sev }} +{{- end }} +{{- if .Annotations.description }} + +{{ .Annotations.description }} +{{- end }} +{{- if .Labels.namespace }} +đŸ“Ļ Namespace: {{ .Labels.namespace }} +{{- end }} +{{- if .Labels.pod }} +đŸ“Ļ Pod: {{ .Labels.pod }} +{{- end }} +{{- if .Labels.container }} +đŸŗ Container: {{ .Labels.container }} +{{- end }} +{{- if .Labels.node }} +đŸ–Ĩ Node: {{ .Labels.node }} +{{- end }} +{{- if .Labels.instance }} +đŸ–Ĩ Instance: {{ .Labels.instance }} +{{- end }} +{{- if .Labels.job }} +🔧 Job: {{ .Labels.job }} +{{- end }} +{{- if eq .Status "firing" }} +🕐 Since: {{ .StartsAt | date "2006-01-02 15:04 MST" }} +{{- else }} +🕐 Resolved: {{ .EndsAt | date "2006-01-02 15:04 MST" }} +{{- end }} +{{- end }} +{{- end }} \ No newline at end of file