From 2e9d6a94dda753fadb430667b085511000194aa0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antoni=20Nu=C3=B1ez=20Romeu?= Date: Wed, 1 Jul 2026 12:28:20 +0200 Subject: [PATCH] Fix backend --- backend/src/tracing.js | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/backend/src/tracing.js b/backend/src/tracing.js index b5370cc..7bb567c 100644 --- a/backend/src/tracing.js +++ b/backend/src/tracing.js @@ -11,18 +11,25 @@ import { NodeSDK } from '@opentelemetry/sdk-node'; import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node'; import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-grpc'; -import { resourceFromAttributes } from '@opentelemetry/resources'; +import * as resources from '@opentelemetry/resources'; import { ATTR_SERVICE_NAME, ATTR_SERVICE_NAMESPACE } from '@opentelemetry/semantic-conventions'; import { PinoInstrumentation } from '@opentelemetry/instrumentation-pino'; const serviceName = process.env.OTEL_SERVICE_NAME || 'farmafinder-backend'; const otlpEndpoint = process.env.OTEL_EXPORTER_OTLP_ENDPOINT || 'http://localhost:4317'; +const resource = typeof resources.resourceFromAttributes === 'function' + ? resources.resourceFromAttributes({ + [ATTR_SERVICE_NAME]: serviceName, + [ATTR_SERVICE_NAMESPACE]: 'farmafinder', + }) + : new resources.Resource({ + [ATTR_SERVICE_NAME]: serviceName, + [ATTR_SERVICE_NAMESPACE]: 'farmafinder', + }); + const sdk = new NodeSDK({ - resource: resourceFromAttributes({ - [ATTR_SERVICE_NAME]: serviceName, - [ATTR_SERVICE_NAMESPACE]: 'farmafinder', - }), + resource, traceExporter: new OTLPTraceExporter({ url: otlpEndpoint }), instrumentations: [ getNodeAutoInstrumentations({ @@ -34,11 +41,15 @@ const sdk = new NodeSDK({ ], }); -sdk.start(); +if (process.env.NODE_ENV !== 'test') { + sdk.start(); +} const shutdown = async () => { try { - await sdk.shutdown(); + if (process.env.NODE_ENV !== 'test') { + await sdk.shutdown(); + } } catch (err) { // eslint-disable-next-line no-console console.error('OpenTelemetry shutdown failed', err);