5
5
[ ![ devDependencies] [ devDependencies-image ]] [ devDependencies-url ]
6
6
[ ![ Apache License] [ license-image ]] [ license-url ]
7
7
8
+ This module provides a simple way to initialize multiple Node instrumentations.
9
+
8
10
## Installation
9
11
10
12
``` bash
11
13
npm install --save @opentelemetry/auto-instrumentations-node
12
14
```
13
15
14
16
## Usage
17
+ OpenTelemetry Meta Packages for Node automatically loads instrumentations for Node builtin modules and common packages.
18
+
19
+ Custom configuration for each of the instrumentations can be passed to the function, by providing an object with the name of the instrumentation as a key, and its configuration as the value.
15
20
16
21
``` javascript
17
22
const { NodeTracerProvider } = require (' @opentelemetry/node' );
18
23
const { getNodeAutoInstrumentations } = require (' @opentelemetry/auto-instrumentations-node' );
19
24
const { CollectorTraceExporter } = require (' @opentelemetry/exporter-collector' );
25
+ const { Resource } = require (' @opentelemetry/resources' );
26
+ const { ResourceAttributes } = require (' @opentelemetry/semantic-conventions' );
20
27
const { SimpleSpanProcessor } = require (' @opentelemetry/tracing' );
21
28
const { registerInstrumentations } = require (' @opentelemetry/instrumentation' );
22
29
23
- const exporter = new CollectorTraceExporter ({
24
- serviceName: ' auto-instrumentations-node' ,
30
+ const exporter = new CollectorTraceExporter ();
31
+ const provider = new NodeTracerProvider ({
32
+ resource: new Resource ({
33
+ [ResourceAttributes .SERVICE_NAME ]: ' basic-service' ,
34
+ }),
25
35
});
26
-
27
- const provider = new NodeTracerProvider ();
28
36
provider .addSpanProcessor (new SimpleSpanProcessor (exporter));
29
37
provider .register ();
30
38
31
39
registerInstrumentations ({
32
40
instrumentations: [
33
41
getNodeAutoInstrumentations ({
34
42
// load custom configuration for http instrumentation
35
- " @opentelemetry/instrumentation-http" : {
36
- applyCustomAttributesOnSpan : (span )=> {
43
+ ' @opentelemetry/instrumentation-http' : {
44
+ applyCustomAttributesOnSpan : (span ) => {
37
45
span .setAttribute (' foo2' , ' bar2' );
38
46
},
39
47
},
@@ -42,6 +50,19 @@ registerInstrumentations({
42
50
});
43
51
44
52
```
53
+ ## Supported instrumentations
54
+
55
+ - [ @opentelemetry/instrumentation-dns ] ( https://github.com/open-telemetry/opentelemetry-js-contrib/tree/main/plugins/node/opentelemetry-instrumentation-dns )
56
+ - [ @opentelemetry/instrumentation-http ] ( https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-instrumentation-http )
57
+ - [ @opentelemetry/instrumentation-grpc ] ( https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-instrumentation-grpc )
58
+ - [ @opentelemetry/instrumentation-express ] ( https://github.com/open-telemetry/opentelemetry-js-contrib/tree/main/plugins/node/opentelemetry-instrumentation-express )
59
+ - [ @opentelemetry/instrumentation-koa ] ( https://github.com/open-telemetry/opentelemetry-js-contrib/tree/main/plugins/node/opentelemetry-instrumentation-koa )
60
+ - [ @opentelemetry/instrumentation-graphql ] ( https://github.com/open-telemetry/opentelemetry-js-contrib/tree/main/plugins/node/opentelemetry-instrumentation-graphql )
61
+ - [ @opentelemetry/instrumentation-ioredis ] ( https://github.com/open-telemetry/opentelemetry-js-contrib/tree/main/plugins/node/opentelemetry-instrumentation-ioredis )
62
+ - [ @opentelemetry/instrumentation-redis ] ( https://github.com/open-telemetry/opentelemetry-js-contrib/tree/main/plugins/node/opentelemetry-instrumentation-redis )
63
+ - [ @opentelemetry/instrumentation-pg ] ( https://github.com/open-telemetry/opentelemetry-js-contrib/tree/main/plugins/node/opentelemetry-instrumentation-pg )
64
+ - [ @opentelemetry/instrumentation-mongodb ] ( https://github.com/open-telemetry/opentelemetry-js-contrib/tree/main/plugins/node/opentelemetry-instrumentation-mongodb )
65
+ - [ @opentelemetry/instrumentation-mysql ] ( https://github.com/open-telemetry/opentelemetry-js-contrib/tree/main/plugins/node/opentelemetry-instrumentation-mysql )
45
66
46
67
## Useful links
47
68
0 commit comments