@newrelic/preflight 1.52.2 → 1.52.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -74,6 +74,12 @@ export interface CostAttributionMetrics {
|
|
|
74
74
|
readonly costBySkill: Record<string, SkillCostEntry>;
|
|
75
75
|
readonly totalAttributedCost: number;
|
|
76
76
|
readonly attributionRate: number;
|
|
77
|
+
/**
|
|
78
|
+
* Count of token events (or, on overflow/staleness, whole pending turns)
|
|
79
|
+
* that could not be attributed to any tool call. A rising count alongside
|
|
80
|
+
* a low `attributionRate` means turns are being lost — see `recordTokenEvent()`.
|
|
81
|
+
*/
|
|
82
|
+
readonly droppedTokenEvents: number;
|
|
77
83
|
}
|
|
78
84
|
/**
|
|
79
85
|
* Per-session partitioned — each session's turns/pending-accumulator/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turn-cost-attributor.d.ts","sourceRoot":"","sources":["../../src/metrics/turn-cost-attributor.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAMtE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC;;;;;;;OAOG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,uFAAuF;IACvF,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAED,sEAAsE;AACtE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IACxC,oGAAoG;IACpG,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,mBAAmB,EAAE,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC3D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACrD,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"turn-cost-attributor.d.ts","sourceRoot":"","sources":["../../src/metrics/turn-cost-attributor.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,11 +7,23 @@ import { calculateCost } from '../shared/index.js';
|
|
|
7
7
|
// LLM response driving a burst of tool use). Chosen to bridge normal
|
|
8
8
|
// back-to-back tool latency without merging genuinely separate turns.
|
|
9
9
|
const TURN_GAP_MS = 2_000;
|
|
10
|
-
// A token event
|
|
11
|
-
//
|
|
12
|
-
//
|
|
13
|
-
//
|
|
14
|
-
|
|
10
|
+
// A token event closes the OLDEST still-open pending turn (see `pendingTurns`
|
|
11
|
+
// below) as long as it arrives after that turn ended — no upper bound.
|
|
12
|
+
// Token usage is reported asynchronously (transcript polling) and the model
|
|
13
|
+
// may spend anywhere from milliseconds to minutes (extended thinking) between
|
|
14
|
+
// a tool call ending and the response that consumes its result, so there is
|
|
15
|
+
// no fixed delay that is both short enough to avoid false negatives and long
|
|
16
|
+
// enough to avoid false positives.
|
|
17
|
+
//
|
|
18
|
+
// `STALE_PENDING_TURN_MS` exists only to self-heal the queue if a closing
|
|
19
|
+
// token event is ever genuinely lost (not merely delayed) — a crashed
|
|
20
|
+
// watcher, a rotated/truncated transcript. Without it, one truly-lost event
|
|
21
|
+
// would permanently shift every later token event onto the wrong pending
|
|
22
|
+
// turn. It is deliberately far longer than any plausible thinking time.
|
|
23
|
+
const STALE_PENDING_TURN_MS = 10 * 60 * 1000;
|
|
24
|
+
// Safety cap on the queue itself so a sustained failure to emit token events
|
|
25
|
+
// (not just one lost event) can't grow this unboundedly.
|
|
26
|
+
const MAX_PENDING_TURNS = 20;
|
|
15
27
|
// Bounds memory for long sessions; only the most recent turns are needed for
|
|
16
28
|
// the cost-by-tool-type breakdown this class serves.
|
|
17
29
|
const MAX_TURNS = 200;
|
|
@@ -34,12 +46,13 @@ const DEFAULT_MAX_SESSIONS = 50;
|
|
|
34
46
|
function createSessionState() {
|
|
35
47
|
return {
|
|
36
48
|
turns: [],
|
|
37
|
-
|
|
49
|
+
pendingTurns: [],
|
|
38
50
|
buckets: new Map(),
|
|
39
51
|
totalAttributedCost: 0,
|
|
40
52
|
totalToolCalls: 0,
|
|
41
53
|
attributedToolCalls: 0,
|
|
42
54
|
activeSlashSkill: null,
|
|
55
|
+
droppedTokenEvents: 0,
|
|
43
56
|
};
|
|
44
57
|
}
|
|
45
58
|
// ---------------------------------------------------------------------------
|
|
@@ -127,30 +140,37 @@ export class TurnCostAttributor {
|
|
|
127
140
|
const bucket = getOrCreateBucket(state.buckets, key, id);
|
|
128
141
|
bucket.callCount++;
|
|
129
142
|
bucket.totalDurationMs += record.durationMs ?? 0;
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
143
|
+
const last = state.pendingTurns[state.pendingTurns.length - 1];
|
|
144
|
+
if (last && record.timestamp - last.endTime <= TURN_GAP_MS) {
|
|
145
|
+
last.endTime = endTime;
|
|
146
|
+
last.toolCalls.push({
|
|
133
147
|
toolUseId: record.toolUseId,
|
|
134
148
|
toolName: record.toolName,
|
|
135
149
|
skillName: id.skillName,
|
|
136
150
|
bucketKey: key,
|
|
137
151
|
});
|
|
152
|
+
return;
|
|
138
153
|
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
+
state.pendingTurns.push({
|
|
155
|
+
turnId: turnId ?? randomUUID(),
|
|
156
|
+
startTime: record.timestamp,
|
|
157
|
+
endTime,
|
|
158
|
+
toolCalls: [
|
|
159
|
+
{
|
|
160
|
+
toolUseId: record.toolUseId,
|
|
161
|
+
toolName: record.toolName,
|
|
162
|
+
skillName: id.skillName,
|
|
163
|
+
bucketKey: key,
|
|
164
|
+
},
|
|
165
|
+
],
|
|
166
|
+
platform: typeof record.platform === 'string' ? record.platform : undefined,
|
|
167
|
+
});
|
|
168
|
+
// A new burst starting while MAX_PENDING_TURNS earlier bursts are still
|
|
169
|
+
// unclosed means token events have stopped arriving entirely (not just
|
|
170
|
+
// been delayed) — evict the oldest rather than grow unboundedly.
|
|
171
|
+
if (state.pendingTurns.length > MAX_PENDING_TURNS) {
|
|
172
|
+
state.pendingTurns.shift();
|
|
173
|
+
state.droppedTokenEvents++;
|
|
154
174
|
}
|
|
155
175
|
}
|
|
156
176
|
recordSlashCommand(sessionId, skillName) {
|
|
@@ -168,15 +188,31 @@ export class TurnCostAttributor {
|
|
|
168
188
|
}
|
|
169
189
|
recordTokenEvent(event) {
|
|
170
190
|
const state = this.getOrCreateSession(event.sessionId);
|
|
171
|
-
|
|
191
|
+
// Self-heal: a pending turn sitting unclosed for longer than any
|
|
192
|
+
// plausible thinking time means its real closing event was lost, not
|
|
193
|
+
// merely delayed. Evict it so this event can't be misattributed to it —
|
|
194
|
+
// and so every turn queued behind it doesn't inherit the same offset.
|
|
195
|
+
while (state.pendingTurns.length > 0 &&
|
|
196
|
+
event.timestamp - state.pendingTurns[0].endTime > STALE_PENDING_TURN_MS) {
|
|
197
|
+
state.pendingTurns.shift();
|
|
198
|
+
state.droppedTokenEvents++;
|
|
199
|
+
}
|
|
200
|
+
const pendingTurn = state.pendingTurns[0];
|
|
201
|
+
if (!pendingTurn) {
|
|
202
|
+
state.droppedTokenEvents++;
|
|
172
203
|
return null;
|
|
173
|
-
|
|
174
|
-
//
|
|
175
|
-
// to
|
|
176
|
-
//
|
|
177
|
-
|
|
178
|
-
|
|
204
|
+
}
|
|
205
|
+
// The event must postdate the turn it's closing — one that doesn't can't
|
|
206
|
+
// belong to it (this turn hadn't even finished yet). Silently drop it
|
|
207
|
+
// rather than risk mis-attributing cost to the wrong turn. Dropped
|
|
208
|
+
// events show up as a lower `attributionRate` and a rising
|
|
209
|
+
// `droppedTokenEvents`, not as an error.
|
|
210
|
+
const timeSinceLastTool = event.timestamp - pendingTurn.endTime;
|
|
211
|
+
if (timeSinceLastTool < 0) {
|
|
212
|
+
state.droppedTokenEvents++;
|
|
179
213
|
return null;
|
|
214
|
+
}
|
|
215
|
+
state.pendingTurns.shift();
|
|
180
216
|
const usage = {
|
|
181
217
|
inputTokens: event.inputTokens,
|
|
182
218
|
outputTokens: event.outputTokens,
|
|
@@ -187,14 +223,14 @@ export class TurnCostAttributor {
|
|
|
187
223
|
};
|
|
188
224
|
const breakdown = calculateCost(event.model, usage);
|
|
189
225
|
const costUsd = breakdown.totalUsd * this.rateMultiplier;
|
|
190
|
-
const toolCount =
|
|
226
|
+
const toolCount = pendingTurn.toolCalls.length;
|
|
191
227
|
const costPerTool = toolCount > 0 ? costUsd / toolCount : 0;
|
|
192
228
|
const attribution = {
|
|
193
|
-
turnId:
|
|
194
|
-
startTime:
|
|
195
|
-
endTime:
|
|
196
|
-
toolCalls:
|
|
197
|
-
toolNames:
|
|
229
|
+
turnId: pendingTurn.turnId,
|
|
230
|
+
startTime: pendingTurn.startTime,
|
|
231
|
+
endTime: pendingTurn.endTime,
|
|
232
|
+
toolCalls: pendingTurn.toolCalls.map((tc) => tc.toolUseId),
|
|
233
|
+
toolNames: pendingTurn.toolCalls.map((tc) => tc.toolName),
|
|
198
234
|
inputTokens: event.inputTokens,
|
|
199
235
|
outputTokens: event.outputTokens,
|
|
200
236
|
cacheReadTokens: event.cacheReadTokens,
|
|
@@ -210,7 +246,7 @@ export class TurnCostAttributor {
|
|
|
210
246
|
}
|
|
211
247
|
state.totalAttributedCost += costUsd;
|
|
212
248
|
state.attributedToolCalls += toolCount;
|
|
213
|
-
for (const tc of
|
|
249
|
+
for (const tc of pendingTurn.toolCalls) {
|
|
214
250
|
const bucket = state.buckets.get(tc.bucketKey);
|
|
215
251
|
if (bucket === undefined)
|
|
216
252
|
continue;
|
|
@@ -236,14 +272,13 @@ export class TurnCostAttributor {
|
|
|
236
272
|
const closedTurn = {
|
|
237
273
|
id: randomUUID(),
|
|
238
274
|
attribution,
|
|
239
|
-
calls:
|
|
275
|
+
calls: pendingTurn.toolCalls.map((tc) => ({
|
|
240
276
|
toolUseId: tc.toolUseId,
|
|
241
277
|
toolName: tc.toolName,
|
|
242
278
|
skillName: tc.skillName,
|
|
243
279
|
})),
|
|
244
|
-
platform:
|
|
280
|
+
platform: pendingTurn.platform,
|
|
245
281
|
};
|
|
246
|
-
state.pendingTurn = null;
|
|
247
282
|
return closedTurn;
|
|
248
283
|
}
|
|
249
284
|
getCostForToolCall(toolUseId) {
|
|
@@ -276,6 +311,7 @@ export class TurnCostAttributor {
|
|
|
276
311
|
costBySkill: {},
|
|
277
312
|
totalAttributedCost: 0,
|
|
278
313
|
attributionRate: 0,
|
|
314
|
+
droppedTokenEvents: 0,
|
|
279
315
|
};
|
|
280
316
|
if (sessionId !== undefined) {
|
|
281
317
|
const state = this.sessions.get(sessionId);
|
|
@@ -295,6 +331,7 @@ export class TurnCostAttributor {
|
|
|
295
331
|
aggregate.totalAttributedCost += state.totalAttributedCost;
|
|
296
332
|
aggregate.totalToolCalls += state.totalToolCalls;
|
|
297
333
|
aggregate.attributedToolCalls += state.attributedToolCalls;
|
|
334
|
+
aggregate.droppedTokenEvents += state.droppedTokenEvents;
|
|
298
335
|
for (const [key, bucket] of state.buckets) {
|
|
299
336
|
const merged = getOrCreateBucket(aggregate.buckets, key, bucket);
|
|
300
337
|
for (const counter of BUCKET_COUNTERS)
|
|
@@ -370,6 +407,7 @@ export class TurnCostAttributor {
|
|
|
370
407
|
costBySkill,
|
|
371
408
|
totalAttributedCost: state.totalAttributedCost,
|
|
372
409
|
attributionRate: state.totalToolCalls > 0 ? state.attributedToolCalls / state.totalToolCalls : 0,
|
|
410
|
+
droppedTokenEvents: state.droppedTokenEvents,
|
|
373
411
|
};
|
|
374
412
|
}
|
|
375
413
|
reset(_sessionId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turn-cost-attributor.js","sourceRoot":"","sources":["../../src/metrics/turn-cost-attributor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"turn-cost-attributor.js","sourceRoot":"","sources":["../../src/metrics/turn-cost-attributor.ts"],"names":[],"mappings":"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"}
|