Skip to main content

view-usage

Query spend and token activity on a live LiteLLM proxy. Shows daily usage broken down by user, team, org, tag, job, or model. Use when the user wants to see costs, token counts, request volume, or job-level attribution for a given date range.

ソース情報

リポジトリ
BerriAI/litellm-skills
ソースの最終更新活動
2026年5月7日 18:10
検出された SKILL.md の言語
英語
スター
99
フォーク
19

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
view-usage
description
Query spend and token activity on a live LiteLLM proxy. Shows daily usage broken down by user, team, org, tag, job, or model. Use when the user wants to see costs, token counts, request volume, or job-level attribution for a given date range.
license
MIT
compatibility
Requires curl and python3.
metadata
{"author":"BerriAI","version":"1.0"}
allowed-tools
Bash(curl:*) Bash(python3:*)
# View Usage Query daily activity and spend data from a live LiteLLM proxy. ## Setup Ask for these if not already known: ``` LITELLM_BASE_URL — e.g. https://my-proxy.example.com LITELLM_API_KEY — proxy admin key ``` API reference: https://docs.litellm.ai/docs/proxy/users#get-user-spend ## Ask the user 1. **View by** — overall / user / team / org / tag / job (default: overall) 2. **Date range** — default to current month if not given 3. **Filter by model?** (optional) 4. **Job tag(s)?** (optional) — for job cost attribution, ask which request tag identifies the job, for example `job:nightly-eval` or `job=batch-import`. ## Job cost attribution LiteLLM attributes per-request costs through request tags. For LLM jobs, prefer tagging requests with a stable job label such as `job:<job-name>` and then query tag APIs: - Use `/tag/daily/activity?tags=<tag>` for daily spend, tokens, request count, and model/provider breakdowns for one or more job tags. - Use `/global/spend/tags?tags=<tag>` for a top-level spend total by tag over a date range. - If the user asks "which jobs cost the most?", call `/global/spend/tags` without a `tags` filter, sort by spend descending, and present the top tags that look like job labels. ## Endpoints ### Overall spend (across all users) ```bash curl -s "$BASE/user/daily/activity?start_date=YYYY-MM-DD&end_date=YYYY-MM-DD&page_size=30" \ -H "Authorization: Bearer $KEY" ``` ### Overall request and token volume ```bash curl -s "$BASE/global/activity?start_date=YYYY-MM-DD&end_date=YYYY-MM-DD" \ -H "Authorization: Bearer $KEY" ``` ### By team ```bash curl -s "$BASE/team/daily/activity?team_ids=<team_id>&start_date=YYYY-MM-DD&end_date=YYYY-MM-DD" \ -H "Authorization: Bearer $KEY" ``` ### By org ```bash curl -s "$BASE/organization/daily/activity?organization_ids=<org_id>&start_date=YYYY-MM-DD&end_date=YYYY-MM-DD" \ -H "Authorization: Bearer $KEY" ``` ### By user ```bash curl -s "$BASE/user/daily/activity?user_id=<user_id>&start_date=YYYY-MM-DD&end_date=YYYY-MM-DD" \ -H "Authorization: Bearer $KEY" ``` ### By tag or job ```bash curl -s "$BASE/tag/daily/activity?tags=<tag>&start_date=YYYY-MM-DD&end_date=YYYY-MM-DD&page_size=30" \ -H "Authorization: Bearer $KEY" ``` For multiple tags, pass a comma-separated list: ```bash curl -s "$BASE/tag/daily/activity?tags=job:nightly-eval,job:batch-import&start_date=YYYY-MM-DD&end_date=YYYY-MM-DD&page_size=30" \ -H "Authorization: Bearer $KEY" ``` ### Top tag spend ```bash curl -s "$BASE/global/spend/tags?start_date=YYYY-MM-DD&end_date=YYYY-MM-DD" \ -H "Authorization: Bearer $KEY" ``` Filter to a specific job tag: ```bash curl -s "$BASE/global/spend/tags?tags=<tag>&start_date=YYYY-MM-DD&end_date=YYYY-MM-DD" \ -H "Authorization: Bearer $KEY" ``` ## Response shape ```json { "results": [ { "date": "2026-03-14", "metrics": { "spend": 1.23, "prompt_tokens": 45000, "completion_tokens": 12000, "total_tokens": 57000, "api_requests": 120, "successful_requests": 118, "failed_requests": 2 }, "breakdown": { "models": { "gpt-4o": { "metrics": { "spend": 1.23, ... } } } } } ], "metadata": { "page": 1, "page_size": 10, "total_count": 31 } } ``` Note: top-level key is `results` (not `data`). ## Summarize with python3 ```bash curl -s "$BASE/user/daily/activity?start_date=YYYY-MM-DD&end_date=YYYY-MM-DD&page_size=30" \ -H "Authorization: Bearer $KEY" | python3 -c " import sys, json d = json.load(sys.stdin) rows = d.get('results', []) print('{:<12} {:>10} {:>12} {:>10}'.format('Date', 'Requests', 'Tokens', 'Spend')) print('-' * 46) total_spend = 0 for r in rows: m = r.get('metrics', {}) print('{:<12} {:>10} {:>12} ${:>9.4f}'.format( r.get('date', ''), m.get('api_requests', 0), m.get('total_tokens', 0), m.get('spend', 0), )) total_spend += m.get('spend', 0) print('-' * 46) print('{:<12} {:>10} {:>12} ${:>9.4f}'.format('TOTAL', '', '', total_spend)) " ``` ## Error handling Before processing results, check the HTTP status: - **401/403** — invalid or expired `LITELLM_API_KEY`; ask the user to verify - **404** — endpoint not available; check LiteLLM proxy version supports activity endpoints - **Empty results** — no activity in the given date range; confirm dates are correct ## Instructions 1. Ask for date range — default to current month. 2. Run the appropriate endpoint. For job attribution, prefer tag endpoints and ask for the job tag if it was not provided. 3. Print a table: Date | Requests | Tokens | Spend. 4. Show totals row at the bottom. 5. Highlight any days with `failed_requests > 0`. 6. If `metadata.total_pages > 1`, offer to fetch remaining pages.
GitHubで見る