getsentry / getsentry/sentry-java

JVM Profiling Follow ups

Offen
#4,778 14 Kommentare 0 Reaktionen 1 zugewiesene Person Beansprucht von @lbloder Auf GitHub ansehen
Java Profiles Task
Vorherrschende Sprache
Kotlin
Sterne
1.4k
Forks
478
Ø Merge
2 T. 23 Std.
Gemergte PRs (30 T.)
67

Beschreibung

### 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:

- [X] Docs ([https://github.com/getsentry/sentry-java/issues/4909]())
- [X] Release registry entries
- [X] Add module to `.craft.yml`
- [X] Verify caching behaviour of `ServiceLoader` is not an issue (i.e. does not cause a large overhead on each chunk) - otherwise cache (obsolete with [getsentry/sentry-java#4815]())
- [X] Remove / reduce vendored code and replace what's possible with [JFR converter](), also see [https://github.com/async-profiler/async-profiler/issues/1525]() getsentry/sentry-java#4852
- [X] Upgrade async-profiler to 4.1+ to support newer Java Versions (23+); there are issues with a Converter dictionary (getsentry/sentry-java#4853)
- [ ] 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
- [X] Enable / showcase Profiling in (more of) our samples getsentry/sentry-java#4941
- [ ] Allow configuring `profilingTracesHz` via `sentry.properties` (`ExternalOptions`)
- [X] Add a `.cursor` rules file to explain how Profiling works getsentry/sentry-java#5034
- [X] Fix an issue where the profilerId would not be propagated to SentryTracer correctly when used with OTEL Agent (getsentry/sentry-java#4854)
- [X] Fix an issue with profiler initialization when using spring or spring-boot in OTEL Agent auto-init mode (getsentry/sentry-java#4855)
- [ ] Add profiling option to build plugins:
- [ ] Gradle
- [ ] Maven ([https://github.com/getsentry/sentry-maven-plugin/issues/221]())

## Maybe later

- [ ] 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)
- [ ] [https://github.com/getsentry/sentry-java/issues/4768]() (we should wait for feedback first, maybe we don't need this)
- [ ] [https://github.com/getsentry/sentry-java/issues/4779]()
- [ ] Detect that `async-profiler` is the (major) version we expect on startup, crash otherwise

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.