Prometheus та Grafana
Посібник зі спостереження за Kept за допомогою Prometheus і Grafana. Самі метрики, перевірки стану, логи та трасування — на Моніторинг.
1. Увімкніть /metrics
Section titled “1. Увімкніть /metrics”Створіть токен у терміналі:
openssl rand -hex 32і вставте значення у .env поруч із compose.yaml:
KEPT_METRICS_TOKEN=<the value>.env читається як є, тому $(openssl …) там сприйматиметься буквально. Потім застосуйте його:
docker compose up -dCompose передає змінну до Kept. Без неї /metrics не існує. Перевірте, чи відповідає:
curl -H "Authorization: Bearer <the value>" http://localhost:8080/metricsУ Kubernetes покладіть KEPT_METRICS_TOKEN у Secret і назвіть його в metrics.tokenSecret чарта (Kubernetes).
2. Збирайте його
Section titled “2. Збирайте його”Збережіть токен у файлі, який може прочитати Prometheus, наприклад /etc/prometheus/kept-token, і додайте завдання:
scrape_configs: - job_name: kept metrics_path: /metrics authorization: type: Bearer credentials_file: /etc/prometheus/kept-token static_configs: - targets: ['kept:8080']kept:8080 — сервіс Kept у мережі Compose; з інших місць використовуйте адресу та порт, за якими Prometheus доходить до Kept. Перезавантажте Prometheus: сторінка цілей має показати kept як доступний.
3. За чим слідкувати
Section titled “3. За чим слідкувати”| Метрика | За чим слідкувати |
|---|---|
kept_process_uptime_seconds |
Повертається до малого числа при перезапуску процесу |
kept_process_resident_memory_bytes |
Зростання до ліміту пам’яті контейнера |
kept_db_pool_connections{state="waiting"} |
Понад 0 більше ніж хвилину: запити очікують на базу даних |
kept_backup_last_success_timestamp_seconds |
Старіше 36 годин (0 означає, що ще немає успішної резервної копії) |
kept_backup_last_run_status{status="failed"} |
1: останнє резервне копіювання не вдалося |
kept_disk_used_ratio{volume="data"} |
Понад 0.85 |
kept_update_available |
1: доступний новий реліз. Залишається 0, якщо перевірка оновлень не увімкнена (оновлення) |
Дані про резервні копії та диск надходять з перевірки раз на годину, тому можуть бути застарілими на годину.
4. Grafana
Section titled “4. Grafana”На інформаційній панелі кожен рядок — окрема панель:
- Статистика:
kept_build_info, за міткоюversion. - Часовий ряд:
kept_process_uptime_secondsіkept_process_resident_memory_bytes. - Часовий ряд:
kept_db_pool_connections, заpoolіstate. - Статистика:
time() - kept_backup_last_success_timestamp_seconds, вік резервної копії в секундах. - Статистика:
kept_backup_last_run_status, заstatus. - Шкала:
kept_disk_used_ratio{volume="data"}, від 0 до 1.
5. Сповіщення
Section titled “5. Сповіщення”groups: - name: kept rules: - alert: KeptDown expr: up{job="kept"} == 0 for: 2m labels: severity: critical annotations: summary: Kept is down
- alert: KeptBackupStale expr: >- kept_backup_last_success_timestamp_seconds > 0 and time() - kept_backup_last_success_timestamp_seconds > 36 * 3600 for: 5m labels: severity: warning annotations: summary: Kept's last good backup is more than 36 hours old
- alert: KeptBackupFailed expr: kept_backup_last_run_status{status="failed"} == 1 labels: severity: critical annotations: summary: Kept's last backup failed
- alert: KeptDiskFilling expr: kept_disk_used_ratio{volume="data"} > 0.85 for: 5m labels: severity: warning annotations: summary: Kept's data disk is over 85% full
- alert: KeptUpdateAvailable expr: kept_update_available == 1 for: 1h labels: severity: info annotations: summary: A new Kept release is available36 годин і 85% збігаються з власними адміністративними сповіщеннями Kept (спостереження за резервними копіями). > 0 не дає правилу про застарілу резервну копію спрацьовувати на Kept, який ще не робив першої резервної копії: метрика дорівнює 0 до тих пір.
Пов’язане
Section titled “Пов’язане”- Моніторинг: перевірки стану, метрики, логи, трасування та повідомлення про помилки.
- Резервні копії для увімкнення резервного копіювання.
- Усунення неполадок коли спрацьовує сповіщення.