Skip to content

Класс CollectorRegistry

Реестр коллекторов Prometheus.

Коллектор может быть:

  • структурой метрики с полем Тип (counter, gauge, histogram, summary, *_vector) — сбор через PrometheusMetrics / PrometheusVec внутри Gather();
  • объектом с методом Collect(), возвращающим массив семейств в промежуточном формате (Имя, Тип, Справка, Сэмплы).

Жизненный цикл

При создании:

  • инициализирует внутренний массив Коллекторы (список зарегистрированных коллекторов).

Обычно используется через модуль PrometheusRegistry, но может создаваться и использоваться вручную, если нужно несколько независимых реестров.

Методы

Функция Register(Коллектор) Экспорт

Регистрирует коллектор в реестре.

Параметры:

  • Коллектор — структура метрики (поле Тип) или объект с методом Collect().

Возвращаемое значение:

  • БулевоИстина (реестр не делает сложной валидации, но может быть расширен в будущем).

Функция Unregister(Коллектор) Экспорт

Снимает регистрацию коллектора.

Параметры:

  • Коллектор — ранее зарегистрированный объект.

Возвращаемое значение:

  • БулевоИстина, если коллектор найден и удалён;
  • Ложь, если такого коллектора в реестре нет.

Функция Gather() Экспорт

Собирает метрики со всех зарегистрированных коллекторов.

Алгоритм:

  1. Создаёт пустой массив ВсеСемейства.
  2. Для каждого элемента из Коллекторы:
    • если это структура с полем Тип — собирает сэмплы через PrometheusMetrics.СобратьКоллектор или PrometheusVec.СобратьВектор и группирует их в семейства;
    • иначе вызывает Коллектор.Collect() и добавляет возвращённые семейства;
    • каждое семейство попадает в ВсеСемейства.
  3. Возвращает ВсеСемейства.

Результат — массив семейств для PrometheusTextFormat.Сериализовать или модуля Prometheus при сборе.