MCPcopy
hub / github.com/coder/mux / recordSessionUsage

Method recordSessionUsage

src/node/services/streamManager.ts:1352–1383  ·  view source on GitHub ↗
(
    workspaceId: WorkspaceId,
    model: string,
    usage: LanguageModelV2Usage | undefined,
    providerMetadata: Record<string, unknown> | undefined,
    logMessage: string,
    logLevel: "warn" | "error",
    streamInfo?: Pick<WorkspaceStreamInfo, "workspaceName" | "metadataModel">
  )

Source from the content-addressed store, hash-verified

1350 }
1351
1352 private async recordSessionUsage(
1353 workspaceId: WorkspaceId,
1354 model: string,
1355 usage: LanguageModelV2Usage | undefined,
1356 providerMetadata: Record<string, unknown> | undefined,
1357 logMessage: string,
1358 logLevel: "warn" | "error",
1359 streamInfo?: Pick<WorkspaceStreamInfo, "workspaceName" | "metadataModel">
1360 ): Promise<void> {
1361 if (!this.sessionUsageService || !usage) {
1362 return;
1363 }
1364 const messageUsage = createDisplayUsage(
1365 usage,
1366 model,
1367 providerMetadata,
1368 streamInfo?.metadataModel
1369 );
1370 if (!messageUsage) {
1371 return;
1372 }
1373 const workspaceLog = this.getWorkspaceLogger(workspaceId, streamInfo);
1374 try {
1375 await this.sessionUsageService.recordUsage(
1376 workspaceId as string,
1377 normalizeToCanonical(model),
1378 messageUsage
1379 );
1380 } catch (error) {
1381 (logLevel === "error" ? workspaceLog.error : workspaceLog.warn)(logMessage, { error });
1382 }
1383 }
1384
1385 private buildStreamRequestConfig(
1386 model: LanguageModel,

Callers 4

cleanupAbortedStreamMethod · 0.95

Calls 4

getWorkspaceLoggerMethod · 0.95
createDisplayUsageFunction · 0.90
normalizeToCanonicalFunction · 0.90
recordUsageMethod · 0.45

Tested by

no test coverage detected