Так как у меня ужасное время настраивать правила предупреждений для Prometheus Alertmanager, возможно, кто-нибудь подскажет мне правильное направление.
Вот правила, которые я сейчас пытаюсь реализовать (взяты прямо из: https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/)
rules.yml:
groups:
- name: example
rules:
# Alert for any instance that is unreachable for >5 minutes.
- alert: InstanceDown
expr: up == 0
for: 5m
labels:
severity: page
annotations:
summary: "Instance {{ $labels.instance }} down"
description: "{{ $labels.instance }} of job {{ $labels.job }} has been down for more than 5 minutes."
# Alert for any instance that has a median request latency >1s.
- alert: APIHighRequestLatency
expr: api_http_request_latencies_second{quantile="0.5"} > 1
for: 10m
annotations:
summary: "High request latency on {{ $labels.instance }}"
description: "{{ $labels.instance }} has a median request latency above 1s (current value: {{ $value }}s)"
с проверкой конфигурации amtool и promtool я получаю следующую ошибку:
Checking '/etc/prometheus/rules.yml' FAILED: yaml: unmarshal errors:
line 1: field groups not found in type config.plain
amtool: error: failed to validate 1 file(s)
Мое первое предположение было бы неправильным отступом или какой-то другой ошибкой синтаксиса yaml. Однако я пробовал использовать несколько правил предупреждений, а также разные файлы и редакторы (в настоящее время я использую nano). Yaml также был проверен с помощью нескольких линтеров yaml. Но пока что у меня всегда были ошибки в строке показанной.
Любая помощь или предложение приветствуются!
prometheus, version 2.22.2 (branch: HEAD, revision: de1c1243f4dd66fbac3e8213e9a7bd8dbc9f38b2)
go version: go1.15.5
platform: linux/amd64
alertmanager, version 0.21.0 (branch: HEAD, revision: 4c6c03ebfe21009c546e4d1e9b92c371d67c021d)
go version: go1.14.4
линтеры yaml:
https://codebeautify.org/yaml-validator
https://onlineyamltools.com/validate-yaml
проверенные правила оповещения:
https://onlineyamltools.com/validate-yaml
https://rakeshjain-devops.medium.com/prometheus-alerting-most-common-alert-rules-e9e219d4e949.
https://github.com/vegasbrianc/prometheus/blob/master/prometheus/alert.rules