Skip to content

ОтелВПамятьТранспорт

Транспорт в памяти (InMemoryTransport) для тестирования.

Описание

Реализует тот же интерфейс Отправить(Путь, Данные), что и ОтелHttpТранспорт и ОтелGrpcТранспорт. Вместо отправки по сети сохраняет данные в массив для последующей проверки в тестах.

Является потокобезопасным: все операции защищены БлокировкаРесурса для корректной работы при конкурентном вызове.

Конструктор

Конструктор без параметров. При создании инициализирует пустой массив отправленных данных и признак закрытия в Ложь.

bsl
Новый ОтелВПамятьТранспорт()

Методы

Отправить

Сохраняет данные в память. Если транспорт закрыт, возвращает Ложь.

ПараметрТипПо умолчаниюОписание
ПутьСтрокаПуть адреса, например "/v1/traces"
ДанныеСоответствиеДанные в формате OTLP JSON

Возвращает: БулевоИстина, если транспорт не закрыт и данные сохранены

ПолучитьОтправленные

Возвращает все сохранённые отправки.

Возвращает: Массив из Соответствие — каждый элемент содержит ключи "Путь" и "Данные"

Очистить

Очищает все сохранённые отправки. Транспорт остаётся рабочим.

Закрыть

Завершает работу транспорта. После вызова метод Отправить() возвращает Ложь.

Пример

bsl
#Использовать opentelemetry

// Создать транспорт для тестирования
Транспорт = Новый ОтелВПамятьТранспорт();

// Подключить к экспортеру
Экспортер = Новый ОтелЭкспортерСпанов(Транспорт);

// ... выполнить операции, создающие спаны ...

// Проверить результаты
Отправленные = Транспорт.ПолучитьОтправленные();
Если Отправленные.Количество() > 0 Тогда
    ПерваяОтправка = Отправленные[0];
    Сообщить("Путь: " + ПерваяОтправка["Путь"]);
    // Данные["resourceSpans"] - отправленные спаны
КонецЕсли;

// Сбросить для следующего теста
Транспорт.Очистить();