getsentry / getsentry/sentry-java

JVM Profiling Follow ups

Abierto
#4,778 14 comentarios 0 reacciones 1 asignado Reclamado por @lbloder Ver en GitHub
Java Profiles Task
Lenguaje dominante
Kotlin
Estrellas
1.4k
Forks
478
Merge medio
2 d 23 h
PR fusionados (30 d)
67

Descripción

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

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.