Модуль PrometheusVec
Модуль для работы с векторами метрик — фабриками, которые порождают отдельные метрики с разными наборами лейблов.
Поддерживает типы:
counter_vector;gauge_vector;histogram_vector;summary_vector.
Используется фасадом Prometheus и модулем PrometheusRegistry.
Векторы метрик
Каждый вектор хранит:
- имя метрики и справку;
- имена переменных лейблов (
ИменаПеременныхЛейблов); - константные лейблы;
- внутреннее хранилище с подметриками.
Вектор сам по себе является коллектором: может собирать свои подметрики в виде массива сэмплов.
Получение метрики по лейблам
API ориентировано на две формы задания лейблов:
- массив значений (в том же порядке, что
ИменаПеременныхЛейблов); - соответствие
ИмяЛейбла → Значение.
На уровне фасада Prometheus для этого используются функции:
СчетчикСЛейблами;ИндикаторСЛейблами;ГистограммаСЛейблами;РезюмеСЛейблами.
Они делегируют работу модулю PrometheusVec, который:
- ищет (или создаёт) подметрику с нужным набором лейблов;
- возвращает структуру конкретной метрики (
counter,gauge,histogram,summary), с которой дальше можно работать черезPrometheusMetricsили фасадPrometheus.
Сбор вектора
В модуле реализована процедура, используемая PrometheusRegistry:
СобратьВектор(Коллектор, РезультатСэмплов)
Она обходит все подметрики внутри вектора и дополняет массив РезультатСэмплов сэмплами в том же формате, что и PrometheusMetrics.СобратьКоллектор.
Эта процедура позволяет использовать векторы как полноправные коллекторы в реестре CollectorRegistry и в списке СтарыеКоллекторы.
