diff options
Diffstat (limited to 'src/react-native-app/utils/SessionIdProcessor.ts')
| -rw-r--r-- | src/react-native-app/utils/SessionIdProcessor.ts | 32 |
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(); + } +} |
