Skip to content

JVM Profiling Follow ups #4778

@adinauer

Description

@adinauer

Description

We have released JVM Profiling in https://github.com/getsentry/sentry-java/releases/tag/8.23.0

There are still tasks /improvements we could do:

  • Docs
  • Release registry entries
  • Add module to .craft.yml
  • Verify caching behaviour of ServiceLoader is not an issue (i.e. does not cause a large overhead on each chunk) - otherwise cache
  • Remove / reduce vendored code and replace what's possible with JFR converter, also see Expose a dictionary of javaThreads from JfrReader async-profiler/async-profiler#1525
  • Upgrade async-profiler to 4.1+ to support newer Java Versions (23+); there are issues with a Converter dictionary
  • Log a specific message why Profiling isn't enabled if the wrong config property for setting sample rate is used (profiles-sample-rate) on JVM
  • Enable / showcase Profiling in (more of) our samples
  • Allow configuring profilingTracesHz via sentry.properties (ExternalOptions)
  • Add a .cursor rules file to explain how Profiling works
  • We could reduce profile chunk size / duration based on thread count of the application. This could help in case profiles are dropped due to being too large. Thread.activeCount() or ThreadMXBean (more accurate)
  • Continuous Profiling could upload JFR files #4768 (we should wait for feedback first, maybe we don't need this)
  • JVM Profiling Windows support #4779
  • Detect that async-profiler is the (major) version we expect on startup, crash otherwise

Metadata

Metadata

Assignees

No one assigned

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions