pub struct CostRecord {Show 28 fields
pub id: String,
pub channel_id: String,
pub upstream_channel: String,
pub upstream_model: String,
pub request_time_ms: i64,
pub project: String,
pub user_id: String,
pub agent_type: String,
pub input_tokens: i64,
pub output_tokens: i64,
pub cache_write_tokens: i64,
pub cache_read_tokens: i64,
pub thinking_tokens: i64,
pub cost: f64,
pub schema_saved_tokens: i64,
pub response_saved_tokens: i64,
pub rtk_saved_tokens: i64,
pub pre_compress_tokens: i64,
pub post_compress_tokens: i64,
pub compression_tokens_saved: i64,
pub unit: String,
pub pricing_snapshot_json: String,
pub timestamp: String,
pub session_id: Option<String>,
pub before_tokens: i64,
pub after_tokens: i64,
pub tokens_saved: i64,
pub compression_breakdown_json: String,
}Expand description
A single proxied request with token usage and cost.
Fields§
§id: StringUUID v7 primary key.
channel_id: StringChannel used for this request (proxy channel ID, e.g. “deepseek”).
upstream_channel: StringHuman-readable upstream channel name (e.g. “DeepSeek Official”).
upstream_model: StringUpstream model name sent to the API (e.g. “deepseek-v4-pro”).
request_time_ms: i64Request processing time in milliseconds (from request arrival to response return).
project: StringProject path or identifier.
user_id: StringUser who made the request.
agent_type: StringAgent type: “ClaudeCode”, “Codex”, etc.
input_tokens: i64Input/prompt tokens consumed.
output_tokens: i64Output/completion tokens consumed.
cache_write_tokens: i64Tokens written to the provider’s prompt cache.
cache_read_tokens: i64Tokens read from the provider’s prompt cache.
thinking_tokens: i64Extended thinking tokens consumed.
cost: f64Actual monetary cost of this request.
schema_saved_tokens: i64Tokens saved by schema compression.
response_saved_tokens: i64Tokens saved by response compression.
rtk_saved_tokens: i64Tokens saved by RTK token optimization.
pre_compress_tokens: i64Token count before tokenless compression.
post_compress_tokens: i64Token count after tokenless compression.
compression_tokens_saved: i64Tokens saved by tokenless compression.
unit: StringCurrency of cost: “USD”, “CNY”, “credits”.
pricing_snapshot_json: StringSerialized pricing snapshot for audit trail.
timestamp: StringWhen the request was completed (RFC 3339).
session_id: Option<String>Session ID from X-Claude-Code-Session-Id header (for billing correlation).
before_tokens: i64Estimated tokens before any compression (tokenless + proxy layers).
after_tokens: i64Actual tokens consumed by the upstream API (input + output).
tokens_saved: i64Total tokens saved across all compression layers.
compression_breakdown_json: StringJSON array breakdown of each compression operation.
Each element:
{
"op": "compress-schema", // opType — see report.rs for full enum
"method": "ToonHrv", // compression strategy
"beforeTokens": 1500,
"afterTokens": 700,
"savedTokens": 800,
"beforeBytes": 6000,
"afterBytes": 2800,
"savedBytes": 3200
}See [crate::report] module docs for the complete opType / method lookup table.
Trait Implementations§
Source§impl Clone for CostRecord
impl Clone for CostRecord
Source§fn clone(&self) -> CostRecord
fn clone(&self) -> CostRecord
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more