Публичный интерфейс библиотеки opentelemetry
Ядро
- ОтелSdk — главный класс SDK, единая точка входа в телеметрию
- ОтелАтрибуты — хранилище пар ключ-значение для телеметрии
- ОтелРесурс — описание сущности, производящей телеметрию
- ОтелBaggage — передача контекстных данных между сервисами (W3C Baggage)
- ОтелПостроительSdk — построитель SDK (fluent API)
- ОтелПостроительРесурса — построитель ресурса (fluent API)
- ОтелПостроительBaggage — построитель Baggage (fluent API)
- ОтелОбластьИнструментирования — InstrumentationScope: описание библиотеки инструментации
- ОтелКонтекст — модуль управления текущим контекстом выполнения
- ОтелГлобальный — модуль глобального реестра OpenTelemetry
- ОтелРезультатЭкспорта — результат асинхронной операции экспорта
- ОтелРезультатЗакрытия — результат операции закрытия / принудительной выгрузки
- ОтелКлючКонтекста — ключ для хранения значений в контексте
- ОтелТокенКонтекста — токен, возвращаемый при присоединении контекста
Трассировка
- ОтелПровайдерТрассировки — провайдер трассировки SDK
- ОтелПостроительПровайдераТрассировки — построитель провайдера трассировки
- ОтелТрассировщик — создание и управление спанами
- ОтелСпан — единица работы или операции в трассировке
- ОтелПостроительСпана — построитель спана (SpanBuilder)
- ОтелКонтекстСпана — контекст спана (SpanContext)
- ОтелСобытиеСпана — событие в рамках спана (SpanEvent)
- ОтелЛимитыСпана — лимиты количества атрибутов, событий и линков
- ОтелЛинк — связь спана с другим спаном
- ОтелСостояниеТрассировки — W3C TraceState
- ОтелВидСпана — модуль констант видов спана (SpanKind)
- ОтелКодСтатуса — модуль констант кодов статуса спана
- ОтелСэмплер — модуль стратегий семплирования
- ОтелПростойПроцессорСпанов — синхронный процессор спанов
- ОтелПакетныйПроцессорСпанов — пакетный асинхронный процессор спанов
Логирование
ОтелПровайдерЛогирования— провайдер логирования SDKОтелЛоггер— логгер для записи событийОтелЗаписьЛога— запись журнала (LogRecord)ОтелПростойПроцессорЛогов— синхронный процессор записей журналаОтелПакетныйПроцессорЛогов— пакетный процессор записей журналаОтелПостроительЛоггера— построитель логгераОтелПостроительПровайдераЛогирования— построитель провайдера логированияОтелСтепеньСерьезности— константы степени серьезности лог-записи
Метрики
ОтелПровайдерМетрик— провайдер метрик SDKОтелМетр— метр для создания инструментов метрикОтелСчетчик— монотонно возрастающий счетчик (Counter)ОтелРеверсивныйСчетчик— двунаправленный счетчик (UpDownCounter)ОтелДатчик— синхронный датчик значений (Gauge)ОтелГистограмма— гистограмма распределения (Histogram)ОтелПостроительМетра— построитель метраОтелПостроительПровайдераМетрик— построитель провайдера метрикОтелПериодическийЧитательМетрик— периодическое чтение метрик для экспорта
Экспорт
ОтелЭкспортерСпанов— OTLP-экспортер спановОтелЭкспортерЛогов— OTLP-экспортер записей журналаОтелЭкспортерМетрик— OTLP-экспортер метрикОтелHttpТранспорт— HTTP/JSON транспорт для OTLPОтелGrpcТранспорт— gRPC транспорт для OTLPОтелВПамятьТранспорт— транспорт в памяти (для тестирования)ОтелНастройкиTls— настройки TLS-соединения
Пропагация
ОтелW3CПропагатор— пропагатор W3C Trace ContextОтелW3CBaggageПропагатор— пропагатор W3C BaggageОтелКомпозитныйПропагатор— составной пропагаторОтелНоопПропагатор— пустой пропагатор (noop)ОтелГеттерТекстовойКарты— вспомогательный класс для чтения заголовковОтелСеттерТекстовойКарты— вспомогательный класс для записи заголовков
Конфигурация
- ОтелАвтоконфигурация — автоматическая инициализация SDK из переменных окружения
Интеграции
ОтелАппендерLogos— аппендер для интеграции с библиотекой логирования Logos
ОтелАппендерLogos
Аппендер logos для отправки логов через OpenTelemetry.
Описание
Реализует интерфейс аппендера библиотеки logos (oscript-library/logos), перенаправляя сообщения логирования в формате OTLP через [ОтелЛоггер].
Позволяет использовать существующую инфраструктуру логирования на основе logos и одновременно отправлять логи в OpenTelemetry-совместимые системы (Grafana Loki, Jaeger и т.д.).
Маппинг уровней logos → OTel SeverityNumber:
| Уровень logos | Значение | OTel Severity | Номер |
|---|---|---|---|
Отладка | 0 | DEBUG | 5 |
Информация | 1 | INFO | 9 |
Предупреждение | 2 | WARN | 13 |
Ошибка | 3 | ERROR | 17 |
КритичнаяОшибка | 4 | FATAL | 21 |
Исключения, возникающие внутри аппендера, перехватываются и не распространяются в цепочку logos — это защищает логирование от сбоев OTel-инфраструктуры.
Конструктор
Новый ОтелАппендерLogos(Логгер)| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Логгер | ОтелЛоггер | Неопределено | Настроенный логгер OpenTelemetry для отправки записей. Можно установить позже через УстановитьЛоггер() |
Методы
ВывестиСобытие
Выводит событие лога через OpenTelemetry. Вызывается библиотекой logos при каждом событии логирования. Маппирует уровень, тело, временну́ю метку и дополнительные поля события.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
СобытиеЛога | СобытиеЛога | — | Событие из библиотеки logos |
Закрыть
Закрывает аппендер. Ресурсов, требующих явного закрытия, нет.
УстановитьСвойство
Устанавливает свойство аппендера из конфигурационного файла logos. Свойства не поддерживаются, конфигурация выполняется через конструктор.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ИмяСвойства | Строка | — | Имя свойства |
Значение | Произвольный | — | Значение свойства |
УстановитьЛоггер
Устанавливает OTel-логгер для отправки данных.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Значение | ОтелЛоггер | — | Настроенный логгер OpenTelemetry |
Логгер
Возвращает текущий OTel-логгер.
Возвращает: ОтелЛоггер — логгер OpenTelemetry
Пример
#Использовать opentelemetry
#Использовать logos
// Создать OTel-логгер
Транспорт = Новый ОтелHttpТранспорт("http://localhost:4318");
ЭкспортерЛогов = Новый ОтелЭкспортерЛогов(Транспорт);
// ... настроить провайдер логирования ...
// Создать аппендер и привязать к логгеру
ОтелЛоггер = ПровайдерЛогирования.ПолучитьЛоггер("мое.приложение");
Аппендер = Новый ОтелАппендерLogos(ОтелЛоггер);
// Подключить аппендер к logos
МенеджерЛогирования.ДобавитьАппендер("otel", Аппендер);
// Теперь все вызовы logos автоматически отправляются в OpenTelemetry
Лог = Логирование.ПолучитьЛог("мое.приложение");
Лог.Информация("Сообщение отправляется в OTel");ОтелАвтоконфигурация
Модуль автоматической конфигурации SDK на основе переменных окружения и YAML-файла.
Описание
Реализует спецификацию OpenTelemetry SDK Environment Variable Specification. Читает конфигурацию из переменных окружения или YAML-файла (при установленной OTEL_CONFIG_FILE).
Основная точка входа — функция Инициализировать().
Поддерживаемые переменные окружения
| Переменная | Описание |
|---|---|
OTEL_CONFIG_FILE | Путь к YAML-файлу конфигурации |
OTEL_SERVICE_NAME | Имя сервиса (атрибут ресурса) |
OTEL_RESOURCE_ATTRIBUTES | Атрибуты ресурса в формате key=val,key2=val2 |
OTEL_EXPORTER_OTLP_ENDPOINT | Адрес OTLP-экспортера |
OTEL_EXPORTER_OTLP_PROTOCOL | Протокол (grpc, http/protobuf) |
OTEL_TRACES_SAMPLER | Стратегия семплирования (always_on, always_off, traceidratio, parentbased_always_on, parentbased_always_off, parentbased_traceidratio) |
OTEL_TRACES_SAMPLER_ARG | Аргумент семплера (доля для traceidratio) |
OTEL_PROPAGATORS | Пропагаторы через запятую (tracecontext, baggage) |
OTEL_SDK_DISABLED | Отключить SDK (true/false) |
OTEL_LOG_LEVEL | Уровень логирования SDK |
Функции
Инициализировать
Главная функция инициализации. Конфигурирует SDK по переменным окружения (или YAML-файлу), регистрирует провайдеры в ОтелГлобальный и возвращает готовый SDK.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
МенеджерПараметров | Произвольный | Неопределено | Менеджер параметров; если не указан — создаётся по умолчанию |
Возвращает: ОтелSdk — инициализированный объект SDK
СоздатьМенеджерПараметровПоУмолчанию
Создаёт менеджер параметров, читающий конфигурацию из переменных окружения.
Возвращает: МенеджерПараметров — объект для передачи в Инициализировать()
СоздатьРесурс
Создаёт ресурс из параметров конфигурации.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
МенеджерПараметров | Произвольный | — | Менеджер параметров |
ПользовательскийРесурс | ОтелРесурс | Неопределено | Дополнительный ресурс, объединяется с автоматически созданным |
Возвращает: ОтелРесурс
СоздатьТранспорт
Создаёт транспорт для экспортеров на основе параметров конфигурации.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
МенеджерПараметров | Произвольный | — | Менеджер параметров |
Возвращает: транспортный объект для экспортера
СоздатьПровайдерТрассировки
Создаёт и конфигурирует провайдер трассировки.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
МенеджерПараметров | Произвольный | — | Менеджер параметров |
Возвращает: ОтелПровайдерТрассировки
СоздатьПровайдерЛогирования
Создаёт и конфигурирует провайдер логирования.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
МенеджерПараметров | Произвольный | — | Менеджер параметров |
Возвращает: провайдер логирования
СоздатьПровайдерМетрик
Создаёт и конфигурирует провайдер метрик.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
МенеджерПараметров | Произвольный | — | Менеджер параметров |
Возвращает: провайдер метрик
Пример
// Минимальная инициализация по переменным окружения
// (OTEL_SERVICE_NAME, OTEL_EXPORTER_OTLP_ENDPOINT должны быть установлены)
Сдк = ОтелАвтоконфигурация.Инициализировать();
Трассировщик = Сдк.ПолучитьТрассировщик("мой-сервис");
// Расширенная инициализация с пользовательским ресурсом
МенеджерПараметров = ОтелАвтоконфигурация.СоздатьМенеджерПараметровПоУмолчанию();
ПользовательскийРесурс = Новый ОтелПостроительРесурса()
.ДобавитьАтрибут("deployment.environment", "production")
.Построить();
ИтоговыйРесурс = ОтелАвтоконфигурация.СоздатьРесурс(
МенеджерПараметров,
ПользовательскийРесурс
);
// При завершении работы
Сдк.Закрыть(30000);YAML-конфигурация
При установленной переменной OTEL_CONFIG_FILE читается YAML-файл:
service:
name: мой-сервис
exporters:
otlp:
endpoint: http://localhost:4317
protocol: grpc
traces:
sampler:
name: parentbased_traceidratio
args: "0.1"См. также
ОтелФайловаяКонфигурация
Модуль файловой конфигурации OpenTelemetry SDK.
Описание
Читает YAML-файл конфигурации, выполняет подстановку переменных окружения и возвращает типизированную дата-модель (ОтелКонфигурация).
Реализует спецификацию:
Формат файла: YAML, обязательное поле file_format (поддерживается версия 1.x).
Подстановка переменных: переменные вида ${ENV_VAR_NAME} автоматически заменяются значениями из окружения через ОтелПодстановкаПеременных.
Методы модуля
Разобрать
Разбирает файл конфигурации и возвращает типизированную модель ОтелКонфигурация.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ПутьКФайлу | Строка | — | Путь к YAML-файлу конфигурации |
Возвращает: ОтелКонфигурация — разобранная конфигурация
Исключения:
- Файл не найден по указанному пути
- YAML не является маппингом верхнего уровня
- Поле
file_formatне указано - Версия формата не поддерживается (не
1.x)
Пример
#Использовать opentelemetry
// Разобрать файл конфигурации
Конфигурация = ОтелФайловаяКонфигурация.Разобрать("/etc/otel/config.yaml");
// Проверить флаг отключения
Если Конфигурация.Отключен Тогда
// OpenTelemetry отключён в конфигурации
Возврат;
КонецЕсли;
// Использовать автоконфигурацию
ОтелАвтоконфигурация.Применить(Конфигурация);Пример YAML-файла конфигурации:
file_format: "1.0"
disabled: false
resource:
attributes:
service.name: "${SERVICE_NAME}"
service.version: "1.0.0"
tracer_provider:
processors:
- batch:
exporter:
otlp:
protocol: http/protobuf
endpoint: "${OTLP_ENDPOINT}"ОтелЗаписьЛога
Запись лога (LogRecord) — объект, содержащий все поля одной записи лога.
Описание
ОтелЗаписьЛога реализует спецификацию OpenTelemetry LogRecord / ReadWriteLogRecord. Содержит: тело, серьезность, атрибуты, время, имя события, контекст трассировки, ресурс и scope.
После вызова Логгер.Записать() запись фиксируется (Зафиксировать()) и становится неизменяемой — все сеттеры превращаются в no-op.
Уважает лимиты атрибутов из ОтелЛимитыЗаписейЛога: атрибуты сверх лимита отбрасываются, длинные строковые значения усекаются.
Конструктор
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ЛимитыЗаписейЛога | ОтелЛимитыЗаписейЛога | Неопределено | Лимиты записей лога (иначе 128 атрибутов, без ограничения длины) |
Методы — Геттеры
Время
Возвращает время записи лога в наносекундах Unix epoch.
Возвращает: Строка
ВремяНаблюдения
Возвращает время наблюдения записи лога в наносекундах Unix epoch.
Возвращает: Строка
НомерСерьезности
Возвращает номер серьезности (SeverityNumber).
Возвращает: Число
ТекстСерьезности
Возвращает текст серьезности (SeverityText).
Возвращает: Строка
Тело
Возвращает тело записи лога.
Возвращает: Строка
Атрибуты
Возвращает атрибуты записи лога.
Возвращает: ОтелАтрибуты
ИдТрассировки
Возвращает идентификатор трассировки для корреляции.
Возвращает: Строка
ИдСпана
Возвращает идентификатор спана для корреляции.
Возвращает: Строка
ФлагиТрассировки
Возвращает флаги трассировки (TraceFlags).
Возвращает: Число
Ресурс
Возвращает ресурс, описывающий источник телеметрии.
Возвращает: ОтелРесурс
ОбластьИнструментирования
Возвращает область инструментирования (InstrumentationScope).
Возвращает: ОтелОбластьИнструментирования
КоличествоОтброшенныхАтрибутов
Возвращает количество атрибутов, отброшенных из-за превышения лимита.
Возвращает: Число
ИмяСобытия
Возвращает имя события (EventName) по спецификации.
Возвращает: Строка
ИнформацияОбИсключении
Возвращает информацию об исключении (если установлена).
Возвращает: ИнформацияОбОшибке, Неопределено
Контекст
Возвращает контекст, в котором была эмитирована запись. Используется Event Bridge.
Возвращает: Соответствие, Неопределено
Методы — Сеттеры (fluent API)
Все сеттеры возвращают ОтелЗаписьЛога (ЭтотОбъект) для цепочки вызовов. После Зафиксировать() становятся no-op.
УстановитьСерьезность
Устанавливает серьезность по номеру из ОтелСтепеньСерьезности. Автоматически устанавливает ТекстСерьезности.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Значение | Число | — | Номер серьезности (см. ОтелСтепеньСерьезности) |
УстановитьТекстСерьезности
Устанавливает произвольный текст серьезности независимо от номера.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Значение | Строка | — | Текст серьезности |
УстановитьТело
Устанавливает тело записи. Принимает строку, число, булево, массив или соответствие (AnyValue).
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Значение | Произвольный | — | Содержимое лога |
УстановитьАтрибут
Устанавливает атрибут записи лога. Уважает лимиты: атрибуты сверх лимита отбрасываются, строки длиннее лимита усекаются.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Ключ | Строка | — | Имя атрибута |
Значение | Произвольный | — | Значение атрибута |
УдалитьАтрибут
Удаляет атрибут записи лога (ReadWriteLogRecord MUST поддерживать удаление).
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Ключ | Строка | — | Имя атрибута |
УстановитьКонтекстТрассировки
Устанавливает контекст трассировки для корреляции лога с трассировкой.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
НовыйИдТрассировки | Строка | — | Идентификатор трассировки |
НовыйИдСпана | Строка | — | Идентификатор спана |
УстановитьФлагиТрассировки
Устанавливает флаги трассировки.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Флаги | Число | — | Флаги трассировки |
УстановитьИмяСобытия
Устанавливает имя события (EventName) по спецификации.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Значение | Строка | — | Имя события |
УстановитьВремя
Устанавливает время записи лога в наносекундах Unix epoch.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ВремяНаносекунды | Строка | — | Время в наносекундах |
УстановитьВремяНаблюдения
Устанавливает время наблюдения записи лога в наносекундах Unix epoch.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ВремяНаносекунды | Строка | — | Время наблюдения в наносекундах |
УстановитьИсключение
Устанавливает информацию об исключении. SDK автоматически извлечёт атрибуты exception.type, exception.message, exception.stacktrace.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Значение | ИнформацияОбОшибке | — | Информация об исключении |
Зафиксировать
Фиксирует запись лога, делая её неизменяемой. Автоматически вызывается в Логгер.Записать().
Пример
Запись = Логгер.СоздатьЗаписьЛога();
Запись
.УстановитьСерьезность(ОтелСтепеньСерьезности.Error())
.УстановитьТело("Критическая ошибка обработки заказа")
.УстановитьАтрибут("order.id", "12345")
.УстановитьАтрибут("user.id", "42")
.УстановитьИмяСобытия("order.failed");
Логгер.Записать(Запись);
// С исключением
Попытка
ОбработатьЗаказ();
Исключение
Запись = Логгер.СоздатьЗаписьЛога();
Запись
.УстановитьСерьезность(ОтелСтепеньСерьезности.Error())
.УстановитьТело("Ошибка обработки заказа")
.УстановитьИсключение(ИнформацияОбОшибке());
Логгер.Записать(Запись);
КонецПопытки;ОтелЛимитыЗаписейЛога
Лимиты записей лога (LogLimits) — настройки ограничений атрибутов.
Описание
ОтелЛимитыЗаписейЛога задаёт ограничения на количество атрибутов и длину их строковых значений в ОтелЗаписьЛога. Используется при создании провайдера через ОтелПостроительПровайдераЛогирования.
Аналог Java SDK: io.opentelemetry.sdk.logs.LogLimits.
По умолчанию: максимум 128 атрибутов, без ограничения длины строковых значений.
Методы
МаксАтрибутов
Возвращает максимальное количество атрибутов записи лога.
Возвращает: Число
МаксДлинаЗначенияАтрибута
Возвращает максимальную длину значения строкового атрибута. 0 означает отсутствие ограничения.
Возвращает: Число
УстановитьМаксАтрибутов
Устанавливает максимальное количество атрибутов записи лога.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Значение | Число | — | Максимальное количество атрибутов |
Возвращает: ОтелЛимитыЗаписейЛога — ЭтотОбъект для цепочки вызовов
УстановитьМаксДлинаЗначенияАтрибута
Устанавливает максимальную длину значения строкового атрибута. 0 — без ограничения.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Значение | Число | — | Максимальная длина (0 — без ограничения) |
Возвращает: ОтелЛимитыЗаписейЛога — ЭтотОбъект для цепочки вызовов
Пример
Лимиты = Новый ОтелЛимитыЗаписейЛога()
.УстановитьМаксАтрибутов(256)
.УстановитьМаксДлинаЗначенияАтрибута(2048);
Провайдер = Новый ОтелПостроительПровайдераЛогирования()
.УстановитьРесурс(Ресурс)
.УстановитьЛимитыЗаписейЛога(Лимиты)
.Построить();ОтелЛоггер
Логгер (Logger) — инструмент для создания и отправки записей лога.
Описание
ОтелЛоггер реализует спецификацию OpenTelemetry Logger API. Создаётся через ОтелПровайдерЛогирования. Логгер привязан к ОтелОбластьИнструментирования и делегирует записи цепочке процессоров провайдера.
Все публичные методы потокобезопасны.
Методы
СоздатьЗаписьЛога
Создаёт новую запись лога с лимитами из провайдера.
Возвращает: ОтелЗаписьЛога
Включен
Проверяет, включён ли логгер для заданных параметров. Предназначен для оптимизации hot path — позволяет пропустить создание ОтелЗаписьЛога, если логгер заведомо ничего не сделает.
Важно: Результат может меняться со временем. Кэшировать значение между
Записать-вызовами недопустимо (спецификация Logs API §16).
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Контекст | Соответствие, Неопределено | Неопределено | Явный контекст (иначе текущий контекст потока) |
ОбластьИнструментирования | ОтелОбластьИнструментирования | Неопределено | Scope (иначе scope логгера) |
СтепеньСерьезности | Число | 0 | Номер серьезности для фильтрации |
ИмяСобытия | Строка | "" | Имя события для фильтрации |
Возвращает: Булево — Истина, если логгер может обрабатывать записи
Записать
Отправляет запись лога. Устанавливает scope, resource и trace context, затем передаёт запись процессору. После вызова запись становится неизменяемой (Зафиксировать()).
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ЗаписьЛога | ОтелЗаписьЛога | — | Запись лога для отправки |
Контекст | Соответствие, Неопределено | Неопределено | Явный контекст для trace correlation |
ОбластьИнструментирования
Возвращает область инструментирования логгера.
Возвращает: ОтелОбластьИнструментирования
Пример
Логгер = Провайдер.ПолучитьЛоггер("мой-сервис", "1.0.0");
Если Логгер.Включен(, , ОтелСтепеньСерьезности.Info()) Тогда
Запись = Логгер.СоздатьЗаписьЛога();
Запись
.УстановитьСерьезность(ОтелСтепеньСерьезности.Info())
.УстановитьТело("Операция завершена")
.УстановитьАтрибут("user.id", "42");
Логгер.Записать(Запись);
КонецЕсли;ОтелПакетныйПроцессорЛогов
Пакетный процессор записей логов (BatchLogRecordProcessor) по спецификации OpenTelemetry.
Описание
Буферизует записи лога и отправляет их экспортеру асинхронно, партиями. Thin facade — вся логика буферизации реализована в ОтелБазовыйПакетныйПроцессор.
Реализует ИнтерфейсПроцессорЛогов.
Важно: Процессор хранит переданный объект
ОтелЗаписьЛогаas-is и обрабатывает его асинхронно. Если вызывающая сторона продолжает модифицировать запись послеПриПоявлении()— возможны гонки данных. Передавайте клон или не модифицируйте запись после передачи.
Методы
ПриПоявлении
Добавляет запись лога в буфер (OnEmit). Буфер обрабатывается асинхронно.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ЗаписьЛога | ОтелЗаписьЛога | — | Запись лога (не должна модифицироваться после передачи) |
Контекст | Соответствие, Неопределено | Неопределено | Разрешённый контекст |
Включен
Проверяет, будет ли процессор обрабатывать запись. Всегда возвращает Истина. Реализация не мутирует переданные объекты.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Контекст | Соответствие, Неопределено | Неопределено | Явный контекст |
ОбластьИнструментирования | ОтелОбластьИнструментирования | Неопределено | Scope логгера |
СтепеньСерьезности | Число | 0 | Номер серьезности |
ИмяСобытия | Строка | "" | Имя события |
Возвращает: Булево
Пример
Процессор = Новый ОтелПакетныйПроцессорЛогов();
Провайдер = Новый ОтелПостроительПровайдераЛогирования()
.УстановитьРесурс(Ресурс)
.ДобавитьПроцессор(Процессор)
.Построить();ОтелПостроительПровайдераЛогирования
Построитель провайдера логирования (SdkLoggerProviderBuilder) с fluent API.
Описание
Используется для пошаговой конфигурации ОтелПровайдерЛогирования: задаёт ресурс, процессоры логов и лимиты записей. Аналог Java SDK: SdkLoggerProvider.builder().
Методы
УстановитьРесурс
Устанавливает ресурс, описывающий источник телеметрии.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Значение | ОтелРесурс | — | Ресурс телеметрии |
Возвращает: ОтелПостроительПровайдераЛогирования — ЭтотОбъект для цепочки вызовов
ДобавитьПроцессор
Добавляет процессор логов. Аналог Java SDK: SdkLoggerProviderBuilder.addLogRecordProcessor(processor).
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Процессор | Произвольный | — | Процессор логов (реализует ИнтерфейсПроцессорЛогов) |
Возвращает: ОтелПостроительПровайдераЛогирования — ЭтотОбъект для цепочки вызовов
УстановитьЛимитыЗаписейЛога
Устанавливает лимиты записей лога. Аналог Java SDK: SdkLoggerProviderBuilder.setLogLimits(logLimits).
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Значение | ОтелЛимитыЗаписейЛога | — | Лимиты записей лога |
Возвращает: ОтелПостроительПровайдераЛогирования — ЭтотОбъект для цепочки вызовов
Построить
Создаёт экземпляр провайдера логирования с заданными параметрами.
Возвращает: ОтелПровайдерЛогирования
Пример
Провайдер = Новый ОтелПостроительПровайдераЛогирования()
.УстановитьРесурс(Ресурс)
.ДобавитьПроцессор(Новый ОтелПростойПроцессорЛогов(Экспортер))
.УстановитьЛимитыЗаписейЛога(
Новый ОтелЛимитыЗаписейЛога()
.УстановитьМаксАтрибутов(256)
)
.Построить();ОтелПровайдерЛогирования
Провайдер логирования (LoggerProvider) — центральная точка управления логгерами и процессорами.
Описание
ОтелПровайдерЛогирования реализует спецификацию OpenTelemetry LoggerProvider. Хранит кэш логгеров по ключу (имя библиотеки + версия + атрибуты scope) и делегирует записи логов цепочке процессоров. Все публичные методы потокобезопасны.
Рекомендуется создавать через ОтелПостроительПровайдераЛогирования.
Конструктор
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Ресурс | ОтелРесурс | — | Ресурс, описывающий источник телеметрии |
Конфигуратор | Действие, Неопределено | Неопределено | Callback ОбластьИнструментирования → ОтелКонфигурацияЛоггера |
ЛимитыЗаписейЛога | ОтелЛимитыЗаписейЛога | Неопределено | Лимиты записей лога |
Методы
ПостроительЛоггера
Создаёт построитель логгера (LoggerBuilder).
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ИмяБиблиотеки | Строка | — | Имя инструментирующей библиотеки |
Возвращает: ОтелПостроительЛоггера
ПолучитьЛоггер
Создаёт или возвращает из кэша логгер для указанной библиотеки. После Закрыть() возвращает рабочий no-op логгер.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ИмяБиблиотеки | Строка | — | Имя инструментирующей библиотеки |
ВерсияБиблиотеки | Строка | "" | Версия библиотеки |
АтрибутыОбласти | ОтелАтрибуты | Неопределено | Атрибуты InstrumentationScope |
АдресСхемы | Строка | "" | URL схемы телеметрии |
Возвращает: ОтелЛоггер
ДобавитьПроцессор
Добавляет процессор логов в цепочку.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Процессор | Произвольный | — | Процессор логов (реализует ИнтерфейсПроцессорЛогов) |
Ресурс
Возвращает ресурс провайдера.
Возвращает: ОтелРесурс
СброситьБуфер
Принудительно отправляет все накопленные данные через процессоры.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ТаймаутМс | Число | 0 | Таймаут в миллисекундах (0 — без ограничения) |
Возвращает: ОтелРезультатЭкспорта
Закрыть
Завершает работу провайдера (Shutdown). Идемпотентен. После закрытия ПолучитьЛоггер() возвращает no-op логгер.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ТаймаутМс | Число | 30000 | Таймаут операции в миллисекундах |
Возвращает: ОтелРезультатЗакрытия
ПринудительноВыгрузитьСРезультатом
Принудительно отправляет все данные и возвращает результат в формате OTel SDK.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ТаймаутМс | Число | 30000 | Таймаут операции в миллисекундах |
Возвращает: ОтелРезультатЗакрытия
СброситьБуферАсинхронно
Асинхронно сбрасывает буфер. Аналог Java SDK: CompletableResultCode forceFlush().
Возвращает: Обещание
ЗакрытьАсинхронно
Асинхронно завершает работу провайдера. Аналог Java SDK: CompletableResultCode shutdown().
Возвращает: Обещание
ОбновитьКонфигуратор
Обновляет конфигуратор логгеров и пропагирует изменения во все ранее созданные логгеры.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
НовыйКонфигуратор | Действие, Неопределено | — | Новый конфигуратор |
Пример
Провайдер = Новый ОтелПостроительПровайдераЛогирования()
.УстановитьРесурс(Ресурс)
.ДобавитьПроцессор(Новый ОтелПростойПроцессорЛогов(Экспортер))
.Построить();
Логгер = Провайдер.ПолучитьЛоггер("мой-сервис", "1.0.0");
// После завершения работы
Провайдер.Закрыть();ОтелПростойПроцессорЛогов
Простой процессор записей логов (SimpleLogRecordProcessor) по спецификации OpenTelemetry.
Описание
Синхронно передаёт каждую запись лога экспортеру в момент вызова ПриПоявлении(). Аналог ОтелПростойПроцессорСпанов для подсистемы логирования. Потокобезопасен — доступ к экспортеру защищён блокировкой.
Реализует ИнтерфейсПроцессорЛогов.
Конструктор
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Экспортер | ОтелЭкспортерЛогов | — | Экспортер записей логов |
Методы
ПриПоявлении
Обрабатывает запись лога — синхронно передаёт экспортеру. После Закрыть() записи игнорируются. Ошибки экспортера логируются и не пробрасываются наверх.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ЗаписьЛога | ОтелЗаписьЛога | — | Запись лога |
Контекст | Соответствие, Неопределено | Неопределено | Разрешённый контекст |
Включен
Проверяет, будет ли процессор обрабатывать запись. Реализация не мутирует переданные объекты. Всегда возвращает Истина (процессор без фильтрации).
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Контекст | Соответствие, Неопределено | Неопределено | Явный контекст |
ОбластьИнструментирования | ОтелОбластьИнструментирования | Неопределено | Scope логгера |
СтепеньСерьезности | Число | 0 | Номер серьезности |
ИмяСобытия | Строка | "" | Имя события |
Возвращает: Булево
СброситьБуфер
Принудительно отправляет накопленные данные. Для простого процессора нет буферизации — операция делегируется в экспортер.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ТаймаутМс | Число | 0 | Таймаут в миллисекундах |
Возвращает: ОтелРезультатЭкспорта
Закрыть
Завершает работу процессора. После вызова ПриПоявлении игнорирует новые записи. Идемпотентен.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ТаймаутМс | Число | 30000 | Таймаут в миллисекундах |
Возвращает: ОтелРезультатЗакрытия
ПринудительноВыгрузитьСРезультатом
Принудительно выгружает накопленные данные и возвращает результат.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ТаймаутМс | Число | 30000 | Таймаут в миллисекундах |
Возвращает: ОтелРезультатЗакрытия
Пример
Процессор = Новый ОтелПростойПроцессорЛогов(МойОтлпЭкспортер);
Провайдер = Новый ОтелПостроительПровайдераЛогирования()
.УстановитьРесурс(Ресурс)
.ДобавитьПроцессор(Процессор)
.Построить();ОтелПроцессорСобытийВSpanEvents
Процессор-мост Logs → Span Events (Event Bridge) по спецификации OpenTelemetry.
Описание
При появлении записи лога с непустым ИмяСобытия и наличии активного записываемого Span перекладывает событие в Span.ДобавитьСобытие(). Это позволяет использовать единый Logs API для эмиссии событий и автоматически получать span events в trace-данных.
Реализует ИнтерфейсПроцессорЛогов. Соответствует спецификации Logs SDK §48.
Поведение:
- Запись без
ИмяСобытия— пропускается. - Нет активного записываемого Span — пропускается.
- Иначе —
Span.ДобавитьСобытие(ИмяСобытия, Атрибуты, Время).
Процессор не экспортирует логи. Регистрируйте его вместе с
ОтелПростойПроцессорЛоговилиОтелПакетныйПроцессорЛогов, если запись должна попасть и в логи, и в span events.
Методы
ПриПоявлении
Преобразует лог-событие в Span Event, если есть активный записываемый спан. Ошибки добавления события не пробрасываются наружу.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ЗаписьЛога | ОтелЗаписьЛога | — | Запись лога |
Контекст | Соответствие, Неопределено | Неопределено | Явный контекст для поиска активного спана |
Включен
Возвращает Истина, если процессор не закрыт.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Контекст | Соответствие, Неопределено | Неопределено | Явный контекст |
ОбластьИнструментирования | ОтелОбластьИнструментирования | Неопределено | Scope логгера |
СтепеньСерьезности | Число | 0 | Номер серьезности |
ИмяСобытия | Строка | "" | Имя события |
Возвращает: Булево
СброситьБуфер
Процессор не буферизует — всегда возвращает Успех.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ТаймаутМс | Число | 0 | Не используется |
Возвращает: ОтелРезультатЭкспорта
Закрыть
Завершает работу процессора. После вызова ПриПоявлении игнорирует записи.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ТаймаутМс | Число | 0 | Не используется |
Возвращает: ОтелРезультатЗакрытия
Пример
// Регистрация вместе с основным процессором
Провайдер = Новый ОтелПостроительПровайдераЛогирования()
.УстановитьРесурс(Ресурс)
.ДобавитьПроцессор(Новый ОтелПростойПроцессорЛогов(Экспортер))
.ДобавитьПроцессор(Новый ОтелПроцессорСобытийВSpanEvents())
.Построить();
// Запись попадёт и в логи, и в span events активного спана
Запись = Логгер.СоздатьЗаписьЛога();
Запись
.УстановитьИмяСобытия("user.login")
.УстановитьАтрибут("user.id", "42");
Логгер.Записать(Запись);ОтелСтепеньСерьезности
Модуль констант степеней серьезности (SeverityNumber) по спецификации OpenTelemetry.
Описание
Значения соответствуют OTLP SeverityNumber enum. Используется для задания степени серьезности в ОтелЗаписьЛога.УстановитьСерьезность() и фильтрации в ОтелЛоггер.Включен().
Каждый уровень имеет диапазон из 4 значений (например, INFO = 9..12). Для стандартных уровней используйте именованные функции.
Методы
Trace
Возвращает номер серьезности TRACE (1).
Возвращает: Число — SEVERITY_NUMBER_TRACE
Debug
Возвращает номер серьезности DEBUG (5).
Возвращает: Число — SEVERITY_NUMBER_DEBUG
Info
Возвращает номер серьезности INFO (9).
Возвращает: Число — SEVERITY_NUMBER_INFO
Warn
Возвращает номер серьезности WARN (13).
Возвращает: Число — SEVERITY_NUMBER_WARN
Error
Возвращает номер серьезности ERROR (17).
Возвращает: Число — SEVERITY_NUMBER_ERROR
Fatal
Возвращает номер серьезности FATAL (21).
Возвращает: Число — SEVERITY_NUMBER_FATAL
ТекстСерьезности
Возвращает текстовое представление серьезности по номеру (TRACE, DEBUG, INFO, WARN, ERROR, FATAL). Номер 0 (SEVERITY_NUMBER_UNSPECIFIED) возвращает пустую строку.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
НомерСерьезности | Число | — | Номер серьезности (SeverityNumber) |
Возвращает: Строка
Пример
// Запись с уровнем INFO
Запись.УстановитьСерьезность(ОтелСтепеньСерьезности.Info());
// Запись с уровнем ERROR
Запись.УстановитьСерьезность(ОтелСтепеньСерьезности.Error());
// Фильтрация по уровню
Если Логгер.Включен(, , ОтелСтепеньСерьезности.Warn()) Тогда
// создать и отправить запись
КонецЕсли;
// Получить текст по номеру
Текст = ОтелСтепеньСерьезности.ТекстСерьезности(17); // "ERROR"ОтелАгрегация
Модуль стратегий агрегации метрик.
Описание
ОтелАгрегация — глобальный модуль-фабрика конфигураций агрегации для инструментов метрик. Используется в ОтелПредставление и при настройке читателей.
Функции
ПоУмолчанию
Возвращает конфигурацию агрегации по умолчанию (определяется типом инструмента).
Возвращает: конфигурация агрегации Default
Сумма
Возвращает конфигурацию суммирующей агрегации.
Возвращает: конфигурация агрегации Sum
ПоследнееЗначение
Возвращает конфигурацию агрегации «последнее значение» (last value).
Возвращает: конфигурация агрегации LastValue
Отбросить
Возвращает конфигурацию агрегации «отбросить» — данные не собираются.
Возвращает: конфигурация агрегации Drop
ГистограммаСЯвнымиГраницами
Возвращает конфигурацию агрегации гистограммы с явно заданными границами бакетов.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Границы | Массив | — | Список числовых границ бакетов, строго монотонно возрастающий |
Возвращает: конфигурация агрегации ExplicitBucketHistogram
ГистограммаЭкспоненциальная
Возвращает конфигурацию агрегации экспоненциальной гистограммы.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
МаксБакетов | Число | — | Максимальное число бакетов |
Возвращает: конфигурация агрегации ExponentialHistogram
СоздатьАгрегаторИзКонфигурации
Создаёт экземпляр агрегатора из конфигурации.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Параметры | конфигурация агрегации | — | Конфигурация агрегации |
АгрегаторБаза | базовый агрегатор | — | Базовый агрегатор |
Возвращает: агрегатор
Пример
// Явные границы бакетов для гистограммы запросов
Границы = Новый Массив();
Границы.Добавить(0.005);
Границы.Добавить(0.01);
Границы.Добавить(0.025);
Границы.Добавить(0.05);
Границы.Добавить(0.1);
Границы.Добавить(0.25);
Границы.Добавить(0.5);
Границы.Добавить(1);
Агрегация = ОтелАгрегация.ГистограммаСЯвнымиГраницами(Границы);
Представление = Новый ОтелПредставление(
Неопределено, // НовоеИмя
Неопределено, // НовоеОписание
Неопределено, // РазрешенныеКлючи
Неопределено, // ИсключенныеКлючи
Неопределено, // ГраницыГистограммы
Агрегация); // АгрегацияОтелВременнаяАгрегация
Модуль констант типов временной агрегации (temporality).
Описание
ОтелВременнаяАгрегация — глобальный модуль с константами режимов временной агрегации метрик.
Тип временной агрегации определяет, как значения агрегируются во времени:
- Кумулятивная — значения накапливаются с момента запуска; всегда увеличиваются
- Дельта — значения сбрасываются после каждой выгрузки; показывают изменение за период
Функции
НеУказана
Возвращает значение для неуказанного типа.
Возвращает: Число — 0
Кумулятивная
Возвращает значение для кумулятивной временной агрегации (Cumulative).
Агрегирование ведётся с момента запуска. После выгрузки данные не сбрасываются. Применяется для Prometheus-читателя.
Возвращает: Число — 2
Дельта
Возвращает значение для дельта-агрегации (Delta).
Агрегирование ведётся между выгрузками. После каждой выгрузки буфер сбрасывается.
Возвращает: Число — 1
Пример
// Сравнение типов временной агрегации
Если ВременнаяАгрегация = ОтелВременнаяАгрегация.Кумулятивная() Тогда
Сообщить("Кумулятивный режим");
ИначеЕсли ВременнаяАгрегация = ОтелВременнаяАгрегация.Дельта() Тогда
Сообщить("Дельта-режим");
КонецЕсли;ОтелГистограмма
Гистограмма (Histogram) — инструмент для статистики распределения значений.
Описание
ОтелГистограмма реализует спецификацию OpenTelemetry Histogram. Агрегирует значения в явные бакеты с фиксированными границами. Используется для измерения распределений: длительность операций, размеры запросов/ответов и т.д.
Thin facade — логика хранения в ОтелБазовыйСинхронныйИнструмент.
Границы бакетов задаются через advisory-параметр ExplicitBucketBoundaries при создании или через ОтелПредставление. Границы MUST быть строго монотонно возрастающими.
Методы
Записать
Записывает значение в гистограмму. Ожидается неотрицательное значение.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Значение | Число | — | Измеренное значение (ожидается неотрицательное) |
Атрибуты | ОтелАтрибуты | Неопределено | Атрибуты точки данных |
Контекст | Соответствие, Неопределено | Неопределено | Явный контекст |
Вид
Возвращает вид инструмента.
Возвращает: Строка — "Histogram"
Пример
ДлительностьЗапроса = Метр.СоздатьГистограмму(
"http.request.duration", "Длительность HTTP-запроса", "s");
НачалоМс = ТекущаяУниверсальнаяДатаВМиллисекундах();
ОбработатьЗапрос();
ДлительностьСек = (ТекущаяУниверсальнаяДатаВМиллисекундах() - НачалоМс) / 1000;
Атрибуты = Новый ОтелАтрибуты();
Атрибуты.Установить("http.method", "POST");
Атрибуты.Установить("http.route", "/api/orders");
ДлительностьЗапроса.Записать(ДлительностьСек, Атрибуты);ОтелДатчик
Датчик (Gauge) — инструмент для записи мгновенного значения.
Описание
ОтелДатчик реализует спецификацию OpenTelemetry Gauge. Записывает текущее значение, перезаписывая предыдущее для данного набора атрибутов. Используется для абсолютных значений в данный момент (температура, загрузка CPU, использование памяти и т.д.).
Thin facade — логика хранения в ОтелБазовыйСинхронныйИнструмент.
Методы
Записать
Записывает текущее значение датчика.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Значение | Число | — | Текущее значение |
Атрибуты | ОтелАтрибуты | Неопределено | Атрибуты точки данных |
Контекст | Соответствие, Неопределено | Неопределено | Явный контекст |
Вид
Возвращает вид инструмента.
Возвращает: Строка — "Gauge"
Пример
ИспользованиеЦПУ = Метр.СоздатьДатчик(
"system.cpu.utilization", "Загрузка CPU", "1");
// Записать текущее значение
Атрибуты = Новый ОтелАтрибуты();
Атрибуты.Установить("cpu", "0");
ИспользованиеЦПУ.Записать(0.75, Атрибуты);ОтелМетр
Метр (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", "Размер очереди", "{элементов}", ОбратныйВызов);ОтелНаблюдаемыйДатчик
Наблюдаемый датчик (ObservableGauge) — асинхронный инструмент для мгновенных значений.
Описание
ОтелНаблюдаемыйДатчик реализует спецификацию OpenTelemetry ObservableGauge. Значения собираются через зарегистрированные callback при каждом сборе метрик.
Используется, когда нельзя записать значение синхронно в момент изменения (например, показания температуры, загрузка памяти).
Thin facade — вся логика в ОтелБазовыйНаблюдаемыйИнструмент.
Методы
Вид
Возвращает вид инструмента.
Возвращает: Строка — "ObservableGauge"
Остальные методы унаследованы от ОтелБазовыйНаблюдаемыйИнструмент (см. ОтелНаблюдаемыйСчетчик): ДобавитьCallback, УдалитьCallback.
Пример
// Наблюдать за текущей температурой
Процедура СобратьТемпературу(Наблюдение) Экспорт
ЧипыЦПУ = ПолучитьСписокЧипов();
Для Каждого Чип Из ЧипыЦПУ Цикл
Атрибуты = Новый ОтелАтрибуты();
Атрибуты.Установить("cpu", Чип.Номер);
Наблюдение.Записать(Чип.Температура, Атрибуты);
КонецЦикла;
КонецПроцедуры
НаблюдаемыйДатчик = Метр.СоздатьНаблюдаемыйДатчик(
"system.cpu.temperature",
"Температура ЦП",
"Cel",
Новый Действие(ЭтотОбъект, "СобратьТемпературу"));ОтелНаблюдаемыйРеверсивныйСчетчик
Наблюдаемый реверсивный счётчик (ObservableUpDownCounter) — асинхронный инструмент, допускающий уменьшение значений.
Описание
ОтелНаблюдаемыйРеверсивныйСчетчик реализует спецификацию OpenTelemetry ObservableUpDownCounter. Значения собираются через зарегистрированные callback при каждом сборе метрик.
Используется, когда нужно асинхронно наблюдать за значением, которое может расти и убывать (например, размер пула соединений, количество элементов в очереди).
Thin facade — вся логика в ОтелБазовыйНаблюдаемыйИнструмент.
Методы
Вид
Возвращает вид инструмента.
Возвращает: Строка — "ObservableUpDownCounter"
Остальные методы унаследованы от ОтелБазовыйНаблюдаемыйИнструмент (см. ОтелНаблюдаемыйСчетчик): ДобавитьCallback, УдалитьCallback.
Пример
// Наблюдать за размером пула соединений
Процедура СобратьРазмерПула(Наблюдение) Экспорт
Наблюдение.Записать(МойПулСоединений.Количество());
КонецПроцедуры
НаблюдаемыйРеверсивный = Метр.СоздатьНаблюдаемыйРеверсивныйСчетчик(
"db.connections.pool.size",
"Размер пула соединений",
"{соединений}",
Новый Действие(ЭтотОбъект, "СобратьРазмерПула"));ОтелНаблюдаемыйСчетчик
Наблюдаемый счётчик (ObservableCounter) — асинхронный монотонный инструмент для суммирования.
Описание
ОтелНаблюдаемыйСчетчик реализует спецификацию OpenTelemetry ObservableCounter. Значения собираются через зарегистрированные callback при каждом сборе метрик.
Используется, когда нет возможности записать значение непосредственно в момент изменения (например, системные счётчики из ОС).
Thin facade — вся логика в ОтелБазовыйНаблюдаемыйИнструмент.
Методы
Все методы унаследованы от ОтелБазовыйНаблюдаемыйИнструмент:
Вид
Возвращает вид инструмента.
Возвращает: Строка — "ObservableCounter"
ДобавитьCallback
Регистрирует дополнительный callback для наблюдения. Callback SHOULD NOT бросать исключения — они будут перехвачены и залогированы.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Действие | Действие | — | Callback с сигнатурой (Наблюдение: ОтелНаблюдениеМетрики) |
Возвращает: ОтелРегистрацияНаблюдателя — токен для отмены регистрации
УдалитьCallback
Удаляет ранее зарегистрированный callback.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Действие | Действие | — | Callback для удаления |
Пример
// Callback для наблюдения
Процедура СобратьМетрики(Наблюдение) Экспорт
// системный счётчик CPU ticks
ЗначениеСчетчика = ПолучитьСчетчикЦПУ();
Наблюдение.Записать(ЗначениеСчетчика);
КонецПроцедуры
НаблюдаемыйСчетчик = Метр.СоздатьНаблюдаемыйСчетчик(
"system.cpu.time",
"Время ЦП",
"s",
Новый Действие(ЭтотОбъект, "СобратьМетрики"));
// Добавить ещё один callback
Регистрация = НаблюдаемыйСчетчик.ДобавитьCallback(ДополнительныйCallback);
// Отменить callback
Регистрация.Закрыть();ОтелНаблюдениеМетрики
Объект наблюдения метрики — передаётся в callback асинхронных инструментов.
Описание
ОтелНаблюдениеМетрики передаётся в callback асинхронных инструментов (ОтелНаблюдаемыйСчетчик, ОтелНаблюдаемыйРеверсивныйСчетчик, ОтелНаблюдаемыйДатчик).
В рамках одного вызова callback можно записать несколько значений с разными атрибутами.
Объект создаётся SDK автоматически — вручную не создаётся.
Методы
Записать
Записывает значение с опциональными атрибутами. Поддерживает fluent-цепочку.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Значение | Число | — | Измеренное значение |
Атрибуты | ОтелАтрибуты | Неопределено | Атрибуты точки данных |
Возвращает: ОтелНаблюдениеМетрики — ЭтотОбъект (для fluent-цепочки)
Записи
Возвращает все записанные наблюдения.
Возвращает: Массив — массив структур {Значение: Число, Атрибуты: ОтелАтрибуты}
Количество
Возвращает количество записанных наблюдений.
Возвращает: Число
Пример
Процедура СобратьМетрики(Наблюдение) Экспорт
// Запись одного значения
Наблюдение.Записать(42);
// Запись нескольких значений через fluent-цепочку
Атрибуты1 = Новый ОтелАтрибуты();
Атрибуты1.Установить("регион", "msk");
Атрибуты2 = Новый ОтелАтрибуты();
Атрибуты2.Установить("регион", "spb");
Наблюдение
.Записать(100, Атрибуты1)
.Записать(85, Атрибуты2);
// Проверить сколько наблюдений уже записано
Сообщить("Записей: " + Наблюдение.Количество());
КонецПроцедурыОтелПериодическийЧитательМетрик
Периодический читатель метрик — собирает метрики по расписанию и отправляет их экспортёру.
Описание
ОтелПериодическийЧитательМетрик реализует push-модель сбора метрик. Периодически собирает данные из всех зарегистрированных метров и передаёт их экспортёру.
Создаётся через ОтелПостроительПровайдераМетрик.
Методы
ДобавитьМетр
Регистрирует метр в читателе.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Метр | ОтелМетр | — | Метр для регистрации |
ДобавитьПродюсер
Регистрирует дополнительный продюсер метрик.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Продюсер | объект | — | Продюсер метрик |
Запустить
Запускает фоновый периодический сбор метрик.
ПериодическийСбор
Выполняет один цикл сбора метрик вручную.
СброситьБуфер
Принудительно выгружает накопленные метрики и очищает буфер.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ТаймаутМс | Число | — | Таймаут операции в миллисекундах |
СброситьБуферБезОчистки
Принудительно выгружает накопленные метрики без очистки состояния.
Закрыть
Останавливает периодический сбор и завершает работу.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ТаймаутМс | Число | — | Таймаут завершения в миллисекундах |
ОчищатьДанные | Булево | Истина | Очищать ли накопленные данные |
ПринудительноВыгрузитьСРезультатом
Принудительно выгружает данные и возвращает результат операции.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ТаймаутМс | Число | — | Таймаут операции в миллисекундах |
Возвращает: результат выгрузки
УстановитьФильтрМетрик
Задаёт фильтр на собираемые метрики.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Значение | фильтр | — | Функтор или условие фильтрации |
ЛимитМощности
Возвращает текущий лимит мощности (cardinality limit).
Возвращает: Число
АгрегацияГистограммПоУмолчанию
Возвращает тип агрегации гистограммы, заданный по умолчанию для данного читателя.
Возвращает: ОтелАгрегация
Пример
ОтладочныйЭкспортёр = Новый ОтелОтладочныйЭкспортёрМетрик();
ПериодическийЧитатель = Новый ОтелПериодическийЧитательМетрик(ОтладочныйЭкспортёр, 60000);
Построитель = Новый ОтелПостроительПровайдераМетрик();
Построитель.ДобавитьЧитатель(ПериодическийЧитатель);
Провайдер = Построитель.Создать();
// Запустить периодический сбор
ПериодическийЧитатель.Запустить();
// При завершении
ПериодическийЧитатель.Закрыть(5000);ОтелПостроительПровайдераМетрик
Построитель провайдера метрик (SdkMeterProviderBuilder) с fluent API.
Описание
Используется для пошаговой конфигурации ОтелПровайдерМетрик. Аналог Java SDK: SdkMeterProvider.builder().
Поддерживает настройку ресурса, нескольких читателей метрик, представлений (Views) и фильтра exemplars.
Значение OTEL_METRICS_EXEMPLAR_FILTER из окружения применяется автоматически при создании построителя.
Методы
УстановитьРесурс
Устанавливает ресурс, описывающий источник телеметрии.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Значение | ОтелРесурс | — | Ресурс телеметрии |
Возвращает: ОтелПостроительПровайдераМетрик — ЭтотОбъект для fluent API
ЗарегистрироватьЧитатель
Регистрирует читатель метрик (MetricReader). Аналог Java SDK: SdkMeterProviderBuilder.registerMetricReader(reader).
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Читатель | ОтелПериодическийЧитательМетрик | — | Читатель метрик |
Возвращает: ОтелПостроительПровайдераМетрик — ЭтотОбъект для fluent API
ЗарегистрироватьПредставление
Регистрирует представление (View) с селектором инструментов. Аналог Java SDK: SdkMeterProviderBuilder.registerView(selector, view).
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Селектор | ОтелСелекторИнструментов | — | Селектор инструментов |
Представление | ОтелПредставление | — | Представление |
Возвращает: ОтелПостроительПровайдераМетрик — ЭтотОбъект для fluent API
УстановитьФильтрЭкземпляров
Устанавливает фильтр exemplars (ExemplarFilter). Аналог Java SDK: SdkMeterProviderBuilder.setExemplarFilter(filter).
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Фильтр | Число | — | Фильтр из ОтелФильтрЭкземпляров |
Возвращает: ОтелПостроительПровайдераМетрик — ЭтотОбъект для fluent API
Построить
Создаёт экземпляр провайдера метрик с заданными параметрами.
Возвращает: ОтелПровайдерМетрик
Пример
Провайдер = Новый ОтелПостроительПровайдераМетрик()
.УстановитьРесурс(Ресурс)
.ЗарегистрироватьЧитатель(
Новый ОтелПериодическийЧитательМетрик(Экспортер)
)
.ЗарегистрироватьПредставление(
Новый ОтелСелекторИнструментов("запросы"),
Новый ОтелПредставление(, , МассивКлючейАтрибутов)
)
.Построить();ОтелПредставление
Представление (View) — конфигурация агрегации и фильтрации для инструмента метрик.
Описание
ОтелПредставление позволяет переопределить имя, описание, атрибуты, границы гистограммы и тип агрегации для отдельных инструментов метрик.
Регистрируется в ОтелПостроительПровайдераМетрик.
Конструктор
Все параметры опциональны.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
НовоеИмя | Строка | Неопределено | Переопределённое имя инструмента |
НовоеОписание | Строка | Неопределено | Переопределённое описание |
РазрешенныеКлючиАтрибутов | Массив | Неопределено | Список разрешённых ключей атрибутов |
ИсключенныеКлючиАтрибутов | Массив | Неопределено | Список исключённых ключей атрибутов |
ГраницыГистограммы | Массив | Неопределено | Явные границы бакетов гистограммы |
Агрегация | ОтелАгрегация | Неопределено | Стратегия агрегации |
РезервуарЭкземпляров | Неопределено | Конфигурация резервуара образцов | |
ЛимитМощностиАгрегации | Число | Неопределено | Лимит cardinality |
Методы
НовоеИмя
Возвращает: Строка, Неопределено
НовоеОписание
Возвращает: Строка, Неопределено
РазрешенныеКлючиАтрибутов
Возвращает: Массив, Неопределено
ИсключенныеКлючиАтрибутов
Возвращает: Массив, Неопределено
ГраницыГистограммы
Возвращает: Массив, Неопределено
Агрегация
Возвращает: ОтелАгрегация, Неопределено
РезервуарЭкземпляров
Возвращает: конфигурация резервуара или Неопределено
ЛимитМощностиАгрегации
Возвращает: Число, Неопределено
Пример
// Переименовать инструмент и задать границы гистограммы
Границы = Новый Массив();
Границы.Добавить(0.005);
Границы.Добавить(0.01);
Границы.Добавить(0.025);
Границы.Добавить(0.05);
Границы.Добавить(0.1);
Границы.Добавить(0.25);
Границы.Добавить(0.5);
Границы.Добавить(1);
Представление = Новый ОтелПредставление(
"http_request_duration_seconds", // НовоеИмя
Неопределено, // НовоеОписание
Неопределено, // РазрешенныеКлючи
Неопределено, // ИсключенныеКлючи
Границы); // ГраницыГистограммы
Построитель.ДобавитьПредставление(Представление, "http.request.duration");ОтелПровайдерМетрик
Провайдер метрик (MeterProvider) — центральная точка управления метрами и читателями метрик.
Описание
ОтелПровайдерМетрик реализует спецификацию OpenTelemetry MeterProvider. Хранит кэш объектов ОтелМетр по ключу (имя библиотеки + версия + атрибуты scope), управляет представлениями (Views) и читателями метрик. Поддерживает несколько читателей.
Все публичные методы потокобезопасны.
Рекомендуется создавать через ОтелПостроительПровайдераМетрик.
Методы
ПостроительМетра
Создаёт построитель метра (MeterBuilder). Аналог Java SDK: MeterProvider.meterBuilder("name").
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ИмяБиблиотеки | Строка | — | Имя инструментирующей библиотеки |
Возвращает: ОтелПостроительМетра
ПолучитьМетр
Создаёт или возвращает из кэша метр для указанной библиотеки. После Закрыть() возвращает no-op метр.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ИмяБиблиотеки | Строка | — | Имя инструментирующей библиотеки |
ВерсияБиблиотеки | Строка | "" | Версия библиотеки |
АтрибутыОбласти | ОтелАтрибуты | Неопределено | Атрибуты InstrumentationScope |
АдресСхемы | Строка | "" | URL схемы телеметрии |
Возвращает: ОтелМетр
Ресурс
Возвращает ресурс провайдера.
Возвращает: ОтелРесурс
ЧитательМетрик
Возвращает первый зарегистрированный читатель метрик (для обратной совместимости).
Возвращает: ОтелПериодическийЧитательМетрик, Неопределено
ЧитателиМетрик
Возвращает массив всех зарегистрированных читателей метрик.
Возвращает: Массив
СброситьБуфер
Принудительно экспортирует все накопленные метрики через все читатели.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ТаймаутМс | Число | 0 | Таймаут в миллисекундах (0 — без ограничения) |
Возвращает: ОтелРезультатЭкспорта — агрегированный результат всех читателей
Закрыть
Завершает работу провайдера. Отключает все инструменты, закрывает читателей. Идемпотентен.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ТаймаутМс | Число | 30000 | Таймаут операции в миллисекундах |
Возвращает: ОтелРезультатЗакрытия
ПринудительноВыгрузитьСРезультатом
Принудительно выгружает все накопленные метрики через читателей.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ТаймаутМс | Число | 30000 | Таймаут операции в миллисекундах |
Возвращает: ОтелРезультатЗакрытия
СброситьБуферАсинхронно
Асинхронно сбрасывает буфер.
Возвращает: Обещание
ЗакрытьАсинхронно
Асинхронно завершает работу провайдера.
Возвращает: Обещание
ЗарегистрироватьПредставление
Регистрирует представление (View) с селектором инструментов.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Селектор | ОтелСелекторИнструментов | — | Селектор инструментов |
Представление | ОтелПредставление | — | Представление |
Пример
Провайдер = Новый ОтелПостроительПровайдераМетрик()
.УстановитьРесурс(Ресурс)
.ЗарегистрироватьЧитатель(Читатель)
.Построить();
Метр = Провайдер.ПолучитьМетр("мой-сервис", "1.0.0");
Счетчик = Метр.СоздатьСчетчик("запросы");
Счетчик.Добавить(1);
// Завершение работы
Провайдер.Закрыть();ОтелПрометеусЧитательМетрик
Prometheus-читатель метрик — экспортирует метрики в формате Prometheus text.
Описание
ОтелПрометеусЧитательМетрик реализует pull-модель сбора метрик для Prometheus. Метрики собираются по запросу и возвращаются в формате Prometheus text exposition.
Всегда использует кумулятивную временную агрегацию (Cumulative).
Создаётся через ОтелПостроительПровайдераМетрик.
Методы
ДобавитьМетр
Регистрирует метр в читателе.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Метр | ОтелМетр | — | Метр для регистрации |
СобратьВТексте
Собирает все метрики и возвращает их в формате Prometheus text.
Возвращает: Строка — метрики в формате Prometheus text exposition
ContentType
Возвращает MIME-тип ответа для HTTP-endpoint.
Возвращает: Строка — "text/plain; version=0.0.4; charset=utf-8"
ПолучитьВременнуюАгрегацию
Возвращает тип временной агрегации для инструмента.
Всегда возвращает Кумулятивная независимо от типа инструмента.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ТипИнструмента | Строка | — | Тип инструмента |
Возвращает: ОтелВременнаяАгрегация.Кумулятивная()
СобратьСемейства
Собирает все метрики как семейства метрик Prometheus.
Возвращает: Массив — массив семейств метрик Prometheus
Пример
// Настройка Prometheus-читателя
ПрометеусЧитатель = Новый ОтелПрометеусЧитательМетрик();
Построитель = Новый ОтелПостроительПровайдераМетрик();
Построитель.ДобавитьЧитатель(ПрометеусЧитатель);
Провайдер = Построитель.Создать();
// В HTTP-обработчике /metrics:
// ContentType заголовок
ТипКонтента = ПрометеусЧитатель.ContentType();
// => "text/plain; version=0.0.4; charset=utf-8"
// Тело ответа
ТелоОтвета = ПрометеусЧитатель.СобратьВТексте();ОтелРеверсивныйСчетчик
Реверсивный счётчик (UpDownCounter) — инструмент для суммирования значений, допускающий уменьшение.
Описание
ОтелРеверсивныйСчетчик реализует спецификацию OpenTelemetry UpDownCounter. Принимает любые значения, включая отрицательные. Используется для измерений, которые могут как расти, так и уменьшаться (количество активных соединений, размер очереди и т.д.).
Thin facade — логика хранения в ОтелБазовыйСинхронныйИнструмент.
Методы
Добавить
Добавляет значение к счётчику. Принимает и отрицательные значения.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Значение | Число | — | Значение для добавления (может быть отрицательным) |
Атрибуты | ОтелАтрибуты | Неопределено | Атрибуты точки данных |
Контекст | Соответствие, Неопределено | Неопределено | Явный контекст |
Вид
Возвращает вид инструмента.
Возвращает: Строка — "UpDownCounter"
Пример
АктивныеСоединения = Метр.СоздатьРеверсивныйСчетчик(
"db.connections.active", "Активные соединения с БД");
// Новое соединение
АктивныеСоединения.Добавить(1);
// Соединение закрыто
АктивныеСоединения.Добавить(-1);ОтелРегистрацияНаблюдателя
Токен регистрации наблюдателя — позволяет отменить регистрацию callback.
Описание
ОтелРегистрацияНаблюдателя возвращается при регистрации callback у асинхронных инструментов. Позволяет впоследствии отменить регистрацию callback вызовом Закрыть().
Конструктор
| Параметр | Тип | Описание |
|---|---|---|
Инструмент | ОтелБазовыйНаблюдаемыйИнструмент | Инструмент, у которого зарегистрирован callback |
Действие | Действие | Зарегистрированный callback |
Методы
Закрыть
Отменяет регистрацию callback у инструмента. После вызова callback больше не будет вызываться при сборе метрик.
Эквивалентно вызову Инструмент.УдалитьCallback(Действие).
Возвращает: Неопределено
Пример
// Регистрация callback
Регистрация = НаблюдаемыйСчетчик.ДобавитьCallback(
Новый Действие(ЭтотОбъект, "МойCallback"));
// ... некоторое время работы ...
// Отменить callback (например, при завершении работы модуля)
Регистрация.Закрыть();ОтелСчетчик
Счётчик (Counter) — монотонный инструмент для суммирования неотрицательных значений.
Описание
ОтелСчетчик реализует спецификацию OpenTelemetry Counter. Агрегирует значения суммой. Принимает только неотрицательные значения — отрицательные игнорируются с предупреждением.
Для значений, которые могут уменьшаться, используйте ОтелРеверсивныйСчетчик.
Thin facade — логика хранения в ОтелБазовыйСинхронныйИнструмент.
Методы
Добавить
Добавляет значение к счётчику. При отрицательном значении записывает предупреждение и игнорирует вызов.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Значение | Число | — | Неотрицательное значение для добавления |
Атрибуты | ОтелАтрибуты | Неопределено | Атрибуты точки данных |
Контекст | Соответствие, Неопределено | Неопределено | Явный контекст |
Вид
Возвращает вид инструмента.
Возвращает: Строка — "Counter"
Пример
Счетчик = Метр.СоздатьСчетчик("http.requests.total", "Всего HTTP-запросов");
// Без атрибутов
Счетчик.Добавить(1);
// С атрибутами
Атрибуты = Новый ОтелАтрибуты();
Атрибуты.Установить("http.method", "GET");
Атрибуты.Установить("http.status_code", "200");
Счетчик.Добавить(1, Атрибуты);ОтелТипМетрики
Модуль констант типов метрик.
Описание
ОтелТипМетрики — глобальный модуль с константами строковых идентификаторов типов инструментов метрик. Используется при настройке представлений, экспорте и фильтрации.
Функции
Сумма
Возвращает строковый идентификатор типа Sum.
Возвращает: Строка — "sum"
Датчик
Возвращает строковый идентификатор типа Gauge.
Возвращает: Строка — "gauge"
Гистограмма
Возвращает строковый идентификатор типа Histogram.
Возвращает: Строка — "histogram"
ЭкспоненциальнаяГистограмма
Возвращает строковый идентификатор типа ExponentialHistogram.
Возвращает: Строка — "exponentialHistogram"
Пример
// Использование при создании представления для гистограмм
Если ТипМетрики = ОтелТипМетрики.Гистограмма() Тогда
// Применить специальные настройки агрегации для гистограмм
Представление = Новый ОтелПредставление(
Неопределено, Неопределено, Неопределено, Неопределено,
СтандартныеГраницы);
КонецЕсли;ОтелЭкспоненциальнаяГистограмма
Экспоненциальная гистограмма (ExponentialHistogram) — инструмент для распределения с логарифмическими бакетами.
Описание
ОтелЭкспоненциальнаяГистограмма реализует спецификацию OpenTelemetry ExponentialHistogram. В отличие от ОтелГистограмма, использует логарифмические бакеты с автоматически вычисляемыми границами (Base-2 Exponential Bucket Histogram).
Не требует предварительной настройки границ бакетов — автоматически адаптируется к диапазону значений.
Thin facade — логика в ОтелАгрегаторЭкспоненциальнойГистограммы и ОтелБазовыйСинхронныйИнструмент.
Методы
Записать
Записывает значение в экспоненциальную гистограмму.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Значение | Число | — | Измеренное значение |
Атрибуты | ОтелАтрибуты | Неопределено | Атрибуты точки данных |
Контекст | Соответствие, Неопределено | Неопределено | Явный контекст |
Вид
Возвращает вид инструмента.
Возвращает: Строка — "ExponentialHistogram"
Пример
ДлительностьЗапроса = Метр.СоздатьЭкспоненциальнуюГистограмму(
"http.request.duration", "Длительность HTTP-запроса", "s");
ДлительностьЗапроса.Записать(0.123);ОтелW3CBaggageПропагатор
Пропагатор Baggage по спецификации W3C Baggage.
Описание
Обеспечивает внедрение и извлечение Baggage в/из HTTP-заголовков по спецификации W3C Baggage.
Используемый заголовок: baggage
Формат: key1=value1,key2=value2;metadata
Значения кодируются percent-encoding по спецификации W3C Baggage. Общий размер заголовка ограничен 8192 байтами: если значение превышает ограничение, заголовок не внедряется и записывается предупреждение в лог.
Использует ОтелГеттерТекстовойКарты и ОтелСеттерТекстовойКарты по умолчанию.
Конструктор
Конструктор без параметров.
Новый ОтелW3CBaggageПропагатор()Методы
Внедрить
Внедряет Baggage из контекста в заголовок baggage носителя. Если Baggage отсутствует или пустое — ничего не делает.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Контекст | Соответствие | — | OTel Context |
Носитель | Произвольный | — | Носитель заголовков |
Сеттер | ОтелСеттерТекстовойКарты | Стандартный сеттер | Объект для записи в носитель |
Извлечь
Извлекает Baggage из заголовка baggage носителя в новый контекст. Если заголовок отсутствует — возвращает исходный контекст без изменений.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Контекст | Соответствие | — | Входной OTel Context |
Носитель | Произвольный | — | Носитель заголовков |
Геттер | ОтелГеттерТекстовойКарты | Стандартный геттер | Объект для чтения из носителя |
Возвращает: Соответствие — новый контекст с Baggage (или входной контекст, если заголовок отсутствует)
Поля
Возвращает список HTTP-заголовков, используемых пропагатором.
Возвращает: Массив из Строка — ["baggage"]
Пример
#Использовать opentelemetry
Пропагатор = Новый ОтелW3CBaggageПропагатор();
// Создать контекст с Baggage
Багаж = Новый ОтелПостроительBaggage()
.Установить("user.id", "42")
.Установить("tenant", "acme")
.Построить();
Контекст = ОтелКонтекст.КонтекстСBaggage(ОтелКонтекст.Текущий(), Багаж);
// Внедрить в заголовки
Заголовки = Новый Соответствие();
Пропагатор.Внедрить(Контекст, Заголовки);
// baggage: user.id=42,tenant=acme
// Извлечь из входящих заголовков
ВходящиеЗаголовки = Новый Соответствие();
ВходящиеЗаголовки.Вставить("baggage", "user.id=42,tenant=acme");
НовыйКонтекст = Пропагатор.Извлечь(Новый Соответствие(), ВходящиеЗаголовки);ОтелW3CПропагатор
Пропагатор контекста трассировки W3C Trace Context.
Описание
Реализует внедрение и извлечение контекста трассировки через HTTP-заголовки traceparent и tracestate согласно спецификации W3C Trace Context Level 2.
Формат traceparent: {version}-{trace-id}-{parent-id}-{trace-flags}
Пример: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01
Поля trace-flags (1 байт):
- Бит 0 (маска
0x01) — sampled - Бит 1 (маска
0x02) — random (W3C Level 2): TraceId сгенерирован случайно
Все биты сохраняются при round-trip через числовое поле ФлагиТрассировки в ОтелКонтекстСпана. Парсинг tracestate выполняется через ОтелСостояниеТрассировки с RFC-валидацией ключей и значений.
Использует ОтелГеттерТекстовойКарты и ОтелСеттерТекстовойКарты по умолчанию.
Конструктор
Конструктор без параметров.
Новый ОтелW3CПропагатор()Методы
Внедрить
Внедряет контекст трассировки (SpanContext) в HTTP-заголовки носителя. Если контекст не содержит валидного спана — ничего не делает.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Контекст | Соответствие | — | OTel Context |
Носитель | Произвольный | — | Носитель заголовков |
Сеттер | ОтелСеттерТекстовойКарты | Стандартный сеттер | Объект для записи в носитель |
Извлечь
Извлекает SpanContext из HTTP-заголовков носителя в новый OTel Context. При невалидном заголовке возвращает исходный контекст без изменений.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Контекст | Соответствие | — | Входной OTel Context |
Носитель | Произвольный | — | Носитель заголовков |
Геттер | ОтелГеттерТекстовойКарты | Стандартный геттер | Объект для чтения из носителя |
Возвращает: Соответствие — новый контекст с извлечённым SpanContext (или входной контекст при ошибке)
Поля
Возвращает список HTTP-заголовков, используемых пропагатором.
Возвращает: Массив из Строка — ["traceparent", "tracestate"]
Пример
#Использовать opentelemetry
Пропагатор = Новый ОтелW3CПропагатор();
// Внедрить контекст в исходящий запрос
Заголовки = Новый Соответствие();
Пропагатор.Внедрить(ОтелКонтекст.Текущий(), Заголовки);
// Заголовки теперь содержит traceparent: 00-...
// Извлечь контекст из входящего запроса
ВходящиеЗаголовки = Новый Соответствие();
ВходящиеЗаголовки.Вставить("traceparent", "00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01");
НовыйКонтекст = Пропагатор.Извлечь(Новый Соответствие(), ВходящиеЗаголовки);
// Использовать совместно с kompozitным пропагатором
КомпПропагатор = Новый ОтелКомпозитныйПропагатор(
Новый Массив() + Новый ОтелW3CПропагатор() + Новый ОтелW3CBaggageПропагатор()
);ОтелГеттерТекстовойКарты
Геттер текстовой карты для пропагаторов.
Описание
Реализует абстракцию Getter для работы с носителем типа Соответствие. Обеспечивает case-insensitive доступ к заголовкам для HTTP-совместимости.
Объект является stateless и может быть сохранён как константа — создавать новый экземпляр для каждой операции не требуется.
Конструктор
Конструктор без параметров. Stateless — без состояния.
Новый ОтелГеттерТекстовойКарты()Методы
Получить
Возвращает первое значение по заданному ключу из носителя. Поиск выполняется без учёта регистра для HTTP-совместимости.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Носитель | Соответствие | — | Коллекция заголовков |
Ключ | Строка | — | Имя заголовка |
Возвращает: Строка, Неопределено — первое найденное значение или Неопределено
ПолучитьВсе
Возвращает все значения по заданному ключу из носителя. Поиск выполняется без учёта регистра.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Носитель | Соответствие | — | Коллекция заголовков |
Ключ | Строка | — | Имя заголовка |
Возвращает: Массив из Строка — все найденные значения (пустой массив, если ключ не найден)
Ключи
Возвращает список всех ключей из носителя.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Носитель | Соответствие | — | Коллекция заголовков |
Возвращает: Массив из Строка — список ключей
Пример
#Использовать opentelemetry
Геттер = Новый ОтелГеттерТекстовойКарты();
Заголовки = Новый Соответствие();
Заголовки.Вставить("traceparent", "00-abc123...");
Заголовки.Вставить("Content-Type", "application/json");
// Case-insensitive поиск
Значение = Геттер.Получить(Заголовки, "TRACEPARENT"); // "00-abc123..."
Значение = Геттер.Получить(Заголовки, "content-type"); // "application/json"
// Получить все ключи
Ключи = Геттер.Ключи(Заголовки); // ["traceparent", "Content-Type"]
// Использование с пропагатором
Пропагатор = Новый ОтелW3CПропагатор();
НовыйКонтекст = Пропагатор.Извлечь(ОтелКонтекст.Текущий(), Заголовки, Геттер);ОтелКомпозитныйПропагатор
Композитный пропагатор (CompositePropagator) по спецификации OpenTelemetry.
Описание
Объединяет несколько пропагаторов в единую цепочку. Позволяет одновременно использовать, например, ОтелW3CПропагатор и ОтелW3CBaggageПропагатор.
Внедрить()— вызывает все пропагаторы последовательноИзвлечь()— цепочечно передаёт контекст через все пропагаторыПоля()— возвращает объединённый список заголовков всех пропагаторов
Ошибки отдельного пропагатора не прерывают выполнение цепочки: они записываются в лог как предупреждения и обработка продолжается со следующим пропагатором.
Конструктор
Новый ОтелКомпозитныйПропагатор(Пропагаторы)| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Пропагаторы | Массив | — | Массив объектов-пропагаторов |
Методы
Внедрить
Внедряет контекст через все пропагаторы последовательно.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Контекст | Произвольный | — | Контекст для внедрения (Спан, Baggage и т.д.) |
Носитель | Произвольный | — | Носитель заголовков |
Сеттер | ОтелСеттерТекстовойКарты | Неопределено | Объект для записи в носитель (по умолчанию для Соответствие) |
Извлечь
Извлекает контекст из заголовков через все пропагаторы последовательно. Каждый пропагатор получает контекст, обогащённый предыдущим.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Контекст | Соответствие | — | Входной OTel Context |
Носитель | Произвольный | — | Носитель заголовков |
Геттер | ОтелГеттерТекстовойКарты | Неопределено | Объект для чтения из носителя (по умолчанию для Соответствие) |
Возвращает: Соответствие — контекст, обогащённый данными от всех пропагаторов
Поля
Возвращает объединённый список заголовков всех пропагаторов.
Возвращает: Массив из Строка — список имён полей заголовков
Пример
#Использовать opentelemetry
// Объединить W3C TraceContext и Baggage пропагаторы
Список = Новый Массив();
Список.Добавить(Новый ОтелW3CПропагатор());
Список.Добавить(Новый ОтелW3CBaggageПропагатор());
КомпПропагатор = Новый ОтелКомпозитныйПропагатор(Список);
// Внедрить все данные в заголовки
Заголовки = Новый Соответствие();
КомпПропагатор.Внедрить(ОтелКонтекст.Текущий(), Заголовки);
// Заголовки содержит traceparent, tracestate и baggage
// Извлечь все данные из входящих заголовков
НовыйКонтекст = КомпПропагатор.Извлечь(Новый Соответствие(), ВходящиеЗаголовки);
// Получить все используемые поля
Поля = КомпПропагатор.Поля();
// ["traceparent", "tracestate", "baggage"]ОтелСеттерТекстовойКарты
Сеттер текстовой карты для пропагаторов.
Описание
Реализует абстракцию Setter для работы с носителем типа Соответствие. Сохраняет регистр ключей как есть (согласно спецификации TextMap Propagator: "SHOULD preserve casing"). Нормализацию регистра выполняет транспортный слой.
Согласно спецификации Propagators, сеттер обязан использовать только US-ASCII ключи и значения. Невалидные записи (содержащие символы вне US-ASCII) пропускаются с предупреждением в лог, чтобы не повредить носитель.
Объект является stateless и может быть сохранён как константа.
Конструктор
Конструктор без параметров.
Новый ОтелСеттерТекстовойКарты()Методы
Установить
Устанавливает значение в носителе по ключу. Регистр ключа сохраняется.
Если ключ или значение содержат не US-ASCII символы, запись пропускается и в лог записывается предупреждение (носитель не модифицируется).
Допустимые символы ключа (RFC 9110 token): A-Z, a-z, 0-9, ! # $ % & ' * + - . ^ _ \ | ~ Допустимые символы значения: VCHAR (0x21-0x7E), пробел (0x20), горизонтальный таб (0x09`). Значение не должно начинаться или заканчиваться пробелом или табом.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Носитель | Соответствие | — | Коллекция заголовков (модифицируется) |
Ключ | Строка | — | Имя заголовка (US-ASCII) |
Значение | Строка | — | Значение заголовка (US-ASCII) |
Пример
#Использовать opentelemetry
Сеттер = Новый ОтелСеттерТекстовойКарты();
Заголовки = Новый Соответствие();
Сеттер.Установить(Заголовки, "traceparent", "00-abc123...");
Сеттер.Установить(Заголовки, "tracestate", "vendor=data");
// Невалидный ключ — будет пропущен с предупреждением в лог
Сеттер.Установить(Заголовки, "мой-заголовок", "значение"); // US-ASCII нарушение
// Использование с пропагатором
Пропагатор = Новый ОтелW3CПропагатор();
Пропагатор.Внедрить(ОтелКонтекст.Текущий(), Заголовки, Сеттер);ОтелВидСпана
Модуль — перечисление видов (типов) спанов.
Описание
Аналог Java SDK: SpanKind. Предоставляет числовые константы для установки вида спана через ОтелПостроительСпана.УстановитьВидСпана().
Функции-константы
Внутренний
Спан представляет внутреннюю операцию внутри сервиса. Значение по умолчанию.
Возвращает: Число
Сервер
Спан охватывает серверную часть синхронного RPC или HTTP-запроса.
Возвращает: Число
Клиент
Спан охватывает клиентскую часть синхронного RPC или HTTP-запроса (исходящий запрос).
Возвращает: Число
Производитель
Спан описывает производителя сообщения в асинхронной системе (очередь, брокер).
Возвращает: Число
Потребитель
Спан описывает потребителя сообщения из асинхронной системы.
Возвращает: Число
Пример
Спан = Трассировщик.ПостроительСпана("GET /api/users")
.УстановитьВидСпана(ОтелВидСпана.Сервер())
.НачатьСпан();См. также
ОтелКодСтатуса
Модуль — перечисление кодов статуса спана.
Описание
Аналог Java SDK: StatusCode. Предоставляет числовые константы для ОтелСпан.УстановитьСтатус().
По спецификации OpenTelemetry статус не может быть «понижен»: установленный Ок или Ошибка не может быть заменён на НеУстановлен; переход Ок → Ошибка игнорируется.
Функции-константы
НеУстановлен
Статус по умолчанию — операция прошла без явного указания результата.
Возвращает: Число
Ок
Операция завершилась успешно.
Возвращает: Число
Ошибка
Операция завершилась с ошибкой.
Возвращает: Число
Пример
Попытка
// ... выполнение операции ...
Спан.УстановитьСтатус(ОтелКодСтатуса.Ок());
Исключение
Спан.УстановитьСтатус(
ОтелКодСтатуса.Ошибка(),
ОписаниеОшибки()
);
КонецПопытки;См. также
ОтелКонтекстСпана
Неизменяемый контекст спана (SpanContext).
Описание
Содержит W3C Trace Context данные: trace-id (128 бит), span-id (64 бита), флаги трассировки и состояние трассировки. Может быть получен из Спан.КонтекстСпана() или передан из внешней системы через пропагаторы.
Аналог Java SDK: SpanContext.
Методы
ИдТрассировки
Возвращает идентификатор трассировки.
Возвращает: Строка — 32 hex-символа
ИдСпана
Возвращает идентификатор спана.
Возвращает: Строка — 16 hex-символов
ФлагиТрассировки
Возвращает флаги трассировки (W3C TraceFlags).
Возвращает: Число — бит 0 = sampled flag (1 — семплирован)
СостояниеТрассировки
Возвращает состояние трассировки (W3C TraceState).
Возвращает: ОтелСостояниеТрассировки
Удаленный
Возвращает признак удалённого контекста (получен из заголовков, а не создан локально).
Возвращает: Булево — Истина, если контекст пришёл из внешнего источника
Валиден
Проверяет валидность контекста. Валидный контекст имеет ненулевые trace-id и span-id.
Возвращает: Булево
ИдТрассировкиВДвоичномВиде
Возвращает идентификатор трассировки в бинарном виде.
Возвращает: ДвоичныеДанные — 16 байт
ИдСпанаВДвоичномВиде
Возвращает идентификатор спана в бинарном виде.
Возвращает: ДвоичныеДанные — 8 байт
Пример
КонтекстСпана = Спан.КонтекстСпана();
Если КонтекстСпана.Валиден() Тогда
ИдТрассировки = КонтекстСпана.ИдТрассировки(); // "4bf92f3577b34da6a3ce929d0e0e4736"
ИдСпана = КонтекстСпана.ИдСпана(); // "00f067aa0ba902b7"
Семплирован = (КонтекстСпана.ФлагиТрассировки() ЭтоНЕ 0);
КонецЕсли;См. также
ОтелЛимитыСпана
Конфигурация лимитов спана (SpanLimits).
Описание
Определяет максимально допустимые количества атрибутов, событий и линков для спана, а также максимальную длину строковых значений атрибутов. Используется при создании провайдера трассировки.
Аналог Java SDK: SpanLimits.
Методы чтения
МаксАтрибутов / КоличествоАтрибутовЛимит
Возвращает максимальное количество атрибутов в спане.
Возвращает: Число
МаксСобытий / КоличествоСобытийЛимит
Возвращает максимальное количество событий в спане.
Возвращает: Число
МаксЛинков / КоличествоСсылокЛимит
Возвращает максимальное количество линков в спане.
Возвращает: Число
МаксДлинаЗначенияАтрибута
Возвращает максимальную длину строкового значения атрибута.
Возвращает: Число
МаксАтрибутовНаСобытие
Возвращает максимальное количество атрибутов на событие.
Возвращает: Число
МаксАтрибутовНаЛинк
Возвращает максимальное количество атрибутов на линк.
Возвращает: Число
Методы записи (fluent API)
Все методы-сеттеры возвращают ОтелЛимитыСпана для fluent API.
УстановитьМаксАтрибутов / УстановитьКоличествоАтрибутовЛимит
| Параметр | Тип | Описание |
|---|---|---|
Значение | Число | Максимальное количество атрибутов |
УстановитьМаксСобытий / УстановитьКоличествоСобытийЛимит
| Параметр | Тип | Описание |
|---|---|---|
Значение | Число | Максимальное количество событий |
УстановитьМаксЛинков / УстановитьКоличествоСсылокЛимит
| Параметр | Тип | Описание |
|---|---|---|
Значение | Число | Максимальное количество линков |
УстановитьМаксДлинуЗначенияАтрибута
| Параметр | Тип | Описание |
|---|---|---|
Значение | Число | Максимальная длина строкового значения |
УстановитьМаксАтрибутовНаСобытие
| Параметр | Тип | Описание |
|---|---|---|
Значение | Число | Максимальное количество атрибутов на событие |
УстановитьМаксАтрибутовНаЛинк
| Параметр | Тип | Описание |
|---|---|---|
Значение | Число | Максимальное количество атрибутов на линк |
Пример
Лимиты = Новый ОтелЛимитыСпана()
.УстановитьМаксАтрибутов(128)
.УстановитьМаксСобытий(256)
.УстановитьМаксЛинков(64)
.УстановитьМаксДлинуЗначенияАтрибута(1024);
Провайдер = Новый ОтелПостроительПровайдераТрассировки()
.УстановитьЛимитыСпана(Лимиты)
.Построить();См. также
ОтелЛинк
Линк (Link) к другому спану.
Описание
Неизменяемый DTO, описывающий связь с другим спаном в той же или другой трассировке. Применяется для моделирования зависимостей между трассировками (например, batch-операции или fan-in сценарии).
Аналог Java SDK: LinkData.
Конструктор
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
НовыйКонтекстСпана | ОтелКонтекстСпана | — | Контекст спана, на который ссылается линк |
НовыеАтрибуты | Соответствие | Неопределено | Атрибуты линка |
НовоеОтброшеноАтрибутов | Число | 0 | Количество отброшенных атрибутов |
Методы
КонтекстСпана
Возвращает контекст спана, на который указывает линк.
Возвращает: ОтелКонтекстСпана
Атрибуты
Возвращает атрибуты линка.
Возвращает: ОтелАтрибуты
ОтброшеноАтрибутов
Возвращает количество атрибутов, отброшенных из-за лимита.
Возвращает: Число
Пример
// Добавить линк к уже завершённому спану из другой трассировки
Спан = Трассировщик.ПостроительСпана("обработка-батча")
.ДобавитьЛинк(ПредыдущийСпан.КонтекстСпана())
.ДобавитьЛинк(КонтекстВнешнегоСпана)
.НачатьСпан();См. также
ОтелПакетныйПроцессорСпанов
Пакетный (асинхронный) процессор спанов.
Описание
Накапливает завершённые спаны в буфере и экспортирует их пакетами в фоновом потоке. Рекомендуется для производственного использования. Является тонкой обёрткой над ОтелБазовыйПакетныйПроцессор.
Аналог Java SDK: BatchSpanProcessor.
Конструктор
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Экспортер | Произвольный | — | Экспортер спанов |
Методы
ПриНачале
Вызывается при начале спана. В пакетном процессоре не выполняет действий.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Спан | ОтелСпан | — | Начавшийся спан |
РодительскийКонтекст | Произвольный | — | Родительский контекст |
ПередЗавершением
Вызывается перед завершением спана. В пакетном процессоре не выполняет действий.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Спан | ОтелСпан | — | Завершаемый спан |
ПриЗавершении
Вызывается при завершении спана. Помещает спан в буфер.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Спан | ОтелСпан | — | Завершённый спан |
СброситьБуфер
Принудительно экспортирует все спаны из буфера.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ТаймаутМс | Число | 0 | Таймаут в миллисекундах |
Возвращает: ОтелРезультатЭкспорта
Закрыть
Завершает работу процессора: сбрасывает буфер и закрывает экспортер.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ТаймаутМс | Число | 0 | Таймаут в миллисекундах |
Возвращает: ОтелРезультатЗакрытия
Пример
Экспортер = Новый ОтелOtlpГрпцЭкспортерСпанов();
Процессор = Новый ОтелПакетныйПроцессорСпанов(Экспортер);
Провайдер = Новый ОтелПостроительПровайдераТрассировки()
.ДобавитьПроцессор(Процессор)
.Построить();
// При завершении работы приложения
РезЗакрытия = Провайдер.Закрыть(30000);
Если НЕ РезЗакрытия.Успешно() Тогда
Сообщить("Ошибка закрытия: " + РезЗакрытия.Описание());
КонецЕсли;См. также
ОтелПостроительПровайдераТрассировки
Построитель провайдера трассировки (SdkTracerProviderBuilder).
Описание
Fluent API для создания ОтелПровайдерТрассировки. Аналог Java SDK: SdkTracerProvider.builder().
Методы
УстановитьРесурс
Устанавливает ресурс.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Значение | ОтелРесурс | — | Ресурс |
Возвращает: ОтелПостроительПровайдераТрассировки — ЭтотОбъект для fluent API
ДобавитьПроцессор
Добавляет процессор спанов. Аналог Java SDK: SdkTracerProviderBuilder.addSpanProcessor(processor).
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Процессор | ОтелПростойПроцессорСпанов, ОтелПакетныйПроцессорСпанов | — | Процессор спанов |
Возвращает: ОтелПостроительПровайдераТрассировки — ЭтотОбъект для fluent API
УстановитьСэмплер
Устанавливает стратегию семплирования. Аналог Java SDK: SdkTracerProviderBuilder.setSampler(sampler).
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Стратегия | Число | — | Стратегия из ОтелСэмплер |
НоваяДоляСэмплирования | Число | 1.0 | Доля от 0.0 до 1.0 для ПоДолеТрассировок |
НоваяКорневаяСтратегия | Число | Неопределено | Стратегия для корневых спанов при НаОсновеРодителя |
Возвращает: ОтелПостроительПровайдераТрассировки — ЭтотОбъект для fluent API
УстановитьЛимитыСпана
Устанавливает лимиты спана. Аналог Java SDK: SdkTracerProviderBuilder.setSpanLimits(spanLimits).
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Значение | ОтелЛимитыСпана | — | Лимиты спана |
Возвращает: ОтелПостроительПровайдераТрассировки — ЭтотОбъект для fluent API
УстановитьГенераторИд
Устанавливает генератор идентификаторов. Генератор должен реализовывать методы СгенерироватьИдТрассировки() → Строка (32 hex) и СгенерироватьИдСпана() → Строка (16 hex).
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Значение | Произвольный | — | Объект-генератор идентификаторов |
Возвращает: ОтелПостроительПровайдераТрассировки — ЭтотОбъект для fluent API
Построить
Создает экземпляр провайдера трассировки.
Возвращает: ОтелПровайдерТрассировки
Пример
Провайдер = Новый ОтелПостроительПровайдераТрассировки()
.УстановитьРесурс(Ресурс)
.ДобавитьПроцессор(Процессор)
.УстановитьСэмплер(ОтелСэмплер.ВсегдаВключен())
.Построить();См. также
ОтелПостроительСпана
Построитель спана (SpanBuilder).
Описание
Создаётся через Трассировщик.ПостроительСпана(ИмяСпана). Позволяет настроить спан до его начала. По умолчанию устанавливает родителем текущий спан контекста.
Аналог Java SDK: SpanBuilder.
Конструктор
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Трассировщик | ОтелТрассировщик | — | Трассировщик |
ИмяСпана | Строка | — | Имя спана |
Методы
УстановитьРодителя
Устанавливает родительский контекст.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Значение | ОтелКонтекстСпана, ОтелСпан | — | Родительский контекст или спан |
Возвращает: ОтелПостроительСпана — ЭтотОбъект для fluent API
БезРодителя
Явно указывает, что спан должен быть корневым (без родителя). Отменяет УстановитьРодителя.
Возвращает: ОтелПостроительСпана — ЭтотОбъект для fluent API
УстановитьВидСпана
Устанавливает вид спана.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Значение | Число | — | Вид из ОтелВидСпана |
Возвращает: ОтелПостроительСпана — ЭтотОбъект для fluent API
УстановитьАтрибут
Добавляет начальный атрибут. Атрибуты, добавленные до НачатьСпан(), передаются сэмплеру.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Ключ | Строка | — | Имя атрибута |
Значение | Строка, Число, Булево, Массив | — | Значение атрибута |
Возвращает: ОтелПостроительСпана — ЭтотОбъект для fluent API
ДобавитьЛинк
Добавляет линк к другому спану.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
КонтекстСпана | ОтелКонтекстСпана | — | Контекст спана |
НовыеАтрибуты | Соответствие | Неопределено | Атрибуты линка |
Возвращает: ОтелПостроительСпана — ЭтотОбъект для fluent API
УстановитьВремяНачала
Устанавливает время начала спана.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Значение | Дата | — | Время начала |
Возвращает: ОтелПостроительСпана — ЭтотОбъект для fluent API
НачатьСпан
Создаёт и возвращает настроенный спан. Если семплер решил отбросить спан — возвращает незаписывающий спан (ОтелНезаписывающийСпан).
Возвращает: ОтелСпан, ОтелНезаписывающийСпан
Пример
Спан = Трассировщик.ПостроительСпана("обработка")
.УстановитьВидСпана(ОтелВидСпана.Сервер())
.УстановитьАтрибут("http.method", "POST")
.УстановитьАтрибут("http.url", АдресЗапроса)
.НачатьСпан();См. также
ОтелПровайдерТрассировки
Провайдер трассировки SDK (SdkTracerProvider).
Описание
Потокобезопасный объект. Создаёт и кэширует трассировщики (ОтелТрассировщик) по имени и версии библиотеки. Управляет цепочкой процессоров спанов, ресурсом и стратегией семплирования.
Аналог Java SDK: SdkTracerProvider.
Экземпляр создаётся через ОтелПостроительПровайдераТрассировки.
Методы
ПостроительТрассировщика
Создает построитель трассировщика (TracerBuilder).
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ИмяБиблиотеки | Строка | — | Имя инструментирующей библиотеки |
Возвращает: ОтелПостроительТрассировщика
ПолучитьТрассировщик
Создает или возвращает трассировщик для указанной библиотеки (кэшируется по ключу имя:версия).
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ИмяБиблиотеки | Строка | — | Имя инструментирующей библиотеки |
ВерсияБиблиотеки | Строка | "" | Версия библиотеки |
АтрибутыОбласти | ОтелАтрибуты | Неопределено | Атрибуты InstrumentationScope |
АдресСхемы | Строка | "" | URL схемы телеметрии |
Возвращает: ОтелТрассировщик
ДобавитьПроцессор
Добавляет процессор спанов в цепочку.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Процессор | ОтелПростойПроцессорСпанов, ОтелПакетныйПроцессорСпанов | — | Процессор спанов |
Ресурс
Возвращает ресурс провайдера.
Возвращает: ОтелРесурс
СброситьБуфер
Принудительно отправляет все накопленные данные через процессоры.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ТаймаутМс | Число | 0 | Таймаут в миллисекундах (0 — без ограничения) |
Возвращает: ОтелРезультатЭкспорта — агрегированный результат сброса всех процессоров
Закрыть
Завершает работу провайдера и возвращает результат.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ТаймаутМс | Число | 30000 | Таймаут операции в миллисекундах |
Возвращает: ОтелРезультатЗакрытия — результат закрытия
Пример
Провайдер = Новый ОтелПостроительПровайдераТрассировки()
.УстановитьРесурс(Ресурс)
.ДобавитьПроцессор(Процессор)
.УстановитьСэмплер(ОтелСэмплер.ВсегдаВключен())
.Построить();
Трассировщик = Провайдер.ПолучитьТрассировщик("мой-сервис");См. также
- ОтелПостроительПровайдераТрассировки
- ОтелТрассировщик
- ОтелПростойПроцессорСпанов
- ОтелПакетныйПроцессорСпанов
ОтелПростойПроцессорСпанов
Простой (синхронный) процессор спанов.
Описание
Экспортирует спаны синхронно в момент их завершения. Не буферизует данные — каждый завершённый спан немедленно передаётся экспортеру. Подходит для разработки и тестирования; в продакшне рекомендуется использовать ОтелПакетныйПроцессорСпанов.
Аналог Java SDK: SimpleSpanProcessor.
Конструктор
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Экспортер | Произвольный | — | Экспортер спанов (должен реализовывать интерфейс экспортера) |
Методы
ПриНачале
Вызывается при начале спана. В простом процессоре не выполняет действий.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Спан | ОтелСпан | — | Начавшийся спан |
РодительскийКонтекст | Произвольный | — | Родительский контекст |
ПередЗавершением
Вызывается перед завершением спана. В простом процессоре не выполняет действий.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Спан | ОтелСпан | — | Завершаемый спан |
ПриЗавершении
Вызывается при завершении спана. Синхронно экспортирует спан.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Спан | ОтелСпан | — | Завершённый спан |
СброситьБуфер
Синхронизирует незавершённые операции экспорта.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ТаймаутМс | Число | 0 | Таймаут в миллисекундах |
Возвращает: ОтелРезультатЭкспорта
Закрыть
Завершает работу процессора и закрывает экспортер.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ТаймаутМс | Число | 0 | Таймаут в миллисекундах |
Возвращает: ОтелРезультатЗакрытия
Пример
// OTLP HTTP-экспортер (из подсистемы Экспорт)
Экспортер = Новый ОтелOtlpГрпцЭкспортерСпанов();
Процессор = Новый ОтелПростойПроцессорСпанов(Экспортер);
Провайдер = Новый ОтелПостроительПровайдераТрассировки()
.ДобавитьПроцессор(Процессор)
.Построить();См. также
ОтелСобытиеСпана
Событие (Event) спана.
Описание
Именованное событие с меткой времени и атрибутами, добавляемое к спану. Аналог Java SDK: EventData. Создаётся внутри SDK; доступен через Спан.События().
Конструктор
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Имя | Строка | — | Имя события |
НовыеАтрибуты | Соответствие | Неопределено | Атрибуты события |
МеткаВремени | Дата | Неопределено | Метка времени (по умолчанию — текущее время) |
МаксАтрибутов | Число | 0 | Максимальное количество атрибутов (0 — без ограничения) |
Методы
Имя
Возвращает имя события.
Возвращает: Строка
Время
Возвращает метку времени события.
Возвращает: Дата
Атрибуты
Возвращает атрибуты события.
Возвращает: ОтелАтрибуты
КоличествоОтброшенныхАтрибутов
Возвращает количество атрибутов, отброшенных из-за лимита.
Возвращает: Число
ВСоответствиеOtlp
Сериализует событие в соответствие для OTLP-экспорта.
Возвращает: Соответствие — словарь в формате OTLP
Пример
// Чтение событий спана
Для Каждого Событие Из Спан.События() Цикл
Сообщить("Событие: " + Событие.Имя() + " @ " + Событие.Время());
КонецЦикла;См. также
ОтелСостояниеТрассировки
Состояние трассировки (W3C TraceState).
Описание
Хранит пары ключ-значение, передаваемые по W3C TraceContext HTTP-заголовку tracestate. Ключи имеют формат vendorname или tenant@vendorname. Максимум 32 записи (ограничение W3C TraceState spec).
Аналог Java SDK: TraceState. Иммутабельный: методы Установить, Удалить возвращают новый экземпляр.
Методы
Получить
Возвращает значение по ключу.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Ключ | Строка | — | Ключ записи |
Возвращает: Строка — значение или пустая строка
Установить
Добавляет или обновляет значение по ключу. Возвращает новый экземпляр (иммутабельность).
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Ключ | Строка | — | Ключ записи |
Значение | Строка | — | Значение записи |
Возвращает: ОтелСостояниеТрассировки — новый экземпляр с добавленной записью
Удалить
Удаляет запись по ключу. Возвращает новый экземпляр.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Ключ | Строка | — | Ключ для удаления |
Возвращает: ОтелСостояниеТрассировки — новый экземпляр без удалённой записи
ПолучитьОтелПодКлюч
Возвращает подзначение из записи OTel-вендора (vendor key = ot).
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ИмяПодКлюча | Строка | — | Имя подключа в OTel-записи |
Возвращает: Строка
УстановитьОтелПодКлюч
Устанавливает подзначение в записи OTel-вендора.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ИмяПодКлюча | Строка | — | Имя подключа |
Значение | Строка | — | Значение |
Принудительно | Булево | Ложь | Перезаписать существующее значение |
Возвращает: ОтелСостояниеТрассировки — новый экземпляр
Количество
Возвращает количество записей.
Возвращает: Число
Пример
СостояниеТрассировки = Спан.КонтекстСпана().СостояниеТрассировки();
НовоеСостояние = СостояниеТрассировки
.Установить("vendor1", "значение1")
.Установить("vendor2", "значение2");
Сообщить("Записей: " + НовоеСостояние.Количество());См. также
ОтелСпан
Спан трассировки (Span).
Описание
Потокобезопасный объект, содержащий данные одной единицы работы. Создаётся через Трассировщик.НачатьСпан(), НачатьКорневойСпан(), НачатьДочернийСпан() или ОтелПостроительСпана.НачатьСпан().
Важно: Конструктор технически публичен из-за ограничений OneScript, но НЕ должен вызываться напрямую. Используйте только методы трассировщика.
Все методы записи (установка статуса, атрибутов и т.д.) не производят действий, если спан уже завершён.
Методы чтения
Имя
Возвращает имя спана.
Возвращает: Строка
КонтекстСпана
Возвращает неизменяемый контекст спана (SpanContext).
Возвращает: ОтелКонтекстСпана
ИдРодительскогоСпана
Возвращает идентификатор родительского спана.
Возвращает: Строка — 16 hex-символов или пустая строка для корневого спана
КонтекстРодительскогоСпана
Возвращает контекст спана родителя.
Возвращает: ОтелКонтекстСпана
ВидСпана
Возвращает вид спана.
Возвращает: Число — константа из ОтелВидСпана
ВремяНачала
Возвращает время начала спана.
Возвращает: Дата
ВремяОкончания
Возвращает время окончания спана (Неопределено если не завершён).
Возвращает: Дата, Неопределено
Атрибуты
Возвращает атрибуты спана.
Возвращает: ОтелАтрибуты
События
Возвращает список событий спана.
Возвращает: Массив из ОтелСобытиеСпана
Линки
Возвращает список линков спана.
Возвращает: Массив из ОтелЛинк
Ресурс
Возвращает ресурс спана (из провайдера трассировки).
Возвращает: ОтелРесурс
ОбластьИнструментирования
Возвращает область инструментирования (InstrumentationScope).
Возвращает: ОтелОбластьИнструментирования
КодСтатуса
Возвращает код статуса спана.
Возвращает: Число — константа из ОтелКодСтатуса
СообщениеСтатуса
Возвращает сообщение статуса.
Возвращает: Строка
Завершен
Проверяет, завершён ли спан.
Возвращает: Булево
КоличествоОтброшенныхАтрибутов
Возвращает: Число — количество атрибутов, отброшенных из-за лимита
КоличествоОтброшенныхСобытий
Возвращает: Число — количество событий, отброшенных из-за лимита
КоличествоОтброшенныхЛинков
Возвращает: Число — количество линков, отброшенных из-за лимита
Методы записи
УстановитьСтатус
Устанавливает статус спана. По спецификации OpenTelemetry: статус Ок и Ошибка не могут быть понижены до НеУстановлен. Переход Ок → Ошибка игнорируется.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Значение | Число | — | Код статуса из ОтелКодСтатуса |
Сообщение | Строка | "" | Сообщение статуса (только для Ошибка) |
Возвращает: ОтелСпан — ЭтотОбъект для fluent API
ПереопределитьВремяНачала
Изменяет время начала спана.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
НовоеВремяНачала | Дата | — | Новое время начала |
СделатьТекущим
Помещает спан в текущий контекст (аналог Java Span.makeCurrent()).
Возвращает: ОтелТокенКонтекста — токен для последующего Закрыть()
Завершить
Завершает спан и отправляет его в цепочку процессоров. После вызова методы записи игнорируются.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
НовоеВремяОкончания | Дата | Неопределено | Время окончания; если не указано — текущее время |
Пример
Спан = Трассировщик.НачатьСпан("SQL-запрос");
Токен = Спан.СделатьТекущим();
Попытка
Спан.УстановитьСтатус(ОтелКодСтатуса.Ок());
Исключение
Спан.УстановитьСтатус(ОтелКодСтатуса.Ошибка(), ОписаниеОшибки());
КонецПопытки;
Токен.Закрыть();
Спан.Завершить();См. также
ОтелСэмплер
Модуль — стратегии семплирования.
Описание
Предоставляет встроенные стратегии семплирования спанов и функцию ДолженСэмплировать(). Семплер вызывается провайдером трассировки при создании каждого спана для принятия решения — записывать и экспортировать спан, только записывать, или отбросить.
Аналог Java SDK: Sampler + встроенные реализации.
Стратегии семплирования
ВсегдаВключен
Все спаны записываются и экспортируются.
Возвращает: Число
ВсегдаВыключен
Все спаны отбрасываются.
Возвращает: Число
ПоДолеТрассировок
Семплирует заданную долю трассировок. Решение принимается на основе trace-id.
Возвращает: Число
НаОсновеРодителя
Наследует решение о семплировании от родительского спана. Для корневых спанов применяет НоваяКорневаяСтратегия (по умолчанию — ВсегдаВключен).
Возвращает: Число
ВсегдаЗаписывать
Все спаны записываются, но не экспортируются (только локальное хранение).
Возвращает: Число
Константы решений семплирования
РешениеЗаписатьИЭкспортировать
Спан записывается в память и экспортируется в бэкенд.
Возвращает: Число
РешениеЗаписать
Спан записывается в память, но НЕ экспортируется.
Возвращает: Число
РешениеОтбросить
Спан не записывается и не экспортируется; возвращается незаписывающий объект.
Возвращает: Число
Служебные функции
Описание
Возвращает строковое описание конфигурации семплера (для логирования).
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Стратегия | Число | — | Стратегия из этого модуля |
Доля | Число | 1.0 | Доля для ПоДолеТрассировок |
КорневаяСтратегия | Число | Неопределено | Корневая стратегия для НаОсновеРодителя |
Возвращает: Строка
ДолженСэмплировать
Принимает решение о семплировании спана. Вызывается автоматически провайдером трассировки.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Стратегия | Число | — | Стратегия семплирования |
Доля | Число | — | Доля для ПоДолеТрассировок |
ИдТрассировки | Строка | — | Идентификатор трассировки (32 hex) |
РодительСэмплирован | Булево | — | Флаг семплирования родительского спана |
ЕстьРодитель | Булево | — | Есть ли родительский спан |
... | Произвольный | Неопределено | Дополнительные параметры для конкретных стратегий |
Возвращает: ОтелРезультатСэмплирования
Пример
// Семплировать 10% трассировок (родительские наследуют решение)
Провайдер = Новый ОтелПостроительПровайдераТрассировки()
.УстановитьСэмплер(
ОтелСэмплер.НаОсновеРодителя(),
1.0,
ОтелСэмплер.ПоДолеТрассировок() // корневая стратегия
)
// При построении передаётся доля для корневой стратегии
.Построить();См. также
ОтелТрассировщик
Трассировщик — потокобезопасный объект для создания и управления спанами.
Описание
Все публичные методы безопасны для параллельного вызова из нескольких потоков. Создаётся через ОтелПровайдерТрассировки.ПолучитьТрассировщик() или ОтелSdk.ПолучитьТрассировщик(). Аналог Java SDK: Tracer.
Методы
ПостроительСпана
Создает построитель спана (SpanBuilder).
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ИмяСпана | Строка | — | Имя спана |
Возвращает: ОтелПостроительСпана
Включен
Проверяет, включён ли трассировщик. Имеет двухрежимную семантику:
Истина(SDK-режим): IdGenerator + Sampler работают штатно, создаются реальные спаны.Ложь(API-режим): возвращается non-recording Span, IdGenerator не вызывается.
По спецификации: инструментирующий код SHOULD вызывать
Включен()непосредственно перед каждым созданием спана, не кэшируя результат надолго.
Возвращает: Булево — Истина, если трассировщик может обрабатывать спаны
НачатьСпан
Начинает новый спан. Если в контексте есть текущий спан, создаёт дочерний; иначе — корневой.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ИмяСпана | Строка | — | Имя спана |
ВидСпана | Число | Неопределено | Вид спана из ОтелВидСпана |
НачальныеАтрибуты | Соответствие | Неопределено | Начальные атрибуты, передаются сэмплеру |
Линки | Массив из ОтелЛинк | Неопределено | Начальные линки |
Возвращает: ОтелСпан, ОтелНезаписывающийСпан — спан или незаписывающий спан, если отброшен семплером
НачатьКорневойСпан
Начинает новый корневой спан (без родителя).
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ИмяСпана | Строка | — | Имя спана |
ВидСпана | Число | Неопределено | Вид спана из ОтелВидСпана |
НачальныеАтрибуты | Соответствие | Неопределено | Начальные атрибуты |
Линки | Массив из ОтелЛинк | Неопределено | Начальные линки |
Возвращает: ОтелСпан, ОтелНезаписывающийСпан
НачатьДочернийСпан
Начинает новый дочерний спан.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ИмяСпана | Строка | — | Имя спана |
РодительскийКонтекст | ОтелСпан, ОтелКонтекстСпана | — | Родительский спан или контекст спана |
ВидСпана | Число | Неопределено | Вид спана из ОтелВидСпана |
НачальныеАтрибуты | Соответствие | Неопределено | Начальные атрибуты |
Линки | Массив из ОтелЛинк | Неопределено | Начальные линки |
Возвращает: ОтелСпан, ОтелНезаписывающийСпан
ОбластьИнструментирования
Возвращает область инструментирования трассировщика.
Возвращает: ОтелОбластьИнструментирования
УстановитьКонфигурация
Обновляет конфигурацию трассировщика.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Значение | ОтелКонфигурацияТрассировщика | — | Новая конфигурация |
Пример
Трассировщик = Сдк.ПолучитьТрассировщик("мой-сервис", "1.0.0");
Спан = Трассировщик.ПостроительСпана("обработка-запроса")
.УстановитьВидСпана(ОтелВидСпана.Сервер())
.УстановитьАтрибут("http.method", "GET")
.НачатьСпан();
Токен = Спан.СделатьТекущим();
Попытка
// ... логика обработки ...
Исключение
Спан.ЗаписатьИсключение(ИнформацияОбОшибке());
Спан.УстановитьСтатус(ОтелКодСтатуса.Ошибка());
КонецПопытки;
Токен.Закрыть();
Спан.Завершить();См. также
ОтелGrpcТранспорт
gRPC-транспорт для отправки телеметрии по протоколу OTLP.
Описание
Обеспечивает отправку данных трассировки, метрик и логов через gRPC на адреса OTLP-совместимых коллекторов (Grafana LGTM, OpenTelemetry Collector и т.д.). Использует библиотеку oint (OPI_GRPC) для gRPC-вызовов.
Реализует тот же интерфейс Отправить(Путь, Данные), что и ОтелHttpТранспорт, поэтому все существующие экспортеры (спаны, логи, метрики) работают с обоими транспортами.
Данные передаются в формате OTLP JSON (camelCase ключи); транспорт автоматически конвертирует их в формат protobuf (snake_case ключи) через внутренний конвертер.
При получении gRPC-кодов UNAVAILABLE, DEADLINE_EXCEEDED, RESOURCE_EXHAUSTED выполняет повторные попытки с экспоненциальной задержкой и jitter.
Конструктор
Новый ОтелGrpcТранспорт(
Адрес,
НастройкиTls,
Метаданные,
КаталогProto,
Таймаут,
НовыйМаксПопыток
)| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Адрес | Строка | — | Адрес OTLP-коллектора, например "http://localhost:4317". Схема http:// или https:// обязательна |
НастройкиTls | ОтелНастройкиTls | Неопределено | Настройки TLS для защищённых соединений |
Метаданные | Соответствие | Неопределено | Метаданные gRPC, отправляемые с каждым вызовом |
КаталогProto | Строка | "" | Каталог с OTLP .proto файлами (по умолчанию proto/ рядом с библиотекой) |
Таймаут | Число | 10000 | Таймаут gRPC-вызова в миллисекундах |
НовыйМаксПопыток | Число | 3 | Максимальное количество попыток отправки |
Методы
Отправить
Отправляет данные на указанный путь OTLP-адреса через gRPC. Автоматически конвертирует OTLP JSON в formат protobuf.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Путь | Строка | — | Путь OTLP-адреса, например "/v1/traces" |
Данные | Соответствие | — | Данные для отправки в формате OTLP JSON |
Возвращает: Булево — Истина, если отправка прошла успешно
Закрыть
Закрывает gRPC-соединение. После вызова транспорт перестаёт принимать запросы.
ПолучитьМетаданные
Возвращает метаданные gRPC, отправляемые с каждым вызовом.
Возвращает: Соответствие — метаданные gRPC
ПолучитьНастройкиTls
Возвращает настройки TLS транспорта.
Возвращает: ОтелНастройкиTls, Неопределено — настройки TLS или Неопределено, если не заданы
Пример
#Использовать opentelemetry
// Простой gRPC-транспорт
Транспорт = Новый ОтелGrpcТранспорт("http://localhost:4317");
// С метаданными авторизации
Метаданные = Новый Соответствие();
Метаданные.Вставить("authorization", "Bearer mytoken");
Транспорт = Новый ОтелGrpcТранспорт("http://localhost:4317", , Метаданные);
// С TLS
НастройкиTls = Новый ОтелНастройкиTls();
НастройкиTls.ФайлСертификата = "/etc/ssl/ca.crt";
Транспорт = Новый ОтелGrpcТранспорт("https://collector.example.com", НастройкиTls);
// Использование с экспортером
ЭкспортерСпанов = Новый ОтелЭкспортерСпанов(Транспорт);
// После работы — закрыть соединение
Транспорт.Закрыть();ОтелHttpТранспорт
HTTP-транспорт для отправки телеметрии по протоколу OTLP.
Описание
Обеспечивает отправку данных трассировки, метрик и логов в формате JSON или protobuf по HTTP на адреса OTLP-совместимых коллекторов (Grafana LGTM, OpenTelemetry Collector и т.д.). Использует библиотеку 1connector для HTTP-запросов.
При получении HTTP-кодов 429, 502, 503, 504 транспорт автоматически выполняет повторные попытки с экспоненциальной задержкой и jitter (поддержка Retry-After).
Поддерживает протоколы http/protobuf (по умолчанию, согласно спецификации OTel) и http/json, gzip-сжатие тела запроса, а также TLS-настройки через ОтелНастройкиTls.
Конструктор
Новый ОтелHttpТранспорт(
Адрес,
НовыеЗаголовки,
Таймаут,
НовыйМаксПопыток,
Компрессия,
НастройкиTls,
НовыйПротокол,
НовыйСигнал
)| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Адрес | Строка | — | Адрес OTLP-коллектора, например "http://localhost:4318" |
НовыеЗаголовки | Соответствие | Неопределено | Дополнительные HTTP-заголовки, отправляемые с каждым запросом |
Таймаут | Число | 10 | Таймаут HTTP-запроса в секундах |
НовыйМаксПопыток | Число | 3 | Максимальное количество попыток отправки при повторяемых ошибках |
Компрессия | Строка | Неопределено | Алгоритм сжатия: "gzip" или Неопределено для отключения |
НастройкиTls | ОтелНастройкиTls | Неопределено | Настройки TLS для защищённых соединений |
НовыйПротокол | Строка | "http/protobuf" | Протокол OTLP: "http/protobuf" или "http/json" |
НовыйСигнал | Строка | "" | Сигнал телеметрии: "traces", "metrics", "logs" или пустая строка |
Методы
Отправить
Отправляет данные на указанный путь OTLP-адреса. При получении HTTP 429/502/503/504 выполняет retry с экспоненциальной задержкой. Поддерживает оба протокола: http/json и http/protobuf.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Путь | Строка | — | Путь OTLP-адреса, например "/v1/traces" |
Данные | Соответствие | — | Данные для отправки в формате OTLP JSON |
Возвращает: Булево — Истина, если отправка прошла успешно
ПолучитьЗаголовки
Возвращает HTTP-заголовки, отправляемые с каждым запросом.
Возвращает: Соответствие — заголовки HTTP-запроса
ПолучитьНастройкиTls
Возвращает настройки TLS транспорта.
Возвращает: ОтелНастройкиTls, Неопределено — настройки TLS или Неопределено, если не заданы
Пример
#Использовать opentelemetry
// Простой HTTP-транспорт
Транспорт = Новый ОтелHttpТранспорт("http://localhost:4318");
// С заголовками авторизации и gzip-сжатием
Заголовки = Новый Соответствие();
Заголовки.Вставить("Authorization", "Bearer mytoken");
Транспорт = Новый ОтелHttpТранспорт("https://collector.example.com", Заголовки, 30, 5, "gzip");
// С настройками TLS
НастройкиTls = Новый ОтелНастройкиTls();
НастройкиTls.ФайлСертификата = "/etc/ssl/ca.crt";
Транспорт = Новый ОтелHttpТранспорт("https://collector.example.com", , , , , НастройкиTls);
// Использование с экспортером спанов
ЭкспортерСпанов = Новый ОтелЭкспортерСпанов(Транспорт);ОтелВПамятьТранспорт
Транспорт в памяти (InMemoryTransport) для тестирования.
Описание
Реализует тот же интерфейс Отправить(Путь, Данные), что и ОтелHttpТранспорт и ОтелGrpcТранспорт. Вместо отправки по сети сохраняет данные в массив для последующей проверки в тестах.
Является потокобезопасным: все операции защищены БлокировкаРесурса для корректной работы при конкурентном вызове.
Конструктор
Конструктор без параметров. При создании инициализирует пустой массив отправленных данных и признак закрытия в Ложь.
Новый ОтелВПамятьТранспорт()Методы
Отправить
Сохраняет данные в память. Если транспорт закрыт, возвращает Ложь.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Путь | Строка | — | Путь адреса, например "/v1/traces" |
Данные | Соответствие | — | Данные в формате OTLP JSON |
Возвращает: Булево — Истина, если транспорт не закрыт и данные сохранены
ПолучитьОтправленные
Возвращает все сохранённые отправки.
Возвращает: Массив из Соответствие — каждый элемент содержит ключи "Путь" и "Данные"
Очистить
Очищает все сохранённые отправки. Транспорт остаётся рабочим.
Закрыть
Завершает работу транспорта. После вызова метод Отправить() возвращает Ложь.
Пример
#Использовать opentelemetry
// Создать транспорт для тестирования
Транспорт = Новый ОтелВПамятьТранспорт();
// Подключить к экспортеру
Экспортер = Новый ОтелЭкспортерСпанов(Транспорт);
// ... выполнить операции, создающие спаны ...
// Проверить результаты
Отправленные = Транспорт.ПолучитьОтправленные();
Если Отправленные.Количество() > 0 Тогда
ПерваяОтправка = Отправленные[0];
Сообщить("Путь: " + ПерваяОтправка["Путь"]);
// Данные["resourceSpans"] - отправленные спаны
КонецЕсли;
// Сбросить для следующего теста
Транспорт.Очистить();ОтелНастройкиTls
Настройки TLS для OTLP-транспортов.
Описание
Используется для передачи параметров TLS в ОтелHttpТранспорт и ОтелGrpcТранспорт. Соответствует спецификации OTLP Exporter: поля Insecure, Certificate File, Client key file, Client certificate file.
Примечание: поля
ФайлКлиентскогоКлючаиФайлКлиентскогоСертификата(mTLS-клиентский сертификат) принимаются в настройках, но не применяются к HTTP-соединениям. Это ограничение текущей версии библиотеки1connector: параметрКлиентскийСертификатSSLсохраняется во внутренних настройках, но не передаётся в пул соединений. Следите за обновлениями1connector.
Конструктор
Конструктор без параметров. При создании все поля инициализируются пустыми строками, Insecure = Ложь.
Новый ОтелНастройкиTls()Свойства
| Свойство | Тип | По умолчанию | Описание |
|---|---|---|---|
ФайлСертификата | Строка | "" | Путь к файлу корневого сертификата (CA / trust chain) |
ФайлКлиентскогоКлюча | Строка | "" | Путь к файлу клиентского приватного ключа (для mTLS) |
ФайлКлиентскогоСертификата | Строка | "" | Путь к файлу клиентского сертификата (для mTLS) |
Insecure | Булево | Ложь | Если Истина — отключает проверку TLS-сертификата сервера |
Методы
Применен
Проверяет, применены ли какие-либо TLS-настройки.
Возвращает: Булево — Истина, если хотя бы одно поле задано (не пустая строка или Insecure = Истина)
Пример
#Использовать opentelemetry
// Отключить проверку сертификата (для разработки)
НастройкиTls = Новый ОтелНастройкиTls();
НастройкиTls.Insecure = Истина;
// С указанием CA-сертификата
НастройкиTls = Новый ОтелНастройкиTls();
НастройкиTls.ФайлСертификата = "/etc/ssl/certs/ca-bundle.crt";
// mTLS (только для gRPC)
НастройкиTls = Новый ОтелНастройкиTls();
НастройкиTls.ФайлСертификата = "/etc/ssl/ca.crt";
НастройкиTls.ФайлКлиентскогоКлюча = "/etc/ssl/client.key";
НастройкиTls.ФайлКлиентскогоСертификата = "/etc/ssl/client.crt";
// Передать в транспорт
Транспорт = Новый ОтелGrpcТранспорт("https://collector.example.com", НастройкиTls);
// Проверить, заданы ли настройки
Если НастройкиTls.Применен() Тогда
Сообщить("TLS настроен");
КонецЕсли;ОтелЭкспортерЛогов
Экспортер записей логов в формате OTLP.
Описание
Реализует экспорт логов по спецификации OpenTelemetry (OtlpLogExporter). Отправляет записи логов на адрес /v1/logs через любой транспорт: ОтелHttpТранспорт, ОтелGrpcТранспорт или ОтелВПамятьТранспорт.
Scope и resource читаются из каждой записи при формировании пакета OTLP. Все методы безопасны для конкурентного вызова: признак закрытия хранится в АтомарноеБулево. Экспорт выполняется асинхронно через Обещания с ограничением по таймауту.
Конструктор
Новый ОтелЭкспортерЛогов(Транспорт, ПутьСигнала, ТаймаутМс)| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Транспорт | ОтелHttpТранспорт, ОтелGrpcТранспорт, ОтелВПамятьТранспорт | — | Транспорт для отправки данных |
ПутьСигнала | Строка | "/v1/logs" | Путь OTLP-адреса для отправки логов |
ТаймаутМс | Число | 10000 | Таймаут экспорта в миллисекундах |
Методы
Экспортировать
Экспортирует массив записей логов. По спецификации OTel Export() не должен блокироваться бесконечно — операция ограничивается таймаутом.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
МассивЗаписей | Массив из ОтелЗаписьЛога | — | Записи логов для экспорта |
Таймаут | Число | Неопределено | Таймаут в миллисекундах; если не задан — используется значение из конструктора |
Возвращает: Булево — Истина, если экспорт успешен; Ложь при ошибке или таймауте
СброситьБуфер
Принудительно отправляет все накопленные данные. Для синхронного экспортера операция не требуется — всегда возвращает успех.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ТаймаутМс | Число | 0 | Таймаут в миллисекундах (0 — без ограничения) |
Возвращает: ОтелРезультатЭкспорта — результат операции
Закрыть
Завершает работу экспортера. После вызова метод Экспортировать() возвращает Ложь. Операция идемпотентна.
Возвращает: ОтелРезультатЗакрытия — результат закрытия
Пример
#Использовать opentelemetry
// Создать экспортер с HTTP-транспортом
Транспорт = Новый ОтелHttpТранспорт("http://localhost:4318");
Экспортер = Новый ОтелЭкспортерЛогов(Транспорт);
// С gRPC
Транспорт = Новый ОтелGrpcТранспорт("http://localhost:4317");
Экспортер = Новый ОтелЭкспортерЛогов(Транспорт);
// Интеграция с logos через аппендер
Транспорт = Новый ОтелHttpТранспорт("http://localhost:4318");
Экспортер = Новый ОтелЭкспортерЛогов(Транспорт);
// Используется совместно с ОтелАппендерLogos для автоматической отправки логов
// Закрыть после использования
Экспортер.Закрыть();ОтелЭкспортерМетрик
Экспортер метрик в формате OTLP.
Описание
Реализует экспорт метрик по спецификации OpenTelemetry (OtlpMetricExporter). Отправляет данные метрик на адрес /v1/metrics через любой транспорт: ОтелHttpТранспорт, ОтелGrpcТранспорт или ОтелВПамятьТранспорт.
Поддерживает типы метрик: Сумма, Датчик, Гистограмма, ЭкспоненциальнаяГистограмма. Перед отправкой выполняет валидацию совместимости агрегаций и темпоральности.
Все методы безопасны для конкурентного вызова. Поля состояния либо иммутабельны (назначаются в конструкторе), либо хранятся в АтомарноеБулево.
Конструктор
Новый ОтелЭкспортерМетрик(
Транспорт,
СелекторВременнойАгрегации,
ПутьСигнала,
ТаймаутМс
)| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Транспорт | ОтелHttpТранспорт, ОтелGrpcТранспорт, ОтелВПамятьТранспорт | — | Транспорт для отправки данных |
СелекторВременнойАгрегации | УниФункция | Неопределено | Функция-селектор: Применить(ТипИнструмента) → Число; определяет временну́ю агрегацию для каждого типа инструмента |
ПутьСигнала | Строка | "/v1/metrics" | Путь OTLP-адреса для отправки метрик |
ТаймаутМс | Число | 10000 | Таймаут экспорта в миллисекундах |
Методы
Экспортировать
Экспортирует данные метрик. Перед отправкой валидирует совместимость типов метрик и темпоральности. По спецификации OTel не блокируется бесконечно.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
МассивДанныхМетрик | Массив из ОтелДанныеМетрики | — | Данные метрик для экспорта |
Таймаут | Число | Неопределено | Таймаут в миллисекундах; если не задан — используется значение из конструктора |
Возвращает: Булево — Истина, если экспорт успешен; Ложь при ошибке или таймауте
СброситьБуфер
Принудительно отправляет все накопленные данные. Для синхронного экспортера буферизация отсутствует — всегда возвращает успех. Операция тривиально потокобезопасна (no-op).
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ТаймаутМс | Число | 0 | Таймаут в миллисекундах (0 — без ограничения) |
Возвращает: ОтелРезультатЭкспорта — результат операции
Закрыть
Завершает работу экспортера. После вызова метод Экспортировать() возвращает Ложь. Операция идемпотентна: повторные вызовы безопасны.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ТаймаутМс | Число | 30000 | Таймаут операции в миллисекундах |
Возвращает: ОтелРезультатЗакрытия — результат закрытия
ПринудительноВыгрузитьСРезультатом
Принудительно выгружает накопленные данные и возвращает результат. Для синхронного экспортера буферизация отсутствует — операция всегда успешна, если экспортер не закрыт.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ТаймаутМс | Число | 30000 | Таймаут операции в миллисекундах |
Возвращает: ОтелРезультатЗакрытия — результат операции
ПолучитьВременнуюАгрегацию
Возвращает временну́ю агрегацию для указанного типа инструмента.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ТипИнструмента | Строка | — | Тип инструмента: "counter", "up_down_counter", "histogram", "gauge" и т.д. |
Возвращает: Число — значение из ОтелВременнаяАгрегация
Пример
#Использовать opentelemetry
// Создать экспортер с HTTP-транспортом
Транспорт = Новый ОтелHttpТранспорт("http://localhost:4318");
Экспортер = Новый ОтелЭкспортерМетрик(Транспорт);
// С кастомным селектором временной агрегации
// (функция, которая возвращает тип агрегации по типу инструмента)
Транспорт = Новый ОтелGrpcТранспорт("http://localhost:4317");
Экспортер = Новый ОтелЭкспортерМетрик(Транспорт, МойСелектор);
// Закрыть после использования
Экспортер.Закрыть();ОтелЭкспортерСпанов
Экспортер завершённых спанов трассировки в формате OTLP.
Описание
Реализует экспорт спанов по спецификации OpenTelemetry (OtlpSpanExporter). Отправляет завершённые спаны на адрес /v1/traces через любой транспорт: ОтелHttpТранспорт, ОтелGrpcТранспорт или ОтелВПамятьТранспорт.
Все методы (Экспортировать, СброситьБуфер, Закрыть) безопасны для конкурентного вызова: признак закрытия хранится в АтомарноеБулево. Экспорт выполняется асинхронно через Обещания, что гарантирует ограничение по времени без блокировки потока.
Конструктор
Новый ОтелЭкспортерСпанов(Транспорт, ПутьСигнала, ТаймаутМс)| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Транспорт | ОтелHttpТранспорт, ОтелGrpcТранспорт, ОтелВПамятьТранспорт | — | Транспорт для отправки данных |
ПутьСигнала | Строка | "/v1/traces" | Путь OTLP-адреса для отправки спанов |
ТаймаутМс | Число | 10000 | Таймаут экспорта в миллисекундах |
Методы
Экспортировать
Экспортирует массив завершённых спанов. По спецификации OTel Export() не должен блокироваться бесконечно — операция ограничивается таймаутом.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
МассивСпанов | Массив из ОтелСпан | — | Спаны для экспорта |
Таймаут | Число | Неопределено | Таймаут в миллисекундах; если не задан — используется значение из конструктора |
Возвращает: Булево — Истина, если экспорт успешен; Ложь при ошибке или таймауте
СброситьБуфер
Принудительно отправляет все накопленные данные. Для синхронного экспортера операция не требуется — всегда возвращает успех.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ТаймаутМс | Число | 0 | Таймаут в миллисекундах (0 — без ограничения) |
Возвращает: ОтелРезультатЭкспорта — результат операции
Закрыть
Завершает работу экспортера. После вызова метод Экспортировать() возвращает Ложь. Операция идемпотентна.
Возвращает: ОтелРезультатЗакрытия — результат закрытия
Пример
#Использовать opentelemetry
// Создать экспортер с HTTP-транспортом
Транспорт = Новый ОтелHttpТранспорт("http://localhost:4318");
Экспортер = Новый ОтелЭкспортерСпанов(Транспорт);
// С gRPC
Транспорт = Новый ОтелGrpcТранспорт("http://localhost:4317");
Экспортер = Новый ОтелЭкспортерСпанов(Транспорт);
// Для тестирования — в памяти
ТестТранспорт = Новый ОтелВПамятьТранспорт();
Экспортер = Новый ОтелЭкспортерСпанов(ТестТранспорт);
// Закрыть после использования
Экспортер.Закрыть();ОтелBaggage
Класс Baggage по спецификации W3C Baggage.
Описание
Хранит пары ключ-значение для передачи контекстных данных между сервисами. ОтелBaggage иммутабелен — внутри хранит ФиксированноеСоответствие. Для создания или изменения используйте ОтелПостроительBaggage или метод ТоПостроитель().
Аналог Java SDK: Baggage.
Конструктор
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
НовыеЗначения | Соответствие | Неопределено | Пары ключ-значение |
НовыеМетаданные | Соответствие | Неопределено | Метаданные по ключам |
Обычно создаётся через
ОтелПостроительBaggage.Построить().
Методы
Текущий
Возвращает текущий Baggage из контекста выполнения. Аналог Java SDK: Baggage.current().
Возвращает: ОтелBaggage, Неопределено — текущий Baggage или Неопределено
СделатьТекущим
Делает этот Baggage текущим в контексте выполнения.
Возвращает: ОтелТокенКонтекста — токен; передайте в ОтелКонтекст.ОтсоединитьКонтекст() или вызовите Закрыть()
Получить
Возвращает значение по ключу.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Ключ | Строка | — | Ключ записи |
Возвращает: Строка, Неопределено — значение или Неопределено, если ключ не найден
ПолучитьМетаданные
Возвращает метаданные по ключу.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Ключ | Строка | — | Ключ записи |
Возвращает: Строка — метаданные или пустая строка, если не найдены
Установить
Возвращает новый Baggage с добавленной парой ключ-значение.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Ключ | Строка | — | Ключ |
Значение | Строка | — | Значение |
Возвращает: ОтелBaggage — новый иммутабельный экземпляр с добавленным значением
Удалить
Возвращает новый Baggage без указанного ключа.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Ключ | Строка | — | Ключ для удаления |
Возвращает: ОтелBaggage — новый иммутабельный экземпляр без указанного ключа
Очистить
Возвращает новый пустой Baggage.
Возвращает: ОтелBaggage — новый пустой иммутабельный экземпляр
ПолучитьВсе
Возвращает все пары ключ-значение.
Возвращает: ФиксированноеСоответствие — иммутабельная коллекция
ТоПостроитель
Создает построитель на основе текущего Baggage. Аналог Java SDK: Baggage.toBuilder().
Возвращает: ОтелПостроительBaggage
Количество
Возвращает количество записей.
Возвращает: Число
ПолучитьВсеМетаданные
Возвращает все метаданные.
Возвращает: ФиксированноеСоответствие — иммутабельная коллекция метаданных
Пример
Baggage = Новый ОтелПостроительBaggage()
.Установить("userId", "12345")
.Установить("tenantId", "abc")
.Построить();
Токен = Baggage.СделатьТекущим();
// ... работа в контексте Baggage ...
Токен.Закрыть();См. также
ОтелSdk
Главный класс OpenTelemetry SDK — единая точка входа в телеметрию.
Описание
Агрегирует ОтелПровайдерТрассировки, ОтелПровайдерЛогирования, ОтелПровайдерМетрик и пропагаторы контекста. Предоставляет shortcut-методы для получения ОтелТрассировщик, ОтелЛоггер и ОтелМетр.
Аналог Java SDK: OpenTelemetrySdk.
Экземпляр создаётся через ОтелПостроительSdk — прямой вызов конструктора в пользовательском коде не рекомендуется.
Конструктор
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ПровайдерТрассировки | ОтелПровайдерТрассировки | Неопределено | Провайдер трассировки |
ПровайдерЛогирования | ОтелПровайдерЛогирования | Неопределено | Провайдер логирования |
ПровайдерМетрик | ОтелПровайдерМетрик | Неопределено | Провайдер метрик |
Пропагаторы | ОтелКомпозитныйПропагатор | Неопределено | Пропагаторы контекста |
Методы
ПровайдерТрассировки
Возвращает провайдер трассировки.
Возвращает: ОтелПровайдерТрассировки — провайдер трассировки
ПровайдерЛогирования
Возвращает провайдер логирования.
Возвращает: ОтелПровайдерЛогирования — провайдер логирования
ПровайдерМетрик
Возвращает провайдер метрик.
Возвращает: ОтелПровайдерМетрик — провайдер метрик
Пропагаторы
Возвращает пропагаторы контекста.
Возвращает: ОтелКомпозитныйПропагатор, Неопределено — пропагаторы контекста или Неопределено
ПолучитьТрассировщик
Shortcut: получить трассировщик. Аналог Java SDK: openTelemetry.getTracer("name").
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ИмяБиблиотеки | Строка | — | Имя инструментирующей библиотеки |
ВерсияБиблиотеки | Строка | "" | Версия библиотеки |
Возвращает: ОтелТрассировщик — трассировщик
ПостроительТрассировщика
Shortcut: получить построитель трассировщика.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ИмяБиблиотеки | Строка | — | Имя инструментирующей библиотеки |
Возвращает: ОтелПостроительТрассировщика — построитель трассировщика
ПолучитьЛоггер
Shortcut: получить логгер.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ИмяБиблиотеки | Строка | — | Имя инструментирующей библиотеки |
ВерсияБиблиотеки | Строка | "" | Версия библиотеки |
Возвращает: ОтелЛоггер — логгер
ПостроительЛоггера
Shortcut: получить построитель логгера.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ИмяБиблиотеки | Строка | — | Имя инструментирующей библиотеки |
Возвращает: ОтелПостроительЛоггера — построитель логгера
ПолучитьМетр
Shortcut: получить метр.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ИмяБиблиотеки | Строка | — | Имя инструментирующей библиотеки |
ВерсияБиблиотеки | Строка | "" | Версия библиотеки |
Возвращает: ОтелМетр — метр
ПостроительМетра
Shortcut: получить построитель метра.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ИмяБиблиотеки | Строка | — | Имя инструментирующей библиотеки |
Возвращает: ОтелПостроительМетра — построитель метра
СброситьБуфер
Принудительно отправляет все накопленные данные из всех провайдеров.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ТаймаутМс | Число | 0 | Таймаут в миллисекундах (0 — без ограничения) |
Возвращает: ОтелРезультатЭкспорта — агрегированный результат сброса всех провайдеров
Закрыть
Завершает работу всех провайдеров.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ТаймаутМс | Число | 30000 | Таймаут завершения в миллисекундах. Переопределяется переменной окружения OTEL_SDK_SHUTDOWN_TIMEOUT |
Возвращает: ОтелРезультатЗакрытия — первый неуспешный результат или успешный результат
Пример
Сдк = Новый ОтелПостроительSdk()
.УстановитьПровайдерТрассировки(ПровайдерТрассировки)
.УстановитьПровайдерМетрик(ПровайдерМетрик)
.Построить();
Трассировщик = Сдк.ПолучитьТрассировщик("мой-сервис");
Спан = Трассировщик.НачатьСпан("обработка-запроса");
// ...
Спан.Завершить();
Сдк.Закрыть();См. также
ОтелАтрибуты
Класс для хранения атрибутов (пар ключ-значение) телеметрии OpenTelemetry.
Описание
Атрибуты используются для описания ресурсов, спанов, событий, записей логов и точек данных метрик. Внутри хранит обычное Соответствие. Поддерживает цепочку вызовов (fluent API) через метод Установить.
Методы
Установить
Устанавливает значение атрибута по ключу.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Ключ | Строка | — | Имя атрибута |
Значение | Произвольный | — | Значение атрибута (строка, число, булево) |
Возвращает: ОтелАтрибуты — ссылка на текущий объект для цепочки вызовов
Получить
Возвращает значение атрибута по ключу.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Ключ | Строка | — | Имя атрибута |
Возвращает: Произвольный — значение атрибута или Неопределено
Удалить
Удаляет атрибут по ключу.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Ключ | Строка | — | Имя атрибута |
Количество
Возвращает количество атрибутов.
Возвращает: Число — количество атрибутов
ВСоответствие
Возвращает внутреннее соответствие атрибутов.
Возвращает: Соответствие — внутреннее соответствие атрибутов
ВМассивOtlp
Преобразует атрибуты в массив формата OTLP JSON.
Возвращает: Массив — массив объектов {"key": "...", "value": {...}}
Пример
Атрибуты = Новый ОтелАтрибуты()
.Установить("http.method", "GET")
.Установить("http.status_code", 200)
.Установить("http.url", "https://example.com/api");
Значение = Атрибуты.Получить("http.method"); // "GET"См. также
ОтелГлобальный
Модуль глобального реестра OpenTelemetry (GlobalOpenTelemetry).
Описание
Хранит единственный экземпляр ОтелSdk для всего приложения. Потокобезопасен: использует АтомарнаяСсылка. Аналог Java SDK: GlobalOpenTelemetry.
Если SDK не установлен явно, shortcut-методы используют noop-fallback (SDK с AlwaysOff семплером, без процессоров и читателей), чтобы инструментирующий код не блокировал конфигурацию.
Функции
Установить
Устанавливает глобальный экземпляр OpenTelemetry SDK. Может быть вызван только один раз; повторный вызов вызывает исключение. Потокобезопасен (CAS).
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Сдк | ОтелSdk | — | Экземпляр SDK |
Получить
Возвращает глобальный экземпляр OpenTelemetry SDK.
Возвращает: ОтелSdk, Неопределено
Сбросить
Сбрасывает глобальный экземпляр. Предназначен для тестов.
СброситьИЗакрыть
Закрывает SDK и сбрасывает глобальный экземпляр. Предназначен для тестов.
ПолучитьТрассировщик
Shortcut: получить трассировщик из глобального SDK.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ИмяБиблиотеки | Строка | — | Имя инструментирующей библиотеки |
ВерсияБиблиотеки | Строка | "" | Версия библиотеки |
Возвращает: ОтелТрассировщик
ПолучитьЛоггер
Shortcut: получить логгер из глобального SDK.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ИмяБиблиотеки | Строка | — | Имя инструментирующей библиотеки |
ВерсияБиблиотеки | Строка | "" | Версия библиотеки |
Возвращает: ОтелЛоггер
ПолучитьМетр
Shortcut: получить метр из глобального SDK.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ИмяБиблиотеки | Строка | — | Имя инструментирующей библиотеки |
ВерсияБиблиотеки | Строка | "" | Версия библиотеки |
Возвращает: ОтелМетр
УстановитьПропагаторы
Устанавливает глобальные пропагаторы контекста. Может использоваться независимо от SDK.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Пропагаторы | ОтелКомпозитныйПропагатор, ОтелНоопПропагатор | — | Пропагаторы контекста |
ПолучитьПропагаторы
Возвращает глобальные пропагаторы контекста. Если не установлены явно — из SDK. Если SDK не инициализирован — default composite propagator (W3C Trace Context + W3C Baggage).
Возвращает: ОтелКомпозитныйПропагатор, ОтелНоопПропагатор — пропагаторы контекста
Пример
// Регистрация
ОтелГлобальный.Установить(Сдк);
// Использование из любой точки приложения
Трассировщик = ОтелГлобальный.ПолучитьТрассировщик("мой-сервис");
Спан = Трассировщик.НачатьСпан("операция");
// ...
Спан.Завершить();См. также
ОтелКлючКонтекста
Ключ для хранения значений в контексте.
Описание
Ключи сравниваются по ссылке, а не по имени — два ключа с одинаковым именем являются разными ключами. Имя используется только для отладки.
Создаётся через ОтелКонтекст.СоздатьКлюч(Имя).
Конструктор
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Имя | Строка | — | Имя ключа (для отладки) |
Методы
Имя
Возвращает имя ключа (для отладки).
Возвращает: Строка — имя ключа
Пример
КлючСессии = ОтелКонтекст.СоздатьКлюч("session");
// Создать контекст с сессией
НовыйКонтекст = ОтелКонтекст.КонтекстСоЗначением(
ОтелКонтекст.Текущий(),
КлючСессии,
СессионныйОбъект
);
// Прочитать из контекста
Сессия = ОтелКонтекст.ПолучитьИзКонтекста(ОтелКонтекст.Текущий(), КлючСессии);См. также
ОтелКонтекст
Модуль для управления текущим контекстом выполнения.
Описание
Реализует generic key-value хранилище контекста (аналог Java SDK: io.opentelemetry.context.Context). Каждый поток (ФоновоеЗадание) имеет свой стек контекстов. Контекст — это ФиксированноеСоответствие ключ → значение. Ключи — ОтелКлючКонтекста, сравниваются по ссылке.
Потокобезопасен: использует СинхронизированнаяКарта для хранения стеков контекстов.
Важно: Ключи для спана и Baggage являются приватными переменными модуля. Для работы со спанами и Baggage используйте специализированные методы
ТекущийСпан(),ТекущийBaggage()и т.д.
Функции
СоздатьКлюч
Создает новый ключ контекста. Ключи сравниваются по ссылке — два ключа с одинаковым именем являются разными ключами.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Имя | Строка | — | Имя ключа (для отладки) |
Возвращает: ОтелКлючКонтекста — новый ключ контекста
Текущий
Возвращает текущий контекст (верхний элемент стека). Если стек пуст, возвращает пустой иммутабельный контекст.
Возвращает: ФиксированноеСоответствие — текущий контекст (иммутабельный)
Получить
Возвращает значение из текущего контекста по ключу.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Ключ | ОтелКлючКонтекста | — | Ключ контекста |
Возвращает: Произвольный, Неопределено — значение по ключу или Неопределено
ТекущийСпан
Возвращает текущий спан из контекста текущего потока.
Возвращает: ОтелСпан, Неопределено — текущий спан или Неопределено
ТекущийBaggage
Возвращает текущий Baggage из контекста текущего потока.
Возвращает: ОтелBaggage, Неопределено — текущий Baggage или Неопределено
ПолучитьИзКонтекста
Возвращает значение из переданного контекста по ключу.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Контекст | ФиксированноеСоответствие, Соответствие | — | Контекст |
Ключ | ОтелКлючКонтекста | — | Ключ контекста |
Возвращает: Произвольный, Неопределено — значение по ключу или Неопределено
КонтекстСоЗначением
Создает новый иммутабельный контекст с установленным значением.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Контекст | ФиксированноеСоответствие, Соответствие | — | Исходный контекст |
Ключ | ОтелКлючКонтекста | — | Ключ контекста |
Значение | Произвольный | — | Значение для установки |
Возвращает: ФиксированноеСоответствие — новый иммутабельный контекст
СпанИзКонтекста
Возвращает спан из переданного контекста или из текущего контекста потока.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
КонтекстОбъект | ФиксированноеСоответствие, Соответствие, Неопределено | Неопределено | Явный контекст |
Возвращает: ОтелСпан, Неопределено — спан или Неопределено
BaggageИзКонтекста
Возвращает Baggage из переданного контекста или из текущего контекста потока.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
КонтекстОбъект | ФиксированноеСоответствие, Соответствие, Неопределено | Неопределено | Явный контекст |
Возвращает: ОтелBaggage, Неопределено — Baggage или Неопределено
КонтекстСоСпаном
Создает новый иммутабельный контекст (копию переданного) с установленным спаном.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Контекст | ФиксированноеСоответствие, Соответствие | — | Исходный контекст |
Спан | ОтелСпан, ОтелНезаписывающийСпан | — | Спан для установки |
Возвращает: ФиксированноеСоответствие — новый иммутабельный контекст со спаном
ПрисоединитьКонтекст
Присоединяет новый контекст к текущему потоку (Attach Context). Помещает контекст на вершину стека.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Контекст | ФиксированноеСоответствие, Соответствие | — | Контекст для установки |
Возвращает: ОтелТокенКонтекста — токен для последующего ОтсоединитьКонтекст()
ОтсоединитьКонтекст
Отсоединяет контекст по токену, восстанавливая предыдущий (Detach Context).
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Токен | ОтелТокенКонтекста | — | Токен, возвращенный из ПрисоединитьКонтекст() |
Возвращает: Булево — Истина при корректном порядке, Ложь при нарушении
Очистить
Очищает контекст текущего потока.
ОчиститьМертвыеПотоки
Удаляет стеки контекстов для завершившихся потоков. Предотвращает утечку памяти. Вызывается автоматически при ОтелSdk.Закрыть().
КоличествоОтслеживаемыхПотоков
Возвращает количество отслеживаемых потоков. Используется для мониторинга и тестирования утечек.
Возвращает: Число — количество отслеживаемых потоков
Пример
// RAII-паттерн
Токен = Спан.СделатьТекущим();
Попытка
// ... работа в контексте спана ...
Исключение
Спан.ЗаписатьИсключение(ИнформацияОбОшибке());
КонецПопытки;
Токен.Закрыть();
Спан.Завершить();
// Явный Attach/Detach
Токен = ОтелКонтекст.ПрисоединитьКонтекст(НовыйКонтекст);
// ... работа ...
ОтелКонтекст.ОтсоединитьКонтекст(Токен);См. также
ОтелОбластьИнструментирования
Класс InstrumentationScope по спецификации OpenTelemetry.
Описание
Описывает библиотеку инструментации, создавшую телеметрию. Используется в трассировщике, логгере и метре для группировки данных при экспорте. Аналог Java SDK: io.opentelemetry.sdk.common.InstrumentationScopeInfo.
Конструктор
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Имя | Строка | — | Имя инструментирующей библиотеки |
Версия | Строка | "" | Версия библиотеки |
Атрибуты | ОтелАтрибуты | Неопределено | Атрибуты скоупа |
АдресСхемы | Строка | "" | URL схемы телеметрии |
Методы
Имя
Возвращает имя инструментирующей библиотеки.
Возвращает: Строка
Версия
Возвращает версию библиотеки.
Возвращает: Строка
Атрибуты
Возвращает атрибуты скоупа.
Возвращает: ОтелАтрибуты, Неопределено
АдресСхемы
Возвращает URL схемы телеметрии.
Возвращает: Строка
Ключ
Возвращает уникальный ключ для кэширования (формат: имя:версия). Безопасен к Неопределено.
Возвращает: Строка
БиблиотекаИнструментирования
Возвращает ЭтотОбъект как InstrumentationLibrary (deprecated). Сохранен для обратной совместимости — InstrumentationLibrary содержит те же Имя и Версия, что и InstrumentationScope.
Возвращает: ОтелОбластьИнструментирования
См. также
ОтелПостроительBaggage
Построитель Baggage (BaggageBuilder) по спецификации OpenTelemetry.
Описание
Fluent API для создания иммутабельного ОтелBaggage. Аналог Java SDK: Baggage.builder().
Конструктор
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
НачальныеЗначения | Соответствие | Неопределено | Начальные значения (для toBuilder) |
НачальныеМетаданные | Соответствие | Неопределено | Начальные метаданные (для toBuilder) |
Методы
Установить
Устанавливает пару ключ-значение с опциональными метаданными.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Ключ | Строка | — | Ключ элемента |
Значение | Строка | — | Значение элемента |
НовыеМетаданные | Строка | "" | Метаданные элемента |
Возвращает: ОтелПостроительBaggage — ЭтотОбъект для fluent API
Удалить
Удаляет ключ.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Ключ | Строка | — | Ключ элемента для удаления |
Возвращает: ОтелПостроительBaggage — ЭтотОбъект для fluent API
Построить
Создает иммутабельный экземпляр Baggage.
Возвращает: ОтелBaggage — созданный Baggage
Пример
Baggage = Новый ОтелПостроительBaggage()
.Установить("userId", "12345")
.Установить("tenantId", "abc", "metadata-value")
.Построить();См. также
ОтелПостроительSdk
Построитель OpenTelemetry SDK (OpenTelemetrySdkBuilder).
Описание
Предоставляет fluent API для сборки ОтелSdk из отдельных провайдеров. Аналог Java SDK: OpenTelemetrySdk.builder().
Методы
УстановитьПровайдерТрассировки
Устанавливает провайдер трассировки.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Провайдер | ОтелПровайдерТрассировки | — | Провайдер трассировки |
Возвращает: ОтелПостроительSdk — ЭтотОбъект для fluent API
УстановитьПровайдерЛогирования
Устанавливает провайдер логирования.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Провайдер | ОтелПровайдерЛогирования | — | Провайдер логирования |
Возвращает: ОтелПостроительSdk — ЭтотОбъект для fluent API
УстановитьПровайдерМетрик
Устанавливает провайдер метрик.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Провайдер | ОтелПровайдерМетрик | — | Провайдер метрик |
Возвращает: ОтелПостроительSdk — ЭтотОбъект для fluent API
УстановитьПропагаторы
Устанавливает пропагаторы контекста.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Значение | ОтелКомпозитныйПропагатор | — | Пропагатор контекста, модуль или массив пропагаторов |
Возвращает: ОтелПостроительSdk — ЭтотОбъект для fluent API
Построить
Создает экземпляр OpenTelemetry SDK.
Возвращает: ОтелSdk — настроенный экземпляр SDK
ПостроитьИЗарегистрироватьГлобально
Создает экземпляр SDK и регистрирует его глобально. Аналог Java SDK: OpenTelemetrySdk.builder().buildAndRegisterGlobal().
Возвращает: ОтелSdk — настроенный и глобально зарегистрированный экземпляр SDK
Пример
Сдк = Новый ОтелПостроительSdk()
.УстановитьПровайдерТрассировки(ПровайдерТрассировки)
.УстановитьПровайдерЛогирования(ПровайдерЛогирования)
.УстановитьПровайдерМетрик(ПровайдерМетрик)
.УстановитьПропагаторы(Пропагатор)
.ПостроитьИЗарегистрироватьГлобально();См. также
ОтелПостроительРесурса
Построитель ресурса (ResourceBuilder) по спецификации OpenTelemetry.
Описание
Fluent API для создания ОтелРесурс с произвольными атрибутами. Атрибуты из построителя перезаписывают атрибуты по умолчанию при вызове Построить(). Аналог Java SDK: io.opentelemetry.sdk.resources.ResourceBuilder.
Методы
Установить
Устанавливает атрибут ресурса.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Ключ | Строка | — | Имя атрибута |
Значение | Произвольный | — | Значение атрибута |
Возвращает: ОтелПостроительРесурса — ЭтотОбъект для fluent API
УстановитьВсе
Устанавливает несколько атрибутов из ОтелАтрибуты.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Значение | ОтелАтрибуты | — | Атрибуты для добавления |
Возвращает: ОтелПостроительРесурса — ЭтотОбъект для fluent API
УстановитьАдресСхемы
Устанавливает URL схемы семантических атрибутов ресурса.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Значение | Строка | — | URL схемы (например, "https://opentelemetry.io/schemas/1.24.0") |
Возвращает: ОтелПостроительРесурса — ЭтотОбъект для fluent API
СлитьС
Добавляет атрибуты из другого ресурса. Атрибуты другого ресурса перезаписывают существующие.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Ресурс | ОтелРесурс | — | Ресурс для слияния |
Возвращает: ОтелПостроительРесурса — ЭтотОбъект для fluent API
Построить
Создает ресурс с указанными атрибутами. Атрибуты из построителя перезаписывают дефолтные значения.
Возвращает: ОтелРесурс — созданный ресурс с дефолтными и пользовательскими атрибутами
Пример
Ресурс = Новый ОтелПостроительРесурса()
.Установить("service.name", "мой-сервис")
.Установить("service.version", "1.0.0")
.УстановитьАдресСхемы("https://opentelemetry.io/schemas/1.24.0")
.Построить();См. также
ОтелРезультатЗакрытия
Результат операции закрытия или принудительной выгрузки.
Описание
Аналог CompletableResultCode для операций Shutdown/ForceFlush по спецификации OpenTelemetry SDK. По умолчанию создаётся успешный результат.
Конструктор
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
НовыйУспех | Булево | Истина | Признак успешного завершения |
НовоеОписание | Строка | "" | Описание ошибки |
НовоеИстекло | Булево | Ложь | Признак истечения таймаута |
Методы
Успешно
Возвращает признак успешного завершения операции.
Возвращает: Булево
ИстекТаймаут
Возвращает признак истечения таймаута.
Возвращает: Булево
Описание
Возвращает описание ошибки.
Возвращает: Строка
См. также
ОтелРезультатЭкспорта
Результат асинхронной операции экспорта.
Описание
Аналог CompletableResultCode из Java SDK. Используется процессорами и экспортерами для возврата результата операций Export, ForceFlush. Может содержать обещание для ожидания завершения асинхронных операций.
Конструктор
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Статус | Число | -1 | Начальный статус: 0 = успех, 1 = ошибка, -1 = в процессе |
Обещание | Произвольный | Неопределено | Объект обещания для async-операций |
Методы
Успешно
Возвращает признак успешности результата.
Возвращает: Булево — Истина, если операция завершилась успешно
ИстекТаймаут
Возвращает признак истечения таймаута.
Возвращает: Булево — Истина, если операция завершилась по таймауту
Статус
Возвращает числовой код статуса результата.
Возвращает: Число — 0 = успех, 1 = ошибка, 2 = таймаут, -1 = в процессе
Ожидать
Блокирующее ожидание завершения операции. Если результат содержит обещание, ожидает его завершения.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ТаймаутМс | Число | 0 | Таймаут ожидания в миллисекундах (0 = без ограничения) |
Возвращает: ОтелРезультатЭкспорта — ссылка на себя для цепочки вызовов
См. также
ОтелРесурс
Класс описания ресурса (Resource) по спецификации OpenTelemetry.
Описание
Ресурс описывает сущность, производящую телеметрию: сервис, хост, процесс и т.д. По умолчанию при создании добавляются обязательные атрибуты: service.name, telemetry.sdk.name, telemetry.sdk.language, telemetry.sdk.version. Атрибуты можно дополнить через ОтелПостроительРесурса.
Конструктор
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
БезУмолчаний | Булево | Ложь | Если Истина, не добавлять атрибуты по умолчанию |
АдресСхемы | Строка | "" | URL схемы ресурса |
Методы
Атрибуты
Возвращает атрибуты ресурса.
Возвращает: ОтелАтрибуты — атрибуты ресурса
АдресСхемы
Возвращает URL схемы ресурса.
Возвращает: Строка — URL схемы или пустая строка
Слить
Создает новый ресурс как результат слияния текущего с другим. Атрибуты другого ресурса имеют приоритет.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ДругойРесурс | ОтелРесурс | — | Ресурс для слияния |
Возвращает: ОтелРесурс — новый ресурс со слитыми атрибутами
ВСоответствиеOtlp
Преобразует ресурс в соответствие формата OTLP JSON.
Возвращает: Соответствие — {"attributes": [...]}
Пример
Ресурс = Новый ОтелПостроительРесурса()
.Установить("service.name", "мой-сервис")
.Установить("service.version", "1.0.0")
.УстановитьАдресСхемы("https://opentelemetry.io/schemas/1.24.0")
.Построить();
ИмяСервиса = Ресурс.Атрибуты().Получить("service.name"); // "мой-сервис"См. также
ОтелТокенКонтекста
Токен (Token) контекста по спецификации OpenTelemetry Context API.
Описание
Возвращается из ОтелКонтекст.ПрисоединитьКонтекст() и должен быть передан в ОтелКонтекст.ОтсоединитьКонтекст() для восстановления предыдущего контекста. Поддерживает RAII-паттерн через метод Закрыть().
Аналоги: Java Scope, Python opentelemetry.context.Token, Go detach token.
Конструктор
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ПараметрГлубина | Число | 0 | Глубина стека контекстов на момент присоединения |
ПараметрИдПотока | Строка | "" | Идентификатор потока, в котором был выдан токен |
Методы
Отсоединен
Возвращает признак того, что токен уже отсоединён (Detach был вызван).
Возвращает: Булево — Истина, если токен отсоединён
ПометитьОтсоединенным
Помечает токен как отсоединённый. Внутренний метод, вызывается из ОтелКонтекст.ОтсоединитьКонтекст().
Закрыть
Отсоединяет контекст, восстанавливая предыдущий (сахар над ОтелКонтекст.ОтсоединитьКонтекст). Повторный вызов идемпотентен.
Пример
// RAII-паттерн
Токен = Спан.СделатьТекущим();
Попытка
// ... работа в контексте спана ...
Исключение
Спан.ЗаписатьИсключение(ИнформацияОбОшибке());
КонецПопытки;
Токен.Закрыть(); // обязательно вызвать перед Завершить()
Спан.Завершить();
// Явный Detach
Токен = ОтелКонтекст.ПрисоединитьКонтекст(Контекст);
// ... работа ...
ОтелКонтекст.ОтсоединитьКонтекст(Токен);