Skip to content

Commit 4f3ff80

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

4 files changed

Lines changed: 19 additions & 2 deletions

File tree

src/platform/telemetry/TelemetryRegistry.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import type {
1010
ShareFlowMetadata,
1111
ShareLinkOpenedMetadata,
1212
ExecutionErrorMetadata,
13+
ExecutionStartMetadata,
1314
ExecutionSuccessMetadata,
1415
HelpCenterClosedMetadata,
1516
HelpCenterOpenedMetadata,
@@ -268,6 +269,10 @@ export class TelemetryRegistry implements TelemetryDispatcher {
268269
this.dispatch((provider) => provider.trackWorkflowExecution?.())
269270
}
270271

272+
trackExecutionStarted(metadata: ExecutionStartMetadata): void {
273+
this.dispatch((provider) => provider.trackExecutionStarted?.(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 ExecutionStartMetadata {
160+
jobId: string
161+
startTime: number
162+
}
163+
159164
/**
160165
* Execution success metadata
161166
*/
@@ -632,6 +637,7 @@ export interface TelemetryProvider {
632637

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

0 commit comments

Comments
 (0)