-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(preset): add preset template and rule for Hibernate JFR #750
base: main
Are you sure you want to change the base?
Conversation
3e1c3ae
to
a9b39c2
Compare
a9b39c2
to
ed78caf
Compare
This PR/issue depends on:
|
/build_test |
Workflow started at 1/13/2025, 1:54:56 PM. View Actions Run. |
No GraphQL schema changes detected. |
No OpenAPI schema changes detected. |
CI build and push: At least one test failed ❌ |
Failure looks like hibernate/hibernate-orm#9180 . Checking if upgrading the |
/build_test |
Workflow started at 1/13/2025, 2:30:32 PM. View Actions Run. |
No GraphQL schema changes detected. |
No OpenAPI schema changes detected. |
CI build and push: All tests pass ✅ |
@@ -46,6 +46,7 @@ | |||
<quarkus.platform.group-id>io.quarkus.platform</quarkus.platform.group-id> | |||
<quarkus.platform.version>3.15.2</quarkus.platform.version> | |||
<quarkus-quinoa.version>2.5.1</quarkus-quinoa.version> | |||
<org.hibernate.orm.hibernate.jfr.version>6.6.4.Final</org.hibernate.orm.hibernate.jfr.version><!-- TODO is there some way to grab the Hibernate version used by Quarkus to match this version? --> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I opened a discussion about this here: quarkusio/quarkus#45552
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Quarkus 3.15.2 with the Panache/Hibernate extension pulls in Hibernate 6.6.1, which I originally used in this PR to keep the Hibernate JFR version in sync. But, it runs into hibernate/hibernate-orm#9180 , so I upgraded to a later bugfix version to work around this.
Welcome to Cryostat! 👋
Before contributing, make sure you have:
main
branch[chore, ci, docs, feat, fix, test]
To recreate commits with GPG signature
git fetch upstream && git rebase --force --gpg-sign upstream/main
Fixes: #736
See also #548
Depends on #749
Based on #749
Description of the change:
Adds a Preset Event Template for Hibernate JFR events, which are enabled by the
hibernate-jfr
dependency. Any application using Hibernate which also has this JAR on its classpath should have the relevant JFR event types registered, and they can be emitted simply by starting a recording with them enabled. Also adds an Automated Rule which detects the presence of these event types in the target JVM, for ease of enablement by the end user.Motivation for the change:
Provides a quick and easy way for Cryostat + Hibernate users to get very detailed profiling information about the internals of their Hibernate sessions, transactions, etc. - simply install the
hibernate-jfr
dependency, redeploy the target application, and turn on the preset Automated Rule for Hibernate.How to manually test:
./smoketest.bash -O
auto_hibernate
recording should be started in Cryostat. Click around the UI a bunch to generate load, then download the recording.jfr print --events 'org.hibernate.orm.*' auto_hibernate.jfr
should reveal lots of JFR data.