Anton Sidorov homepage

Bookmark this to keep an eye on my project updates!

Follow me on GitHub

Prometheus

Зачем

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

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

Типы метрик:

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

PromQL

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

Функции

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

Агрегации

  • Среднее арифмитическое значение
    • нельзя просто так брать среднее чего-то на неопределённом интервале и при этом не потерять ничего
  • Медиана – это «средний элемент», то есть буквально в середине массива (если его упорядочить). У медианы есть такая особенность: половина элементов массива больше либо равна ей, а другая половина элементов — меньше либо равна.
  • Перcентиль (Перцентиль Процентиль) - способ сжать историю наблюдений до одного числа, при этом по пути потерять неудобные для нас данные, чтобы не мешали смотреть на общую картину.
    • 95-й перcентиль — это такое число, что 95% элементов массива меньше или равны этому числу.
      • удобно использовать эту штуку, чтобы описать большинство элементов массива, при чем степень точности регулируется: 80%, 95%, 99%, 99.9%, Для чего бывает полезно описывать «большинство из массива»? Чтобы выбросить пики!
    • 95 перcентиль от времени обработки запросов = 5 секунд
      • То есть, большинство (95%) запросов мы обработали за 5 секунд или меньше. А остальные 5% обрабатывались дольше.
      • Можно еще посчитать 99-й Персентиль и сравнить с 95-м, тогда станет понятно, что большинство запросов укладываются в 5 секунд, а подавляющее большинство, скажем, в 6 секунд.
    • Синонимы
      • Квартиль это четверти: 25%, 50%, 75%, 100%. То есть бывает первый, второй третий и четвертый квартиль. И еще иногда используют нулевой.
      • Квантиль - это, условно, Персентиль без процентов. Используется в статистике, где бывает удобно указывать абсолютную вероятность, а не в процентах
      • Дециль — это 10%, 20% и т.д.
  • Кардинальность
  • min, max
  • Сэмплирование данных метрик определяет кол-во значений для агрегирования с учетом интервала времени (глубина запроса)

Deployment

  • HA : Thanos, Cortex или Mimir варианты