JSPM

  • Created
  • Published
  • Downloads 16474158
  • Score
    100M100P100Q256154F
  • License Apache-2.0

OpenTelemetry @opentelemetry/instrumentation-graphql automatic instrumentation package.

Package Exports

  • @opentelemetry/instrumentation-graphql
  • @opentelemetry/instrumentation-graphql/build/src/enum
  • @opentelemetry/instrumentation-graphql/build/src/enums/AttributeNames
  • @opentelemetry/instrumentation-graphql/build/src/symbols
  • @opentelemetry/instrumentation-graphql/build/src/utils

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@opentelemetry/instrumentation-graphql) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

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

Param type Default Value Description
mergeItems boolean false Whether to merge list items into a single element. example: users.*.name instead of users.0.name, users.1.name
depth number -1 The 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.
allowValues boolean false When 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 "*"
responseHook GraphQLInstrumentationExecutionResponseHook undefined Hook that allows adding custom span attributes based on the data returned from "execute" GraphQL action.

Examples

Can be found here

License

Apache 2.0 - See LICENSE for more information.