ОтелСэмплер
Модуль — стратегии семплирования.
Описание
Предоставляет встроенные стратегии семплирования спанов и функцию ДолженСэмплировать(). Семплер вызывается провайдером трассировки при создании каждого спана для принятия решения — записывать и экспортировать спан, только записывать, или отбросить.
Аналог Java SDK: Sampler + встроенные реализации.
Стратегии семплирования
ВсегдаВключен
Все спаны записываются и экспортируются.
Возвращает: Число
ВсегдаВыключен
Все спаны отбрасываются.
Возвращает: Число
ПоДолеТрассировок
Семплирует заданную долю трассировок. Решение принимается на основе trace-id.
Возвращает: Число
НаОсновеРодителя
Наследует решение о семплировании от родительского спана. Для корневых спанов применяет НоваяКорневаяСтратегия (по умолчанию — ВсегдаВключен).
Возвращает: Число
ВсегдаЗаписывать
Все спаны записываются, но не экспортируются (только локальное хранение).
Возвращает: Число
Константы решений семплирования
РешениеЗаписатьИЭкспортировать
Спан записывается в память и экспортируется в бэкенд.
Возвращает: Число
РешениеЗаписать
Спан записывается в память, но НЕ экспортируется.
Возвращает: Число
РешениеОтбросить
Спан не записывается и не экспортируется; возвращается незаписывающий объект.
Возвращает: Число
Служебные функции
Описание
Возвращает строковое описание конфигурации семплера (для логирования).
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Стратегия | Число | — | Стратегия из этого модуля |
Доля | Число | 1.0 | Доля для ПоДолеТрассировок |
КорневаяСтратегия | Число | Неопределено | Корневая стратегия для НаОсновеРодителя |
Возвращает: Строка
ДолженСэмплировать
Принимает решение о семплировании спана. Вызывается автоматически провайдером трассировки.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Стратегия | Число | — | Стратегия семплирования |
Доля | Число | — | Доля для ПоДолеТрассировок |
ИдТрассировки | Строка | — | Идентификатор трассировки (32 hex) |
РодительСэмплирован | Булево | — | Флаг семплирования родительского спана |
ЕстьРодитель | Булево | — | Есть ли родительский спан |
... | Произвольный | Неопределено | Дополнительные параметры для конкретных стратегий |
Возвращает: ОтелРезультатСэмплирования
Пример
// Семплировать 10% трассировок (родительские наследуют решение)
Провайдер = Новый ОтелПостроительПровайдераТрассировки()
.УстановитьСэмплер(
ОтелСэмплер.НаОсновеРодителя(),
1.0,
ОтелСэмплер.ПоДолеТрассировок() // корневая стратегия
)
// При построении передаётся доля для корневой стратегии
.Построить();