ОтелВПамятьТранспорт
Транспорт в памяти (InMemoryTransport) для тестирования.
Описание
Реализует тот же интерфейс Отправить(Путь, Данные), что и ОтелHttpТранспорт и ОтелGrpcТранспорт. Вместо отправки по сети сохраняет данные в массив для последующей проверки в тестах.
Является потокобезопасным: все операции защищены БлокировкаРесурса для корректной работы при конкурентном вызове.
Конструктор
Конструктор без параметров. При создании инициализирует пустой массив отправленных данных и признак закрытия в Ложь.
Новый ОтелВПамятьТранспорт()Методы
Отправить
Сохраняет данные в память. Если транспорт закрыт, возвращает Ложь.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Путь | Строка | — | Путь адреса, например "/v1/traces" |
Данные | Соответствие | — | Данные в формате OTLP JSON |
Возвращает: Булево — Истина, если транспорт не закрыт и данные сохранены
ПолучитьОтправленные
Возвращает все сохранённые отправки.
Возвращает: Массив из Соответствие — каждый элемент содержит ключи "Путь" и "Данные"
Очистить
Очищает все сохранённые отправки. Транспорт остаётся рабочим.
Закрыть
Завершает работу транспорта. После вызова метод Отправить() возвращает Ложь.
Пример
#Использовать opentelemetry
// Создать транспорт для тестирования
Транспорт = Новый ОтелВПамятьТранспорт();
// Подключить к экспортеру
Экспортер = Новый ОтелЭкспортерСпанов(Транспорт);
// ... выполнить операции, создающие спаны ...
// Проверить результаты
Отправленные = Транспорт.ПолучитьОтправленные();
Если Отправленные.Количество() > 0 Тогда
ПерваяОтправка = Отправленные[0];
Сообщить("Путь: " + ПерваяОтправка["Путь"]);
// Данные["resourceSpans"] - отправленные спаны
КонецЕсли;
// Сбросить для следующего теста
Транспорт.Очистить();