У меня есть приложение 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
Как решить эту проблему?
@JanGaraj версия OTel javaagent 1.12.1, локально это приложение работает нормально, но при развертывании приложения на сервере возникает эта ошибка, я проверил ping
и telnet
на хосте otlp.nr-data.net
, они реагируют правильно.
Я бы попробовал:
-Dotel.exporter.otlp.endpoint=otlp.nr-data.net:4317
Конечная точка OTLP должна быть официально URL (поэтому часть схемы должна быть включена), но в некоторых реализациях она нужна без части схемы. Я думаю, это ваш случай.
Этот формат недействителен, он вызывает это исключение java.net.MalformedURLException: unknown protocol: otlp.nr-data.net
.
Проблема была решена для меня при настройке 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 .
Какую версию javaagent OTEL вы используете? Можете ли вы решить
otlp.nr-data.net
например.nslookup otlp.nr-data.net
в системе, где запущено это Java-приложение?