Alerts watches your apps and account once a minute and sends a notification through the channels you set up under Account → Notifications: email, Telegram, Slack, Discord, Feishu, WeCom, DingTalk, Bark, Server酱 and plain webhooks. Every alert also lands in the console inbox.
the share of 5xx responses in the window reaches the threshold, for one app or all of them (quiet below the minimum request count)
percent
AI spend
AI Gateway calls in the window cost at least the threshold
RQ
Certificate age
a custom domain's certificate is older than the threshold and has not renewed (renewals happen automatically well before 90 days; an old certificate usually means DNS moved away)
days
Low RQ balance
the available balance drops below the threshold
RQ
The window is 5 minutes, 15 minutes, an hour or a day; after a notification the rule stays quiet for its cooldown.
Route alerts to a channel by ticking Alert in that channel's kinds; channels without kinds receive everything.
Rules act on the workspace you are working in, so a shared workspace's members can set them up for the owner's apps.
Add a trace export with your collector's OTLP/HTTP endpoint (for example https://otlp.example.com/v1/traces) and any headers it needs. Every 30 seconds the platform sends the requests your apps and sites served as server spans (http.request.method, url.path, http.response.status_code, rf.node, rf.app…) and every AI Gateway call as a client span with the GenAI attributes (gen_ai.request.model, gen_ai.usage.input_tokens…). Trace ids derive from the request id, so a trace a client started with our x-request-id lines up.
The AI trace view groups model calls into runs: an agent loop, a Studio turn, a Copilot answer or a single API call, with tokens, RQ and timing per call, and the prompt and reply when prompt logging is enabled on the gateway. Give your own calls a run id to group them:
js
// Group an agent's calls into one run so the trace view and budgets see them together
const ai = env.AI.withBudget({ runId: `job-${jobId}`, maxRq: 50 });
await ai.chat({ model: "claude-sonnet-5-5", messages });
// Tag a direct API call the same way
curl https://ai.randallflare.com/v1/chat/completions -H 'authorization: Bearer rfa_…' -H 'x-rf-run-id: nightly-digest' -d '…'