Repository navigation
Expand file tree
/
Copy pathstatus.config.example.yml
More file actions
96 lines (88 loc) · 4.07 KB
/
Copy pathstatus.config.example.yml
File metadata and controls
96 lines (88 loc) · 4.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# Copy to status.config.yml and edit. This single file is the only thing you
# configure. Upload it to the Worker's KV "config" key at deploy time.
name: Acme Status
sites:
- name: Website
url: https://example.com
check: http # http | tcp | ssl | statuspage | incidentio | sentry | aigateway
expectedStatusCodes: [200]
maxResponseTime: 2000 # ms; slower responses are marked "degraded"
- name: API
url: https://api.example.com/health
check: http
# Read status straight from an Atlassian Statuspage (status.claude.com,
# *.statuspage.io, vercel-status.com, …). `url` is the page's base URL;
# statusbeam appends /api/v2/summary.json automatically.
- name: Claude
url: https://status.claude.com
check: statuspage
# Add `component` to track one service on the page instead of the whole page.
# Match by component name (case-insensitive) or id.
- name: Claude API
url: https://status.claude.com
check: statuspage
component: Claude API (api.anthropic.com)
# Tip: statuspage sites can also update in real time via inbound webhooks
# (POST /webhooks/statuspage/<slug>), with cron as the backstop. Set a
# WEBHOOK_SECRET on the Worker — see docs/adapters/statuspage.md.
# incident.io status pages (status.openai.com, …) serve the same
# Statuspage-compatible summary.json, so `incidentio` reads them identically.
- name: OpenAI
url: https://status.openai.com
check: incidentio
# Mirror a Sentry Uptime monitor. Sentry runs the checks; StatusBeam ingests
# the verdict in real time from a Sentry issue webhook
# (POST /webhooks/sentry/<slug>, set WEBHOOK_SECRET on the Worker). Binary
# up/down. Webhook-only by default — the cron loop skips it. See
# docs/adapters/sentry.md.
- name: Internal API
url: https://api.example.com
check: sentry
# Add a `sentry:` block AND set SENTRY_AUTH_TOKEN on the Worker to also poll
# Sentry's Issues API as a cron backstop (org required; project/query/host
# optional). The token is a secret — keep it out of this file.
- name: Internal Web
url: https://web.example.com
check: sentry
sentry:
org: my-org
# Track a model endpoint's health as published by the Vercel AI Gateway or
# OpenRouter. Reads the gateway's own production telemetry — no probe traffic
# is sent to the model, so no tokens are spent and no API key is needed. `url`
# is derived from provider + model. See docs/adapters/aigateway.md.
- name: Claude Opus 4.5
check: aigateway
aigateway:
provider: vercel # vercel | openrouter
model: anthropic/claude-opus-4.5 # creator/model
# Add `endpoint` to grade one provider endpoint instead of the whole model
# (matched on tag, provider name, or full name — curl the endpoints URL to see
# them). Without it every endpoint is graded and the best one wins.
- name: Claude Opus 4.5 (Bedrock)
check: aigateway
maxResponseTime: 3000 # compared against the gateway's published p50
aigateway:
provider: openrouter
model: anthropic/claude-opus-4.5
endpoint: amazon-bedrock
degradedUptime: 99 # published uptime % below this ⇒ degraded
downUptime: 50 # published uptime % below this ⇒ down
# All optional. Keep the real Slack URL in the private config you upload to KV,
# not in this committed example (the webhook URL is a secret).
notifications:
# inline (default): POST each target directly — best-effort, no retries.
# queue: enqueue to a Cloudflare Queue with automatic retries + dead-lettering
# (see the queues bindings in wrangler.jsonc). Queues is on the free Workers
# plan (10k ops/day, 24h retention); Paid raises those limits.
delivery: inline
slack:
webhookUrl: https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXX
webhooks:
- url: https://example.com/status-hook
theme:
logoUrl: /logo.svg
darkMode: true
# Fallback UI language, used only when a visitor's browser language isn't one
# of the supported locales (en | zh | ja | ko). Visitors are otherwise served
# /en/ /ja/ /ko/ /zh/ based on Accept-Language. Defaults to en.
locale: en