GraphQL
Adds instrumentation for GraphQL. (default)
This integration only works in the Node.js and Bun runtimes.
Import name: Sentry.graphqlIntegration
This integration is enabled by default when performance monitoring is enabled. If you'd like to modify your default integrations, read this.
The graphqlIntegration
adds instrumentation for the graphql
library to capture spans using @opentelemetry/instrumentation-graphql
.
Sentry.init({
integrations: [Sentry.graphqlIntegration()],
});
graphql
:>=14.0.0 <17
Type: boolean
If spans for resolver functions should not be created. Default is true
.
Type: boolean
If spans for the execution of the default resolver on object properties should not be created. Default is true
.
When a resolver function is not defined on the schema for a field, GraphQL will use the default resolver which just looks for a property with that name on the object. If the property is not a function, it's not very interesting to trace. This option can reduce noise and number of spans created.
Type: boolean
By default, this option is true
.
With this setting enabled, the GraphQL instrumentation dynamically updates the name of the http.server
root span by appending the operation names. Instead of generic span names like POST /graphql
, spans will be more descriptive, such as POST /graphql (query MyQuery)
. For requests containing multiple operations, the span names will aggregate operation names, for example POST /graphql (query Query1, query Query2)
Set the option to false
to preserve the default http.server
span name without this additional context.
Our documentation is open source and available on GitHub. Your contributions are welcome, whether fixing a typo (drat!) or suggesting an update ("yeah, this would be better").