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 позволяет исследовать неизвестные проблемы через метрики, логи и трейсы.