diff --git a/docs/tutorials/setup-opentelemetry.md b/docs/tutorials/setup-opentelemetry.md index cc4eed15a5..23cd71b10f 100644 --- a/docs/tutorials/setup-opentelemetry.md +++ b/docs/tutorials/setup-opentelemetry.md @@ -28,25 +28,25 @@ In your `packages/backend/src` folder, create an `instrumentation.js` file. ```typescript title="in packages/backend/src/instrumentation.js" // Prevent from running more than once (due to worker threads) -if (!require('node:worker_threads').isMainThread) { - return; +const { isMainThread } = require('node:worker_threads'); + +if (isMainThread) { + const { NodeSDK } = require('@opentelemetry/sdk-node'); + const { + getNodeAutoInstrumentations, + } = require('@opentelemetry/auto-instrumentations-node'); + const { PrometheusExporter } = require('@opentelemetry/exporter-prometheus'); + + // By default exports the metrics on localhost:9464/metrics + const prometheus = new PrometheusExporter(); + const sdk = new NodeSDK({ + // You can add a traceExporter field here too + metricReader: prometheus, + instrumentations: [getNodeAutoInstrumentations()], + }); + + sdk.start(); } - -const { NodeSDK } = require('@opentelemetry/sdk-node'); -const { - getNodeAutoInstrumentations, -} = require('@opentelemetry/auto-instrumentations-node'); -const { PrometheusExporter } = require('@opentelemetry/exporter-prometheus'); - -// By default exports the metrics on localhost:9464/metrics -const prometheus = new PrometheusExporter(); -const sdk = new NodeSDK({ - // You can add a traceExporter field here too - metricReader: prometheus, - instrumentations: [getNodeAutoInstrumentations()], -}); - -sdk.start(); ``` You probably won't need all of the instrumentation inside `getNodeAutoInstrumentations()` so make sure to