




















@@ -1109,31 +1109,23 @@ describe("diagnostics-otel service", () => {
11091109});
11101110await flushDiagnosticEvents();
111111111112-const modelUsageCall = telemetryState.tracer.startSpan.mock.calls.find(
1113-(call) => call[0] === "openclaw.model.usage",
1112+const modelUsageOptions = startedSpanOptions("openclaw.model.usage");
1113+expect(modelUsageOptions?.attributes?.["gen_ai.operation.name"]).toBe("chat");
1114+expect(modelUsageOptions?.attributes?.["gen_ai.system"]).toBe("anthropic");
1115+expect(modelUsageOptions?.attributes?.["gen_ai.request.model"]).toBe("claude-sonnet-4.6");
1116+expect(modelUsageOptions?.attributes?.["gen_ai.usage.input_tokens"]).toBe(150);
1117+expect(modelUsageOptions?.attributes?.["gen_ai.usage.output_tokens"]).toBe(40);
1118+expect(modelUsageOptions?.attributes?.["gen_ai.usage.cache_read.input_tokens"]).toBe(30);
1119+expect(modelUsageOptions?.attributes?.["gen_ai.usage.cache_creation.input_tokens"]).toBe(20);
1120+expect(Object.hasOwn(modelUsageOptions?.attributes ?? {}, "openclaw.sessionKey")).toBe(false);
1121+expect(Object.hasOwn(modelUsageOptions?.attributes ?? {}, "openclaw.sessionId")).toBe(false);
1122+expect(Object.hasOwn(modelUsageOptions?.attributes ?? {}, "gen_ai.provider.name")).toBe(false);
1123+expect(Object.hasOwn(modelUsageOptions?.attributes ?? {}, "gen_ai.input.messages")).toBe(false);
1124+expect(Object.hasOwn(modelUsageOptions?.attributes ?? {}, "gen_ai.output.messages")).toBe(
1125+false,
11141126);
1115-expect(modelUsageCall?.[1]).toMatchObject({
1116-attributes: {
1117-"gen_ai.operation.name": "chat",
1118-"gen_ai.system": "anthropic",
1119-"gen_ai.request.model": "claude-sonnet-4.6",
1120-"gen_ai.usage.input_tokens": 150,
1121-"gen_ai.usage.output_tokens": 40,
1122-"gen_ai.usage.cache_read.input_tokens": 30,
1123-"gen_ai.usage.cache_creation.input_tokens": 20,
1124-},
1125-});
1126-expect(modelUsageCall?.[1]).toEqual({
1127-attributes: expect.not.objectContaining({
1128-"openclaw.sessionKey": expect.anything(),
1129-"openclaw.sessionId": expect.anything(),
1130-"gen_ai.provider.name": expect.anything(),
1131-"gen_ai.input.messages": expect.anything(),
1132-"gen_ai.output.messages": expect.anything(),
1133-}),
1134-startTime: expect.any(Number),
1135-});
1136-expect(JSON.stringify(modelUsageCall)).not.toContain("session-key");
1127+expect(modelUsageOptions?.startTime).toBeTypeOf("number");
1128+expect(JSON.stringify(modelUsageOptions)).not.toContain("session-key");
11371129await service.stop?.(ctx);
11381130});
11391131此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。