mirror of
https://github.com/openclaw/openclaw.git
synced 2026-02-19 18:39:20 -05:00
cron: keep usage telemetry in run log types + error paths
This commit is contained in:
committed by
Peter Steinberger
parent
ddea5458d0
commit
dbe2ab6f62
@@ -589,6 +589,7 @@ export async function runCronIsolatedAgentTurn(params: {
|
||||
error: resolvedDelivery.error.message,
|
||||
summary,
|
||||
outputText,
|
||||
...telemetry,
|
||||
});
|
||||
}
|
||||
logWarn(`[cron:${params.job.id}] ${resolvedDelivery.error.message}`);
|
||||
@@ -602,6 +603,7 @@ export async function runCronIsolatedAgentTurn(params: {
|
||||
error: message,
|
||||
summary,
|
||||
outputText,
|
||||
...telemetry,
|
||||
});
|
||||
}
|
||||
logWarn(`[cron:${params.job.id}] ${message}`);
|
||||
@@ -639,7 +641,7 @@ export async function runCronIsolatedAgentTurn(params: {
|
||||
}
|
||||
} catch (err) {
|
||||
if (!deliveryBestEffort) {
|
||||
return withRunSession({ status: "error", summary, outputText, error: String(err) });
|
||||
return withRunSession({ status: "error", summary, outputText, error: String(err), ...telemetry });
|
||||
}
|
||||
}
|
||||
} else if (synthesizedText) {
|
||||
@@ -730,13 +732,14 @@ export async function runCronIsolatedAgentTurn(params: {
|
||||
summary,
|
||||
outputText,
|
||||
error: message,
|
||||
...telemetry,
|
||||
});
|
||||
}
|
||||
logWarn(`[cron:${params.job.id}] ${message}`);
|
||||
}
|
||||
} catch (err) {
|
||||
if (!deliveryBestEffort) {
|
||||
return withRunSession({ status: "error", summary, outputText, error: String(err) });
|
||||
return withRunSession({ status: "error", summary, outputText, error: String(err), ...telemetry });
|
||||
}
|
||||
logWarn(`[cron:${params.job.id}] ${String(err)}`);
|
||||
}
|
||||
|
||||
@@ -13,6 +13,17 @@ export type CronRunLogEntry = {
|
||||
runAtMs?: number;
|
||||
durationMs?: number;
|
||||
nextRunAtMs?: number;
|
||||
|
||||
// Telemetry (best-effort)
|
||||
model?: string;
|
||||
provider?: string;
|
||||
usage?: {
|
||||
input_tokens?: number;
|
||||
output_tokens?: number;
|
||||
total_tokens?: number;
|
||||
cache_read_tokens?: number;
|
||||
cache_write_tokens?: number;
|
||||
};
|
||||
};
|
||||
|
||||
export function resolveCronRunLogPath(params: { storePath: string; jobId: string }) {
|
||||
@@ -105,6 +116,27 @@ export async function readCronRunLogEntries(
|
||||
runAtMs: obj.runAtMs,
|
||||
durationMs: obj.durationMs,
|
||||
nextRunAtMs: obj.nextRunAtMs,
|
||||
model: typeof obj.model === "string" && obj.model.trim() ? obj.model : undefined,
|
||||
provider: typeof obj.provider === "string" && obj.provider.trim() ? obj.provider : undefined,
|
||||
usage:
|
||||
obj.usage && typeof obj.usage === "object"
|
||||
? {
|
||||
input_tokens:
|
||||
typeof (obj.usage as any).input_tokens === "number" ? (obj.usage as any).input_tokens : undefined,
|
||||
output_tokens:
|
||||
typeof (obj.usage as any).output_tokens === "number" ? (obj.usage as any).output_tokens : undefined,
|
||||
total_tokens:
|
||||
typeof (obj.usage as any).total_tokens === "number" ? (obj.usage as any).total_tokens : undefined,
|
||||
cache_read_tokens:
|
||||
typeof (obj.usage as any).cache_read_tokens === "number"
|
||||
? (obj.usage as any).cache_read_tokens
|
||||
: undefined,
|
||||
cache_write_tokens:
|
||||
typeof (obj.usage as any).cache_write_tokens === "number"
|
||||
? (obj.usage as any).cache_write_tokens
|
||||
: undefined,
|
||||
}
|
||||
: undefined,
|
||||
};
|
||||
if (typeof obj.sessionId === "string" && obj.sessionId.trim().length > 0) {
|
||||
entry.sessionId = obj.sessionId;
|
||||
|
||||
Reference in New Issue
Block a user