Skip to content

Heap dump analysis#1447

Draft
Josh-Matsuoka wants to merge 8 commits into
cryostatio:mainfrom
Josh-Matsuoka:heap-dump-analysis
Draft

Heap dump analysis#1447
Josh-Matsuoka wants to merge 8 commits into
cryostatio:mainfrom
Josh-Matsuoka:heap-dump-analysis

Conversation

@Josh-Matsuoka

Copy link
Copy Markdown
Contributor

Welcome to Cryostat! 👋

Before contributing, make sure you have:

  • Read the contributing guidelines
  • Linked a relevant issue which this PR resolves
  • Linked any other relevant issues, PR's, or documentation, if any
  • Resolved all conflicts, if any
  • Rebased your branch PR on top of the latest upstream main branch
  • Attached at least one of the following labels to the PR: [chore, ci, docs, feat, fix, test]
  • Signed all commits using a GPG signature

To recreate commits with GPG signature git fetch upstream && git rebase --force --gpg-sign upstream/main


Related to: #1127

Depends on cryostatio/cryostat-core#666
Depends on cryostatio/cryostat-reports#506

Description of the change:

  • Adds support for heap dump analysis through a new /heapdump/analyze endpoint.
  • Follows the same caching and delegation model as recording reports. Caches analyzed heap dumps in either memory or storage depending on configuration and checks those caches first before re-analyzing a heap dump.

How to manually test:

  1. Run CRYOSTAT_IMAGE=quay.io... bash smoketest.bash...
  2. ...

Opening as draft pending any changes needed for the frontend.

@Josh-Matsuoka Josh-Matsuoka added feat New feature or request safe-to-test labels Apr 1, 2026
@github-actions

github-actions Bot commented Apr 1, 2026

Copy link
Copy Markdown

Comment thread src/main/resources/application.properties
Comment thread src/main/java/io/cryostat/diagnostic/DiagnosticsHelper.java
@Josh-Matsuoka

Copy link
Copy Markdown
Contributor Author

Following a discussion on the backend/reports design there are a few points to keep in mind:

  • resource consumption of analyzing a reasonably sized heap dump, how the heap dump is parsed, etc. If the user has a 4GiB heap dump file, what are the minimum requirements (CPU & memory) to be able to analyze that successfully - and how long does the analysis take?
  • If analysis is slow think about whether we can design a progress reporting system somehow, as well as think about designing some way to cancel analyses that have gone on too long and the user doesn't want to complete.
  • Make sure the reports service uses tiered caches: reports stay in-memory for some time, but after eviction from that cache (or if Cryostat is restarted, etc.) then they're still in storage as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependent feat New feature or request safe-to-test

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants