Агент Java OTel не работает с New Relic

У меня есть приложение Java, работающее с агентом OTel для сбора данных телеметрии и отправки их на платформу New Relic.

Конфигурация Java-агента OTel:

-javaagent:./agents/opentelemetry-javaagent-all.jar
-Dotel.traces.exporter=otlp
-Dotel.resource.attributes=service.name=my-application
-Dotel.exporter.otlp.endpoint=https://otlp.nr-data.net:4317
-Dotel.exporter.otlp.headers=api-key=${NEW_RELIC_LICENSE_KEY}

При запуске этого приложения возникает ошибка:

Caused by: java.lang.IllegalArgumentException: cannot find a NameResolver for https://otlp.nr-data.net:4317

Как решить эту проблему?

Какую версию javaagent OTEL вы используете? Можете ли вы решить otlp.nr-data.net например. nslookup otlp.nr-data.net в системе, где запущено это Java-приложение?

Jan Garaj 06.04.2022 17:56

@JanGaraj версия OTel javaagent 1.12.1, локально это приложение работает нормально, но при развертывании приложения на сервере возникает эта ошибка, я проверил ping и telnet на хосте otlp.nr-data.net, они реагируют правильно.

Jonathan Henrique Medeiros 06.04.2022 18:16
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
27
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Я бы попробовал:

-Dotel.exporter.otlp.endpoint=otlp.nr-data.net:4317

Конечная точка OTLP должна быть официально URL (поэтому часть схемы должна быть включена), но в некоторых реализациях она нужна без части схемы. Я думаю, это ваш случай.

Этот формат недействителен, он вызывает это исключение java.net.MalformedURLException: unknown protocol: otlp.nr-data.net.

Jonathan Henrique Medeiros 06.04.2022 18:39
Ответ принят как подходящий

Проблема была решена для меня при настройке Dockerfile принудительной загрузки java-агента OTel в процессе сборки образа.

От:

COPY ./agents/opentelemetry-javaagent-all.jar .

К:

ADD https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/download/v1.12.1/opentelemetry-javaagent.jar .

Другие вопросы по теме