Класс CollectorRegistry
Реестр коллекторов Prometheus.
Коллектор может быть:
- структурой метрики с полем
Тип(counter,gauge,histogram,summary,*_vector) — сбор черезPrometheusMetrics/PrometheusVecвнутриGather(); - объектом с методом
Collect(), возвращающим массив семейств в промежуточном формате (Имя,Тип,Справка,Сэмплы).
Жизненный цикл
При создании:
- инициализирует внутренний массив
Коллекторы(список зарегистрированных коллекторов).
Обычно используется через модуль PrometheusRegistry, но может создаваться и использоваться вручную, если нужно несколько независимых реестров.
Методы
Функция Register(Коллектор) Экспорт
Регистрирует коллектор в реестре.
Параметры:
Коллектор— структура метрики (полеТип) или объект с методомCollect().
Возвращаемое значение:
Булево—Истина(реестр не делает сложной валидации, но может быть расширен в будущем).
Функция Unregister(Коллектор) Экспорт
Снимает регистрацию коллектора.
Параметры:
Коллектор— ранее зарегистрированный объект.
Возвращаемое значение:
Булево—Истина, если коллектор найден и удалён;Ложь, если такого коллектора в реестре нет.
Функция Gather() Экспорт
Собирает метрики со всех зарегистрированных коллекторов.
Алгоритм:
- Создаёт пустой массив
ВсеСемейства. - Для каждого элемента из
Коллекторы:- если это структура с полем
Тип— собирает сэмплы черезPrometheusMetrics.СобратьКоллекторилиPrometheusVec.СобратьВектори группирует их в семейства; - иначе вызывает
Коллектор.Collect()и добавляет возвращённые семейства; - каждое семейство попадает в
ВсеСемейства.
- если это структура с полем
- Возвращает
ВсеСемейства.
Результат — массив семейств для PrometheusTextFormat.Сериализовать или модуля Prometheus при сборе.
