Workers 追踪现在支持自定义 span
您现在可以使用 tracing.enterSpan() 在您的 Workers 代码中创建自定义追踪 span。自定义 span 与自动平台检测(fetch 调用、KV 读取、D1 查询以及其他平台操作)一起显示在您的追踪和 OpenTelemetry 导出中,并具有正确的父子嵌套关系。
该 API 可以通过 import { tracing } from "cloudflare:workers" 或通过处理程序上下文 ctx.tracing 访问:
import { tracing } from "cloudflare:workers";
export default {
async fetch(request, env, ctx) {
return tracing.enterSpan("handleRequest", async (span) => {
span.setAttribute("url.path", new URL(request.url).pathname);
const data = await env.MY_KV.get("key");
return new Response(data);
});
},
};Span 根据 JavaScript 异步上下文自动嵌套,并在回调返回或其返回的 Promise 解决时自动结束。Span 对象提供了 setAttribute(key, value) 用于附加元数据,以及 isTraced 属性用于检查当前请求是否正在被采样。
必须在您的 Wrangler 配置中启用追踪才能记录 span。
有关完整的 API 详细信息和示例,请参阅自定义 span。