Anton Sidorov homepage

Bookmark this to keep an eye on my project updates!

Follow me on GitHub

Prometheus

Зачем

Технология для хранилищ данных.

arch

  • сбор метрик по pull модели
  • Prometeus Client JS
  • это база данных временных рядов
  • хранит метрики, агрегированные за период времени
  • Alerts отправляет в AlertManager
    • Группировка
    • Приостановка уведомлений пока исправляется
  • PromQL schema
  • PushGateway для сбора метрик от периодических процессов (cron jobs например) по push модели

Плюсы-минусы

Плюсы

  • Простая установка (один файл)

Минусы

  • Не расчитан на длительное хранение, как например VictoriaMetrics)
  • Высокий порог входа

Модель данных

  • Инструментирование — это еще одна важная часть Prometheus. Вы инструментируете приложения, прежде чем извлекать из них данные.
  • Prometheus предлагает экспортеры, с помощью которых можно мониторить целевые объекты.
  • Метрика — это временной ряд, то есть набор значений во времени. Виды, методики по метрикам.
    • примеры: Кол-во задач, Кол-во запросов
  • набор лейблов (теги) key-value
    • примеры
      • instance
      • evn
      • job
  • значение метрики data model

Типы метрик:

  • Счетчик Count - счетчик может только увеличивать или обнулять число
    • Примеры
      • Кол-во задач в состоянии Завершена\Кол-во задач в состоянии В очереди
      • Кол-во запросов
      • Кол-во ошибок
  • Измерители Gauge - со временем могут уменьшаться
    • Примеры
      • количество обрабатываемых запросов прямо сейчас
      • занятая память
      • свободное место на диске
  • Гистограмма Histogram - агрегация чего-то самим приложением, когда нам интересно знать распределение величин по заранее определенным группам (buckets)
  • Сводки Summary - результат агрегации гистограммы. Она выдает сразу квантили, можно сказать, количественное распределение, когда мы заранее не можем определить бакеты.

PromQL

Два вида векторов:

Функции

  • sum — оператор агрегации, который суммирует значения по группе элементов. Используется для получения общей суммы значений для всех подходящих временных рядов
  • rate — используется для вычисления средней скорости изменения для временных рядов в указанный промежуток времени, как часто определенное событие происходит в течении определенного времени
  • histogram_quantile — ищет значение, которое не превышает определенный процент всех запросов. Интерпретировать можно так: «N% всех запросов обрабатывается быстрее, чем это значение»
  • increase -

Deployment

  • масштабируется за счет федерации (кластеризации нет)
  • HA : Thanos, Cortex или Mimir варианты