← Назад к вопросам

Что можно мониторить

1.0 Junior🔥 171 комментариев
#Мониторинг и логирование

Комментарии (1)

🐱
deepseek-v3.2PrepBro AI6 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Полный обзор объектов мониторинга в DevOps

Мониторинг в современной DevOps-практике охрывает все уровни стека технологий — от физической инфраструктуры до бизнес-показателей. Основная цель — обеспечение observability (наблюдаемости) системы, что включает не только сбор метрик, но и логи, трейсы и возможность задавать произвольные вопросы о состоянии системы.

Уровень инфраструктуры

На этом уровне отслеживается состояние физических и виртуальных ресурсов:

  • Вычислительные ресурсы: CPU (утилизация, load average, steal time для виртуальных машин), память (использование, swap, page faults), диск (использование пространства, IOPS, latency, throughput)
  • Сеть: доступность хостов и портов, bandwidth, packet loss, latency, состояние сетевых интерфейсов, TCP-статистика
  • Контейнерная оркестрация: для Kubernetes мониторим состояние нод, подов, репликасетов, деплойментов, потребление ресурсов контейнерами, события кластера

Пример мониторинга CPU в Prometheus через Node Exporter:

# Загрузка CPU за 5 минут
100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)

# Memory usage
(node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes) / node_memory_MemTotal_bytes * 100

Уровень приложений

Здесь фокус на бизнес-логике и пользовательском опыте:

  • Метрики приложения: количество запросов, ошибок, latency (p50, p95, p99), таймауты, бизнес-события (регистрации, покупки, etc.)
  • Логи приложений: структурированные логи с уровнем серьезности, контекстом запросов (request_id, user_id)
  • Трассировка распределенных систем (Distributed Tracing): отслеживание пути запроса через микросервисы с помощью OpenTelemetry, Jaeger или Zipkin
  • Настройки зависимостей: здоровье и производительность баз данных, кэшей, очередей сообщений, внешних API

Пример мониторинга веб-приложения:

# Пример экспорта метрик для Python-приложения
from prometheus_client import Counter, Histogram, generate_latest

REQUEST_COUNT = Counter('http_requests_total', 'Total HTTP requests', ['method', 'endpoint', 'status'])
REQUEST_LATENCY = Histogram('http_request_duration_seconds', 'HTTP request latency', ['method', 'endpoint'])

@app.route('/api/users')
def get_users():
    start_time = time.time()
    # business logic
    duration = time.time() - start_time
    REQUEST_LATENCY.labels(method='GET', endpoint='/api/users').observe(duration)
    REQUEST_COUNT.labels(method='GET', endpoint='/api/users', status='200').inc()

Уровень бизнес-логики и пользовательского опыта

Этот уровень связывает технические метрики с бизнес-результатами:

  • Ключевые бизнес-показатели: конверсия, отток пользователей, доход на пользователя
  • Пользовательский опыт: Core Web Vitals (LCP, FID, CLS), время загрузки страниц, успешность транзакций
  • Synthetic monitoring: симуляция пользовательских сценариев из разных точек мира
  • Real User Monitoring (RUM): сбор данных о реальном взаимодействии пользователей с приложением

Базы данных и хранилища

  • Производительность запросов: медленные запросы, количество соединений, hit ratio кэшей
  • Ресурсы СУБД: использование табличных пространств, рост данных, блокировки
  • Репликация: лаг репликации, статус реплик, переключения при failover

Показатели доступности и надежности

  • Service Level Indicators (SLI): ключевые метрики, характеризующие качество сервиса
  • Service Level Objectives (SLO): целевые значения для SLI
  • Service Level Agreements (SLA): договорные обязательства по доступности
  • Error Budget: допустимый объем времени, когда сервис не соответствует SLO

Безопасность

  • Аномальная активность: подозрительные логины, необычные паттерны запросов
  • Соответствие политикам: несанкционированные изменения конфигураций
  • Уязвимости: мониторинг известных уязвимостей в зависимостях

Автоматизация и оркестрация

  • CI/CD пайплайны: длительность сборок, успешность/провалы деплоев, время восстановления
  • Конфигурация как код: дрифт конфигураций, несанкционированные изменения
  • Состояние инфраструктуры: compliance с политиками безопасности и лучшими практиками

Ключевые принципы эффективного мониторинга

  1. Многоуровневость — от hardware до business metrics
  2. Прогрессивное детализирование — от общего дашборда до глубокой диагностики
  3. Акцент на SLO/SLA — мониторить то, что важно для пользователей
  4. Автоматизация реагирования — alerts должны вести к действиям
  5. Контекстуализация данных — метрики + логи + трейсы для полной картины
  6. Пропорциональность — избегать alert fatigue, настраивать разумные пороги

Современный подход к мониторингу эволюционировал от простого сбора метрик к комплексной observability, где система позволяет не только видеть известные проблемы, но и исследовать неизвестные, задавая произвольные вопросы о поведении системы в реальном времени. Инструменты типа Prometheus, Grafana, ELK Stack, Jaeger и OpenTelemetry стали стандартами индустрии для реализации этих практик.