Skip to content

ОтелПредставление ​

Представление (View) — конфигурация агрегации и фильтрации для инструмента метрик.

Описание ​

ОтелПредставление позволяет переопределить имя, описание, атрибуты, границы гистограммы и тип агрегации для отдельных инструментов метрик — синхронных и асинхронных.

Регистрируется вместе с селектором инструментов методом ЗарегистрироватьПредставление(Селектор, Представление)ОтелПостроительПровайдераМетрик или ОтелПровайдерМетрик: селектор задаёт, к каким инструментам применяется View.

Правила применения:

  • каждый View, выбравший инструмент, даёт отдельный поток метрики у каждого читателя;
  • настройки View приоритетнее advisory-параметров инструмента: ГраницыГистограммы View приоритетнее advisory-границ, а агрегация explicit_bucket_histogram из View advisory-границы не использует; без РазрешенныеКлючиАтрибутов и ИсключенныеКлючиАтрибутов поток сохраняет все атрибуты;
  • аспекты, которые View не задал, берутся у читателя: агрегация и лимит мощности по умолчанию для вида инструмента;
  • View с семантической ошибкой (агрегация, несовместимая с видом инструмента, например гистограмма для асинхронного инструмента, или неизвестная агрегация) игнорируется целиком — как если бы его не было, в лог пишется предупреждение;
  • если View даёт двум потокам одного читателя одно имя (например, переименовывает инструмент в имя существующего), оба потока экспортируются, в лог пишется предупреждение о конфликте идентичности метрик;
  • View, зарегистрированный после создания инструмента, применяется к измерениям, записанным после регистрации.

Exemplars и отфильтрованные атрибуты. Атрибуты, исключённые представлением (РазрешенныеКлючиАтрибутов, ИсключенныеКлючиАтрибутов), всё равно могут экспортироваться в exemplars как filteredAttributes. Чтобы они не уходили в exemplars, выключите exemplars фильтром ОтелФильтрЭкземпляров.ВсегдаВыключен() (ОтелФильтрЭкземпляров, OTEL_METRICS_EXEMPLAR_FILTER=always_off) или передайте Новый ОтелФабрикаNoopРезервуаров() (ОтелФабрикаNoopРезервуаров) в параметр РезервуарЭкземпляров.

Конструктор ​

Все параметры опциональны.

ПараметрТипПо умолчаниюОписание
НовоеИмяСтрокаНеопределеноПереопределённое имя инструмента
НовоеОписаниеСтрокаНеопределеноПереопределённое описание
РазрешенныеКлючиАтрибутовМассивНеопределеноСписок разрешённых ключей атрибутов (см. Ключи атрибутов)
ГраницыГистограммыМассивНеопределеноЯвные границы бакетов гистограммы
АгрегацияОтелАгрегацияНеопределеноСтратегия агрегации
ИсключенныеКлючиАтрибутовМассивНеопределеноСписок исключённых ключей атрибутов (см. Ключи атрибутов)
РезервуарЭкземпляровФабрика резервуаровНеопределеноФабрика резервуаров exemplars потока — объект с методом СоздатьРезервуар(): резервуар создаётся на каждую серию. Готовые фабрики: ОтелФабрикаПростыхРезервуаров, ОтелФабрикаВыровненныхРезервуаровГистограммы, ОтелФабрикаNoopРезервуаров (отключает exemplars); свой резервуар — см. ОтелРезервуарЭкземпляров. Объект без СоздатьРезервуар() отклоняется с ошибкой в логе, используется резервуар по умолчанию
ЛимитМощностиАгрегацииЧислоНеопределеноЛимит cardinality

Ключи атрибутов ​

Ключ в списках РазрешенныеКлючиАтрибутов и ИсключенныеКлючиАтрибутов — точное значение или шаблон: ? — любой один символ, * — любое число любых символов, в том числе ни одного. Ключи сравниваются с учётом регистра, остальные символы шаблона, включая точку, — как есть. Например, http.* оставляет http.method и http.route, но не HTTP.method. Если ключ атрибута совпал с обоими списками, атрибут отбрасывается.

Методы ​

НовоеИмя ​

Возвращает: Строка, Неопределено


НовоеОписание ​

Возвращает: Строка, Неопределено


РазрешенныеКлючиАтрибутов ​

Возвращает: Массив, Неопределено


ИсключенныеКлючиАтрибутов ​

Возвращает: Массив, Неопределено


ГраницыГистограммы ​

Возвращает: Массив, Неопределено


Агрегация ​

Возвращает: ОтелАгрегация, Неопределено


РезервуарЭкземпляров ​

Возвращает: фабрика резервуаров или Неопределено


ЛимитМощностиАгрегации ​

Возвращает: Число, Неопределено

Пример ​

bsl
// Переименовать инструмент и задать границы гистограммы
Границы = Новый Массив();
Границы.Добавить(0.005);
Границы.Добавить(0.01);
Границы.Добавить(0.025);
Границы.Добавить(0.05);
Границы.Добавить(0.1);
Границы.Добавить(0.25);
Границы.Добавить(0.5);
Границы.Добавить(1);

Представление = Новый ОтелПредставление(
    "http_request_duration_seconds",    // НовоеИмя
    Неопределено,                       // НовоеОписание
    Неопределено,                       // РазрешенныеКлючиАтрибутов
    Границы);                           // ГраницыГистограммы

Селектор = Новый ОтелСелекторИнструментов("http.request.duration");
Построитель = Новый ОтелПостроительПровайдераМетрик();
Построитель.ЗарегистрироватьПредставление(Селектор, Представление);

См. также ​