Skip to content

Add a span around Django rest framework authentication #3006

Description

@angusholder

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.

Metadata

Metadata

Assignees

No one assigned

    Projects

    Status
    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions