Skip to content

Отел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.

Конструктор

bsl
Новый Отел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 или Неопределено, если не заданы

Пример

bsl
#Использовать 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);

// Использование с экспортером спанов
ЭкспортерСпанов = Новый ОтелЭкспортерСпанов(Транспорт);