Модуль PrometheusRegistry
Фасад над внутренним классом CollectorRegistry и старыми коллекторами.
- управляет реестром по умолчанию;
- позволяет регистрировать/снимать регистрацию новых и старых коллекторов;
- собирает метрики из всех коллекторов и возвращает массив семейств в промежуточном формате.
Реестр по умолчанию
Функция ПолучитьРеестрПоУмолчанию() Экспорт
Ленивая инициализация объекта CollectorRegistry:
- при первом вызове создаёт
Новый CollectorRegistry(); - далее возвращает уже созданный экземпляр.
Используется модулем Prometheus и может использоваться напрямую, если нужно управлять регистрацией коллекторов.
Регистрация коллекторов
Функция Зарегистрировать(Коллектор) Экспорт
Регистрирует коллектор в системе метрик.
- Если
Коллектор— структура с полемТип, то:- он считается старым коллектором;
- добавляется в массив
СтарыеКоллекторы; - возвращается
Истина.
- Иначе вызов делегируется в
CollectorRegistry.Register(Коллектор)реестра по умолчанию.
Функция СнятьРегистрацию(Коллектор) Экспорт
Снимает регистрацию коллектора:
- для старых коллекторов — удаляет из массива
СтарыеКоллекторы; - для обычных — вызывает
CollectorRegistry.Unregister(Коллектор).
Возвращает Истина, если коллектор был снят, иначе Ложь.
Процедура ЗарегистрироватьОбязательно(Коллектор) Экспорт
Обёртка над Зарегистрировать:
- вызывает
Зарегистрировать(Коллектор); - при неуспехе выбрасывает исключение
"Не удалось зарегистрировать коллектор метрик".
Полезно при инициализации критичных метрик, без которых приложение не должно продолжать работу.
Сбор метрик
Функция Собрать() Экспорт
Собирает метрики из:
- Реестра по умолчанию (
CollectorRegistry.Gather()). - Массивa
СтарыеКоллекторы, если он не пуст:- для векторных коллекторов (
Тип=*_vector) вызываетPrometheusVec.СобратьВектор; - для остальных —
PrometheusMetrics.СобратьКоллектор; - результаты преобразует в семейства с помощью
СформироватьСемействаИзСэмплови добавляет к общему результату.
- для векторных коллекторов (
Возвращает массив семейств метрик:
- каждое семейство — структура с полями
Имя,Тип,Справка,Сэмплы; - структура соответствует промежуточному формату, описанному в спецификации библиотеки.
