[ PROMPT_NODE_24170 ]
Observability 配置说明
[ SKILL_DOCUMENTATION ]
## 配置模式
### 启用 Workers 日志
c
{
"observability": {
"enabled": true,
"head_sampling_rate": 1 // 100% 采样(默认)
}
}
**最佳实践**:使用结构化 JSON 日志以获得更好的索引效果
typescript
// 推荐 - 结构化日志
console.log({
user_id: 123,
action: "login",
status: "success",
duration_ms: 45
});
// 避免 - 非结构化字符串
console.log("user_id: 123 logged in successfully in 45ms");
### 启用 Workers 追踪
c
{
"observability": {
"traces": {
"enabled": true,
"head_sampling_rate": 0.05 // 5% 采样
}
}
}
**注意**:默认采样率为 100%。对于高流量的 Workers,请使用较低的采样率 (0.01-0.1)。
### 配置分析引擎
**绑定到 Worker**:
toml
# wrangler.toml
analytics_engine_datasets = [
{ binding = "ANALYTICS", dataset = "api_metrics" }
]
**写入数据点**:
typescript
export interface Env {
ANALYTICS: AnalyticsEngineDataset;
}
export default {
async fetch(request: Request, env: Env): Promise {
// 跟踪指标
env.ANALYTICS.writeDataPoint({
blobs: ['customer_123', 'POST', '/api/v1/users'],
doubles: [1, 245.5], // request_count, response_time_ms
indexes: ['customer_123'] // 用于高效过滤
});
return new Response('OK');
}
}
### 配置 Tail Workers
Tail Workers 从其他 Workers 接收日志/追踪以进行过滤、转换或导出。
**设置**:
toml
# wrangler.toml
name = "log-processor"
main = "src/tail.ts"
[[tail_consumers]]
service = "my-worker" # 要跟踪的 Worker
**Tail Worker 示例**:
typescript
export default {
async tail(events: TraceItem[], env: Env, ctx: ExecutionContext) {
// 仅过滤错误
const errors = events.filter(event =>
event.outcome === 'exception' || event.outcome === 'exceededCpu'
);
if (errors.length > 0) {
// 发送到外部监控
ctx.waitUntil(
fetch('https://monitoring.example.com/errors', {
method: 'POST',
body: JSON.stringify(errors)
})
);
}
}
}
### 配置 Logpush
将日志发送到外部存储(S3、R2、GCS、Azure、Datadog 等)。需要 Business/Enterprise 计划。
**通过仪表板**:
1. 导航至 Analytics → Logs → Logpush
2. 选择目标类型
3. 提供凭据和存储桶/端点
4. 选择数据集(例如 Workers Trace Events)
5. 配置过滤器和字段
**通过 A