0.24.0 • Published 3 years ago

@opentelemetry/node v0.24.0

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

OpenTelemetry Node SDK

NPM Published Version dependencies devDependencies Apache License

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

For manual instrumentation see the @opentelemetry/tracing package.

How auto instrumentation works

This package exposes a NodeTracerProvider. For loading instrumentations please use registerInstrumentations function from opentelemetry-instrumentation

OpenTelemetry comes with a growing number of instrumentation plugins for well known modules (see supported modules) and an API to create custom instrumentation (see the instrumentation developer guide).

Please note: This module does not bundle any plugins. They need to be installed separately.

This is done by wrapping all tracing-relevant functions.

This instrumentation code will automatically

  • extract a trace-context identifier from inbound requests to allow distributed tracing (if applicable)
  • make sure that this current trace-context is propagated while the transaction traverses an application (see @opentelemetry/context-base for an in-depth explanation)
  • add this trace-context identifier to outbound requests to allow continuing the distributed trace on the next hop (if applicable)
  • create and end spans

Creating custom spans on top of auto-instrumentation

Additionally to automated instrumentation, NodeTracerProvider exposes the same API as @opentelemetry/tracing, allowing creating custom spans if needed.

Installation

npm install --save @opentelemetry/api
npm install --save @opentelemetry/node

# Install instrumentation plugins
npm install --save @opentelemetry/instrumentation-http
# and for example one additional
npm install --save instrumentation-graphql

Usage

The following code will configure the NodeTracerProvider to instrument http (and any other installed supported modules) using @opentelemetry/plugin-http.

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

// Create and configure NodeTracerProvider
const provider = new NodeTracerProvider();

// Initialize the provider
provider.register();

// register and load instrumentation and old plugins - old plugins will be loaded automatically as previously
// but instrumentations needs to be added
registerInstrumentations({
});

// Your application code - http will automatically be instrumented if
// @opentelemetry/plugin-http is present
const http = require('http');

Instrumentation configuration

In the following example:

  • the express instrumentation is enabled
  • the http instrumentation has a custom config for a requestHook
const { registerInstrumentations } = require('@opentelemetry/instrumentation');
const { HttpInstrumentation } = require('@opentelemetry/instrumentation-http');
const { ExpressInstrumentation } = require('@opentelemetry/instrumentation-express');

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

// register and load instrumentation and old plugins - old plugins will be loaded automatically as previously
// but instrumentations needs to be added
registerInstrumentations({
  instrumentations: [
    new ExpressInstrumentation(),
    new HttpInstrumentation({
        requestHook: (span, request) => {
          span.setAttribute("custom request hook attribute", "request");
        },
    }),
  ],
});

Examples

See how to automatically instrument http and gRPC / grpc-js using node-sdk.

Useful links

License

Apache 2.0 - See LICENSE for more information.

0.24.1-alpha.1

3 years ago

0.24.1-alpha.31

3 years ago

0.23.1-alpha.28

3 years ago

0.24.0

3 years ago

0.23.1-alpha.24

3 years ago

0.23.1-alpha.23

3 years ago

0.23.1-alpha.16

3 years ago

0.23.1-alpha.15

3 years ago

0.23.1-alpha.3

3 years ago

0.23.1-alpha.17

3 years ago

0.23.1-alpha.18

3 years ago

0.22.1-alpha.16

3 years ago

0.22.1-alpha.15

3 years ago

0.22.1-alpha.8

3 years ago

0.22.1-alpha.9

3 years ago

0.23.0

3 years ago

0.22.1-alpha.14

3 years ago

0.22.1-alpha.13

3 years ago

0.22.1-alpha.2

3 years ago

0.22.1-alpha.3

3 years ago

0.22.1-alpha.5

3 years ago

0.22.0

3 years ago

0.21.1-alpha.3

3 years ago

0.20.0

3 years ago

0.21.0

3 years ago

0.21.1-alpha.2

3 years ago

0.21.1-alpha.1

3 years ago

0.21.1-alpha.7

3 years ago

0.19.1-alpha.41

3 years ago

0.19.1-alpha.43

3 years ago

0.19.1-alpha.44

3 years ago

0.20.1-alpha.4

3 years ago

0.20.1-alpha.3

3 years ago

0.20.1-alpha.49

3 years ago

0.19.1-alpha.27

3 years ago

0.19.1-alpha.26

3 years ago

0.19.1-alpha.29

3 years ago

0.19.1-alpha.28

3 years ago

0.19.1-alpha.21

3 years ago

0.19.1-alpha.23

3 years ago

0.19.1-alpha.22

