LegionWeb. UsageAggregator
(LegionWeb v0.5.0)
View Source
Aggregates and formats the per-request LLM usage entries returned by
LegionWeb.AgentTracker.get_usage/1.
Entries are the string-keyed maps Legion records for each LLM request
("input_tokens", "output_tokens", "cached_tokens", "reasoning_tokens",
"total_cost", "at", ...). Missing counters count as zero; cost is nil
until at least one entry reports "total_cost".
Summary
Functions
Formats a dollar cost to three decimals, or nil when unknown.
Abbreviates a token count: 842, 12.3k, 1.25M.
Reads one token counter from an entry, treating missing values as zero.
Sums token counters and cost across usage entries.
Types
@type totals() :: %{ requests: non_neg_integer(), input: non_neg_integer(), output: non_neg_integer(), cached: non_neg_integer(), reasoning: non_neg_integer(), cost: number() | nil }
Functions
Formats a dollar cost to three decimals, or nil when unknown.
Abbreviates a token count: 842, 12.3k, 1.25M.
@spec tokens(map(), String.t()) :: non_neg_integer()
Reads one token counter from an entry, treating missing values as zero.
Sums token counters and cost across usage entries.