From 9b600e14965ef07ec5ee6b2c19c144fcd91fb9aa Mon Sep 17 00:00:00 2001 From: Kevin Aleman Date: Wed, 30 Oct 2024 13:22:53 -0600 Subject: [PATCH] regression: Tracing times (#33828) --- packages/tracing/src/index.ts | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/packages/tracing/src/index.ts b/packages/tracing/src/index.ts index 95e726fd442..be086dec094 100644 --- a/packages/tracing/src/index.ts +++ b/packages/tracing/src/index.ts @@ -2,6 +2,7 @@ import { context, propagation, SpanStatusCode, trace } from '@opentelemetry/api' import type { Span, SpanOptions, Tracer } from '@opentelemetry/api'; import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-grpc'; import { NodeSDK } from '@opentelemetry/sdk-node'; +import { BatchSpanProcessor } from '@opentelemetry/sdk-trace-base'; import type { MongoClient } from 'mongodb'; import { initDatabaseTracing } from './traceDatabaseCalls'; @@ -23,6 +24,7 @@ export const startTracing = ({ service, db }: { service: string; db: MongoClient traceExporter: exporter, instrumentations: [], serviceName: service, + spanProcessors: [new BatchSpanProcessor(exporter)], }); sdk.start(); @@ -49,16 +51,20 @@ export function tracerSpan ReturnType>( try { const result = fn(span); if (result instanceof Promise) { - result.catch((err) => { - span.recordException(err); - span.setStatus({ - code: SpanStatusCode.ERROR, - message: err.message, - }); - }); + result + .catch((err) => { + span.recordException(err); + span.setStatus({ + code: SpanStatusCode.ERROR, + message: err.message, + }); + }) + .finally(() => span.end()); return result; } + + span.end(); return result; } catch (err: any) { span.recordException(err); @@ -66,9 +72,8 @@ export function tracerSpan ReturnType>( code: SpanStatusCode.ERROR, message: err.message, }); - throw err; - } finally { span.end(); + throw err; } };