Java 17 и Yourkit 2021.11

#java #docker #yourkit

#java #docker #yourkit

Вопрос:

Java 11 и yourkit 2020.9 работают на меня. Выполнено обновление до java 17 и yourkit 2021.11, yourkit у меня не работает.

Использовал этот документ: https://www.yourkit.com/docs/java/help/docker.jsp чтобы добавить yourkit 2021.11 в docker, но при его запуске появляется ошибка:

 [YourKit Java Profiler 2021.11-b220] Log file: /home/kek/.yjp/log/test-8.log
terminate called after throwing an instance of 'std::system_error'
what():  No error information
 

Как я могу увидеть, что внутри /home/kek/.yjp/log/test-8.log или java 17 и yourkit 2021.11 работают для вас?

Комментарии:

1. У меня это работает без каких-либо проблем. Вы уверены, что обновились libyjpagent.so ?

2. этот файл существует внутри yourkit.zip должен ли я скопировать его в папку bin в другое место?

3. libyjpagent.so это единственный файл, который вам нужно развернуть вместе с вашим приложением, он просто должен находиться в таком месте, чтобы вы могли ссылаться на него из сценария запуска. Т.е. если он находится в libs каталоге, который вы бы добавили -agentpath:./libs/libyjpagent.so=port=<PORT> в список параметров при запуске java.

4. Я сделал, но получил ошибку, упомянутую выше

5. Затем вам нужно будет проверить этот файл журнала. Что вы подразумеваете под «Как я могу видеть, что внутри …» ? Вы имеете в виду, как открыть файл, который находится в контейнере docker? Если у вас есть доступ к этой машине, вы можете запустить команду bash, чтобы попасть «внутрь» контейнера, т.Е. docker exec -it <container-name> bash .

Ответ №1:

Там могут быть проблемы с v2021.11 в musl-based Linuxes. Пожалуйста, используйте v2022.3, в котором есть специальный агент профилирования для musl https://www.yourkit.com/docs/java/help/docker.jsp

Ответ №2:

Проблема заключалась в том, что azul/zulu-openjdk-alpine:17-jre-headless и yourkit несовместимы, для некоторых библиотек не было yourkit (не копал много), поэтому, перейдя к azul/zulu-openjdk-debian:17-jre-headless исправленной несовместимости для меня.