Обнаружение пропавшей цели через absent prometheus
срабатывает, когда нет ни одной серии; ловит job, полностью исчезнувший из discovery
absent(up{job="node"} == 1)
more prometheus
all 30 commands →
Переписать метку через label_replace
label_replace(node_uname_info, "host", "$1", "nodename", "(.+)")
Максимум посекундного rate за окно
max_over_time(rate(node_network_receive_bytes_total[5m])[1h:1m])
Агрегация с сохранением всех меток кроме instance
sum without(instance) (rate(http_requests_total{code=~"5.."}[5m]))
Recording rule для дорогого отношения
groups:
- name: slo
rules:
- record: job:request_errors:ratio5m
expr: sum by(job)(rate(http_requests_total{code=~"5.."}[5m])) / sum by(job)(rate(http_requests_total[5m]))
Проверка правил и конфига через promtool
promtool check rules rules.yml && promtool check config prometheus.yml