| // 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<void> { |
| 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<void> { |
| return Promise.resolve(); |
| } |
| } |