summaryrefslogtreecommitdiff
path: root/src/frontend/utils/telemetry/SessionIdProcessor.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/frontend/utils/telemetry/SessionIdProcessor.ts')
-rw-r--r--src/frontend/utils/telemetry/SessionIdProcessor.ts27
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();
+ }
+}