def METHOD_NAME(self) -> Generator[None, None, None]:
    self._operation_name = self.execution_context.operation_name
    span_name = (
        f"GraphQL Query: {self._operation_name}"
        if self._operation_name
        else "GraphQL Query"
    )
    self._span_holder[LifecycleStep.OPERATION] = self._tracer.start_span(
        span_name, kind=SpanKind.SERVER
    )
    self._span_holder[LifecycleStep.OPERATION].set_attribute("component", "graphql")
    if self.execution_context.query:
        self._span_holder[LifecycleStep.OPERATION].set_attribute(
            "query", self.execution_context.query
        )
    yield
    # If the client doesn't provide an operation name then GraphQL will
    # execute the first operation in the query string. This might be a named
    # operation but we don't know until the parsing stage has finished. If
    # that's the case we want to update the span name so that we have a more
    # useful name in our trace.
    if not self._operation_name and self.execution_context.operation_name:
        span_name = f"GraphQL Query: {self.execution_context.operation_name}"
        self._span_holder[LifecycleStep.OPERATION].update_name(span_name)
    self._span_holder[LifecycleStep.OPERATION].end()