OptionalcollapseWhether to collapse list items into a single element. (i.e. single
users.*.name span instead of users.0.name, users.1.name, etc)
OptionaldepthThe maximum depth of fields/resolvers to instrument. Set to 0 to only
instrument the operation or to -1 to instrument all fields/resolvers.
Counts selection-set nesting (named fields) only; list indices do not
count toward the limit, regardless of collapse.
OptionalenabledWhether to enable the plugin.
OptionalerrorAn array of error extensions keys to attach to the span error event
for each GraphQL error.
OptionalhooksAn object of optional callbacks to be executed during the respective phase of a GraphQL operation. Undefined callbacks default to a noop function.
OptionalmeasuredWhether to measure the span. Can also be set to a key-value pair with span names as keys and booleans as values for more granular control.
OptionalserviceThe service name to be used for this plugin.
OptionalsignatureWhether to enable signature calculation for the resource name. This can be disabled if your GraphQL operations always have a name. Note that when disabled all queries will need to be named for this to work properly.
OptionalsourceWhether to include the source of the operation within the query as a tag on every span. This may contain sensitive information and should only be enabled if sensitive data is always sent as variables and not in the query text.
OptionalvariablesAn array of variable names to record. Can also be a callback that returns
the key/value pairs to record. For example, using
variables => variables would record all variables. The environment
variable only accepts the array form (comma-separated variable names).
This plugin automatically instruments the graphql module.
It also instruments mercurius (the Fastify GraphQL adapter): every request through
app.graphql/reply.graphqlopens a top-levelgraphql.requestspan that parents thegraphql.parse/graphql.validate/graphql.executespans and carries the request text. This span is produced even when mercurius serves the query from its JIT-compiled path, wheregraphql.executedoes not run.The
graphqlintegration uses the operation name as the span resource name. If no operation name is set, the resource name will always be justquery,mutationorsubscription.For example: