-
-
Notifications
You must be signed in to change notification settings - Fork 234
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
[dio] Improve fingerprinting #715
Comments
I believe we can create a custom event processor which edits Dio itself has also this line of code which may lead to the problem the inner cause also has a wrong stacktrace. I was about to raise a PR for that. |
Yea, I know. I am looking into it as well, feel free to open the ticket. |
@kuhnroyal thanks for raising, can you link me to 2 issues that you think should not be grouped together? so I can analyze the stack trace. |
I think it depends on what the
|
I only have samples in a Sentry instance on premise.
So basically the stacktrace is not that bad, the source line (3/4) are in there. These lines are different for multiple events but still get grouped. The first 3 lines are are always identical. |
@kuhnroyal There's the concept of This is the Issues detail page. |
I am using this in the config: ..considerInAppFramesByDefault = false
..addInAppInclude('foo_app')
// more includes |
also try to |
If you set |
The problem might be that the stack trace does not contain the caller of |
Yea and this works for other stacktraces/events.
The cause likely doesn't contain the caller here. The causes would mostly be system level exceptions/HTTP/Socket etc. I tried all all possible combinations of include/exclude/considerInAppFramesByDefault. Can't get it to have a unique fingerprint. |
I think there are 2 different stacktraces in play here: The stacktrace from #715 (comment) and the one used for fingerprinting are not the same. |
@kuhnroyal sounds like the error captured by Are you using the |
Ok, scratch that. There was no However, now that it is configured, the stacktrace for the same test exception doesn't contain the
|
So there is something wrong in the try {
final response =
await _client.fetch(options, requestStream, cancelFuture);
statusCode = response.statusCode;
return response;
} catch (e, st) {
exception = e;
stackTrace = st;
rethrow;
} finally {
stopwatch.stop(); Unfortunately the catch block doesn't get called with any All the interceptors have not been called at this point. |
The whole idea with wrapping the adapter doesn't work :( The error handling is done in the |
But does that matter? The adapter shouldn't report any exceptions. The exception is only there, so we can add it as a reason for the transaction or 'bad status code requests'. The global error handler or The |
But that results in 2 events for every error doesn't it? And the one from the adapter isn't helpful because it never has the correct stacktrace? |
Good point. There's code for deduplication in the SDK, but since DIO wraps its excpetions it most probably won't work. So the |
@kuhnroyal and @ueman how did it go with the changes for Dio on 6.4 betas? |
What exactly are you referring to? |
After the changes we've done to improve the reporting of events on sentry_dio, they were beta for a while, did it improve with the changes? (this issue and its PRs). |
I am happy with the current configuration, but just about to roll it in to production so will see in a few days. |
I tested the new
sentry_dio
package a little bit.My issue is that due to how DIO throws
DioError
s, the stacktrace is always the same (that's a problem in itself and probably needs to be improved) - this results in all captured errors having the same fingerprint.Additionally a
DioError
can wrap acause
error which may be the real reason why the request failed, this currently does not get reported.@ueman What are you thoughts on this?
The text was updated successfully, but these errors were encountered: