Commit 84bf981
authored
Add Continuous Profiling support (v8) (#3710)
* added IContinuousProfiler and implementations
* made AndroidProfiler's executor nullable, as timeout will be handled differently for continuous profiling
Change payload for Continuous Profiling v8 (p2) (#3711)
* added profile_chunk envelope create
* added IHub.captureProfileChunk and ISentryClient.captureProfileChunk
* added profilerId and chunkId reset logic to AndroidContinuousProfiler
* added absolute timestamps to ProfileMeasurementValue
* added ProfileContext to Contexts
* removed timestampMillis from MemoryCollectionData and CpuCollectionData, now it uses timestamp.nanotime() to achieve same result
* continuous profiler doesn't stop anymore when an error occurs, but continue scheduling restart
Instantiate continuous profiling v8 (p3) (#3725)
* added profile context to SentryTracer
* removed isProfilingEnabled from AndroidContinuousProfiler, as it's useless
* added continuous profiler to SentryOptions
* added DefaultTransactionPerformanceCollector to AndroidContinuousProfiler
* updated DefaultTransactionPerformanceCollector to work with string ids other than transactions
* fixed ProfileChunk measurements being modifiable from other code
* added thread id and name to SpanContext.data
* added profiler_id to span data
* close continuous profiler on scopes close
* renamed TransactionPerformanceCollector to CompositePerformanceCollector
* added SpanContext.data ser/deser
Handle App Start Continuous Profiling v8 (p4) (#3730)
* create app start continuous profiler instead of transaction profiler, based on config
* updated SentryAppStartProfilingOptions with isContinuousProfilingEnabled flag
* updated SentryOptions with isContinuousProfilingEnabled() method
* cut profiler setup out in a specific function to improve readability of AndroidOptionsInitializer
Add new APIs for Continuous Profiling v8 (p5) (#3844)
* AndroidContinuousProfiler now retrieve the scopes on start()
* removed profilesSampleRate from sample app to enable continuous profiling
* added Sentry.startProfiler and Sentry.stopProfiler APIs
Add rate limit for Continuous Profiling v8 (p6) (#3926)
* continuous profiler now doesn't start if offline or rate limited
* continuous profiler stops when rate limited
* continuous profiler prevents sending chunks after being closed
* added profile_chunk rate limit
* continuous profiler now reset its id when rate limited or offline
Add continuousProfilesSampleRate (#4013)
* added SentryOptions.continuousProfilesSampleRate
* now continuous profiling is disabled if continuousProfilesSampleRate is 0
* profiles directory is created when continuous profiling is enabled, too
* continuous profiling decision is passed to SentryAppStartProfilingOptions
* app start continuous profiling is sampled, too
Wrap up continuous profiling (#4069)
* Set continuousProfilesSampleRate and startProfiler() and stopProfiler() as experimental
* Added chunk start timestamp to ProfileChunk
* increased continuous profiling chunk duration to 1 minute
Change continuous profiling to session sample rate (#4180)
* Moved setContinuousProfilesSampleRate into ExperimentalOptions
* increased chunk duration to 1 minute
* replaced continuousProfilesSampleRate with profileSessionSampleRate (Default null)
* sample rate is now evaluated inside AndroidContinuousProfiler and every time a session finishes
Rename continuous profiling APIs (#4182)
* renamed Sentry.startProfiler with Sentry.startProfileSession and Sentry.stopProfiler with Sentry.stopProfileSession
Add continuous profiling ProfileLifecycle (#4202)
* Added ProfileLifecycle
* Sentry.startProfileSession() will work only in MANUAL mode
* Tracer start will start profiler only in TRACE mode
* Tracer and spans now attach profilerId only when sampled
Add Continuous Profiling isStartProfilerOnAppStart option (#4226)
* added isStartProfilerOnAppStart experimental option1 parent 64d302b commit 84bf981
File tree
117 files changed
+4630
-351
lines changed- gradle/wrapper
- sentry-android-core
- api
- src
- main/java/io/sentry/android/core
- internal/util
- performance
- test/java/io/sentry/android/core
- internal/util
- performance
- sentry-android-sqlite/src/test/java/io/sentry/android/sqlite
- sentry-opentelemetry/sentry-opentelemetry-bootstrap
- api
- src/main/java/io/sentry/opentelemetry
- sentry-samples/sentry-samples-android/src/main
- java/io/sentry/samples/android
- sentry-spring-jakarta/src/test/kotlin/io/sentry/spring/jakarta/webflux
- sentry-spring/src/test/kotlin/io/sentry/spring/webflux
- sentry
- api
- src
- main/java/io/sentry
- clientreport
- profilemeasurements
- protocol
- transport
- util
- thread
- test
- java/io/sentry
- protocol
- transport
- util
- thread
- resources/json
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
117 files changed
+4630
-351
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
9 | 52 | | |
10 | 53 | | |
11 | 54 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
1 | 2 | | |
2 | 3 | | |
3 | 4 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
43 | 55 | | |
44 | 56 | | |
45 | 57 | | |
| |||
460 | 472 | | |
461 | 473 | | |
462 | 474 | | |
| 475 | + | |
463 | 476 | | |
464 | 477 | | |
465 | 478 | | |
| |||
481 | 494 | | |
482 | 495 | | |
483 | 496 | | |
| 497 | + | |
484 | 498 | | |
485 | 499 | | |
486 | 500 | | |
| |||
0 commit comments