// Copyright The OpenTelemetry Authors // SPDX-License-Identifier: Apache-2.0 /** * Copied with modification from src/frontend/utils/telemetry/SessionIdProcessor.ts */ import { Context } from "@opentelemetry/api"; import { ReadableSpan, Span, SpanProcessor, } from "@opentelemetry/sdk-trace-web"; import SessionGateway from "@/gateways/Session.gateway"; export class SessionIdProcessor implements SpanProcessor { forceFlush(): Promise { return Promise.resolve(); } // eslint-disable-next-line @typescript-eslint/no-unused-vars onStart(span: Span, parentContext: Context): void { SessionGateway.getSession().then(({ userId }) => { span.setAttribute("session.id", userId); }); } // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function onEnd(span: ReadableSpan): void {} shutdown(): Promise { return Promise.resolve(); } }