Skip to content

ОтелМетр

Метр (Meter) — фабрика метрических инструментов.

Описание

ОтелМетр создаёт и возвращает инструменты для записи метрик: счётчики, датчики, гистограммы и наблюдаемые инструменты. Инструменты кэшируются по нормализованному имени.

При повторной регистрации с тем же именем возвращается уже существующий инструмент. Конфликт типов или единиц измерения логируется как предупреждение.

Все публичные методы потокобезопасны.

Имя инструмента должно соответствовать паттерну [A-Za-z][A-Za-z0-9_./-]{0,254}.

Методы

СоздатьСчетчик

Создаёт монотонный счётчик (ОтелСчетчик) — принимает только неотрицательные значения.

ПараметрТипПо умолчаниюОписание
ИмяСтрокаИмя счётчика
ОписаниеСтрока""Описание
ЕдиницаИзмеренияСтрока""Единица измерения
СоветСтруктура, НеопределеноНеопределеноAdvisory-параметры

Возвращает: ОтелСчетчик


СоздатьРеверсивныйСчетчик

Создаёт реверсивный счётчик (ОтелРеверсивныйСчетчик) — принимает любые значения, включая отрицательные (UpDownCounter).

ПараметрТипПо умолчаниюОписание
ИмяСтрокаИмя счётчика
ОписаниеСтрока""Описание
ЕдиницаИзмеренияСтрока""Единица измерения
СоветСтруктура, НеопределеноНеопределеноAdvisory-параметры

Возвращает: ОтелРеверсивныйСчетчик


СоздатьДатчик

Создаёт датчик (ОтелДатчик) — записывает мгновенное значение, перезаписывая предыдущее (Gauge).

ПараметрТипПо умолчаниюОписание
ИмяСтрокаИмя датчика
ОписаниеСтрока""Описание
ЕдиницаИзмеренияСтрока""Единица измерения
СоветСтруктура, НеопределеноНеопределеноAdvisory-параметры

Возвращает: ОтелДатчик


СоздатьГистограмму

Создаёт гистограмму (ОтелГистограмма) — агрегирует значения по бакетам (Histogram).

ПараметрТипПо умолчаниюОписание
ИмяСтрокаИмя гистограммы
ОписаниеСтрока""Описание
ЕдиницаИзмеренияСтрока""Единица измерения
СоветСтруктура, НеопределеноНеопределеноAdvisory-параметры (может содержать ExplicitBucketBoundaries)

Возвращает: ОтелГистограмма


СоздатьЭкспоненциальнуюГистограмму

Создаёт экспоненциальную гистограмму (ОтелЭкспоненциальнаяГистограмма) — гистограмму с логарифмическими бакетами.

ПараметрТипПо умолчаниюОписание
ИмяСтрокаИмя гистограммы
ОписаниеСтрока""Описание
ЕдиницаИзмеренияСтрока""Единица измерения
СоветСтруктура, НеопределеноНеопределеноAdvisory-параметры

Возвращает: ОтелЭкспоненциальнаяГистограмма


СоздатьНаблюдаемыйСчетчик

Создаёт наблюдаемый счётчик (ОтелНаблюдаемыйСчетчик). Значения собираются через callback при каждом сборе метрик.

ПараметрТипПо умолчаниюОписание
ИмяСтрокаИмя инструмента
ОписаниеСтрока""Описание
ЕдиницаИзмеренияСтрока""Единица измерения
ДействиеДействие, НеопределеноНеопределеноCallback для сбора значений
СоветСтруктура, НеопределеноНеопределеноAdvisory-параметры

Возвращает: ОтелНаблюдаемыйСчетчик


СоздатьНаблюдаемыйРеверсивныйСчетчик

Создаёт наблюдаемый реверсивный счётчик (ОтелНаблюдаемыйРеверсивныйСчетчик).

ПараметрТипПо умолчаниюОписание
ИмяСтрокаИмя инструмента
ОписаниеСтрока""Описание
ЕдиницаИзмеренияСтрока""Единица измерения
ДействиеДействие, НеопределеноНеопределеноCallback для сбора значений
СоветСтруктура, НеопределеноНеопределеноAdvisory-параметры

Возвращает: ОтелНаблюдаемыйРеверсивныйСчетчик


СоздатьНаблюдаемыйДатчик

Создаёт наблюдаемый датчик (ОтелНаблюдаемыйДатчик).

ПараметрТипПо умолчаниюОписание
ИмяСтрокаИмя инструмента
ОписаниеСтрока""Описание
ЕдиницаИзмеренияСтрока""Единица измерения
ДействиеДействие, НеопределеноНеопределеноCallback для сбора значений
СоветСтруктура, НеопределеноНеопределеноAdvisory-параметры

Возвращает: ОтелНаблюдаемыйДатчик

Пример

bsl
Метр = Провайдер.ПолучитьМетр("мой-сервис", "1.0.0");

// Синхронные инструменты
Счетчик = Метр.СоздатьСчетчик("http.requests.total", "Всего HTTP-запросов", "{запросов}");
Гистограмма = Метр.СоздатьГистограмму("http.request.duration", "Длительность запроса", "s");
Датчик = Метр.СоздатьДатчик("system.memory.usage", "Использование памяти", "By");

// Наблюдаемый инструмент с callback
ОбратныйВызов = Новый Действие(ЭтотОбъект, "МойCallback");
НаблюдаемыйДатчик = Метр.СоздатьНаблюдаемыйДатчик(
    "queue.size", "Размер очереди", "{элементов}", ОбратныйВызов);