blob: 217ff42fa26b7e520cff7cfc3eaf9a33fd459a4e [file]
// 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();
}
}