3 years ago

0.19.1-alpha.25

3 years ago

0.19.0

3 years ago

0.19.1-alpha.15

3 years ago

0.19.1-alpha.18

3 years ago

0.19.1-alpha.19

3 years ago

0.19.1-alpha.12

3 years ago

0.19.1-alpha.11

3 years ago

0.19.1-alpha.14

3 years ago

0.19.1-alpha.13

3 years ago

0.19.1-alpha.40

3 years ago

0.19.1-alpha.37

3 years ago

0.19.1-alpha.39

3 years ago

0.19.1-alpha.9

3 years ago

0.19.1-alpha.31

3 years ago

0.19.1-alpha.7

3 years ago

0.19.1-alpha.33

3 years ago

0.19.1-alpha.36

3 years ago

0.18.3-alpha.31

3 years ago

0.18.3-alpha.30

3 years ago

0.18.3-alpha.28

3 years ago

0.18.3-alpha.29

3 years ago

0.18.3-alpha.27

3 years ago

0.18.3-alpha.20

3 years ago

0.18.3-alpha.23

3 years ago

0.18.3-alpha.25

3 years ago

0.18.3-alpha.17

3 years ago

0.18.3-alpha.18

3 years ago

0.18.3-alpha.16

3 years ago

0.18.3-alpha.14

3 years ago

0.18.3-alpha.15

3 years ago

0.18.3-alpha.9

3 years ago

0.18.3-alpha.10

3 years ago

0.18.3-alpha.11

3 years ago

0.18.3-alpha.7

3 years ago

0.18.3-alpha.5

3 years ago

0.18.3-alpha.4

3 years ago

0.18.3-alpha.3

3 years ago

0.18.2-alpha.1

3 years ago

0.18.2

3 years ago

0.18.3-alpha.2

3 years ago

0.18.3-alpha.1

3 years ago

0.18.2-alpha.81

3 years ago

0.18.1

3 years ago

0.18.1-alpha.26

3 years ago

0.18.1-alpha.20

3 years ago

0.18.1-alpha.24

3 years ago

0.18.1-alpha.23

3 years ago

0.18.1-alpha.21

3 years ago

0.18.1-alpha.16

3 years ago

0.18.1-alpha.13

3 years ago

0.18.0

3 years ago

0.18.1-alpha.3

3 years ago

0.18.1-alpha.12

3 years ago

0.17.1-alpha.10

3 years ago

0.17.1-alpha.11

3 years ago

0.17.1-alpha.8

3 years ago

0.17.1-alpha.5

3 years ago

0.17.1-alpha.3

3 years ago

0.17.1-alpha.2

3 years ago

0.17.0

3 years ago

0.17.1-alpha.21

3 years ago

0.16.1-alpha.20

3 years ago

0.16.1-alpha.18

3 years ago

0.16.1-alpha.14

3 years ago

0.16.1-alpha.15

3 years ago

0.16.1-alpha.12

3 years ago

0.16.1-alpha.10

3 years ago

0.16.1-alpha.11

3 years ago

0.16.1-alpha.6

3 years ago

0.16.0

3 years ago

0.15.0

3 years ago

0.14.0

3 years ago

0.13.0

3 years ago

0.12.1-alpha.7

4 years ago

0.12.1-alpha.4

4 years ago

0.12.0

4 years ago

0.11.1-alpha.53

4 years ago

0.12.1-alpha.54

4 years ago

0.11.1-alpha.44

4 years ago

0.11.1-alpha.36

4 years ago

0.11.1-alpha.35

4 years ago

0.11.1-alpha.15

4 years ago

0.11.1-alpha.48

4 years ago

0.11.0

4 years ago

0.10.3-alpha.41

4 years ago

0.10.3-alpha.40

4 years ago

0.10.3-alpha.35

4 years ago

0.10.3-alpha.34

4 years ago

0.10.3-alpha.28

4 years ago

0.10.3-canary.0

4 years ago

0.10.2

4 years ago

0.10.1

4 years ago

0.10.0

4 years ago

0.9.0

4 years ago

0.8.3

4 years ago

0.8.2

4 years ago

0.8.1

4 years ago

0.8.0

4 years ago

0.7.0

4 years ago

0.6.1

4 years ago

0.6.0

4 years ago

0.5.2

4 years ago

0.5.1

4 years ago

0.5.0

4 years ago

0.4.0

4 years ago

0.3.3

4 years ago

0.3.2

4 years ago

0.3.1

4 years ago

0.3.0

4 years ago

0.2.0

4 years ago

0.1.1

5 years ago

0.1.0

5 years ago