Skip to content

Модуль PrometheusVec

Модуль для работы с векторами метрик — фабриками, которые порождают отдельные метрики с разными наборами лейблов.

Поддерживает типы:

  • counter_vector;
  • gauge_vector;
  • histogram_vector;
  • summary_vector.

Используется фасадом Prometheus и модулем PrometheusRegistry.

Векторы метрик

Каждый вектор хранит:

  • имя метрики и справку;
  • имена переменных лейблов (ИменаПеременныхЛейблов);
  • константные лейблы;
  • внутреннее хранилище с подметриками.

Вектор сам по себе является коллектором: может собирать свои подметрики в виде массива сэмплов.

Получение метрики по лейблам

API ориентировано на две формы задания лейблов:

  • массив значений (в том же порядке, что ИменаПеременныхЛейблов);
  • соответствие ИмяЛейбла → Значение.

На уровне фасада Prometheus для этого используются функции:

  • СчетчикСЛейблами;
  • ИндикаторСЛейблами;
  • ГистограммаСЛейблами;
  • РезюмеСЛейблами.

Они делегируют работу модулю PrometheusVec, который:

  1. ищет (или создаёт) подметрику с нужным набором лейблов;
  2. возвращает структуру конкретной метрики (counter, gauge, histogram, summary), с которой дальше можно работать через PrometheusMetrics или фасад Prometheus.

Сбор вектора

В модуле реализована процедура, используемая PrometheusRegistry:

  • СобратьВектор(Коллектор, РезультатСэмплов)

Она обходит все подметрики внутри вектора и дополняет массив РезультатСэмплов сэмплами в том же формате, что и PrometheusMetrics.СобратьКоллектор.

Эта процедура позволяет использовать векторы как полноправные коллекторы в реестре CollectorRegistry и в списке СтарыеКоллекторы.