Skip to content

Commit 3fdfc2a

Browse files
committed
feat: initialize Datadog RUM telemetry provider
1 parent 4c3c25b commit 3fdfc2a

4 files changed

Lines changed: 21 additions & 4 deletions

File tree

src/platform/telemetry/TelemetryRegistry.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,8 @@ import type {
77
BeginCheckoutMetadata,
88
DefaultViewSetMetadata,
99
EnterLinearMetadata,
10-
ShareFlowMetadata,
11-
ShareLinkOpenedMetadata,
1210
ExecutionErrorMetadata,
11+
ExecutionOutcomeMetadata,
1312
ExecutionSuccessMetadata,
1413
HelpCenterClosedMetadata,
1514
HelpCenterOpenedMetadata,
@@ -22,6 +21,8 @@ import type {
2221
PageVisibilityMetadata,
2322
ResubscribeClickMetadata,
2423
RunButtonProperties,
24+
ShareFlowMetadata,
25+
ShareLinkOpenedMetadata,
2526
SettingChangedMetadata,
2627
SharedWorkflowRunMetadata,
2728
ShellLayoutMetadata,
@@ -268,6 +269,10 @@ export class TelemetryRegistry implements TelemetryDispatcher {
268269
this.dispatch((provider) => provider.trackWorkflowExecution?.())
269270
}
270271

272+
trackExecutionOutcome(metadata: ExecutionOutcomeMetadata): void {
273+
this.dispatch((provider) => provider.trackExecutionOutcome?.(metadata))
274+
}
275+
271276
trackExecutionError(metadata: ExecutionErrorMetadata): void {
272277
this.dispatch((provider) => provider.trackExecutionError?.(metadata))
273278
}

src/platform/telemetry/initTelemetry.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ export async function initTelemetry(): Promise<void> {
2828
{ PostHogTelemetryProvider },
2929
{ ClickHouseTelemetryProvider },
3030
{ SyftTelemetryProvider },
31-
{ CustomerIoTelemetryProvider }
31+
{ CustomerIoTelemetryProvider },
32+
{ DatadogRumTelemetryProvider }
3233
] = await Promise.all([
3334
import('./TelemetryRegistry'),
3435
import('./providers/cloud/MixpanelTelemetryProvider'),
@@ -37,7 +38,8 @@ export async function initTelemetry(): Promise<void> {
3738
import('./providers/cloud/PostHogTelemetryProvider'),
3839
import('./providers/cloud/ClickHouseTelemetryProvider'),
3940
import('./providers/cloud/SyftTelemetryProvider'),
40-
import('./providers/cloud/CustomerIoTelemetryProvider')
41+
import('./providers/cloud/CustomerIoTelemetryProvider'),
42+
import('./providers/cloud/DatadogRumTelemetryProvider')
4143
])
4244

4345
const registry = new TelemetryRegistry()
@@ -48,6 +50,7 @@ export async function initTelemetry(): Promise<void> {
4850
registry.registerProvider(new ClickHouseTelemetryProvider())
4951
registry.registerProvider(new SyftTelemetryProvider())
5052
registry.registerProvider(new CustomerIoTelemetryProvider())
53+
registry.registerProvider(new DatadogRumTelemetryProvider())
5154

5255
setTelemetryRegistry(registry)
5356
})()
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import type { TelemetryProvider } from '../../types'
2+
3+
export class DatadogRumTelemetryProvider implements TelemetryProvider {}

src/platform/telemetry/types.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,11 @@ export interface ExecutionErrorMetadata {
156156
error?: string
157157
}
158158

159+
export interface ExecutionOutcomeMetadata {
160+
startTime: number
161+
outcome: 'success' | 'failure'
162+
}
163+
159164
/**
160165
* Execution success metadata
161166
*/
@@ -632,6 +637,7 @@ export interface TelemetryProvider {
632637

633638
// Workflow execution events
634639
trackWorkflowExecution?(): void
640+
trackExecutionOutcome?(metadata: ExecutionOutcomeMetadata): void
635641
trackExecutionError?(metadata: ExecutionErrorMetadata): void
636642
trackExecutionSuccess?(metadata: ExecutionSuccessMetadata): void
637643
trackSharedWorkflowRun?(metadata: SharedWorkflowRunMetadata): void

0 commit comments

Comments
 (0)