java agent Инструментальный файл класса не отражается в PCF

Нужна помощь.

У нас есть собственный Java-агент, написанный с использованием javaassist, который обрабатывает файл Logger из метода logback для получения информации. Агент работает как отдельная программа из командной строки при использовании с параметром -javaagent при запуске целевого приложения / класса. Он также работает, если в Eclipse создается образец проекта maven и выполняется с помощью параметра «Предоставление конфигурации запуска» с параметром -javaagent в конфигурации запуска.

Вызывается Premain - вызывается трансформатор - обрабатывает файл класса - распечатывает журнал, обновленный с помощью инструментовки.

При нажатии на PCF: агент упакован в двоичный файл приложения spring -boot в MyApp.jar \ BOOT-INF \ classes \. Это очень простая программа Hello с одним контроллером.

Проблема. Вызывается Premain - вызывается преобразователь - обрабатывает файл класса, Однако журнал не распечатывает как обновленный с использованием средств измерений.

Нужна ли нам какая-либо конкретная конфигурация, чтобы вернуть этот инструментальный файл обратно в PCF?

Цените ваши входы / запросы.

Вот manifest.yml

приложения: - имя: KedarTestApp memory: 2G disk_quota: 1G instance: 1 path: target / Hello-0.0.1-SNAPSHOT.jar env: SPRING_PROFILES_ACTIVE: "dev" JAVA_OPTS: -javaagent: BOOT-INF / classes / Agent.jar

Dev Env: JDK8, WIndows 10, cf version 6.26, cf cli


person Kedar    schedule 10.03.2020    source источник
comment
Вышеупомянутый сценарий работает на локальном компьютере с приведенной ниже конфигурацией из командной строки. Дальнейшая проверка того, как отправить приложение в PCF и как передать это из manifest.mf mvn spring -boot: run -Dspring-boot.run.agent = \ codebase \ AgentProcess \ Agent.jar   -  person Kedar    schedule 25.03.2020
comment
Еще не нашел способа сделать это, как передать :: mvn spring-boot: run -Dspring-boot.run.agent = \ codebase \ AgentProcess \ Agent.jar из manifest.yml, чтобы отправить приложение на pcf .... .. .... любые указания по этому поводу будут полезны   -  person Kedar    schedule 30.03.2020


Ответы (1)


Публикация на случай, если кому-то понадобится для справки :)

Если инструментальная библиотека не находится на пути к классам - PCF не будет показывать ошибку / предупреждение, но также не будет инструментировать ваши классы.

Библиотеки инструментовки будут частью вашего двоичного файла, но не загружаются, когда PCF запускает приложение с помощью org.springframework.boot.loader.JarLauncher.

Вам нужно будет указать путь к библиотекам инструментовки как часть аргумента -cp в опции command: вашего манифеста.

person Kedar    schedule 13.04.2020