@saidsef/tracing-node 1.7.8 → 1.8.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/libs/index.js +21 -15
  2. package/package.json +5 -4
package/libs/index.js CHANGED
@@ -16,6 +16,7 @@
16
16
  * limitations under the License.
17
17
  */
18
18
 
19
+ const { CompositePropagator, W3CBaggagePropagator, W3CTraceContextPropagator } = require('@opentelemetry/core');
19
20
  const { registerInstrumentations } = require('@opentelemetry/instrumentation');
20
21
  const { NodeTracerProvider } = require('@opentelemetry/sdk-trace-node');
21
22
  const { BatchSpanProcessor } = require('@opentelemetry/sdk-trace-base');
@@ -27,7 +28,9 @@ const { Resource } = require('@opentelemetry/resources');
27
28
  const { SemanticResourceAttributes } = require('@opentelemetry/semantic-conventions');
28
29
  const { AwsInstrumentation } = require('@opentelemetry/instrumentation-aws-sdk');
29
30
  const { PinoInstrumentation } = require('@opentelemetry/instrumentation-pino');
30
- const { JaegerPropagator } = require('@opentelemetry/propagator-jaeger');
31
+ const { DnsInstrumentation } = require('@opentelemetry/instrumentation-dns');
32
+ const { containerDetector } = require('@opentelemetry/resource-detector-container');
33
+ const { B3Propagator, B3InjectEncoding } = require('@opentelemetry/propagator-b3');
31
34
 
32
35
  diag.setLogger(new DiagConsoleLogger(), DiagLogLevel.INFO);
33
36
 
@@ -39,6 +42,7 @@ function setupTracing(serviceName, appName="application", endpoint=null) {
39
42
  [SemanticResourceAttributes.CONTAINER_NAME]: serviceName,
40
43
  [SemanticResourceAttributes.HOST_NAME]: serviceName,
41
44
  instrumentationLibrarySemanticConvention: true,
45
+ detectors: [containerDetector]
42
46
  }),
43
47
  });
44
48
 
@@ -51,25 +55,23 @@ function setupTracing(serviceName, appName="application", endpoint=null) {
51
55
  // Register the span processor with the tracer provider
52
56
  provider.addSpanProcessor(new BatchSpanProcessor(new OTLPTraceExporter(exportOptions)));
53
57
 
58
+ // Ignore spans from static assets.
59
+ const ignoreIncomingRequestHook = (req) => {
60
+ const isStaticAsset = !!req.url.match(/^\/metrics|\/healthz.*$/);
61
+ return isStaticAsset;
62
+ }
63
+
54
64
  // Register instrumentations
55
65
  registerInstrumentations({
56
66
  tracerProvider: provider,
57
67
  instrumentations: [
58
- new ExpressInstrumentation({
59
- ignoreIncomingRequestHook(req) {
60
- // Ignore spans from static assets.
61
- const isStaticAsset = !!req.url.match(/^\/metrics.*$/);
62
- return isStaticAsset;
63
- }
64
- }),
65
68
  new HttpInstrumentation({
66
69
  requireParentforOutgoingSpans: false,
67
70
  requireParentforIncomingSpans: false,
68
- ignoreIncomingRequestHook(req) {
69
- // Ignore spans from static assets.
70
- const isStaticAsset = !!req.url.match(/^\/metrics.*$/);
71
- return isStaticAsset;
72
- }
71
+ ignoreIncomingRequestHook,
72
+ }),
73
+ new ExpressInstrumentation({
74
+ ignoreIncomingRequestHook,
73
75
  }),
74
76
  new AwsInstrumentation({
75
77
  sqsExtractContextPropagationFromPayload: true
@@ -78,12 +80,16 @@ function setupTracing(serviceName, appName="application", endpoint=null) {
78
80
  logHook: (span, record) => {
79
81
  record['resource.service.name'] = provider.resource.attributes['service.name'];
80
82
  },
81
- })
83
+ }),
84
+ new DnsInstrumentation(),
82
85
  ],
83
86
  });
84
87
 
85
88
  // Initialize the tracer provider
86
- provider.register({propagator: new JaegerPropagator()});
89
+ provider.register({
90
+ propagator: new CompositePropagator({
91
+ propagators: [new W3CBaggagePropagator(), new W3CTraceContextPropagator(), new B3Propagator({ injectEncoding: B3InjectEncoding.MULTI_HEADER })],
92
+ })});
87
93
 
88
94
  // Return the tracer for the service
89
95
  return provider.getTracer(serviceName);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@saidsef/tracing-node",
3
- "version": "1.7.8",
4
- "description": "tracing NodeJS - This is wrapper for OpenTelemetry instrumentation packages",
3
+ "version": "1.8.3",
4
+ "description": "tracing NodeJS - This is a wrapper for OpenTelemetry instrumentation packages",
5
5
  "main": "libs/index.js",
6
6
  "scripts": {
7
7
  "test": "node --trace-warnings --test --report-uncaught-exception --heap-prof --cpu-prof --track-heap-objects --report-dir=test/ --diagnostic-dir=test/ --heap-prof-dir=test/ libs/index.js",
@@ -20,7 +20,6 @@
20
20
  "instrumentation-pino",
21
21
  "instrumentation",
22
22
  "opentelemetry",
23
- "propagator-jaeger",
24
23
  "resources",
25
24
  "sdk-trace-base",
26
25
  "sdk-trace-node",
@@ -39,10 +38,12 @@
39
38
  "@opentelemetry/exporter-trace-otlp-grpc": "^0.41.0",
40
39
  "@opentelemetry/instrumentation": "^0.41.0",
41
40
  "@opentelemetry/instrumentation-aws-sdk": "^0.35.0",
41
+ "@opentelemetry/instrumentation-dns": "^0.32.0",
42
42
  "@opentelemetry/instrumentation-express": "^0.33.0",
43
43
  "@opentelemetry/instrumentation-http": "^0.41.0",
44
44
  "@opentelemetry/instrumentation-pino": "^0.34.0",
45
- "@opentelemetry/propagator-jaeger": "^1.14.0",
45
+ "@opentelemetry/propagator-b3": "^1.15.2",
46
+ "@opentelemetry/resource-detector-container": "^0.3.0",
46
47
  "@opentelemetry/resources": "^1.14.0",
47
48
  "@opentelemetry/sdk-trace-base": "^1.14.0",
48
49
  "@opentelemetry/sdk-trace-node": "^1.14.0",