Skip to content
Cloudflare Docs

Spans and attributes

Cloudflare Workers provides automatic tracing instrumentation out of the box - no code changes or no SDK installation required. While we are continuing to expand our instrumentation, you can find a list of available spans and attributes below.

Currently supported spans and attributes

  • network.protocol.name
  • network.protocol.version
  • url.full
  • url.scheme
  • url.path
  • url.query
  • server.port
  • server.address
  • user_agent.original
  • http.request.method
  • http.request.header.content-type
  • http.request.header.content-length
  • http.request.header.accept
  • http.request.header.accept-encoding
  • http.request.body.size
  • http.response.status_code
  • http.response.body.size
  • cache_control.expiration
  • cache_control.revalidation

Attributes availabe on all handlers

  • cloudflare.outcome
  • cloudflare.cpu_time
  • cloudflare.wall_time
  • cloudflare.cold_start_ms
  • faas.trigger
  • faas.cold_start
  • cloudflare.ray_id
  • cloudflare.verified_bot_category
  • cloudflare.asn
  • cloudflare.response.time_to_first_byte_ms
  • geo.timezone
  • geo.continent.code
  • geo.country.code
  • geo.locality.name
  • geo.locality.region
  • user_agent.orginal
  • user_agent.os.name
  • user_agent.os.version
  • user_agent.browser.name
  • user_agent.browser.major_version
  • user_agent.browser.version
  • user_agent.engine.name
  • user_agent.engine.version
  • user_agent.device.type
  • user_agent.device.vendor
  • user_agent.device.model
  • http.request.method
  • http.request.header.accept
  • http.request.header.accept-encoding
  • http.request.header.accept-language
  • url.full
  • url.path
  • network.protocol.name
  • faas.cron
  • cloudflare.scheduled_time
  • cloudflare.queue.name
  • cloudflare.queue.batch_size
  • cloudflare.email.from
  • cloudflare.email.to
  • cloudflare.email.size
  • cloudflare.trace.count
  • cloudflare.scheduled_time

Attributes available on all D1 spans

  • db.system.name
  • db.operation.name
  • db.query.text
  • cloudflare.binding.type
  • cloudflare.binding.name
  • cloudflare.d1.response.size_after
  • cloudflare.d1.response.rows_read
  • cloudflare.d1.response.rows_written
  • cloudflare.d1.response.last_row_id
  • cloudflare.d1.response.changed_db
  • cloudflare.d1.response.changes
  • cloudflare.d1.response.served_by_region
  • cloudflare.d1.response.served_by_primary
  • cloudflare.d1.response.sql_duration_ms
  • cloudflare.d1.response.total_attempts
  • db.operation.batch.size
  • cloudflare.d1.query.bookmark
  • cloudflare.d1.response.bookmark
  • cloudflare.d1.query.bookmark
  • cloudflare.d1.response.bookmark
  • cloudflare.d1.query.bookmark
  • cloudflare.d1.response.bookmark
  • cloudflare.d1.query.bookmark
  • cloudflare.d1.response.bookmark
  • cloudflare.d1.query.bookmark
  • cloudflare.d1.response.bookmark


Attributes available on all KV spans

  • db.system.name
  • db.operation.name
  • cloudflare.binding.name
  • cloudflare.binding.type
  • error.type
  • cloudflare.kv.query.keys
  • cloudflare.kv.query.keys.count
  • cloudflare.kv.query.type
  • cloudflare.kv.query.cache_ttl
  • cloudflare.kv.response.size
  • cloudflare.kv.response.returned_rows
  • cloudflare.kv.response.metadata
  • cloudflare.kv.response.cache_status
  • cloudflare.kv.query.keys
  • cloudflare.kv.query.keys.count
  • cloudflare.kv.query.type
  • cloudflare.kv.query.cache_ttl
  • cloudflare.kv.response.size
  • cloudflare.kv.response.returned_rows
  • cloudflare.kv.response.metadata
  • cloudflare.kv.response.cache_status
  • cloudflare.kv.query.keys
  • cloudflare.kv.query.keys.count
  • cloudflare.kv.query.value_type
  • cloudflare.kv.query.expiration
  • cloudflare.kv.query.expiration_ttl
  • cloudflare.kv.query.metadata
  • cloudflare.kv.query.payload.size
  • cloudflare.kv.query.keys
  • cloudflare.kv.query.keys.colunt
  • cloudflare.kv.query.prefix
  • cloudflare.kv.query.limit
  • cloudflare.kv.query.cursor
  • cloudflare.kv.response.size
  • cloudflare.kv.response.returned_rows
  • cloudflare.kv.response.list_complete
  • cloudflare.kv.response.cursor
  • cloudflare.kv.response.cache_status
  • cloudflare.kv.response.expiration

