mirror of
https://github.com/openai/codex.git
synced 2026-11-08 20:40:33 +00:00
Track prompt cache write token usage (#33454)
## What changed - Parse `cache_write_tokens` from response input token details and carry it through token usage aggregation. - Expose `cache_write_input_tokens` in protocol, app-server, exec, and TypeScript SDK usage events, defaulting it to zero for compatibility with older payloads. - Report cache-write usage in analytics, metrics, traces, and rollout data alongside existing cache-read usage. ## Testing - Add coverage for response parsing, usage event output, aggregation, analytics, metrics, and telemetry fields. GitOrigin-RevId: 634e4fbe3086a8923c0ee13b622573e7d9d221bd
This commit is contained in:
@@ -393,6 +393,7 @@ impl Session {
|
||||
codex.turn.reasoning_effort = %reasoning_effort,
|
||||
codex.turn.token_usage.input_tokens = field::Empty,
|
||||
codex.turn.token_usage.cached_input_tokens = field::Empty,
|
||||
codex.turn.token_usage.cache_write_input_tokens = field::Empty,
|
||||
codex.turn.token_usage.non_cached_input_tokens = field::Empty,
|
||||
codex.turn.token_usage.output_tokens = field::Empty,
|
||||
codex.turn.token_usage.reasoning_output_tokens = field::Empty,
|
||||
@@ -670,6 +671,9 @@ impl Session {
|
||||
cached_input_tokens: (total_token_usage.cached_input_tokens
|
||||
- token_usage_at_turn_start.cached_input_tokens)
|
||||
.max(0),
|
||||
cache_write_input_tokens: (total_token_usage.cache_write_input_tokens
|
||||
- token_usage_at_turn_start.cache_write_input_tokens)
|
||||
.max(0),
|
||||
output_tokens: (total_token_usage.output_tokens
|
||||
- token_usage_at_turn_start.output_tokens)
|
||||
.max(0),
|
||||
@@ -689,6 +693,10 @@ impl Session {
|
||||
"codex.turn.token_usage.cached_input_tokens",
|
||||
turn_token_usage.cached_input(),
|
||||
);
|
||||
current_span.record(
|
||||
"codex.turn.token_usage.cache_write_input_tokens",
|
||||
turn_token_usage.cache_write_input_tokens,
|
||||
);
|
||||
current_span.record(
|
||||
"codex.turn.token_usage.non_cached_input_tokens",
|
||||
turn_token_usage.non_cached_input(),
|
||||
@@ -727,6 +735,11 @@ impl Session {
|
||||
turn_token_usage.cached_input(),
|
||||
&[("token_type", "cached_input"), tmp_mem],
|
||||
);
|
||||
self.services.session_telemetry.histogram(
|
||||
TURN_TOKEN_USAGE_METRIC,
|
||||
turn_token_usage.cache_write_input_tokens,
|
||||
&[("token_type", "cache_write_input"), tmp_mem],
|
||||
);
|
||||
self.services.session_telemetry.histogram(
|
||||
TURN_TOKEN_USAGE_METRIC,
|
||||
turn_token_usage.output_tokens,
|
||||
|
||||
Reference in New Issue
Block a user