Skip to content

Latest commit

 

History

History
55 lines (42 loc) · 2.85 KB

graphql-spans.md

File metadata and controls

55 lines (42 loc) · 2.85 KB

Semantic Conventions for GraphQL Server

Status: Experimental

This document defines semantic conventions to apply when instrumenting the GraphQL implementation. They map GraphQL operations to attributes on a Span.

The 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.

Attribute Type Description Examples Requirement Level Stability
graphql.document string The GraphQL document being executed. [1] query findBookById { bookById(id: ?) { name } } Recommended Experimental
graphql.operation.name string The name of the operation being executed. findBookById Recommended Experimental
graphql.operation.type string The type of the operation being executed. query; mutation; subscription Recommended Experimental

[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.

Value Description Stability
mutation GraphQL mutation Experimental
query GraphQL query Experimental
subscription GraphQL subscription Experimental