summaryrefslogtreecommitdiff
path: root/src/react-native-app/utils/SessionIdProcessor.ts
diff options
context:
space:
mode:
authorSaumit <justsaumit@protonmail.com>2025-09-27 02:14:26 +0530
committerSaumit <justsaumit@protonmail.com>2025-09-27 02:14:26 +0530
commit82e03978b89938219958032efb1448cc76baa181 (patch)
tree626f3e54d52ecd49be0ed3bee30abacc0453d081 /src/react-native-app/utils/SessionIdProcessor.ts
Initial snapshot - OpenTelemetry demo 2.1.3 -f
Diffstat (limited to 'src/react-native-app/utils/SessionIdProcessor.ts')
-rw-r--r--src/react-native-app/utils/SessionIdProcessor.ts32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/react-native-app/utils/SessionIdProcessor.ts b/src/react-native-app/utils/SessionIdProcessor.ts
new file mode 100644
index 0000000..217ff42
--- /dev/null
+++ b/src/react-native-app/utils/SessionIdProcessor.ts
@@ -0,0 +1,32 @@
+// 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();
+ }
+}