sentry-java icon indicating copy to clipboard operation
sentry-java copied to clipboard

Add Continuous Profiling support (v8)

Open stefanosiano opened this issue 1 year ago • 2 comments

:scroll: Description

This is the first part for the continuous profiling support for Android. Internal doc is here

Part 1 Add the implementation of the continuous profiler itself

Part 2 -> https://github.com/getsentry/sentry-java/pull/3711 Create new envelope type and payload Create and send profile_chunk envelope

Part 3 -> https://github.com/getsentry/sentry-java/pull/3725 Instantiate profiler Set ProfileContext to transactions and spans Add performance collectors to the profiler

Part 4 -> https://github.com/getsentry/sentry-java/pull/3730 Handle app start profiling

Part 5 Add new user-facing APIs

Part 6 Update docs

:bulb: Motivation and Context

:green_heart: How did you test it?

Unit tests

:pencil: Checklist

  • [ ] I reviewed the submitted code.
  • [ ] I added tests to verify the changes.
  • [ ] No new PII added or SDK only sends newly added PII if sendDefaultPII is enabled.
  • [ ] I updated the docs if needed.
  • [ ] Review from the native team if needed.
  • [ ] No breaking change or entry added to the changelog.
  • [ ] No breaking change for hybrid SDKs or communicated to hybrid SDKs.

:crystal_ball: Next steps

stefanosiano avatar Sep 23 '24 09:09 stefanosiano

Fails
:no_entry_sign: Please consider adding a changelog entry for the next release.
Messages
:book: Do not forget to update Sentry-docs with your feature once the pull request gets approved.

Instructions and example for changelog

Please add an entry to CHANGELOG.md to the "Unreleased" section. Make sure the entry includes this PR's number.

Example:

## Unreleased

- Add Continuous Profiling support (v8) ([#3710](https://github.com/getsentry/sentry-java/pull/3710))

If none of the above apply, you can opt out of this check by adding #skip-changelog to the PR description.

Generated by :no_entry_sign: dangerJS against 9954e1c41d7eaa6ddfbeb7bdafb39c2bbc14dcf4

github-actions[bot] avatar Sep 23 '24 09:09 github-actions[bot]

Performance metrics :rocket:

  Plain With Sentry Diff
Startup time 428.10 ms 459.66 ms 31.56 ms
Size 1.58 MiB 2.22 MiB 653.04 KiB

Previous results on branch: feat/continuous-profiling-part1

Startup times

Revision Plain With Sentry Diff
9cf8106fcb58cf6e4a6341a9dd4e66da15269996 421.06 ms 445.54 ms 24.48 ms
fca45e9c0a6bda15a8165788af52140e82561bbf 420.88 ms 501.82 ms 80.94 ms

App size

Revision Plain With Sentry Diff
9cf8106fcb58cf6e4a6341a9dd4e66da15269996 1.58 MiB 2.22 MiB 653.04 KiB
fca45e9c0a6bda15a8165788af52140e82561bbf 1.58 MiB 2.22 MiB 653.04 KiB

github-actions[bot] avatar Sep 23 '24 10:09 github-actions[bot]

🚨 Detected changes in high risk code 🚨

High-risk code has higher potential to break the SDK and may be hard to test. To prevent severe bugs, apply the rollout process for releasing such changes and be extra careful when changing and reviewing these files:

  • [ ] sentry/src/main/java/io/sentry/transport/RateLimiter.java

github-actions[bot] avatar Dec 06 '24 15:12 github-actions[bot]

🚨 Detected changes in high risk code 🚨

High-risk code has higher potential to break the SDK and may be hard to test. To prevent severe bugs, apply the rollout process for releasing such changes and be extra careful when changing and reviewing these files:

  • [ ] sentry/src/main/java/io/sentry/transport/RateLimiter.java

github-actions[bot] avatar Mar 18 '25 11:03 github-actions[bot]

🚨 Detected changes in high risk code 🚨

High-risk code has higher potential to break the SDK and may be hard to test. To prevent severe bugs, apply the rollout process for releasing such changes and be extra careful when changing and reviewing these files:

  • [ ] sentry/src/main/java/io/sentry/transport/RateLimiter.java

github-actions[bot] avatar Mar 18 '25 12:03 github-actions[bot]

🚨 Detected changes in high risk code 🚨

High-risk code has higher potential to break the SDK and may be hard to test. To prevent severe bugs, apply the rollout process for releasing such changes and be extra careful when changing and reviewing these files:

  • [ ] sentry/src/main/java/io/sentry/transport/RateLimiter.java

github-actions[bot] avatar Mar 18 '25 13:03 github-actions[bot]