0.26.0 • Published 3 years ago

@galoymoney/instrumentation-graphql v0.26.0

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
3 years ago

OpenTelemetry Instrumentation GraphQL

NPM Published Version dependencies devDependencies Apache License

This module provides automated instrumentation and tracing for GraphQL in Node.js applications.

Note: graphql plugin instruments graphql directly. it should work with any package that wraps the graphql package (e.g apollo).

Minimum required graphql version is v14

Compatible with OpenTelemetry JS API and SDK 1.0+.

Installation

npm install @opentelemetry/instrumentation-graphql

Usage

'use strict';

const { GraphQLInstrumentation } = require('@opentelemetry/instrumentation-graphql');
const { NodeTracerProvider } = require('@opentelemetry/sdk-trace-node');
const { registerInstrumentations } = require('@opentelemetry/instrumentation');

const provider = new NodeTracerProvider();
provider.register();

registerInstrumentations({
  instrumentations: [
    new GraphQLInstrumentation({
    // optional params
      // allowValues: true,
      // depth: 2,
      // mergeItems: true,
    }),
  ],
});

Optional Parameters

ParamtypeDefault ValueDescription
mergeItemsbooleanfalseWhether to merge list items into a single element. example: users.*.name instead of users.0.name, users.1.name
depthnumber-1The maximum depth of fields/resolvers to instrument. When set to 0 it will not instrument fields and resolvers. When set to -1 it will instrument all fields and resolvers.
allowValuesbooleanfalseWhen set to true it will not remove attributes values from schema source. By default all values that can be sensitive are removed and replaced with "*"
responseHookGraphQLInstrumentationExecutionResponseHookundefinedHook that allows adding custom span attributes based on the data returned from "execute" GraphQL action.

Examples

Can be found here

Useful links

License

Apache 2.0 - See LICENSE for more information.