summaryrefslogtreecommitdiff
path: root/src/react-native-app/utils/SessionIdProcessor.ts
diff options
context:
space:
mode:
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();
+ }
+}