Found in the cross-endpoint parity audit following AISIX-Cloud#947 (see ai-gateway#695).
passthrough.rs records only AccessLog + record_request (~143-190). Passthrough traffic — success or failure — never appears in the UsageEvent stream, OTLP fan-out, budget ledger or per-PK telemetry. Token accounting absence is by design (raw tunnel, nothing parsed), but the complete absence of usage/failure events breaks the #655 convention every typed handler follows (usage_attr::emit_error_usage_event on failure; a zero-token or metadata event on success would at least make the traffic visible and attributable to the api_key).
Decide: emit a metadata-only UsageEvent per passthrough request (tokens 0, status + latency + api_key_id + PK attribution) + the #655 failure event, or document the exclusion.
Found in the cross-endpoint parity audit following AISIX-Cloud#947 (see ai-gateway#695).
passthrough.rs records only
AccessLog+record_request(~143-190). Passthrough traffic — success or failure — never appears in the UsageEvent stream, OTLP fan-out, budget ledger or per-PK telemetry. Token accounting absence is by design (raw tunnel, nothing parsed), but the complete absence of usage/failure events breaks the #655 convention every typed handler follows (usage_attr::emit_error_usage_eventon failure; a zero-token or metadata event on success would at least make the traffic visible and attributable to the api_key).Decide: emit a metadata-only UsageEvent per passthrough request (tokens 0, status + latency + api_key_id + PK attribution) + the #655 failure event, or document the exclusion.