From 34938a26130e829090cf978ab8f28611897872ad Mon Sep 17 00:00:00 2001 From: jsonbailey Date: Thu, 16 Apr 2026 13:09:33 -0500 Subject: [PATCH 1/2] chore: rename trackLatency to trackDuration on LDGraphTracker, update event key to $ld:ai:duration:total Co-Authored-By: Claude Opus 4.6 --- .../server-ai/__tests__/LDGraphTrackerImpl.test.ts | 14 +++++++------- packages/sdk/server-ai/src/LDGraphTrackerImpl.ts | 6 +++--- .../sdk/server-ai/src/api/graph/LDGraphTracker.ts | 8 ++++---- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/packages/sdk/server-ai/__tests__/LDGraphTrackerImpl.test.ts b/packages/sdk/server-ai/__tests__/LDGraphTrackerImpl.test.ts index 443b328551..e30358d24d 100644 --- a/packages/sdk/server-ai/__tests__/LDGraphTrackerImpl.test.ts +++ b/packages/sdk/server-ai/__tests__/LDGraphTrackerImpl.test.ts @@ -165,25 +165,25 @@ it('drops trackInvocationFailure after trackInvocationSuccess and warns', () => }); // --------------------------------------------------------------------------- -// trackLatency – at-most-once +// trackDuration – at-most-once // --------------------------------------------------------------------------- -it('trackLatency sets durationMs and emits event', () => { +it('trackDuration sets durationMs and emits event', () => { const tracker = makeTracker('r'); - tracker.trackLatency(1234); + tracker.trackDuration(1234); expect(tracker.getSummary().durationMs).toBe(1234); expect(mockTrack).toHaveBeenCalledWith( - '$ld:ai:graph:latency', + '$ld:ai:duration:total', testContext, tracker.getTrackData(), 1234, ); }); -it('drops second trackLatency call and warns', () => { +it('drops second trackDuration call and warns', () => { const tracker = makeTracker('r'); - tracker.trackLatency(100); - tracker.trackLatency(200); + tracker.trackDuration(100); + tracker.trackDuration(200); expect(mockTrack).toHaveBeenCalledTimes(1); expect(tracker.getSummary().durationMs).toBe(100); expect(mockWarn).toHaveBeenCalled(); diff --git a/packages/sdk/server-ai/src/LDGraphTrackerImpl.ts b/packages/sdk/server-ai/src/LDGraphTrackerImpl.ts index 387f23d51d..0f1e158ca8 100644 --- a/packages/sdk/server-ai/src/LDGraphTrackerImpl.ts +++ b/packages/sdk/server-ai/src/LDGraphTrackerImpl.ts @@ -104,15 +104,15 @@ export class LDGraphTrackerImpl implements LDGraphTracker { this._ldClient.track('$ld:ai:graph:invocation_failure', this._context, this.getTrackData(), 1); } - trackLatency(durationMs: number): void { + trackDuration(durationMs: number): void { if (this._summary.durationMs !== undefined) { this._ldClient.logger?.warn( - 'LDGraphTracker: trackLatency already called for this run — dropping duplicate call.', + 'LDGraphTracker: trackDuration already called for this run — dropping duplicate call.', ); return; } this._summary.durationMs = durationMs; - this._ldClient.track('$ld:ai:graph:latency', this._context, this.getTrackData(), durationMs); + this._ldClient.track('$ld:ai:duration:total', this._context, this.getTrackData(), durationMs); } trackTotalTokens(tokens: LDTokenUsage): void { diff --git a/packages/sdk/server-ai/src/api/graph/LDGraphTracker.ts b/packages/sdk/server-ai/src/api/graph/LDGraphTracker.ts index 33a697795b..20ab25625a 100644 --- a/packages/sdk/server-ai/src/api/graph/LDGraphTracker.ts +++ b/packages/sdk/server-ai/src/api/graph/LDGraphTracker.ts @@ -15,7 +15,7 @@ import type { LDGraphMetricSummary, LDGraphTrackData } from './types'; * try { * // ... execute graph ... * tracker.trackInvocationSuccess(); - * tracker.trackLatency(durationMs); + * tracker.trackDuration(durationMs); * } catch { * tracker.trackInvocationFailure(); * } @@ -62,13 +62,13 @@ export interface LDGraphTracker { trackInvocationFailure(): void; /** - * Tracks the total latency of the graph execution in milliseconds. - * Emits event `$ld:ai:graph:latency` with the duration as the metric value. + * Tracks the total duration of the graph execution in milliseconds. + * Emits event `$ld:ai:duration:total` with the duration as the metric value. * At-most-once: subsequent calls are dropped with a warning. * * @param durationMs Duration in milliseconds. */ - trackLatency(durationMs: number): void; + trackDuration(durationMs: number): void; /** * Tracks aggregate token usage across the entire graph invocation. From 67cc6cb6006efa02281e897d1374510880011e1a Mon Sep 17 00:00:00 2001 From: jsonbailey Date: Thu, 16 Apr 2026 13:58:46 -0500 Subject: [PATCH 2/2] chore: correct trackDuration event key to $ld:ai:graph:duration:total Co-Authored-By: Claude Opus 4.6 --- .../sdk/server-ai/__tests__/LDGraphTrackerImpl.test.ts | 2 +- packages/sdk/server-ai/src/LDGraphTrackerImpl.ts | 7 ++++++- packages/sdk/server-ai/src/api/graph/LDGraphTracker.ts | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/sdk/server-ai/__tests__/LDGraphTrackerImpl.test.ts b/packages/sdk/server-ai/__tests__/LDGraphTrackerImpl.test.ts index e30358d24d..507d0d3b09 100644 --- a/packages/sdk/server-ai/__tests__/LDGraphTrackerImpl.test.ts +++ b/packages/sdk/server-ai/__tests__/LDGraphTrackerImpl.test.ts @@ -173,7 +173,7 @@ it('trackDuration sets durationMs and emits event', () => { tracker.trackDuration(1234); expect(tracker.getSummary().durationMs).toBe(1234); expect(mockTrack).toHaveBeenCalledWith( - '$ld:ai:duration:total', + '$ld:ai:graph:duration:total', testContext, tracker.getTrackData(), 1234, diff --git a/packages/sdk/server-ai/src/LDGraphTrackerImpl.ts b/packages/sdk/server-ai/src/LDGraphTrackerImpl.ts index 0f1e158ca8..f2e6c41670 100644 --- a/packages/sdk/server-ai/src/LDGraphTrackerImpl.ts +++ b/packages/sdk/server-ai/src/LDGraphTrackerImpl.ts @@ -112,7 +112,12 @@ export class LDGraphTrackerImpl implements LDGraphTracker { return; } this._summary.durationMs = durationMs; - this._ldClient.track('$ld:ai:duration:total', this._context, this.getTrackData(), durationMs); + this._ldClient.track( + '$ld:ai:graph:duration:total', + this._context, + this.getTrackData(), + durationMs, + ); } trackTotalTokens(tokens: LDTokenUsage): void { diff --git a/packages/sdk/server-ai/src/api/graph/LDGraphTracker.ts b/packages/sdk/server-ai/src/api/graph/LDGraphTracker.ts index 20ab25625a..54f7defba6 100644 --- a/packages/sdk/server-ai/src/api/graph/LDGraphTracker.ts +++ b/packages/sdk/server-ai/src/api/graph/LDGraphTracker.ts @@ -63,7 +63,7 @@ export interface LDGraphTracker { /** * Tracks the total duration of the graph execution in milliseconds. - * Emits event `$ld:ai:duration:total` with the duration as the metric value. + * Emits event `$ld:ai:graph:duration:total` with the duration as the metric value. * At-most-once: subsequent calls are dropped with a warning. * * @param durationMs Duration in milliseconds.