Cloudflare Workers probe — global reach for free

Cloudflare runs Workers at ~310 points-of-presence around the world. You can deploy a Valpero probe as a Worker, point Cloudflare's cron at it, and effectively get a probe at any colo Cloudflare has — for free inside the Workers free tier.

This is great when you want a probe in a region we don't ship with (Africa, South Asia, Oceania) or when you're already on Cloudflare and want to keep infra footprint to one vendor.

What the Worker does

Every minute (cron * * * * *):

  1. Pulls due tasks from valpero.com/api/probe/tasks?region=<your-region>.
  2. Runs the checks via the Worker's fetch() API.
  3. Posts results back to valpero.com/api/probe/report.

It's stateless, sub-1ms CPU per task, and stays inside the free tier even with 30+ monitors.

Limitations

Workers can't open raw TCP sockets — so the Worker probe handles only:

Check type Works?
HTTP / HTTPS yes
TCP / Port no
Ping (ICMP) no

For TCP/port checks use a managed region or a self-hosted probe.

Setup

1. Create a probe node

Dashboard → Probe nodes → New node. Pick a region code like cfw-eu or cfw-asia. Copy the token.

2. Install wrangler (Cloudflare CLI) if you don't have it

npm install -g wrangler
wrangler login

3. Deploy

git clone https://github.com/valpero/valpero-probe.git
cd valpero-probe/cloudflare-worker

wrangler secret put VALPERO_TOKEN
# paste the prb_node_… token

wrangler secret put VALPERO_REGION
# type your region code, e.g. cfw-eu

wrangler deploy

That's it. Cloudflare will fire the cron every minute.

4. Assign monitors

Same as managed regions — open any monitor, Settings → Regions, tick your CF region. Within a minute you'll see the first results.

How CF colo selection works

A scheduled Worker invocation runs in some Cloudflare colo. Cloudflare picks based on internal sharding — it isn't necessarily where your account is registered. To run multi-region from CF:

  • Deploy one Worker per intended region with a different VALPERO_REGION.
  • Each gets its own stable identity in Valpero so we can show them as distinct vantage points.

Cost

Cloudflare's free tier gives you 100k requests/day and 10ms CPU per request. A typical install (10 monitors per region, 1-min interval) uses about 14k requests/day — well inside the free tier.

If you're a heavy user (50+ monitors, multi-region) the paid tier is $5/month per Workers account regardless of volume.

Multiple Workers across the world

The straightforward way to use this for global coverage:

# Worker 1
wrangler deploy --name valpero-probe-eu
# (set VALPERO_REGION=cfw-eu)

# Worker 2 — same code, different secrets
wrangler deploy --name valpero-probe-us
# (set VALPERO_REGION=cfw-us)

Each Worker reports to a different region label. The Cloudflare cron will spread the invocations across colos automatically.

Where the source lives

Public on GitHub: github.com/valpero/valpero-probe — see the cloudflare-worker/ directory. ~80 lines of JavaScript.

// share:
// try the tools: SSL · DNS · Ping · Headers

Stop checking by hand. Get paged automatically.

Free forever for one site. No card required.

Start free →
// related
Custom domain for your status page
6 min read
Redeeming an AppSumo / lifetime deal code
3 min read
Free web tools — what each one does
5 min read