-
-
Notifications
You must be signed in to change notification settings - Fork 342
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(profiling): starting and stopping continuous profiler #3937
feat(profiling): starting and stopping continuous profiler #3937
Conversation
… to separate code unit
…ure of profiler frequency; remove duplicate declaration of threadSanitizerIsPresent(); move some SentryProfiler.mm imports into SENTRY_HAS_UIKIT gate
…ctly from dep container in profile serialization
- move old profiler control logic to new SentryLegacyProfiler class, leaving SentryProfiler to only contain the state and internal reference to SamplingProfiler
…and SentryLegacyProfiler+Test
…g underscore for public members
…continuous-profiling/4-refactoring/3-renames
…ock init sequence
…ion/2-schema-serialization' into armcknight/feat/3555-continuous-profiling/5-implementation/3-automatic-start-stop
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #3937 +/- ##
=============================================
+ Coverage 90.858% 90.891% +0.032%
=============================================
Files 594 594
Lines 46328 46351 +23
Branches 16599 16610 +11
=============================================
+ Hits 42093 42129 +36
+ Misses 4165 4152 -13
Partials 70 70
... and 8 files with indirect coverage changes Continue to review full report in Codecov by Sentry.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
…continuous-profiling/5-implementation/2-schema-serialization
…ion/2-schema-serialization' into armcknight/feat/3555-continuous-profiling/5-implementation/3-automatic-start-stop
…continuous-profiling/5-implementation/3-automatic-start-stop
Performance metrics 🚀
|
Revision | Plain | With Sentry | Diff |
---|---|---|---|
deeb22c | 1233.90 ms | 1250.19 ms | 16.29 ms |
3a6495e | 1227.61 ms | 1239.22 ms | 11.60 ms |
742d4b6 | 1196.56 ms | 1216.54 ms | 19.98 ms |
89491ad | 1222.12 ms | 1231.96 ms | 9.83 ms |
1a4da1b | 1222.14 ms | 1239.50 ms | 17.36 ms |
236d8a8 | 1232.33 ms | 1255.55 ms | 23.22 ms |
983de17 | 1260.57 ms | 1263.68 ms | 3.11 ms |
1b09e3f | 1227.24 ms | 1242.19 ms | 14.95 ms |
3cba0e8 | 1231.20 ms | 1251.50 ms | 20.30 ms |
59c1b97 | 1230.70 ms | 1257.12 ms | 26.42 ms |
App size
Revision | Plain | With Sentry | Diff |
---|---|---|---|
deeb22c | 21.58 KiB | 612.11 KiB | 590.53 KiB |
3a6495e | 21.58 KiB | 422.66 KiB | 401.08 KiB |
742d4b6 | 21.58 KiB | 546.20 KiB | 524.62 KiB |
89491ad | 21.58 KiB | 417.89 KiB | 396.30 KiB |
1a4da1b | 21.58 KiB | 418.33 KiB | 396.75 KiB |
236d8a8 | 21.58 KiB | 418.70 KiB | 397.12 KiB |
983de17 | 22.84 KiB | 403.19 KiB | 380.34 KiB |
1b09e3f | 21.58 KiB | 614.93 KiB | 593.34 KiB |
3cba0e8 | 22.84 KiB | 403.18 KiB | 380.34 KiB |
59c1b97 | 21.58 KiB | 547.63 KiB | 526.05 KiB |
for #3555; #skip-changelog
After some more discussion, we're only going to offer manually starting and stopping the profiler (besides app launch profiling starting it automatically before any app code can actually run; but that must at least be manually configured by customers by setting the SentryOption for it).
We originally planned to automatically start/stop with session start/stop that respected the profiles sampling definitions, but we won't move forward with that right now. Manual start/stop will not respect profiling sample rates, calls will always start the profiler if one isn't already running.
Closing the SDK will stop any profiler that's running.
This cleans up anything that tied profiles to sessions, and adds more tests around various start/stop scenarios.