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

Add the option to ignore non fully blocking app hangs

Open philipphofmann opened this issue 2 years ago • 0 comments

Description

Our app hang logic detects app hangs that don't fully block the main thread, which leads to inaccurate stack traces for such app hang events because the app hang logic might fire a bit too late to capture the proper stack trace responsible for the app hang. For some customers non-fully-blocking app hangs are noise, and they often disable the whole feature. Instead, we could provide an option only to report fully blocking app hangs. The option could be an enum something like reportAppHangLevel with (we have to come up with better names)

  1. FullyBlocking
  2. NonBlocking
  3. None

Implementation

To achieve this, we have to change our implementation a bit and might have to combine it with the CADisplayLink, which we already use for the SentryFramesTracker, but we have to be careful cause this can increase the CPU overhead, as pointed out here https://github.com/getsentry/sentry-cocoa/blob/f25febbb81e40893076ff878f59f146ddb948ab4/Sources/Sentry/include/SentryANRTracker.h#L13-L20

Related GH discussion: https://github.com/getsentry/sentry-cocoa/discussions/2715 Related GH issue for linking app hangs to profiles https://github.com/getsentry/sentry-cocoa/issues/3493.

### Tasks
- [ ] https://github.com/getsentry/sentry-cocoa/pull/4262
- [ ] https://github.com/getsentry/sentry-cocoa/pull/4265
- [ ] https://github.com/getsentry/sentry-cocoa/pull/4282
- [ ] https://github.com/getsentry/sentry-cocoa/pull/4285
- [ ] https://github.com/getsentry/sentry-cocoa/pull/4286

philipphofmann avatar Dec 13 '23 17:12 philipphofmann