Как подключить Java-агент к работающему приложению Spring-Boot - PullRequest
1 голос
/ 22 апреля 2019

У меня есть приложение весенней загрузки, упакованное в войну, работающее на порту, теперь я хочу присоединить к этому приложению агент Java, чтобы отслеживать микро-сервисы с помощью Prometheus. Но без использования каких-либо пружинных плагинов для очистки метрик от.

Для чего я нашел способ запустить java-агент с приложением, запустив его как (jus упаковал мое приложение в jar для пробной версии, оно отлично работало)

java -javaagent <Path-to javaagent jar>:PORT -jar app.jar

это работает нормально, если мой проект упакован в jar. Он запустил java-agent на PORT, а мое приложение - на другом порту, и я могу получить метрики от java-agent.

но проблема в том, что мое приложение упаковано в войну.

Можем ли мы запустить java-агент с файлом войны?

также еще одна вещь, которую я хочу попробовать, это присоединить jar агента к jvm после запуска приложения с помощью maven, как и любое другое приложение с загрузочной пружиной с помощью «mvn spring-boot: run»

Как этого достичь?

1 Ответ

0 голосов
/ 26 апреля 2019

В соответствии с предложением @Strelok, я добавил java-агент в maven_opts для запуска на порту как

set MAVEN_OPTS = -javaagent: путь к javaagent jar = PORT = 9300

, который работал в моей локальной среде, когда я запускал свое приложение с помощью команды mvn spring-boot: run.

Но, если одновременно должны выполняться / контролироваться 2 разные микро-службы, Добавление maven_opts, как указано выше, может вызвать проблему для второго микросервиса, поскольку агент уже работает на том же порту.В таких случаях вместо добавления maven_opts в переменные env, мы можем добавить тег агента в pom.xml под spring-boot-maven-plugin, чтобы запустить агент как

<configuration>

    <agent>    
        PATH to JAR=port=XXXX

    </agent>

</configuration>

Но нашпромежуточные среды выполняются с заданиями Jenkins, которые собирают и внедряют войну приложений на сервере tomcat и запускают tomcat (запустив ./startup.sh.). Поэтому я добавил путь jar java-агента к catalina_opts в setenv.sh моего сервера tomcat.

и все заработало, как и ожидалось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...