Sentry 是一个软件监控工具,帮助开发者识别和调试性能问题及错误。从端到端分布式追踪到性能监控,Sentry 提供代码级可观测性,使您能够轻松诊断问题并持续了解跨系统和服务的应用程序代码健康状况。将 Cloudflare Workers 应用程序遥测导出到 Sentry 后,您可以:
- 在 Sentry 中查询日志和追踪
- 创建自定义告警和仪表板以监控 Workers
本指南将引导您从 Cloudflare Worker 应用程序导出符合 OpenTelemetry 标准的追踪和日志到 Sentry
开始之前,请确保您拥有:
- 已注册 Sentry 账户 ↗(提供免费套餐)
- 要监控的已部署 Worker
如果尚无用于接收数据的 Sentry 项目,需要创建一个项目以开始向 Sentry 发送 Cloudflare Workers 应用程序遥测。
- 登录 Sentry 账户 ↗
- 在导航侧边栏中导航到 Insights > Projects,打开项目列表。
- 点击 New Project(新建项目) ↗
- 填写项目创建表单并点击 Create Project(创建项目) 完成流程。
Sentry 为追踪和日志提供单独的 OTLP 端点,用于向 Sentry 发送遥测数据。
- Traces(跟踪):
https://{HOST}/api/{PROJECT_ID}/integration/otlp/v1/traces - Logs(日志):
https://{HOST}/api/{PROJECT_ID}/integration/otlp/v1/logs
您可以在项目设置中找到 OTLP 端点。
- 在 Sentry 中前往 Settings > Projects ↗ 页面。
- 从列表中选择项目并点击项目名称打开项目设置。
- 在 "SDK Setup" 标题下,进入此项目的 "Client Keys (DSN)" 子页面。
在那里您会找到 Sentry 项目的 OTLP 日志和 OTLP 追踪端点,以及端点的身份验证标头。请务必复制端点和身份验证标头。
有关如何使用 Sentry OTLP 端点的更多详情,请参阅 Sentry OTLP 文档 ↗。
要在 Cloudflare 仪表板中设置目标,请导航到 Cloudflare 账户的 Workers Observability ↗ 部分。然后点击 Add destination(添加目标) 并配置追踪或日志目标。
要配置追踪目标,点击 Add destination(添加目标) 并配置以下内容:
- Destination Name(目标名称):
sentry-traces(或任何描述性名称) - Destination Type(目标类型):选择 Traces(跟踪)
- OTLP Endpoint(OTLP 端点):您的 Sentry OTLP 追踪端点(例如
https://{HOST}/api/{PROJECT_ID}/integration/otlp/v1/traces) - Custom Headers(自定义标头):添加 Sentry 身份验证标头:
- Header name:
x-sentry-auth - Header value:
sentry sentry_key={SENTRY_PUBLIC_KEY},其中{SENTRY_PUBLIC_KEY}是 Sentry 项目的公钥
- Header name:
要配置日志目标,点击 Add destination(添加目标) 并配置以下内容:
- Destination Name(目标名称):
sentry-logs(或任何描述性名称) - Destination Type(目标类型):选择 Logs(日志)
- OTLP Endpoint(OTLP 端点):您的 Sentry OTLP 日志端点(例如
https://{HOST}/api/{PROJECT_ID}/integration/otlp/v1/logs) - Custom Headers(自定义标头):添加 Sentry 身份验证标头:
- Header name:
x-sentry-auth - Header value:
sentry sentry_key={SENTRY_PUBLIC_KEY},其中{SENTRY_PUBLIC_KEY}是 Sentry 项目的公钥
- Header name:
在 Cloudflare 仪表板中创建目标后,更新 Worker 配置以启用遥测导出。
{
"observability": {
"traces": {
"enabled": true,
// Must match the destination name in the dashboard
"destinations": ["sentry-traces"]
},
"logs": {
"enabled": true,
// Must match the destination name in the dashboard
"destinations": ["sentry-logs"]
}
}
}[observability.traces]
enabled = true
destinations = [ "sentry-traces" ]
[observability.logs]
enabled = true
destinations = [ "sentry-logs" ]更新配置后,部署 Worker 以使更改生效。