From 2a95b88477a547c319108c0bab8692624df6804c Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Thu, 11 Aug 2022 14:10:18 +0200 Subject: Add spans for AP signature checkers --- server/lib/opentelemetry/tracing.ts | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'server/lib/opentelemetry') diff --git a/server/lib/opentelemetry/tracing.ts b/server/lib/opentelemetry/tracing.ts index 252a3b664..b1c3bd173 100644 --- a/server/lib/opentelemetry/tracing.ts +++ b/server/lib/opentelemetry/tracing.ts @@ -1,5 +1,5 @@ import { SequelizeInstrumentation } from 'opentelemetry-instrumentation-sequelize' -import { diag, DiagLogLevel, trace } from '@opentelemetry/api' +import { context, diag, DiagLogLevel, trace } from '@opentelemetry/api' import { JaegerExporter } from '@opentelemetry/exporter-jaeger' import { registerInstrumentations } from '@opentelemetry/instrumentation' import { DnsInstrumentation } from '@opentelemetry/instrumentation-dns' @@ -15,6 +15,8 @@ import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions' import { logger } from '@server/helpers/logger' import { CONFIG } from '@server/initializers/config' +const tracer = trace.getTracer('peertube') + function registerOpentelemetryTracing () { if (CONFIG.OPEN_TELEMETRY.TRACING.ENABLED !== true) return @@ -75,9 +77,18 @@ function registerOpentelemetryTracing () { tracerProvider.register() } -const tracer = trace.getTracer('peertube') +async function wrapWithSpanAndContext (spanName: string, cb: () => Promise) { + const span = tracer.startSpan(spanName) + const activeContext = trace.setSpan(context.active(), span) + + const result = await context.with(activeContext, () => cb()) + span.end() + + return result +} export { registerOpentelemetryTracing, - tracer + tracer, + wrapWithSpanAndContext } -- cgit v1.2.3