Что происходит с метриками после их сбора в системе мониторинга?

«Что происходит с метриками после их сбора в системе мониторинга?» — вопрос из категории Мониторинг и логирование, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

После сбора метрики проходят через конвейер обработки данных. В моих проектах мы используем следующий пайплайн:

  1. Прием и буферизация – Метрики поступают через агенты (node_exporter, telegraf) или напрямую из приложений. Для надежности мы ставим буферы вроде StatsD или Telegraf, чтобы не потерять данные при сбое хранилища.

  2. Хранение в TSDB – Данные записываются в специализированную базу временных рядов. Я чаще всего работал с Prometheus и VictoriaMetrics. Prometheus отлично подходит для оперативного мониторинга, а VictoriaMetrics — для долгосрочного хранения больших объемов.

    # Пример scrape-конфига Prometheus для сбора метрик с приложения
    - job_name: 'myapp-api'
      metrics_path: '/metrics'
      static_configs:
        - targets: ['app:8080']
  3. Агрегация и downsampling – Сырые метрики высокого разрешения (например, каждую секунду) агрегируются (avg, sum, p99) и прореживаются для долгосрочных трендов. Это критично для экономии места. В VictoriaMetrics мы настраивали правила агрегации через -downsampling.period.

  4. Визуализация – Обработанные данные визуализируются в Grafana. Я создаю дашборды, которые показывают ключевые SLO: latency, error rate, traffic. Например, график 95-го перцентиля задержки ответа API.

  5. Алертинг – На основе метрик настраиваются правила в Prometheus Alertmanager. Я пишу алерты, которые срабатывают не на единичный выброс, а на устойчивое нарушение условия, например: rate(http_requests_total{status="500"}[5m]) > 0.01.

  6. Архивация – По истечении политики хранения (retention policy) старые данные либо удаляются, либо сжимаются и выгружаются в холодное хранилище (например, S3).