Wrap a Cloudflare Workers handler with automatic tracing
Optional
// Basic usage (no export, just context propagation)export default instrument({ async fetch(request, env, ctx) { const logger = getLogger(); logger.info('handling request'); // includes trace_id, span_id return new Response('OK'); },}); Copy
// Basic usage (no export, just context propagation)export default instrument({ async fetch(request, env, ctx) { const logger = getLogger(); logger.info('handling request'); // includes trace_id, span_id return new Response('OK'); },});
// With typed queue messagesinterface MyMessage { orderId: string; _traceparent?: string;}export default instrument<Env, MyMessage>({ async queue(batch, env, ctx) { for (const msg of batch.messages) { console.log(msg.body.orderId); // typed! } },}); Copy
// With typed queue messagesinterface MyMessage { orderId: string; _traceparent?: string;}export default instrument<Env, MyMessage>({ async queue(batch, env, ctx) { for (const msg of batch.messages) { console.log(msg.body.orderId); // typed! } },});
Wrap a Cloudflare Workers handler with automatic tracing