diff --git a/packages/browser-core/src/domain/resourceUtils.ts b/packages/browser-core/src/domain/resourceUtils.ts index f5849134c0..1d79857a1b 100644 --- a/packages/browser-core/src/domain/resourceUtils.ts +++ b/packages/browser-core/src/domain/resourceUtils.ts @@ -8,6 +8,7 @@ export const ResourceType = { IMAGE: 'image', FONT: 'font', MEDIA: 'media', + WEBSOCKET: 'websocket', OTHER: 'other', } as const diff --git a/packages/browser-rum-core/src/rawRumEvent.types.ts b/packages/browser-rum-core/src/rawRumEvent.types.ts index a115388795..22365c3a47 100644 --- a/packages/browser-rum-core/src/rawRumEvent.types.ts +++ b/packages/browser-rum-core/src/rawRumEvent.types.ts @@ -73,6 +73,7 @@ export interface RawRumResourceEvent { protocol?: string delivery_type?: DeliveryType graphql?: GraphQlMetadata + websocket?: WebSocketResourceProperties request?: ResourceRequest response?: ResourceResponse } @@ -86,6 +87,29 @@ export interface RawRumResourceEvent { context?: Context } +export interface WebSocketResourceProperties { + connection_id: string + handshake_succeeded: boolean + start_time: TimeStamp + end_time: TimeStamp + start_view_id?: string + end_view_id?: string + tracking_end_reason: 'close_event' | 'session_end' + close_code?: number + close_reason?: string + was_clean?: boolean + messages_in: { count: number; size: number } + messages_out: { count: number; size: number } + time_to_first_message_in?: Duration + time_to_first_message_out?: Duration + last_message_at?: TimeStamp + longest_silence: Duration + idle_duration_before_close?: Duration + buffered_amount_max?: number + protocol?: string + setup_duration?: Duration +} + export type NetworkHeaders = Record export interface ResourceRequest {