You can now create custom trace spans in your Workers code using tracing.enterSpan(). Custom spans appear alongside the automatic platform instrumentation (fetch calls, KV reads, D1 queries, and other platform operations) in your traces and OpenTelemetry exports, with correct parent-child nesting.
The API is available via import { tracing } from "cloudflare:workers" or through the handler context as 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); }); },};Spans nest automatically based on the JavaScript async context, and are auto-ended when the callback returns or its returned promise settles. The Span object provides setAttribute(key, value) for attaching metadata and an isTraced property to check whether the current request is being sampled.
Tracing must be enabled in your Wrangler configuration for spans to be recorded.
For full API details and examples, refer to Custom spans.
Source: Cloudflare
Latest Posts
- Amazon Bedrock Guardrails announces a new API targeting agentic AI workflows

- Amazon FSx for Lustre Intelligent-Tiering storage class is now available in 13 additional AWS Regions

- Amazon S3 Vectors now supports up to 10,000 similarity search results per query

- Amazon S3 adds annotations to provide AI agents and analytics tools with context for data discovery