Attributes available on all R2 spans

  • cloudflare.binding.type
  • cloudflare.binding.name
  • error.type
  • cloudflare.r2.bucket
  • cloudflare.r2.operation
  • cloudflare.r2.response.success
  • cloudflare.r2.error.message
  • cloudflare.r2.error.code
  • cloudflare.r2.request.key
  • cloudflare.r2.response.etag
  • cloudflare.r2.response.size
  • cloudflare.r2.response.uploaded
  • cloudflare.r2.response.checksum.value
  • cloudflare.r2.response.checksum.type
  • cloudflare.r2.response.storage_class
  • cloudflare.r2.response.ssec_key
  • cloudflare.r2.response.content_type
  • cloudflare.r2.response.content_encoding
  • cloudflare.r2.response.content_disposition
  • cloudflare.r2.response.content_language
  • cloudflare.r2.response.cache_control
  • cloudflare.r2.response.cache_expiry
  • cloudflare.r2.response.custom_metadata
  • cloudflare.r2.request.key
  • cloudflare.r2.request.range.offset
  • cloudflare.r2.request.range.length
  • cloudflare.r2.request.range.suffix
  • cloudflare.r2.request.range
  • cloudflare.r2.request.ssec_key
  • cloudflare.r2.request.only_if.etag_matches
  • cloudflare.r2.request.only_if.etag_does_not_match
  • cloudflare.r2.request.only_if.uploaded_before
  • cloudflare.r2.request.only_if.uploaded_after
  • cloudflare.r2.response.etag
  • cloudflare.r2.response.size
  • cloudflare.r2.response.uploaded
  • cloudflare.r2.response.checksum.value
  • cloudflare.r2.response.checksum.type
  • cloudflare.r2.response.storage_class
  • cloudflare.r2.response.ssec_key
  • cloudflare.r2.response.content_type
  • cloudflare.r2.response.content_encoding
  • cloudflare.r2.response.content_disposition
  • cloudflare.r2.response.content_language
  • cloudflare.r2.response.cache_control
  • cloudflare.r2.response.cache_expiry
  • cloudflare.r2.response.custom_metadata
  • cloudflare.r2.request.key
  • cloudflare.r2.request.size
  • cloudflare.r2.request.checksum.type
  • cloudflare.r2.request.checksum.value
  • cloudflare.r2.request.custom_metadata
  • cloudflare.r2.request.http_metadata.content_type
  • cloudflare.r2.request.http_metadata.content_encoding
  • cloudflare.r2.request.http_metadata.content_disposition
  • cloudflare.r2.request.http_metadata.content_language
  • cloudflare.r2.request.http_metadata.cache_control
  • cloudflare.r2.request.http_metadata.cache_expiry
  • cloudflare.r2.request.storage_class
  • cloudflare.r2.request.ssec_key
  • cloudflare.r2.request.only_if.etag_matches
  • cloudflare.r2.request.only_if.etag_does_not_match
  • cloudflare.r2.request.only_if.uploaded_before
  • cloudflare.r2.request.only_if.uploaded_after
  • cloudflare.r2.response.etag
  • cloudflare.r2.response.size
  • cloudflare.r2.response.uploaded
  • cloudflare.r2.response.checksum.value
  • cloudflare.r2.response.checksum.type
  • cloudflare.r2.response.storage_class
  • cloudflare.r2.response.ssec_key
  • cloudflare.r2.response.content_type
  • cloudflare.r2.response.content_encoding
  • cloudflare.r2.response.content_disposition
  • cloudflare.r2.response.content_language
  • cloudflare.r2.response.cache_control
  • cloudflare.r2.response.cache_expiry
  • cloudflare.r2.response.custom_metadata
  • cloudflare.r2.request.limit
  • cloudflare.r2.request.prefix
  • cloudflare.r2.request.cursor
  • cloudflare.r2.request.delimiter
  • cloudflare.r2.request.start_after
  • cloudflare.r2.request.include.http_metadata
  • cloudflare.r2.request.include.custom_metadata
  • cloudflare.r2.response.returned_objects
  • cloudflare.r2.response.delimited_prefixes
  • cloudflare.r2.response.truncated
  • cloudflare.r2.response.cursor
  • cloudflare.r2.request.keys
  • cloudflare.r2.request.key
  • cloudflare.r2.request.custom_metadata
  • cloudflare.r2.request.http_metadata.content_type
  • cloudflare.r2.request.http_metadata.content_encoding
  • cloudflare.r2.request.http_metadata.content_disposition
  • cloudflare.r2.request.http_metadata.content_language
  • cloudflare.r2.request.http_metadata.cache_control
  • cloudflare.r2.request.http_metadata.cache_expiry
  • cloudflare.r2.request.storage_class
  • cloudflare.r2.request.ssec_key
  • cloudflare.r2.response.upload_id
  • cloudflare.r2.request.key
  • cloudflare.r2.request.upload_id
  • cloudflare.r2.request.part_number
  • cloudflare.r2.request.ssec_key
  • cloudflare.r2.request.size
  • cloudflare.r2.response.etag
  • cloudflare.r2.request.key
  • cloudflare.r2.request.upload_id
  • cloudflare.r2.request.key
  • cloudflare.r2.request.upload_id
  • cloudflare.r2.request.uploaded_parts
  • cloudflare.r2.response.etag
  • cloudflare.r2.response.size
  • cloudflare.r2.response.uploaded
  • cloudflare.r2.response.checksum.value
  • cloudflare.r2.response.checksum.type
  • cloudflare.r2.response.storage_class
  • cloudflare.r2.response.ssec_key
  • cloudflare.r2.response.content_type
  • cloudflare.r2.response.content_encoding
  • cloudflare.r2.response.content_disposition
  • cloudflare.r2.response.content_language
  • cloudflare.r2.response.cache_control
  • cloudflare.r2.response.cache_expiry
  • cloudflare.r2.response.custom_metadata

  • db.system.name
  • db.namespace
  • db.operation.name
  • cloudflare.binding_type
  • error.type
  • cloudflare.wae.query.index
  • cloudflare.wae.query.doubles
  • cloudflare.wae.query.blobs

