Traffic Dashboard
ready
0 reads

Set by the Worker from the span.

reads this load: 0

Global wrapper traffic

Requests
all ids
Hits
Hit-rate
Unique IPs
observed

In target / not in target

Press Load to read the in-target split.
In target
of requests
Not in target
refused
undetermined
No verdict
cold isolate
Delivery
Cache
Window cost — what each outcome actually costs

Requests over time

■ Hits ■ Miss ┄ In target

No data for this range.

Breakdowns

In target (gate checked it) Not checked (gate off/observe) Not in target (refused) Undetermined

Global Engine — cloudfroze.com

⚠️ Aggregate only. R2-direct, no Worker → no per-id, geo, or hit/miss.
Engine requests
zone or R2 Class-B
Egress
R2 egress is free
Class-B ops
Cache hit-rate
zone only

Per-wrapper drill-down

KPIs

Requests
Hits
Hit-rate
Unique IPs
estimate
Engine loads
≈—
≈ requests

In target / not in target

Load a wrapper id to read the in-target split.
In target
of requests
Not in target
refused
undetermined
No verdict
cold isolate
Delivery
Cache
Window cost — what each outcome actually costs

Requests over time

■ Hits ■ Miss ┄ In target

No data for this id / range.

Breakdowns

In target (gate checked it) Not checked (gate off/observe) Not in target (refused) Undetermined

Estimated cost

Cost / mo
gross weight (you pay the ‘bill’ in the note)
Base share *
of {$base}/mo
Total
estimate
Engine (R2)
R2 · ≈$0
egress free

Global projected cost

Requests / mo
run-rate (× days-in-month / N)
Marginal
Base
{$base}
flat / mo
Projected total

Per-wrapper cost

id Requests Hit-rate Real (to-date) · Est. / mo Base * Total
Σ

* Base share = proportional slice of the flat {$base}/mo platform fee — informational, not a marginal charge. Marginal $ stays $0 until the whole account crosses {freeWorker} requests/mo.

AE read budget

Reads this load
0
AE queries billed
Session total
0
cache saved 0
Projected / mo
0
of {freeAeRead} free

📖 One AE query per dimension · reads cached ~45s · level 3 costs 0 extra reads
  • Analytics Engine is a single table — no JOIN / UNION / ROLLUP. Each GROUP BY dimension = one read query.
  • Reads are billed per query (not per row). {freeAeRead}/mo free; un-billed in preview today.
  • Each SQL result is cached ~45s in the worker (keyed by the SQL text) → refresh / reload / a second viewer = 0 reads.
  • The time-series query folds in the overview (client sums buckets → total requests/hits/hit-rate). Breakdowns load lazily per open tab; top-N via LIMIT; hit/miss are free columns.
  • The three level-3 outcomes are billed the same per /w/ request but do not cost the same overall: an in-target visitor also pays a second Worker request (/geo, cached {geoCacheH} h in localStorage), the cfg object and the engine {engineGets}×; a refused one pays the {denyBytes}-byte 403 and nothing after it. /geo writes no AE datapoint, so it never appears in the request counts on this page. Prices come from cost-model.js, the panel's single rate list.
  • Level 3 (in target / not in target / undetermined) rides on the same queries as extra SUM columns — 0 extra reads. cloaked is 0 by design whenever EG_MODE is off/observe: nothing was refused, which is not the same as “no out-of-target traffic”. ccfail / devfail are independent axes — a request can fail both, so they are never summed.
blob1=id blob2="wrapper" blob3=country blob4=region blob5=city blob6=asn blob7=asOrg blob8=colo blob9=referer blob10=user-agent blob11=lang blob12=IP blob13=url double1=SAMPLE double2=hit(1|0) double3=cloaked double4=ccfail double5=devfail double6=armed double7=coldpass requests = SUM(_sample_interval*double1) hits = SUM(_sample_interval*double1*double2) · miss = requests − hits delivered = requests − cloaked − coldpass · undetermined = coldpass (a 3rd bucket)
⚙️ Needs /admin/traffic + AE_API_TOKEN · engine needs /admin/enginestats + MGMT_API_TOKEN
  • The Worker needs the route /admin/traffic + AE_API_TOKEN + CF_ACCOUNT_ID (same token that powers /admin/stats).
  • Engine metrics need /admin/enginestats + MGMT_API_TOKEN (Account Analytics: Read + R2 read; optional Zone Analytics: Read on cloudfroze.com for real engine requests + egress).
  • The browser sends only ADMIN_TOKEN (from the controls above) to the Worker; the powerful tokens stay Worker secrets — no CORS, no secret in the browser.