opentelemetry-js/packages/opentelemetry-plugin-express
Daniel Dyla 9a3fd7b560
Rename scope to context (#853)
2020-03-13 15:01:07 -04:00
..
src Rename scope to context (#853) 2020-03-13 15:01:07 -04:00
test Rename scope to context (#853) 2020-03-13 15:01:07 -04:00
.npmignore feat: add express plugin #666 (#685) 2020-02-20 09:14:57 -05:00
LICENSE feat: add express plugin #666 (#685) 2020-02-20 09:14:57 -05:00
README.md docs: add example for express plugin #800 (#810) 2020-02-25 09:04:10 -08:00
package.json Rename scope to context (#853) 2020-03-13 15:01:07 -04:00
tsconfig.json feat: add express plugin #666 (#685) 2020-02-20 09:14:57 -05:00
tslint.json feat: add express plugin #666 (#685) 2020-02-20 09:14:57 -05:00

README.md

OpenTelemetry Express Instrumentation for Node.js

Gitter chat dependencies devDependencies Apache License

This module provides automatic instrumentation for express.

For automatic instrumentation see the @opentelemetry/node package.

Installation

npm install --save @opentelemetry/plugin-express

Supported Versions

  • ^4.0.0

Usage

OpenTelemetry Express Instrumentation allows the user to automatically collect trace data and export them to their backend of choice, to give observability to distributed systems.

To load a specific plugin (express in this case), specify it in the Node Tracer's configuration.

const { NodeTracerProvider } = require('@opentelemetry/node');

const provider = new NodeTracerProvider({
  plugins: {
    express: {
      enabled: true,
      // You may use a package name or absolute path to the file.
      path: '@opentelemetry/plugin-express',
    }
  }
});

To load all the supported plugins, use below approach. Each plugin is only loaded when the module that it patches is loaded; in other words, there is no computational overhead for listing plugins for unused modules.

const { NodeTracerProvider } = require('@opentelemetry/node');

const provider = new NodeTracerProvider();

See examples/express for a short example.

Express Plugin Options

Express plugin has few options available to choose from. You can set the following:

Options Type Description
ignoreLayers IgnoreMatcher[] Express plugin will not trace all layers that match.
ignoreLayersType ExpressLayerType[] Express plugin will ignore the layers that match based on their type.

For reference, here are the three different layer type:

  • router is the name of express.Router()
  • middleware
  • request_handler is the name for anything thats not a router or a middleware.

License

Apache 2.0 - See LICENSE for more information.