Dispatch Namespace

  • cloudflare.dispatch_namespace
  • cloudflare.binding.type
  • error.type

durable_object_subrequest

RPC calls to your Durable Object (e.g. env.MY_DO.fetch(), env.MY_DO.myMethod())

  • cloudflare.binding.type
  • cloudflare.binding.name
  • cloudflare.durable_object.id
  • cloudflare.durable_object.name
  • cloudflare.durable_object.class
  • cloudflare.durable_object.method

The SQL API allow you to modify the SQLite database embedded within a Durable Object.

Attributes availabe on all Durable Object Storage SQL API

  • cloudflare.durable_object.id
  • db.system.name
  • db.operation.name
  • cloudflare.durable_object.sql.query.statement
  • cloudflare.durable_object.sql.query.bindings
  • cloudflare.durable_object.sql.response.rows_read
  • cloudflare.durable_object.sql.response.rows_written
  • cloudflare.durable_object.sql.response.db_size

durable_object_storage_ingest

  • db.system
  • db.operation.name
  • cloudflare.durable_object.response.rows_read
  • cloudflare.durable_object.response.rows_written
  • cloudflare.durable_object.response.statement_count
  • cloudflare.durable_object.kv.query.keys
  • cloudflare.durable_object.kv.query.keys.count
  • cloudflare.durable_object.kv.query.keys
  • cloudflare.durable_object.kv.query.keys.count
  • cloudflare.durable_object.kv.query.keys
  • cloudflare.durable_object.kv.query.keys.count
  • cloudflare.durable_object.kv.response.deleted_count
  • cloudflare.durable_object.kv.query.start
  • cloudflare.durable_object.kv.query.startAfter
  • cloudflare.durable_object.kv.query.end
  • cloudflare.durable_object.kv.query.prefix
  • cloudflare.durable_object.kv.query.reverse
  • cloudflare.durable_object.kv.query.limit

