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