#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
исправленной несовместимости для меня.