Monitoring (Мониторинг)
Мониторинг — это непрерывный сбор данных о состоянии сервисов, инфраструктуры и приложений для выявления инцидентов, контроля доступности и производительности. В SRE мониторинг является основой для создания эффективной системы алертинга.
Основные компоненты мониторинга
- Сбор метрик — агенты и SDK для получения данных
- Хранение — time-series базы данных
- Визуализация — дашборды и графики
- Алертинг — уведомления о проблемах
Типы мониторинга
- Infrastructure Monitoring — мониторинг серверов, сети, дисков
- Application Monitoring — производительность приложений
- Business Monitoring — бизнес-метрики и KPI
- User Experience Monitoring — мониторинг опыта пользователей
Популярные инструменты мониторинга
1# Пример настройки мониторинга с Prometheus
2from prometheus_client import Counter, Histogram, Gauge, start_http_server
3import time
4import random
5
6# Создание метрик
7REQUEST_COUNT = Counter('http_requests_total', 'Total HTTP requests', ['method', 'endpoint'])
8REQUEST_LATENCY = Histogram('http_request_duration_seconds', 'HTTP request latency')
9ACTIVE_USERS = Gauge('active_users_count', 'Number of active users')
10
11class MonitoringExample:
12 def __init__(self):
13 # Запуск HTTP сервера для метрик
14 start_http_server(8000)
15
16 def handle_request(self, method, endpoint):
17 """Обработка запроса с записью метрик"""
18 start_time = time.time()
19
20 # Увеличиваем счетчик запросов
21 REQUEST_COUNT.labels(method=method, endpoint=endpoint).inc()
22
23 # Симуляция обработки запроса
24 processing_time = random.uniform(0.1, 0.5)
25 time.sleep(processing_time)
26
27 # Записываем время обработки
28 REQUEST_LATENCY.observe(time.time() - start_time)
29
30 def update_active_users(self, count):
31 """Обновление количества активных пользователей"""
32 ACTIVE_USERS.set(count)
33
34# Установка через pip
35pip install prometheus-client grafana-api
36
37# Установка через poetry
38poetry add prometheus-client grafana-api
Четыре золотых сигнала мониторинга
- Latency — время отклика системы
- Traffic — нагрузка на систему
- Errors — количество и процент ошибок
- Saturation — использование ресурсов
FAQ
Что входит в мониторинг?
Мониторинг включает сбор метрик, создание алертов, дашборды для визуализации и интеграцию с системами observability для комплексного контроля.
В чем разница между мониторингом и observability?
Мониторинг отслеживает известные проблемы, а observability позволяет исследовать неизвестные проблемы через метрики, логи и трейсы.