diff options
Diffstat (limited to 'src/frontend/utils/telemetry/SessionIdProcessor.ts')
| -rw-r--r-- | src/frontend/utils/telemetry/SessionIdProcessor.ts | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/frontend/utils/telemetry/SessionIdProcessor.ts b/src/frontend/utils/telemetry/SessionIdProcessor.ts new file mode 100644 index 0000000..cd89c0b --- /dev/null +++ b/src/frontend/utils/telemetry/SessionIdProcessor.ts @@ -0,0 +1,27 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +import { Context } from "@opentelemetry/api"; +import { ReadableSpan, Span, SpanProcessor } from "@opentelemetry/sdk-trace-web"; +import SessionGateway from "../../gateways/Session.gateway"; +import { AttributeNames } from "../enums/AttributeNames"; + +const { userId } = SessionGateway.getSession(); + +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 { + span.setAttribute(AttributeNames.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(); + } +} |
