getsentry / getsentry/sentry-java

JVM Profiling Follow ups

Aperta
#4,778 14 commenti 0 reazioni 1 assegnatario Rivendicata da @lbloder Vedi su GitHub
Java Profiles Task
Lingua principale
Kotlin
Stelle
1.4k
Fork
478
Merge medio
2g 23h
PR unite (30g)
67

Descrizione

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

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.