Commit 3acbd63
Support ProfileLifecycle.TRACE (#4576)
* delete unused JfrFrame and JfrToSentryProfileconverter
* use passed-in profilingTracesHz parameter instead of hardcoded value
* start profiler before starting the transaction when ProfileLifecycle.TRACE is used to have the profile ID when SentryTracer is created
* use improved way to calculate timestamp of sample
* api dump
* let profile-lifecycle be set from external_options, add tests for SpringBoot autoconfig
* initialize stackTraceFactory only once per chunk
* rename profile data classes, add deserialization and tests
* extract methods in ProfileConverter, fix SentryProfile serialization and make fields private
* use wall=[interval] instead of setting the event to wall and setting the interval separately, this seems to work better and create more samples
* start/stop profiler in OtelSentrySpanProcesser in trace mode for root spans
* add profiler dependency to jakarta-opentelemetry sample, add needed configs
* add dependenies and config to spring-boot-jakarta sample
* remove connection status check
* extract event visitor
* Add enum for ProfileChunk platform
* fallback to default temp directory for profiling on jvm if directory is not configured
* cleanup some minor things
* remove ProfilingInitializer, fix comments
* Format code
* add getter/setter to sample and metadata
* fix compile error
* add comment/todo for deleteOnExit
* Profiling - Deduplication and cleanup (#4681)
* add readme and info about commit of the source repository
* delete jfr file on jvm exit
* further split into smaller methods
* deduplicate frames in order to save bandwidth, add converter tests
* remove Platform Enum, use string constants instead for compatibility with cross platform frameworks
* implement equals and hashcode for SentryStackFrame to make frame deduplication work
* bump api
* improve error handling, fix start stop start flow
* add new testfile
* calculate ticksPerNanosecond in constructor
* adapt Ratelimiter to check for both ProfileChunk and ProfileChunkUi ratelimiting
* update ratelimiter test to check for both profileChunk and profileChunkUi drops
* use string constant instead of string
* Format code
* add non aggregating event collector to send each event individually, deduplicate stacks
* adapt converter tests to new non-aggregated converter
* Format code
* add logging to loadProfileConverter
* Format code
* fix duplication of events
* catch all exception happening when converting from jfr
* add exists and writable info to log message
* add method to safely delete file
* remove setNative call
* fix test
* fix reference to commit we vendored from
* drop event if it cannot be processed to not lose the whole chunk
* make format
* fix test
* Format code
* Profiling - OTEL profiling fix, Stabilization, Logging (#4746)
* add skipProfiling flag to TransactionOptions to be able to skip profiling and handle cases where profiling has been started by otel
* add profilerId to spanContext so that otel span processor can propagate this to the exporter and SentryTracer
* immediately end profiling when stopProfiler is called
* bump api, fix android api 24 code
* catch all exception happening when converting from jfr
* simplify JavaContinuous profiler by catching AsyncProfiler instantiation exceptions in provider
* add exists and writable info to log message
* add method to safely delete file
* remove setNative call
* fix test
* fix reference to commit we vendored from
* drop event if it cannot be processed to not lose the whole chunk
* Format code
* fix test
* Format code
* fix test
* catch exceptions in startProfiler/stopProfiler
* fallback to threadId -1 if it cannot be resolved
---------
Co-authored-by: Sentry Github Bot <[email protected]>
---------
Co-authored-by: Sentry Github Bot <[email protected]>
---------
Co-authored-by: Sentry Github Bot <[email protected]>1 parent 1f73970 commit 3acbd63
File tree
46 files changed
+1452
-879
lines changed- sentry-android-core/src/main/java/io/sentry/android/core
- sentry-async-profiler
- api
- src
- main/java/io/sentry/asyncprofiler
- convert
- profiling
- provider
- vendor/asyncprofiler
- jfr
- test
- java/io/sentry/asyncprofiler
- convert
- profiling
- resources
- sentry-opentelemetry/sentry-opentelemetry-core/src/main/java/io/sentry/opentelemetry
- sentry-samples
- sentry-samples-spring-boot-jakarta-opentelemetry
- sentry-samples-spring-boot-jakarta
- src/main
- java/io/sentry/samples/spring/boot/jakarta
- resources
- sentry-spring-boot-jakarta/src/test/kotlin/io/sentry/spring/boot/jakarta
- sentry-spring-boot/src/test/kotlin/io/sentry/spring/boot
- sentry
- api
- src
- main/java/io/sentry
- profiling
- protocol
- profiling
- transport
- test
- java/io/sentry
- protocol
- transport
- resources/json
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
46 files changed
+1452
-879
lines changedLines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
301 | 301 | | |
302 | 302 | | |
303 | 303 | | |
304 | | - | |
| 304 | + | |
305 | 305 | | |
306 | 306 | | |
307 | 307 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
| 7 | + | |
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
11 | 20 | | |
12 | 21 | | |
13 | 22 | | |
| |||
0 commit comments