Issues 为 Cloudflare Workers 提供内置错误监控。它检测生产故障,并将相关故障分组为问题,无需 SDK 或应用程序包装器。
启用 source maps,以便捕获的 JavaScript 和 TypeScript 异常堆栈指向原始文件和行。框架构建必须生成映射并上传它们。
当 Worker 抛出未捕获异常、调用失败、返回 5xx 响应或记录错误时,Issues 会将该故障记录为一次出现(occurrence)。它将来自同一 Worker 的相关出现分组为一个问题。
使用 Issues 概览识别重复故障和活动变化。要查看故障的诊断上下文,请参阅调查问题。
你还可以创建自动化,自动将问题发送到编码代理、webhook、聊天服务或事件管理工具。
你可以通过 Wrangler、仪表板或 Cloudflare CLI(cf)启用 Issues。
需要 Wrangler 4.134.0 或更高版本。
-
在 Worker 的 Wrangler 配置文件中,将
observability.issues.enabled设为true。{ "$schema": "./node_modules/wrangler/config-schema.json", "observability": { "issues": { "enabled": true } } }[observability.issues] enabled = true -
部署 Worker。
npx wrangler deployyarn wrangler deploypnpm wrangler deploy
-
前往 Issues 页面。
前往 Issues(问题) ↗ -
选择 Enable issues(启用 Issues)。
-
在
cloudflare.config.ts文件中,将worker.observability.issues.enabled设为true。cloudflare.config.tsts import { defineConfig } from "cf/config"; import * as entrypoint from "./src/index.ts" with { type: "cf-worker" }; export default defineConfig({ worker: { name: "example-worker", entrypoint, compatibilityDate: "<COMPATIBILITY_DATE>", observability: { issues: { enabled: true, }, }, }, }); -
部署 Worker。
cf deploy
启用后,Issues 会处理新流量。它不会处理历史故障。向 Worker 发送生产流量,然后在 Issues 仪表板中打开检测到的问题。
要记录应用程序捕获的错误,请在返回回退响应之前将捕获的值传给 console.error()。
try {
return await handleRequest(request);
} catch (error) {
console.error(error);
return new Response("Service unavailable", { status: 503 });
}try {
return await handleRequest(request);
} catch (error) {
console.error(error);
return new Response("Service unavailable", { status: 503 });
}Issues 在开放 Beta 期间对所有 Workers 账户可用。Beta 期间免费使用。
| 限制 | 值 |
|---|---|
| 每个账户的自动化数量 | 50 |
| 最低出现阈值 | 1 |
| 复发不活动周期 | 1 小时到 365 天 |
| 已完成自动化运行历史 | 30 天 |