groups:
  - id: span.graphql.server
    type: span
    stability: development
    span_kind: server
    brief: >
      This span represents an incoming operation on a GraphQL server implementation.
    note: |
      **Span name** SHOULD be of the format `{graphql.operation.type}` provided
      `graphql.operation.type` is available. If `graphql.operation.type` is not available,
      the span SHOULD be named `GraphQL Operation`.

      > **Warning**
      > The `graphql.operation.name` value is provided by the client and can have high
      > cardinality. Using it in the GraphQL server span name (by default) is
      > NOT RECOMMENDED.
      >
      > Instrumentation MAY provide a configuration option to enable a more descriptive
      > span name following `{graphql.operation.type} {graphql.operation.name}` format
      > when `graphql.operation.name` is available.
    attributes:
      - ref: graphql.operation.name
        requirement_level: recommended
      - ref: graphql.operation.type
        requirement_level: recommended
      - ref: graphql.document
        requirement_level: recommended
