Problem Statement
In Sentry Performance, when I look at the queries list in a performance event of an API view, the view.render event always begins with a few of the same queries, for looking up the auth token, and are rarely relevant. It would be better if those auth queries were in a separate span, to reduce visual noise.
Solution Brainstorm
I currently subclass the authentication class and add a span myself, like this:
class TracedTokenAuthentication(rest_framework.authentication.TokenAuthentication):
def authenticate(self, request):
with sentry_sdk.start_span(op='authenticate'):
return super().authenticate(request)
The disadvantage of this is you can use multiple authentications, and each would need modifying. A better place for the span is probably rest_framework.request.Request._authenticate, which loops over all configured authentications.
Problem Statement
In Sentry Performance, when I look at the queries list in a performance event of an API view, the
view.renderevent always begins with a few of the same queries, for looking up the auth token, and are rarely relevant. It would be better if those auth queries were in a separate span, to reduce visual noise.Solution Brainstorm
I currently subclass the authentication class and add a span myself, like this:
The disadvantage of this is you can use multiple authentications, and each would need modifying. A better place for the span is probably
rest_framework.request.Request._authenticate, which loops over all configured authentications.