Skip to content

Модуль PrometheusRegistry

Фасад над внутренним классом CollectorRegistry и старыми коллекторами.

  • управляет реестром по умолчанию;
  • позволяет регистрировать/снимать регистрацию новых и старых коллекторов;
  • собирает метрики из всех коллекторов и возвращает массив семейств в промежуточном формате.

Реестр по умолчанию

Функция ПолучитьРеестрПоУмолчанию() Экспорт

Ленивая инициализация объекта CollectorRegistry:

  • при первом вызове создаёт Новый CollectorRegistry();
  • далее возвращает уже созданный экземпляр.

Используется модулем Prometheus и может использоваться напрямую, если нужно управлять регистрацией коллекторов.

Регистрация коллекторов

Функция Зарегистрировать(Коллектор) Экспорт

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

  • Если Коллекторструктура с полем Тип, то:
    • он считается старым коллектором;
    • добавляется в массив СтарыеКоллекторы;
    • возвращается Истина.
  • Иначе вызов делегируется в CollectorRegistry.Register(Коллектор) реестра по умолчанию.

Функция СнятьРегистрацию(Коллектор) Экспорт

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

  • для старых коллекторов — удаляет из массива СтарыеКоллекторы;
  • для обычных — вызывает CollectorRegistry.Unregister(Коллектор).

Возвращает Истина, если коллектор был снят, иначе Ложь.

Процедура ЗарегистрироватьОбязательно(Коллектор) Экспорт

Обёртка над Зарегистрировать:

  • вызывает Зарегистрировать(Коллектор);
  • при неуспехе выбрасывает исключение "Не удалось зарегистрировать коллектор метрик".

Полезно при инициализации критичных метрик, без которых приложение не должно продолжать работу.

Сбор метрик

Функция Собрать() Экспорт

Собирает метрики из:

  1. Реестра по умолчанию (CollectorRegistry.Gather()).
  2. Массивa СтарыеКоллекторы, если он не пуст:
    • для векторных коллекторов (Тип = *_vector) вызывает PrometheusVec.СобратьВектор;
    • для остальных — PrometheusMetrics.СобратьКоллектор;
    • результаты преобразует в семейства с помощью СформироватьСемействаИзСэмплов и добавляет к общему результату.

Возвращает массив семейств метрик:

  • каждое семейство — структура с полями Имя, Тип, Справка, Сэмплы;
  • структура соответствует промежуточному формату, описанному в спецификации библиотеки.