Skip to content

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

Конструктор

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

Пример

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

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