def METHOD_NAME(
    self, next_: Resolver, obj: Any, info: GraphQLResolveInfo, **kwargs
) -> Any:
    if not should_trace(info):
        return next_(obj, info, **kwargs)
    graphql_path = ".".join(
        map(str, format_path(info.path))  # pylint: disable=bad-builtin
    )
    with self._tracer.start_active_span(info.field_name) as scope:
        span = scope.span
        span.set_tag(tags.COMPONENT, "GraphQL")
        if info.operation.name:
            span.set_tag("graphql.operation.name", info.operation.name.value)
        else:
            span.set_tag("graphql.operation.name", "GraphQL Operation")
        span.set_tag("graphql.parentType", info.parent_type.name)
        span.set_tag("graphql.path", graphql_path)
        if kwargs:
            filtered_kwargs = self.filter_resolver_args(kwargs, info)
            for key, value in filtered_kwargs.items():
                span.set_tag(f"graphql.arg[{key}]", value)
        if iscoroutinefunction(next_):
            return self.resolve_async(span, next_, obj, info, **kwargs)
        return self.resolve_sync(span, next_, obj, info, **kwargs)