Semantic conventions for GraphQL server spans

Status: Development

Status: Development

This span represents an incoming operation on a GraphQL server implementation.

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.

Span kind SHOULD be SERVER.

Span status SHOULD follow the Recording Errors document.

Attributes:

KeyStabilityRequirement LevelValue TypeDescriptionExample Values
graphql.documentDevelopmentRecommendedstringThe GraphQL document being executed. [1]query findBookById { bookById(id: ?) { name } }
graphql.operation.nameDevelopmentRecommendedstringThe name of the operation being executed.findBookById
graphql.operation.typeDevelopmentRecommendedstringThe type of the operation being executed.query; mutation; subscription

[1] graphql.document: The value may be sanitized to exclude sensitive information.


graphql.operation.type has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.

ValueDescriptionStability
mutationGraphQL mutationDevelopment
queryGraphQL queryDevelopment
subscriptionGraphQL subscriptionDevelopment