Skip to content

Commit e94eb63

Browse files
vpadibourgeoisor
andauthored
Mend tracing instrumentation for Node services (#3028)
Co-authored-by: Olivier Bourgeois <[email protected]>
1 parent dc88f8d commit e94eb63

File tree

2 files changed

+37
-32
lines changed

2 files changed

+37
-32
lines changed

src/currencyservice/server.js

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -49,22 +49,25 @@ registerInstrumentations({
4949

5050
if(process.env.ENABLE_TRACING == "1") {
5151
logger.info("Tracing enabled.")
52-
const { NodeTracerProvider } = require('@opentelemetry/sdk-trace-node');
53-
const { SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');
54-
const { OTLPTraceExporter } = require("@opentelemetry/exporter-otlp-grpc");
55-
const { Resource } = require('@opentelemetry/resources');
56-
const { SemanticResourceAttributes } = require('@opentelemetry/semantic-conventions');
57-
58-
const provider = new NodeTracerProvider({
59-
resource: new Resource({
60-
[SemanticResourceAttributes.SERVICE_NAME]: process.env.OTEL_SERVICE_NAME || 'currencyservice',
52+
53+
const { resourceFromAttributes } = require('@opentelemetry/resources');
54+
55+
const { ATTR_SERVICE_NAME } = require('@opentelemetry/semantic-conventions');
56+
57+
const opentelemetry = require('@opentelemetry/sdk-node');
58+
59+
const { OTLPTraceExporter } = require('@opentelemetry/exporter-otlp-grpc');
60+
61+
const collectorUrl = process.env.COLLECTOR_SERVICE_ADDR;
62+
const traceExporter = new OTLPTraceExporter({url: collectorUrl});
63+
const sdk = new opentelemetry.NodeSDK({
64+
resource: resourceFromAttributes({
65+
[ ATTR_SERVICE_NAME ]: process.env.OTEL_SERVICE_NAME || 'currencyservice',
6166
}),
67+
traceExporter: traceExporter,
6268
});
6369

64-
const collectorUrl = process.env.COLLECTOR_SERVICE_ADDR
65-
66-
provider.addSpanProcessor(new SimpleSpanProcessor(new OTLPTraceExporter({url: collectorUrl})));
67-
provider.register();
70+
sdk.start()
6871
}
6972
else {
7073
logger.info("Tracing disabled.")

src/paymentservice/index.js

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,9 @@
1818

1919
const logger = require('./logger')
2020

21-
if(process.env.DISABLE_PROFILER) {
21+
if (process.env.DISABLE_PROFILER) {
2222
logger.info("Profiler disabled.")
23-
}
24-
else {
23+
} else {
2524
logger.info("Profiler enabled.")
2625
require('@google-cloud/profiler').start({
2726
serviceContext: {
@@ -32,32 +31,35 @@ else {
3231
}
3332

3433

35-
if(process.env.ENABLE_TRACING == "1") {
34+
if (process.env.ENABLE_TRACING == "1") {
3635
logger.info("Tracing enabled.")
37-
const { NodeTracerProvider } = require('@opentelemetry/sdk-trace-node');
38-
const { SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');
36+
37+
const { resourceFromAttributes } = require('@opentelemetry/resources');
38+
39+
const { ATTR_SERVICE_NAME }= require('@opentelemetry/semantic-conventions');
40+
3941
const { GrpcInstrumentation } = require('@opentelemetry/instrumentation-grpc');
4042
const { registerInstrumentations } = require('@opentelemetry/instrumentation');
41-
const { OTLPTraceExporter } = require("@opentelemetry/exporter-otlp-grpc");
42-
const { Resource } = require('@opentelemetry/resources');
43-
const { SemanticResourceAttributes } = require('@opentelemetry/semantic-conventions');
43+
const opentelemetry = require('@opentelemetry/sdk-node');
4444

45-
const provider = new NodeTracerProvider({
46-
resource: new Resource({
47-
[SemanticResourceAttributes.SERVICE_NAME]: process.env.OTEL_SERVICE_NAME || 'paymentservice',
48-
}),
49-
});
45+
const { OTLPTraceExporter } = require('@opentelemetry/exporter-otlp-grpc');
5046

51-
const collectorUrl = process.env.COLLECTOR_SERVICE_ADDR
47+
const collectorUrl = process.env.COLLECTOR_SERVICE_ADDR;
48+
const traceExporter = new OTLPTraceExporter({url: collectorUrl});
5249

53-
provider.addSpanProcessor(new SimpleSpanProcessor(new OTLPTraceExporter({url: collectorUrl})));
54-
provider.register();
50+
const sdk = new opentelemetry.NodeSDK({
51+
resource: resourceFromAttributes({
52+
[ATTR_SERVICE_NAME]: process.env.OTEL_SERVICE_NAME || 'paymentservice',
53+
}),
54+
traceExporter: traceExporter,
55+
});
5556

5657
registerInstrumentations({
5758
instrumentations: [new GrpcInstrumentation()]
5859
});
59-
}
60-
else {
60+
61+
sdk.start()
62+
} else {
6163
logger.info("Tracing disabled.")
6264
}
6365

0 commit comments

Comments
 (0)