From 82e03978b89938219958032efb1448cc76baa181 Mon Sep 17 00:00:00 2001 From: Saumit Date: Sat, 27 Sep 2025 02:14:26 +0530 Subject: Initial snapshot - OpenTelemetry demo 2.1.3 -f --- src/react-native-app/utils/SessionIdProcessor.ts | 32 ++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/react-native-app/utils/SessionIdProcessor.ts (limited to 'src/react-native-app/utils/SessionIdProcessor.ts') 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 { + 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 { + return Promise.resolve(); + } +} -- cgit v1.2.3