Я пытался закрепить некоторые приложения мониторинга, и это произошло:
Эта первая версия файла dockerfile работает хорошо:
Код: Выделить всё
RUN apt-get update && apt-get install ca-certificates -y && update-ca-certificates
ENV PYROSCOPE_SERVER_ADDRESS=http://pyroscope:4040
ENV PYROSCOPE_APPLICATION_NAME=pet-clinic-app
ENV PYROSCOPE_FORMAT=jfr
ENV PYROSCOPE_PROFILING_INTERVAL=10ms
ENV PYROSCOPE_PROFILER_EVENT=itimer
ENV PYROSCOPE_PROFILER_LOCK=10ms
ENV PYROSCOPE_PROFILER_ALLOC=512k
ENV PYROSCOPE_UPLOAD_INTERVAL=15s
ENV PYROSCOPE_LOG_LEVEL=debug
ENV PYROSCOPE_LABELS="hostname=pet-clinic-app"
ENV OTEL_JAVAAGENT_EXTENSIONS=./pyroscope-otel.jar
ENV OTEL_SERVICE_NAME=pet-clinic-app
ENV OTEL_EXPORTER_OTLP_ENDPOINT=http://tempo:4318
ENV OTEL_PYROSCOPE_ADD_PROFILE_URL=true
ENV OTEL_PYROSCOPE_ADD_PROFILE_BASELINE_URL=true
ENV OTEL_PYROSCOPE_START_PROFILING=true
ENV OTEL_METRICS_EXPORTER=none
ENV OTEL_LOGS_EXPORTER=none
ENV OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
ENV OTEL_RESOURCE_ATTRIBUTES="container=monitoring-application-1"
COPY target/spring-petclinic-3.3.0-SNAPSHOT.jar app.jar
COPY src/main/resources/application.properties /application.properties
WORKDIR /opt/app
ADD https://github.com/grafana/pyroscope-java/releases/download/v0.12.2/pyroscope.jar /opt/app/pyroscope.jar
ADD https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/latest/download/opentelemetry-javaagent.jar opentelemetry-javaagent.jar
ADD https://repo1.maven.org/maven2/io/pyroscope/otel/0.10.1.11/otel-0.10.1.11.jar pyroscope-otel.jar
CMD ["java", "-javaagent:./opentelemetry-javaagent.jar", "-javaagent:pyroscope.jar", "-Dspring.config.location=/application.properties", "-jar", "/app.jar" ]
Я начал получать следующую ошибку в контейнере приложения:
Код: Выделить всё
2024-10-07 18:42:47 at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2024-10-07 18:42:47 at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
2024-10-07 18:42:47 at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2024-10-07 18:42:47 at java.base/java.lang.reflect.Method.invoke(Method.java:568)
2024-10-07 18:42:47 at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:491)
2024-10-07 18:42:47 at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:503)
2024-10-07 18:42:47 Caused by: java.lang.UnsatisfiedLinkError: Native Library /tmp/root-pyroscope/libasyncProfiler-linux-x64-98e96b2eb57e823a37267f19311d25e9d476f3.so already loaded in another classloader
2024-10-07 18:42:47 at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:201)
2024-10-07 18:42:47 at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:174)
2024-10-07 18:42:47 at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2389)
2024-10-07 18:42:47 at java.base/java.lang.Runtime.load0(Runtime.java:755)
2024-10-07 18:42:47 at java.base/java.lang.System.load(System.java:1953)
2024-10-07 18:42:47 at io.pyroscope.one.profiler.AsyncProfiler.getInstance(AsyncProfiler.java:36)
2024-10-07 18:42:47 at io.pyroscope.labels.io.pyroscope.PyroscopeAsyncProfiler.getAsyncProfiler(PyroscopeAsyncProfiler.java:32)
2024-10-07 18:42:47 at io.pyroscope.javaagent.Profiler.(Profiler.java:27)
2024-10-07 18:42:47 at io.pyroscope.javaagent.PyroscopeAgent$Options$Builder.(PyroscopeAgent.java:114)
2024-10-07 18:42:47 at io.pyroscope.javaagent.PyroscopeAgent.start(PyroscopeAgent.java:33)
2024-10-07 18:42:47 at io.pyroscope.javaagent.PyroscopeAgent.premain(PyroscopeAgent.java:25)
2024-10-07 18:42:47 ... 6 more
2024-10-07 18:42:47 *** java.lang.instrument ASSERTION FAILED ***: "result" with message agent load/premain call failed at open/src/java.instrument/share/native/libinstrument/JPLISAgent.c line: 422
2024-10-07 18:42:47 FATAL ERROR in native method: processing of -javaagent failed, processJavaStart failed
2024-10-07 18:42:47 #
2024-10-07 18:42:47 # A fatal error has been detected by the Java Runtime Environment:
2024-10-07 18:42:47 #
2024-10-07 18:42:47 # SIGSEGV (0xb) at pc=0x00007f461fcf4602, pid=1, tid=7
2024-10-07 18:42:47 #
2024-10-07 18:42:47 # JRE version: OpenJDK Runtime Environment (17.0.2+8) (build 17.0.2+8-86)
2024-10-07 18:42:47 # Java VM: OpenJDK 64-Bit Server VM (17.0.2+8-86, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
2024-10-07 18:42:47 # Problematic frame:
2024-10-07 18:42:47 # C [libc.so.6+0x25602] abort+0x1ee
Используемое приложение: https://github.com/spring-projects/spring-petclinic
Конфигурации Docker-compose: https://file.io/xHaW7w7r7ubH
Это немного запутанно, но это был долгий процесс проб и ошибок
Заранее спасибо за помощь. Надеюсь, я предоставил достаточно информации.
Подробнее здесь: https://stackoverflow.com/questions/790 ... ng-version
Мобильная версия