You are on page 1of 39

Моніторинг метрик доступності

за допомогою Prometheus
Blackbox Exporter”
інфа про кваркс
інфа і фото Андрія
Навіщо щось моніторити?

- щоб побачити що щось пішло не так


- швидше знаходити причину проблеми
- post-mortem
- бачити що змінилось з часом
- збирати метрики і використовувати в інших
системах та процесах
Етапи моніторингу

- Збір
- Обробка
- Аналіз
- Представлення
- оповіщення
Prometheus

багатовимірна модель даних із даними часових рядів, ідентифікованих назвою метрики та парами
ключ/значення
Prometheus

- Написаний на golang
- opensource
- Стандарт для роботи з метриками
Prometheus
Prometheus
Модель даних Prometheus

- Дані в Prometheus зберігаються як ключ-значення, де ключ -


це назва метрики, а значення її показник (завжди числовий)
- На кожну пару ключ-значення можна навішати лейбл, для
подальшої роботи з даними - фільтрування, агрегації тощо
Модель даних Prometheus

Приклади лейблів:
- Дата центр, регіон
- Середовище ( Prod , Stage)
- Сервіс, додаток, модуль
- URL, тип запиту, статус, код помилки

Лейбли не варто використовувати для


високоселективних даних
Модель даних Prometheus
Vectors
Vectors
Vectors
Типи метрик

- Counter
- Gauge
- Histogram
- Summary
Counter

для відображення величин що можуть тільки збільшуватись


або обнулятись

Частіше за все використовується для:


● кількість запитів
● кількість помилок
● кількість завершених тасок
● кількість рестартів
Counter
Counter
Gauge

- для відображення величин що можуть зменшуватись

Частіше за все використовується для:


● скільки використовується пам”яті чи CPU
● скільки повідомлень у черзі
Gauge
Gauge
Histogram

- для розрахунку відносного


виміру величин які
потрапляють у різні
інтервали

Частіше за все
використовується для
відображення розподілу
величин метрик
Histogram
Histogram
Histogram
Summary

- дуже схоже на гістограми,


але не має попередньо
визначених квантелів, за
рахунок чого є більш
точними
Summary
Counter Gauge Histogram Summary

Загальне
Може збільшуватись або зменшуватись ✗ ✓ ✓ ✓

Є складеним типом (декілька значень на метрику) ✗ ✗ ✓ ✓


Є приблизним ✗ ✗ ✓ ✓

Використання

Використовуватись з rate функцією ✓ ✗ ✗ ✗

Може розраховувати перцентелі ✗ ✗ ✓ ✓


Використовуватись з histogram_quantile функцією ✗ ✗ ✓ ✗
Grafana
PromQL
PromQL
PromQL
PromQL
PromQL
PromQL
Blackbox monitoring
- моніторинг сервісу ззовні
- абстрагуємося від внутрішньої реалізації
- примітивний smoke-test
Blackbox exporter
Дозволяє збирати декілька метрик, що стосуються працездатності ендпоінтів по протоколам HTTP, HTTPS, DNS, ICMP, TCP,
gRPC.
Blackbox Exporter
Назва метрики Значення

probe_duration_seconds Як довго виконувалась проба в секунда

probe_http_status_code HTTP статус код

probe_http_version Версія HTTP відповіді на пробу

probe_success Чи була проба успішною

probe_dns_lookup_time_seconds Повертає час DNS lookup при запиті проби в секундах

probe_ip_protocol Протокол проби був IP4 або IP6

probe_ssl_earliest_cert_expiry metric Повертає найраніший час закінчення SSL сертифікату в


unixtime

probe_tls_version_info Яка версія TLS була використана

probe_failed_due_to_regex Показує чи проба була завейлена через regex

probe_http_content_length Довжина HTTP відповіді

You might also like