getsentry / getsentry/sentry-java

Micrometer OpenTelemetry support

Aperta
#3,474 18 commenti 0 reazioni 1 assegnatario Rivendicata da @adinauer Vedi su GitHub
Feature Java Spans
Lingua principale
Kotlin
Stelle
1.4k
Fork
478
Merge medio
2g 23h
PR unite (30g)
67

Descrizione

### Integration

sentry-spring-jakarta

### Java Version

17

### Version

7.8.0

### Steps to Reproduce

While profiling some reactive code using project Reactor with automatic context propagation and Sentry, I noticed quite a lot of time is spent instantiating `SecureRandom` objects as the `SentryReactorThreadLocalAccessor.getValue` call will always cause a new `TracesSampler` thus a new `SecureRandom` object to be created when `hub == null || hub instanceof NoOpHub` in `Sentry#getCurrentHub`.

SecureRandom objects are said to be thread-safe by the javadoc, would it be possible/safe to just reuse the same instance? Or reuse the TracesSampler? Or avoid cloning the NoOpHub alltogether..?

### Expected Result

Not so much time spent creating SecureRandom objects

### Actual Result

Screenshot of profiling results:

Screenshot 2024-06-11 at 21 17 17

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.