opentelemetry-js/packages/opentelemetry-plugin-http
Olivier Albertini 3d9b8228b5 feat(plugin-http): add/modify attributes (#643)
* feat(plugin-http): add/modify attributes

closes #373, #394

Signed-off-by: Olivier Albertini <olivier.albertini@montreal.ca>

* fix: change remotePort to localPort

refactor: remove useless checks
test: add assertions

Signed-off-by: Olivier Albertini <olivier.albertini@montreal.ca>

* test(plugin-https): sync with http plugin

Signed-off-by: Olivier Albertini <olivier.albertini@montreal.ca>

Co-authored-by: Mayur Kale <mayurkale@google.com>
2020-01-01 23:07:39 -08:00
..
src feat(plugin-http): add/modify attributes (#643) 2020-01-01 23:07:39 -08:00
test feat(plugin-http): add/modify attributes (#643) 2020-01-01 23:07:39 -08:00
.npmignore chore(packages): add http and grpc skeletons (#160) 2019-08-03 20:53:38 -07:00
LICENSE chore(packages): add http and grpc skeletons (#160) 2019-08-03 20:53:38 -07:00
README.md feat(plugin-http): add/modify attributes (#643) 2020-01-01 23:07:39 -08:00
package.json chore: 0.3.1 (patch) release proposal (#639) 2019-12-20 15:45:34 -08:00
tsconfig.json chore(packages): add http and grpc skeletons (#160) 2019-08-03 20:53:38 -07:00
tslint.json chore: set explicit naming convention (#262) 2019-09-17 09:56:13 -07:00

README.md

OpenTelemetry HTTP Instrumentation for Node.js

Gitter chat NPM Published Version dependencies devDependencies Apache License

This module provides automatic instrumentation for http.

For automatic instrumentation see the @opentelemetry/node package.

Installation

npm install --save @opentelemetry/plugin-http

Usage

OpenTelemetry HTTP 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 (HTTP in this case), specify it in the Node Tracer's configuration.

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

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

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 { NodeTracer } = require('@opentelemetry/node');

const tracer = new NodeTracer();

See examples/http for a short example.

Http Plugin Options

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

Options Type Description
applyCustomAttributesOnSpan HttpCustomAttributeFunction Function for adding custom attributes
ignoreIncomingPaths IgnoreMatcher[] Http plugin will not trace all incoming requests that match paths
ignoreOutgoingUrls IgnoreMatcher[] Http plugin will not trace all outgoing requests that match urls
serverName string The primary server name of the matched virtual host.

License

Apache 2.0 - See LICENSE for more information.