fastly-stats
Fastly traffic numbers: cache hit ratio, bandwidth, request counts, status-code and error rates, edge vs origin traffic, real-time requests-per-second, origin…
Skill by fastlyOfficial
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/fastly-fastly-stats
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/fastly-stats
What's inside
- Skill name
fastly-stats- Description
- Fastly traffic numbers: cache hit ratio, bandwidth, request counts, status-code and error rates, edge vs origin traffic, real-time requests-per-second, origin latency, per-domain traffic, account usage and billing totals. Owns the `fastly stats` CLI commands and the Historical Stats, Real-Time and Origin/Domain Inspector HTTP APIs. Use for any question that needs a number about how a Fastly service is performing or how much it is being used.
- License
- MIT
- Instructions
- 199 lines in SKILL.md · view on GitHub
Before installing
- Instructions call the network
Files (4)
- SKILL.md
- api.md · references/
- debugging.md · references/
- fields.md · references/
SKILL.md (first lines)
# Fastly stats
Prefer the `fastly` CLI. Drop to `curl` only for the seven things the CLI cannot do, listed under
Raw API below.
Requires the `fastly` CLI, `jq`, and network access to Fastly APIs; raw API examples also require `curl`.
Use the user's locally configured authentication.
If authentication is missing, direct the user to a local CLI login or local `FASTLY_API_TOKEN` configuration, never to paste a key in chat.
Keep tokens out of output and avoid shell tracing for authenticated commands.
## Rules that decide whether the answer is right
1. Bytes to GB is decimal SI: `bytes / 1e9`. TB is `/ 1e12`. Never `2^30`. Fastly bills in
decimal units, so a GiB figure is wrong by 7.4% and still reads as a plausible number.
2. For a calendar window, pass explicit UTC boundaries:
`--from 2026-07-01T00:00:00Z --to 2026-08-01T00:00:00Z` returns every day bucket in July. A
bucket is emitted only when the whole period falls inside the window, and a relative window
opens and closes mid-bucket, so `--from "N days ago" --by day` returns N-1 buckets, never N,
and `"1 day ago"` returns none at all. Relative strings are safe at `--by hour`, not at
`--by day`.
3. On the raw API, `from=yesterday` means 12:00:00 UTC, not midnight, and `from=today` means now.
`N days ago` / `N hours ago` are exact offsets. Read back `meta.from` / `meta.to`.
4. `hit_ratio`, `edge_hit_ratio` and `origin_offload` are gauges. Never sum or average them
across buckets. Recompute from the summed counters: `hits / (hits + miss)`.
5. `ts/h` on `rt.fastly.com` covers the last 120 seconds, not an hour, and returns only the seconds
that carried traffic. Divide a rate by 120 there, or by the window you bounded when sampling
with the CLI; never by the sample count or the `recorded` span. Print the window beside the rate.
6. `fastly stats ... --json` emits NDJSON, one object per line, no array. Slurp with `jq -s`
before aggregating. The raw HTTP API returns a normal array in `data`.
7. Stats responses omit services with zero traffic in the window. Enumerate from
`fastly service list --json` and default sums with `add // 0`.
8. Do not read the newest bucket. Historical aggregation keeps growing for a few minutes after
a period closes.
9. On a Compute service the traffic lands in `compute_requests` and `requests` stays 0. Summing
`requests` alone reports zero traffic for a service that is serving fine. Check both.
10. Status codes split the same way. Use `all_status_*`, never bare `status_*` or
`compute_resp_status_*`: `status_5xx` is 0 on Compute, `compute_resp_status_5xx` is absent on
VCL, `all_status_5xx` is right on both. No `all_requests` exists, so denominators still need
`requests + compute_requests`.
## Pick the command
| You need | Command |
| ------------------------------------ | -------------------------------------------------------------------------- |
| One service over a past window | `fastly stats historical -s ID --from T --to T --by day` |
| One field only | `fastly stats historical -s ID --field bandwidth` |
| All services, one row of totals | `fastly stats aggregate --from T --to T --by day` |
| Account usage totals, by region | `fastly stats usage --from T --to T --json` |
| Account usage split per service | `fastly stats usage --by-service --json` |
| Valid region codes | `fastly stats regions` |
| POP codes and shield names | `fastly pops` |
| Is Inspector enabled on this service | `fastly products -s ID` |
| Per-origin metrics, origin latency | `fastly stats origin-inspector -s ID --downsample hour --metric responses` |
| Per-domain metrics | `fastly stats domain-inspector -s ID --downsample hour --group-by domain` |
| Live per-second data | `fastly stats realtime -s ID --json` |
`historical`, `aggregate` and `usage` take `--by minute|hour|day` and `--field`. The two
inspectors take `--downsample` and `--metric` (repeatable) instead, plus `--group-by`,
`--datacenter`, `--limit`, `--cursor`, and `--domain` or `--host`. Mixing the two vocabularies
fails with a usage error. `historical` has no `--datacenter`; `realtime` takes no filters at all,
and `regions` takes no flags whatsoever, not even `--json`. The documented `--metric` cap of 10 is
not enforced; 20 names in one call are accepted and echoed in `meta.metric`. Full flag matrix: the
`fastly-cli` skill's stats reference.
Service-scoped subcommands take `-s` / `--service-id` or `--service-name`, falling back to
`FASTLY_SERVICE_ID` then `fastly.toml`.
## Worked answers
Cache hit ratio over a whole month, recomputed from counters rather than averaged:
```bash
fastly stats historical -s "$SID" --by day \
--from 2026-07-01T00:00:00Z --to 2026-08-01T00:00:00Z --json \
| jq -s '(map(.hits)|add // 0) as $h | (map(.miss)|add // 0) as $m
| {hits:$h, miss:$m, hit_ratio: (if $h+$m > 0 then $h/($h+$m) else null end)}'
```
5xx count and share over a month, correct on both service types:
```bash
fastly stats historical -s "$SID" --by day \
--from 2026-07-01T00:00:00Z --to 2026-08-01T00:00:00Z --json \
| jq -s '{requests: (map((.requests // 0) + (.compute_requests // 0))|add // 0),
status_5xx: (map(.all_status_5xx // 0)|add // 0)}
| . + {pct: (if .requests > 0 then .status_5xx/.requests*100 else null end)}'
```
Bandwidth in GB per service, ranked. Drive the loop from the service list, not from a stats
response, so zero-traffic services are still counted:
```bash
fastly service list --json | jq -r '.[] | "\(.ServiceID)|\(.Name)"' | while IFS='|' read -r id name; do
gb=$(fastly stats historical -s "$id" --by day \
--from 2026-07-01T00:00:00Z --to 2026-08-01T00:00:00Z --json \
| jq -s '([.[].bandwidth] | add // 0) / 1e9')
printf '%.3f\t%s\n' "$gb" "$name"
done | sort -rn
```
Account totals for a month. `fastly stats usage --json` returns one object keyed by region, so sum
the leaves. Dropping `compute_requests` here omits every Compute service from the total:
```bash
fastly stats usage --from 2026-07-01T00:00:00Z --to 2026-08-01T00:00:00Z --json \
| jq '{bandwidth_gb: (([.[].bandwidth]|add)/1e9),
requests: ([.[] | .requests + .compute_requests]|add)}'
```
`billable_units=true` on `GET /stats/usage_by_month` rescales, it does not switch quantity:
`bandwidth` / 1e9, `requests` and `compute_requests` / 10,000, so a `requests` of `1.4452` means
14,452. For one month `/stats/usage`, the per-service `/stats` sum and `/stats/usage_by_month` all
report the same byte total, so a mismatch is an arithmetic bug, not a billing subtlety.
Live request rate. `fastly stats realtime --json` streams one flat object per second,
`{recorded, aggregated, datacenter}`, no `Data` wrapper and no `Timestamp`; those exist only on the
raw `rt.fastly.com` payload. It prints nothing on a quiet service and never exits, so `head -n`
deadlocks. Bound it by wall clock and divide by that bound:From fastly/fastly-agent-toolkit, MIT.
More from fastly/fastly-agent-toolkit
- 0.757score
fastly
fastlyOfficial
Configures, manages, and debugs the Fastly CDN platform — covering service and backend setup, caching and VCL, security features like DDoS/WAF/NGWAF/rate…
SkillAFreshness: A★ 36Claude Code +9 - 0.757score
falco
fastlyOfficial
Lints, tests, simulates, and formats Fastly VCL code using the falco tool.
SkillAFreshness: A★ 36Claude Code +9 - 0.757score
fastlike
fastlyOfficial
Runs Fastly Compute WASM binaries locally and serves as the authoritative reference for Compute platform internals.
SkillAFreshness: A★ 36Claude Code +9 - 0.757score
fastly-cli
fastlyOfficial
Executes Fastly CLI commands for managing CDN services, Compute deploys, and edge infrastructure.
SkillAFreshness: A★ 36Claude Code +9 - 0.757score
fastly-fiddle
fastlyOfficial
Use when testing VCL against real Fastly edge infrastructure, writing assertion-based Fiddle tests, producing shareable fiddle URLs for bug reproductions…
SkillAFreshness: A★ 36Claude Code +9 - 0.757score
fastly-ngwaf
fastlyOfficial
Performs an internal audit of Fastly Next-Gen WAF (NGWAF) workspaces to audit that critical templated protection rules are configured and enabled.
SkillAFreshness: A★ 36Claude Code +9 - 0.757score
xvcl
fastlyOfficial
Extends Fastly VCL with loops, functions, constants, macros, conditionals, and includes via XVCL — a VCL transpiler that compiles .xvcl files into standard VCL.
SkillAFreshness: A★ 36Claude Code +9 - 0.712score
viceroy
fastlyOfficial
Runs Fastly Compute WASM applications locally with Viceroy, specifically for Rust and Component Model projects.
SkillBFreshness: B★ 36Claude Code +9 - 0.706score
fastly-reference-architectures
fastlyOfficial
Curated GitHub repositories demonstrating working reference architectures on the Fastly platform, from single Compute applications to systems combining…
SkillBFreshness: B★ 36Claude Code +9
Signals
- Stars
- 36
- Forks
- 7
- Open issues
- 0
- Last commit (this folder)
- Oct 1, 2026 (26 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/fastly/fastly-agent-toolkit
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from fastly
- 0.757score
fastly
fastlyOfficial
Configures, manages, and debugs the Fastly CDN platform — covering service and backend setup, caching and VCL, security features like DDoS/WAF/NGWAF/rate…
SkillAFreshness: A★ 36Claude Code +9 - 0.757score
falco
fastlyOfficial
Lints, tests, simulates, and formats Fastly VCL code using the falco tool.
SkillAFreshness: A★ 36Claude Code +9 - 0.757score
fastlike
fastlyOfficial
Runs Fastly Compute WASM binaries locally and serves as the authoritative reference for Compute platform internals.
SkillAFreshness: A★ 36Claude Code +9 - 0.757score
fastly-cli
fastlyOfficial
Executes Fastly CLI commands for managing CDN services, Compute deploys, and edge infrastructure.
SkillAFreshness: A★ 36Claude Code +9 - 0.757score
fastly-fiddle
fastlyOfficial
Use when testing VCL against real Fastly edge infrastructure, writing assertion-based Fiddle tests, producing shareable fiddle URLs for bug reproductions…
SkillAFreshness: A★ 36Claude Code +9 - 0.757score
fastly-ngwaf
fastlyOfficial
Performs an internal audit of Fastly Next-Gen WAF (NGWAF) workspaces to audit that critical templated protection rules are configured and enabled.
SkillAFreshness: A★ 36Claude Code +9
Cite this page
fastly-stats skill. Agent Mart. https://agentmart.dev/skills/fastly-fastly-stats (last updated 2026-10-24)