feat: telemetry progress

This commit is contained in:
Yeachan-Heo
2026-04-01 06:15:15 +00:00
parent 1b42c6096c
commit 61b4def7bc
6 changed files with 175 additions and 33 deletions

View File

@@ -109,7 +109,7 @@ async fn send_message_applies_request_profile_and_records_telemetry() {
"\"model\":\"claude-3-7-sonnet-latest\",",
"\"stop_reason\":\"end_turn\",",
"\"stop_sequence\":null,",
"\"usage\":{\"input_tokens\":1,\"output_tokens\":1}",
"\"usage\":{\"input_tokens\":1,\"cache_creation_input_tokens\":2,\"cache_read_input_tokens\":3,\"output_tokens\":1}",
"}"
),
&[("request-id", "req_profile_123")],
@@ -155,7 +155,7 @@ async fn send_message_applies_request_profile_and_records_telemetry() {
);
let events = sink.events();
assert_eq!(events.len(), 4);
assert_eq!(events.len(), 6);
assert!(matches!(
&events[0],
TelemetryEvent::HttpRequestStarted {
@@ -182,6 +182,19 @@ async fn send_message_applies_request_profile_and_records_telemetry() {
&events[3],
TelemetryEvent::SessionTrace(trace) if trace.name == "http_request_succeeded"
));
assert!(matches!(
&events[4],
TelemetryEvent::Analytics(event)
if event.namespace == "api"
&& event.action == "message_usage"
&& event.properties.get("request_id") == Some(&json!("req_profile_123"))
&& event.properties.get("total_tokens") == Some(&json!(7))
&& event.properties.get("estimated_cost_usd") == Some(&json!("$0.0001"))
));
assert!(matches!(
&events[5],
TelemetryEvent::SessionTrace(trace) if trace.name == "analytics"
));
}
#[tokio::test]