The KV-backed API allows you to modify embedded storage within a Durable Object.

Attributes availabe on all Durable Object Storage KV API

  • db.operation.name
  • cloudflare.durable_object.id
  • db.system.name
  • cloudflare.durable_object.kv.query.keys
  • cloudflare.durable_object.kv.query.keys.count
  • cloudflare.durable_object.kv.query.allow_concurrency
  • cloudflare.durable_object.kv.query.no_cache
  • cloudflare.durable_object.kv.query.keys
  • cloudflare.durable_object.kv.query.keys.count
  • cloudflare.durable_object.kv.query.allow_concurrency
  • cloudflare.durable_object.kv.query.no_cache
  • cloudflare.durable_object.kv.query.allow_unconfirmed
  • cloudflare.durable_object.kv.query.keys
  • cloudflare.durable_object.kv.query.keys.count
  • cloudflare.durable_object.kv.query.allow_concurrency
  • cloudflare.durable_object.kv.query.no_cache
  • cloudflare.durable_object.kv.query.allow_unconfirmed
  • cloudflare.durable_object.kv.response.deleted_count
  • cloudflare.durable_object.kv.query.start
  • cloudflare.durable_object.kv.query.startAfter
  • cloudflare.durable_object.kv.query.end
  • cloudflare.durable_object.kv.query.prefix
  • cloudflare.durable_object.kv.query.reverse
  • cloudflare.durable_object.kv.query.limit
  • cloudflare.durable_object.kv.query.allow_concurrency
  • cloudflare.durable_object.kv.query.no_cache
  • cloudflare.durable_object.kv.query.allow_concurrency
  • cloudflare.durable_object.kv.query.no_cache
  • cloudflare.durable_object.kv.query.allow_unconfirmed


  • cloudflare.binding_type
  • error.type
  • cloudflare.send_email.to
  • cloudflare.send_email.from
  • cloudflare.send_email.message.bytes
  • cloudflare.binding_type
  • error.type
  • cloudflare.send_email.to
  • cloudflare.send_email.from
  • cloudflare.send_email.message.bytes
  • cloudflare.binding_type
  • error.type
  • cloudflare.send_email.to
  • cloudflare.send_email.from

  • cloudflare.send_email.message.bytes


Attributes available on all spans

  • cloud.provider - Always set to cloudflare
  • cloud.platform - Always set to cloudflare.workers
  • faas.name - The name of your Worker
  • faas.invocation_id - A unique identifier for this specific Worker invocation
  • faas.version - The deployed version tag of your Worker
  • faas.invoked_region - The region where the Worker was invoked
  • service.name - The name of your Worker
  • cloudflare.colo - The three-letter IATA airport code of the Cloudflare data center that processed the request (e.g., SFO, LHR)
  • cloudflare.script_name - The name of your Worker
  • cloudflare.script_tags - Tags associated with your Worker deployment
  • cloudflare.script_version.id - The version identifier of your deployed Worker
  • telemetry.sdk.language - The programming language used, set to javascript
  • telemetry.sdk.name - The telemetry SDK name, set to cloudflare

Attributes available on all root spans

  • faas.trigger - The trigger that your Worker was invoked by (e.g., http, cron, queue, email)
  • cloudflare.handler_type - The type of handler that processed the request (e.g., fetch, scheduled, queue, email, alarm)
  • cloudflare.entrypoint - The entrypoint that was invoked in your Worker (e.g. the name of your Durable Object)
  • cloudflare.execution_model - The execution model of the Worker (e.g., stateless, stateful for Durable Objects)