Add dashboard UID auto-generation and Gitea CI workflow
This commit is contained in:
@ -0,0 +1,20 @@
|
||||
name: "Vmagent Persistent Queue Is Dropping Data"
|
||||
expression: |
|
||||
sum(increase(vm_persistentqueue_bytes_dropped_total{job=~".*agent.*"}[5m])) without (path) > 0
|
||||
threshold: 0
|
||||
for: "10m"
|
||||
condition_type: "gt"
|
||||
need_reduce: true
|
||||
reducer_type: "sum"
|
||||
no_data_state: "OK"
|
||||
exec_err_state: "KeepLast"
|
||||
labels:
|
||||
service: "vmagent"
|
||||
severity: "critical"
|
||||
status: "test"
|
||||
summary: |
|
||||
Инстанс {{ $labels.instance }} сбрасывает данные из переполненного буфера.
|
||||
description: |
|
||||
VMAgent-у на инстансе {{ $labels.instance }} пришлось сбросить данные из дискового буфера.
|
||||
|
||||
**Влияние: ПРОИСХОДИТ АКТИВНАЯ ПОТЕРЯ МЕТРИК!** Дисковый буфер переполнен, и vmagent удаляет старые данные, чтобы освободить место для новых.
|
||||
@ -0,0 +1,20 @@
|
||||
name: "VictoriaMetrics components down"
|
||||
expression: |
|
||||
up{job=~".*(agent|vminsert|vmselect|vmstorage|vmauth).*"} == 0
|
||||
threshold: 0
|
||||
for: "3m"
|
||||
condition_type: "eq"
|
||||
need_reduce: true
|
||||
reducer_type: "last"
|
||||
no_data_state: "OK"
|
||||
exec_err_state: "Error"
|
||||
labels:
|
||||
service: "vmcomponents"
|
||||
severity: "critical"
|
||||
status: "test"
|
||||
summary: |
|
||||
VictoriaMetrics компонент '{{ $labels.job }}' на инстансе {{ $labels.instance }} не отвечает.
|
||||
description: |
|
||||
Компонент VictoriaMetrics '{{ $labels.job }}' на инстансе {{ $labels.instance }} перестал отвечать на запросы.
|
||||
|
||||
**Влияние**: Это критический компонент инфраструктуры мониторинга. Его отказ может привести к потере метрик, неработающим дашбордам или остановке системы алертинга.
|
||||
@ -0,0 +1,20 @@
|
||||
name: "VictoriaMetrics Too Many Warning or Error Logs"
|
||||
expression: |
|
||||
sum(increase(vm_log_messages_total{level!="info", job=~".*(agent|vminsert|vmselect|vmstorage|vmauth).*"}[5m])) without (app_version, location, is_printed) > 35
|
||||
threshold: 40
|
||||
condition_type: "gt"
|
||||
for: "15m"
|
||||
need_reduce: true
|
||||
reducer_type: "last"
|
||||
no_data_state: "OK"
|
||||
exec_err_state: "Error"
|
||||
labels:
|
||||
service: "vmcomponents"
|
||||
severity: "warning"
|
||||
status: "test"
|
||||
summary: |
|
||||
Слишком много сообщений типа "error"/"warning" по {{ $labels.job }} от инстанса {{ $labels.instance }}.
|
||||
description: |
|
||||
Компонент '{{ $labels.job }}' (инстанс {{ $labels.instance }}) генерирует слишком много логов уровня 'warning' или 'error'.
|
||||
|
||||
**Влияние:** Это указывает на наличие скрытых проблем, которые могут привести к деградации производительности или будущим сбоям.
|
||||
@ -0,0 +1,28 @@
|
||||
name: "Высокая загрузка CPU"
|
||||
expression: |
|
||||
(
|
||||
1 - avg by (instance) (rate(node_cpu_seconds_total{job="self-monitoring", mode="idle"}[5m]))
|
||||
) * 100
|
||||
threshold: 90
|
||||
for: "5m"
|
||||
condition_type: "gt"
|
||||
need_reduce: true
|
||||
reducer_type: "max"
|
||||
no_data_state: "OK"
|
||||
exec_err_state: "Error"
|
||||
labels:
|
||||
service: "system"
|
||||
severity: "critical"
|
||||
status: "test"
|
||||
summary: |
|
||||
High CPU usage {{ printf "%.0f" $values.B.Value }}% on {{ $labels.instance }}
|
||||
description: |
|
||||
На {{ $labels.instance }} высокая загрузка CPU (более порога в течение заданного времени).
|
||||
Это сигнализирует о CPU-bound нагрузке, которая может повышать задержки и время ответа сервисов.
|
||||
|
||||
Что проверить:
|
||||
1) top/htop: какие процессы потребляют CPU
|
||||
2) mpstat -P ALL 1: распределение по ядрам и steal
|
||||
3) run queue/load average (uptime, vmstat)
|
||||
4) всплески трафика, cron/job-процессы, фоновые задачи
|
||||
5) ошибки и таймауты приложений в логах
|
||||
@ -0,0 +1,26 @@
|
||||
name: "Мало свободной памяти"
|
||||
expression: |
|
||||
(node_memory_MemAvailable_bytes{job="self-monitoring"} / node_memory_MemTotal_bytes{job="self-monitoring"}) * 100
|
||||
threshold: 5
|
||||
for: "5m"
|
||||
condition_type: "lt"
|
||||
need_reduce: true
|
||||
reducer_type: "min"
|
||||
no_data_state: "OK"
|
||||
exec_err_state: "Error"
|
||||
labels:
|
||||
service: "system"
|
||||
severity: "critical"
|
||||
status: "test"
|
||||
summary: |
|
||||
Low free memory {{ printf "%.0f" $values.B.Value }}% on {{ $labels.instance }}
|
||||
description: |
|
||||
На {{ $labels.instance }} осталось очень мало доступной памяти.
|
||||
Это сигнализирует о memory pressure, риске OOM kill и деградации производительности.
|
||||
|
||||
Что проверить:
|
||||
1) free -h, vmstat 1, swapon -s
|
||||
2) top/htop: процессы-лидеры по RSS/heap
|
||||
3) OOM события в dmesg/journalctl
|
||||
4) major page faults и IO wait (связанные алерты)
|
||||
5) лимиты/requests (для k8s) и необходимость увеличения RAM
|
||||
@ -0,0 +1,26 @@
|
||||
name: "Обнаружена перезагрузка сервера"
|
||||
expression: |
|
||||
changes(node_boot_time_seconds{job="self-monitoring"}[5m]) > bool 0
|
||||
threshold: 0
|
||||
for: "5m"
|
||||
condition_type: "gt"
|
||||
need_reduce: true
|
||||
reducer_type: "max"
|
||||
no_data_state: "OK"
|
||||
exec_err_state: "Error"
|
||||
labels:
|
||||
service: "system"
|
||||
severity: "warning"
|
||||
status: "test"
|
||||
summary: |
|
||||
Reboot detected on {{ $labels.instance }}
|
||||
description: |
|
||||
На {{ $labels.instance }} обнаружен недавний перезапуск.
|
||||
Это сигнализирует о возможном аварийном рестарте, плановых работах или проблемах питания/ядра.
|
||||
|
||||
Что проверить:
|
||||
1) last reboot и uptime
|
||||
2) journalctl -b -1 и kernel-логи до перезапуска
|
||||
3) причины: OOM, kernel panic, watchdog, обновления
|
||||
4) состояние сервисов после рестарта
|
||||
5) повторяемость события и корреляцию с другими алертами
|
||||
Reference in New Issue
Block a user