ОтелМетр
Метр (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-параметры |
Возвращает: ОтелНаблюдаемыйДатчик
Пример
Метр = Провайдер.ПолучитьМетр("мой-сервис", "1.0.0");
// Синхронные инструменты
Счетчик = Метр.СоздатьСчетчик("http.requests.total", "Всего HTTP-запросов", "{запросов}");
Гистограмма = Метр.СоздатьГистограмму("http.request.duration", "Длительность запроса", "s");
Датчик = Метр.СоздатьДатчик("system.memory.usage", "Использование памяти", "By");
// Наблюдаемый инструмент с callback
ОбратныйВызов = Новый Действие(ЭтотОбъект, "МойCallback");
НаблюдаемыйДатчик = Метр.СоздатьНаблюдаемыйДатчик(
"queue.size", "Размер очереди", "{элементов}", ОбратныйВызов);