More granular http requests instrumentation with a new SentryOkHttpEventListener (#2659)
Create spans for time spent on:
Proxy selection
DNS resolution
HTTPS setup
Connection
Requesting headers
Receiving response
You can attach the event listener to your OkHttpClient through client.eventListener(new SentryOkHttpEventListener()).addInterceptor(new SentryOkHttpInterceptor()).build();
In case you already have an event listener you can use the SentryOkHttpEventListener as well through client.eventListener(new SentryOkHttpEventListener(myListener)).addInterceptor(new SentryOkHttpInterceptor()).build();
This implementation completely replaces the old one (based on a watchdog) on devices running Android 11 and above:
New implementation provides more precise ANR events/ANR rate detection as well as system thread dump information. The new implementation reports ANRs exactly as Google Play Console, without producing false positives or missing important background ANR events.
However, despite producing many false positives, the old implementation is capable of better enriching ANR errors (which is not available with the new implementation), for example:
Capturing screenshots at the time of ANR event;
Capturing transactions and profiling data corresponding to the ANR event;
Auxiliary information (such as current memory load) at the time of ANR event.
If you would like us to provide support for the old approach working alongside the new one on Android 11 and above (e.g. for raising events for slow code on main thread), consider upvoting this discussion.
The old watchdog implementation will continue working for older API versions (Android < 11)
Open up TransactionOptions, ITransaction and IHub methods allowing consumers modify start/end timestamp of transactions and spans (#2701)
Send source bundle IDs to Sentry to enable source context (#2663)
For more information on how to enable source context, please refer to #633
More granular http requests instrumentation with a new SentryOkHttpEventListener (#2659)
Create spans for time spent on:
Proxy selection
DNS resolution
HTTPS setup
Connection
Requesting headers
Receiving response
You can attach the event listener to your OkHttpClient through client.eventListener(new SentryOkHttpEventListener()).addInterceptor(new SentryOkHttpInterceptor()).build();
In case you already have an event listener you can use the SentryOkHttpEventListener as well through client.eventListener(new SentryOkHttpEventListener(myListener)).addInterceptor(new SentryOkHttpInterceptor()).build();
This implementation completely replaces the old one (based on a watchdog) on devices running Android 11 and above:
New implementation provides more precise ANR events/ANR rate detection as well as system thread dump information. The new implementation reports ANRs exactly as Google Play Console, without producing false positives or missing important background ANR events.
However, despite producing many false positives, the old implementation is capable of better enriching ANR errors (which is not available with the new implementation), for example:
Capturing screenshots at the time of ANR event;
Capturing transactions and profiling data corresponding to the ANR event;
Auxiliary information (such as current memory load) at the time of ANR event.
If you would like us to provide support for the old approach working alongside the new one on Android 11 and above (e.g. for raising events for slow code on main thread), consider upvoting this issue.
The old watchdog implementation will continue working for older API versions (Android < 11)
Open up TransactionOptions, ITransaction and IHub methods allowing consumers modify start/end timestamp of transactions and spans (#2701)
Send source bundle IDs to Sentry to enable source context (#2663)
For more information on how to enable source context, please refer to #633
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps sentry from 6.17.0 to 6.20.0.
Release notes
Sourced from sentry's releases.
... (truncated)
Changelog
Sourced from sentry's changelog.
... (truncated)
Commits
55ff586
release: 6.20.03cb8080
Add option to disable RootChecker (#2735)fe90ed9
Add OkHttp event spans (#2659)37cd75a
Fix remove saucelab config name attribute, as it does not exist anymore (#2677)46e0307
Add support for Sentry Kotlin Compiler Plugin (#2695)5041902
Fix AndroidProfiler and SentryTracer crashes (#2731)a485ab0
Bump codecov/codecov-action from 3.1.3 to 3.1.4 (#2723)46b1782
Add custom maven target for unity (#2725)1707044
fix incorrect changelog (#2721)b6b3a90
Encode/Decode internal apollo3 headers (#2707)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)