Skip to content

Commit 16739ee

Browse files
Enable JFR support across all containers and add utility script for snapshot dumps
1 parent 4f3e01a commit 16739ee

5 files changed

Lines changed: 15 additions & 7 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,3 +54,4 @@ crac-files/*
5454
!crac-files/.gitkeep
5555

5656
/scripts/jmeter.log
57+
*.jfr

.java-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
17
1+
25

Dockerfile

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,5 @@ COPY --from=extractor /extractor/extracted/spring-boot-loader/ ./
2929
COPY --from=extractor /extractor/extracted/snapshot-dependencies/ ./
3030
COPY --from=extractor /extractor/extracted/application/ ./
3131

32-
# Enable JFR startup recording by default. Can be disabled with JFR_ENABLE=false
33-
ENV JFR_ENABLE=true \
34-
JFR_DURATION=20m \
35-
JFR_SETTINGS=profile
36-
37-
CMD ["sh", "-c", "if [ \"$JFR_ENABLE\" = \"true\" ]; then exec java -XX:+FlightRecorder -XX:StartFlightRecording=duration=${JFR_DURATION:-20m},name=${SPRING_APPLICATION_NAME:-petclinic},settings=${JFR_SETTINGS:-profile},filename=/jfr/${SPRING_APPLICATION_NAME:-petclinic}-$(date +%Y%m%d-%H%M%S).jfr,dumponexit=true,disk=true -Djdk.tracePinnedThreads=full -Djdk.tracePinnedThreads.warning=true -Djdk.traceVirtualThreadLocals=true -jar spring-petclinic.jar; else exec java -jar spring-petclinic.jar; fi"]
32+
# Always record JFR at startup
33+
CMD ["sh", "-c", "exec java -XX:+FlightRecorder -XX:StartFlightRecording=duration=20m,name=${SPRING_APPLICATION_NAME:-petclinic},settings=profile,filename=/jfr/${SPRING_APPLICATION_NAME:-petclinic}-$(date +%Y%m%d-%H%M%S).jfr,dumponexit=true,disk=true -Djdk.tracePinnedThreads=full -Djdk.tracePinnedThreads.warning=true -Djdk.traceVirtualThreadLocals=true -jar spring-petclinic.jar"]

jfr-method-timing.sh

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#!/usr/bin/env bash
2+
3+
java \
4+
"-XX:StartFlightRecording=filename=petclinic.jfr,settings=profile,method-timing=\
5+
java.lang.reflect.Method::invoke;java.lang.reflect.Constructor::newInstance;\
6+
java.lang.reflect.Field::get;java.lang.reflect.Field::set;\
7+
java.lang.Class::forName;java.lang.reflect.Proxy::newProxyInstance" \
8+
-jar target/spring-petclinic-3.4.0-SNAPSHOT.jar --spring.profiles.active=postgres
9+
10+
# Потом выполнить
11+
# jfr view method-timing petclinic.jfr

scripts/jfr-dump.sh

100644100755
File mode changed.

0 commit comments

Comments
 (0)