From fa91b7680fc38543da1db0a19378ec44952886c4 Mon Sep 17 00:00:00 2001 From: Heat Hamilton Date: Thu, 25 Sep 2025 20:23:21 -0400 Subject: [PATCH] capture auth component mounted for all SDK types Update .changeset/pretty-rings-compare.md Co-authored-by: Dylan Staley <88163+dstaley@users.noreply.github.com> --- .changeset/pretty-rings-compare.md | 5 +++++ .../src/telemetry/events/component-mounted.ts | 20 +++++++++++++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 .changeset/pretty-rings-compare.md diff --git a/.changeset/pretty-rings-compare.md b/.changeset/pretty-rings-compare.md new file mode 100644 index 00000000000..a46279fd7b8 --- /dev/null +++ b/.changeset/pretty-rings-compare.md @@ -0,0 +1,5 @@ +--- +"@clerk/shared": patch +--- + +Increase sampling for high-signal auth components on mount. diff --git a/packages/shared/src/telemetry/events/component-mounted.ts b/packages/shared/src/telemetry/events/component-mounted.ts index 3b63d75e8b8..940f8a1a943 100644 --- a/packages/shared/src/telemetry/events/component-mounted.ts +++ b/packages/shared/src/telemetry/events/component-mounted.ts @@ -4,6 +4,19 @@ const EVENT_COMPONENT_MOUNTED = 'COMPONENT_MOUNTED'; const EVENT_COMPONENT_OPENED = 'COMPONENT_OPENED'; const EVENT_SAMPLING_RATE = 0.1; +/** Increase sampling for high-signal auth components on mount. */ +const AUTH_COMPONENTS = new Set(['SignIn', 'SignUp']); + +/** + * Returns the per-event sampling rate for component-mounted telemetry events. + * Uses a higher rate for SignIn/SignUp to improve signal quality. + * + * @internal + */ +function getComponentMountedSamplingRate(component: string): number { + return AUTH_COMPONENTS.has(component) ? 1 : EVENT_SAMPLING_RATE; +} + type ComponentMountedBase = { component: string; }; @@ -18,6 +31,8 @@ type EventPrebuiltComponent = ComponentMountedBase & { type EventComponentMounted = ComponentMountedBase & TelemetryEventRaw['payload']; /** + * Factory for prebuilt component telemetry events. + * * @internal */ function createPrebuiltComponentEvent(event: typeof EVENT_COMPONENT_MOUNTED | typeof EVENT_COMPONENT_OPENED) { @@ -28,7 +43,8 @@ function createPrebuiltComponentEvent(event: typeof EVENT_COMPONENT_MOUNTED | ty ): TelemetryEventRaw { return { event, - eventSamplingRate: EVENT_SAMPLING_RATE, + eventSamplingRate: + event === EVENT_COMPONENT_MOUNTED ? getComponentMountedSamplingRate(component) : EVENT_SAMPLING_RATE, payload: { component, appearanceProp: Boolean(props?.appearance), @@ -91,7 +107,7 @@ export function eventComponentMounted( ): TelemetryEventRaw { return { event: EVENT_COMPONENT_MOUNTED, - eventSamplingRate: EVENT_SAMPLING_RATE, + eventSamplingRate: getComponentMountedSamplingRate(component), payload: { component, ...props,