Repository navigation
v0.6.0
v0.6.0 Release Notes
Investigate LiteLLM Logs Directly
Export the request logs LiteLLM already keeps and ask what changed. fleetdiff
now reads request-level CSV, JSON and JSONL directly, with no collector or
database connection at runtime. Everything stays on your machine.
- See which model's logged requests became more frequent or larger.
- Rank the keys, teams, users, end users or sessions behind the change, using
local aliases or keyed hashes and token bounds. - See missing, invalid, ambiguous zero-only and failed usage separately.
- Compare two complete seven-day UTC periods automatically, or choose explicit
equal-duration periods. The report prints the exact boundaries and weekdays. - Read Chat Completions, text completions, Anthropic Messages and Responses,
including their asynchronous call types. Unmapped types lead with an
incomplete comparison and their unanalyzed token columns.
Try It
After verifying and installing the binary:
curl --fail --location --proto '=https' --tlsv1.2 \
https://raw.githubusercontent.com/llm-measurement/fleetdiff/v0.6.0/examples/litellm-spend/synthetic.csv \
--output synthetic.csv
./fleetdiff-install/fleetdiff investigate --litellm-spend synthetic.csv \
--before-period 2026-10-07 --after-period 2026-10-08The synthetic example opens with Recorded tokens doubled (8,000 -> 16,000).
One model explains the increase; two keys account for it. Its unclear rows
remain visible. Follow the SQL export guide
for your own data: one read-only CSV export, with JSONL as an optional alternative.
Clearer Answers
When leading contributors added more than the net increase, text shows the
offsets directly: 2 leading tracked keys added 250 tokens while others fell by 200 (net +50). Ranges remain ranges. Multi-model decompositions are labeled
All analyzed models:; single-model reports avoid repeating that split.
Clean exports say No usage problems found. Listed issues are followed by
No other usage problems found.
Input And Accounting
The supported input is a request-level SQL export, not the Usage dashboard's
daily totals. The importer gives export guidance when it encounters aggregates.
It accepts up to 10M rows and 16 GiB, enforcing smaller per-record limits before
large allocations. Reproducible resource checks
record the measured workload and machine.
Counts describe supplied logged model requests. Zero-only values have unknown
origin unless the source establishes it; failed records retain usable partial
counts. Recorded spend is summed separately with decimal arithmetic. Provider
records remain the source for billing. JSON keeps numerical evidence and bounds;
text uses compact totals and local contributor aliases.
Upgrade
Replace the verified executable. Existing summary files and compare, summary
investigate, inspect, diagnose and scan contracts remain unchanged. No
collector upgrade or window reset is required. Spend investigation has its own
source and accounting contract; it does not relabel database rows as collector
observations.
Linux and macOS archives are provided for AMD64 and ARM64, built with Go 1.26.9.
Each carries dependency licenses and is accompanied by checksums, an SBOM and
signed provenance. Source installation requires a patched Go 1.26 or later.
The release checks exercise the actual packaged importer on all four platforms.
Run-rate arithmetic and Homebrew distribution remain separate follow-ups.