Span Operation Documentation
This page lists known span operations. The operation is a low-cardinality string that describes the category of work a span represents, and is stored in the sentry.op attribute.
Choosing an Operation
Operations are grouped by category (for example database or browser). Within a category, more specific operations use a dotted hierarchy such asui.react.render, where each segment narrows down the kind of work being measured.
Use the most specific operation that accurately describes the span. When no specific operation fits, fall back to the closest broader operation in the same category.
Example
A span measuring a database query sets:
sentry.op = "db.query"
general
3 operations| Operation | Description |
|---|---|
mark | A general point-in-time span indicating an event |
function | The time it took for a set of instructions to execute |
measure | A user-defined measurement of the duration between two points in time |
browser
56 operations| Operation | Description |
|---|---|
pageload | A full page load of a web application. |
navigation | Client-side browser history change in a web application. |
navigation.redirect | A client-side automatic redirect navigation (e.g. from framework router redirects) triggerign a browser history change. |
resource | Resource as per Performance Resource Timing. Defaults to resource.other if resource cannot be indentified. |
resource.script | — |
resource.link | — |
resource.img | — |
resource.css | — |
resource.audio | — |
resource.video | — |
resource.iframe | — |
resource.other | — |
resource.worker | Loading of a resource initiated by a worker (e.g. Web Worker or Service Worker). |
resource.icon | Loading of an icon resource. |
resource.frame | Loading of a resource initiated by a frame. |
resource.object | Loading of a resource initiated by an <object> element. |
resource.ping | A hyperlink auditing ping request. |
resource.track | Loading of a <track> element resource (e.g. subtitles or captions). |
browser | Usage of browser APIs or functionality |
browser.paint | — |
browser.unload_event | The unload event phase of a browser navigation. |
browser.redirect | The redirect phase of a browser navigation. |
browser.dom_content_loaded_event | The DOMContentLoaded event phase of a browser navigation. |
browser.load_event | The load event phase of a browser navigation. |
browser.connect | The connection phase of a browser navigation. |
browser.tls_ssl | The secure connection (TLS/SSL) phase of a browser navigation. |
browser.cache | The cache lookup / fetch start phase of a browser navigation. |
browser.dns | The DNS domain lookup phase of a browser navigation. |
browser.request | The request phase of a browser navigation. |
browser.response | The response phase of a browser navigation. |
ui | Operations related to browser UI |
ui.task | A task that is taken on the main UI thread. Typically used to indicate to users about things like the Long Tasks API. |
ui.resolve | Looking up which component a name in a template refers to, before that component renders. Ember does this for every component it renders. The render itself is a separate ui.render span. |
ui.render | Rendering of a UI component. |
ui.mount | Mounting of a UI component or application (e.g. initial render/bootstrap). |
ui.update | Updating of an already-mounted UI component. |
ui.unmount | Unmounting/teardown of a UI component. |
ui.long_task | A long task on the main UI thread, as reported by the Long Tasks API. |
ui.long_animation_frame | A long animation frame, as reported by the Long Animation Frames API. |
ui.interaction.click | A click interaction measured via Interaction to Next Paint (INP). |
ui.interaction.hover | A hover interaction measured via Interaction to Next Paint (INP). |
ui.interaction.drag | A drag interaction measured via Interaction to Next Paint (INP). |
ui.interaction.press | A key press interaction measured via Interaction to Next Paint (INP). |
ui.webvital.lcp | A Largest Contentful Paint (LCP) web vital measurement. |
ui.webvital.cls | A Cumulative Layout Shift (CLS) web vital measurement. |
ui.action | A user interaction that starts a new trace segment and collects the work it triggers. |
ui.action.click | A click that starts a new idle span, collecting work the interaction triggers. |
ui.reactDeprecated | Legacy React UI operation. Prefer ui.mount, ui.render, and ui.update. Use ui.mount, ui.render or ui.update instead, depending on the operation. Framework-specific UI ops are replaced by framework-agnostic ones. |
ui.react.mountDeprecated | Legacy React component mount. Prefer ui.mount. Use ui.mount instead. Framework-specific UI ops are replaced by framework-agnostic ones. |
ui.react.renderDeprecated | Legacy React component render. Prefer ui.render. Use ui.render instead. Framework-specific UI ops are replaced by framework-agnostic ones. |
ui.react.updateDeprecated | Legacy React component update. Prefer ui.update. Use ui.update instead. Framework-specific UI ops are replaced by framework-agnostic ones. |
ui.vueDeprecated | Legacy Vue UI operation. Prefer ui.mount, ui.render, ui.update, and ui.unmount. Use ui.mount, ui.render, ui.update or ui.unmount instead, depending on the operation. Framework-specific UI ops are replaced by framework-agnostic ones. |
ui.svelteDeprecated | Legacy Svelte UI operation. Prefer ui.mount and ui.update. Use ui.mount, ui.render or ui.update instead, depending on the operation. Framework-specific UI ops are replaced by framework-agnostic ones. |
ui.angularDeprecated | Legacy Angular UI operation. Prefer general ui or function ops instead.Use ui.mount instead. Use ui.mount, ui.update or function instead, depending on the operation. Framework-specific UI ops are replaced by framework-agnostic ones. |
ui.emberDeprecated | Legacy Ember UI operation. Prefer ui.mount, ui.render, ui.task, and ui.resolve. Use ui.mount, ui.render, ui.task or ui.resolve instead, depending on the operation. Framework-specific UI ops are replaced by framework-agnostic ones. |
ui.livewireDeprecated | Legacy Livewire UI operation. Prefer ui.mount, ui.render, and ui.update. Use ui.mount, ui.render or ui.update instead, depending on the operation. Framework-specific UI ops are replaced by framework-agnostic ones. |
database
7 operationsDatabase related spans are expected to follow OpenTelemetry's Database semantic conventions when possible.
| Operation | Description |
|---|---|
db | — |
db.query | — |
db.redisDeprecated | Use db.query instead. Provider-specific Redis ops are replaced by framework-agnostic ones. |
cache | — |
cache.get | — |
cache.put | — |
cache.remove | — |
faas
5 operationsServerless (FAAS)
| Operation | Description |
|---|---|
http | — |
grpc | — |
function.gcp | — |
function.aws | — |
function.azure | — |
gen_ai
16 operationsOperations related to Generative AI interactions
| Operation | Description |
|---|---|
gen_ai.chat | A chat interaction with a generative AI model |
ai.chat_completions.create.cohereDeprecated | Use gen_ai.chat instead. Provider-specific AI ops are replaced by framework-agnostic ones. |
ai.embeddings.create.cohereDeprecated | Use gen_ai.embeddings instead. Provider-specific AI ops are replaced by framework-agnostic ones. |
gen_ai.execute_tool | Execution of a tool or function by a generative AI model |
gen_ai.handoff | Handoff of control between different AI agents or components |
gen_ai.invoke_agent | Invocation of an AI agent to perform a task |
gen_ai.embeddings | Generation of embeddings by a generative AI model |
gen_ai.generate_content | Content generation by a generative AI model |
gen_ai.rerank | Reranking of documents or results by a generative AI model |
gen_ai.decide | Decision on a set of typed questions (e.g., boolean, choice, or score) about a shared state by a generative AI model |
gen_ai.extract | Extraction of a set of typed fields (e.g., text, date, number, list, or estimate) from a shared state by a generative AI model |
gen_ai.evaluateDeprecated | Evaluation of typed questions (e.g., boolean, choice, or score) about a shared state by a generative AI model Use gen_ai.decide instead. |
gen_ai.create_agent | Creation of an AI agent that can later be invoked to perform a task |
gen_ai.responsesDeprecated | An interaction with a generative AI model through a responses API Use gen_ai.chat instead. responses is not a well-defined value for gen_ai.operation.name |
gen_ai.text_completion | A text completion request to a generative AI model |
gen_ai.memory.client | A memory store or memory record operation performed by a generative AI agent |
mcp
3 operationsOperations related to Model Context Protocol (MCP) interactions
| Operation | Description |
|---|---|
mcp.server | A request handled by an MCP server (e.g. a tool call, resource read, or prompt request). |
mcp.notification.client_to_server | A notification sent from an MCP client to an MCP server. |
mcp.notification.server_to_client | A notification sent from an MCP server to an MCP client. |
messaging
17 operationsMessaging related spans represent operations on topics in streaming data systems and queues, such as producing and consuming messages in Kafka, RabbitMQ.
| Operation | Description |
|---|---|
queue | A general queue operation. |
queue.publish | Publishing a message to a queue. |
queue.create | Creating a queue or a message for later publishing. |
queue.receive | Receiving a message from a queue. |
queue.process | Processing a message from a queue. |
queue.settle | Settling a message, e.g. acknowledging or rejecting it. |
queue.submit.arqDeprecated | Publishing a message to an arq queue. Use queue.publish instead. Framework-specific queue ops are replaced by framework-agnostic ones. |
queue.submit.celeryDeprecated | Publishing a message to a Celery broker. Use queue.publish instead. Framework-specific queue ops are replaced by framework-agnostic ones. |
queue.submit.djangoDeprecated | Publishing a message to a Django queue. Use queue.publish instead. Framework-specific queue ops are replaced by framework-agnostic ones. |
queue.submit.hueyDeprecated | Publishing a message to a Huey instance. Use queue.publish instead. Framework-specific queue ops are replaced by framework-agnostic ones. |
queue.submit.rayDeprecated | Publishing a message to a Ray queue. Use queue.publish instead. Framework-specific queue ops are replaced by framework-agnostic ones. |
queue.task.arqDeprecated | Processing a message from an arq queue. Use queue.process instead. Framework-specific queue ops are replaced by framework-agnostic ones. |
queue.task.celeryDeprecated | Processing a message from a Celery queue. Use queue.process instead. Framework-specific queue ops are replaced by framework-agnostic ones. |
queue.task.dramatiqDeprecated | Processing a message from a Dramatiq queue. Use queue.process instead. Framework-specific queue ops are replaced by framework-agnostic ones. |
queue.task.hueyDeprecated | Processing a message from a Huey instance. Use queue.process instead. Framework-specific queue ops are replaced by framework-agnostic ones. |
queue.task.rayDeprecated | Processing a message from a Ray queue. Use queue.process instead. Framework-specific queue ops are replaced by framework-agnostic ones. |
queue.task.rqDeprecated | Processing a message from an RQ queue. Use queue.process instead. Framework-specific queue ops are replaced by framework-agnostic ones. |
mobile
9 operations| Operation | Description |
|---|---|
app | — |
app.update.check | The time it takes to check for an available over-the-air (OTA) update. |
app.update.download | The time it takes to download an over-the-air (OTA) update. |
ui | Operations related to mobile UI. |
navigation | — |
file | — |
serialize | — |
http | — |
turbo_module | A call from JavaScript into a React Native native module, or an aggregate of such calls. |
object
10 operationsObject storage related spans represent operations on object storage systems such as Cloudflare R2, Amazon S3, and compatible services.
| Operation | Description |
|---|---|
object.get | Retrieving an object from an object store. |
object.head | Retrieving the metadata of an object from an object store. |
object.put | Storing an object in an object store. |
object.copy | Copying an object within or between object stores. |
object.delete | Deleting an object from an object store. |
object.list | Listing objects in an object store. |
object.upload_part | Uploading a single part of a multipart upload to an object store. |
object.multipart_upload.abort | Aborting a multipart upload to an object store. |
object.multipart_upload.create | Creating a multipart upload to an object store. |
object.multipart_upload.complete | Completing a multipart upload to an object store. |
routing
1 operationsRouting related spans represent work performed by frontend and backend application routers.
| Operation | Description |
|---|---|
router | A framework-neutral operation for work performed by an application router. |
web_server
34 operations| Operation | Description |
|---|---|
http | A general point-in-time span indicating an event |
http.client | — |
http.client.stream | Consumption of a streaming HTTP client response body |
http.server | — |
websocket | — |
rpc | — |
grpc | — |
graphql | — |
subprocess | — |
middleware | — |
middleware.djangoDeprecated | Use middleware instead. Framework-specific middleware ops are replaced by framework-agnostic ones. |
middleware.litestarDeprecated | Use middleware instead. Framework-specific middleware ops are replaced by framework-agnostic ones. |
middleware.litestar.receiveDeprecated | Use middleware instead. Framework-specific middleware ops are replaced by framework-agnostic ones. |
middleware.litestar.sendDeprecated | Use middleware instead. Framework-specific middleware ops are replaced by framework-agnostic ones. |
middleware.starletteDeprecated | Use middleware instead. Framework-specific middleware ops are replaced by framework-agnostic ones. |
middleware.starlette.receiveDeprecated | Use middleware instead. Framework-specific middleware ops are replaced by framework-agnostic ones. |
middleware.starlette.sendDeprecated | Use middleware instead. Framework-specific middleware ops are replaced by framework-agnostic ones. |
middleware.starliteDeprecated | Use middleware instead. Framework-specific middleware ops are replaced by framework-agnostic ones. |
middleware.starlite.receiveDeprecated | Use middleware instead. Framework-specific middleware ops are replaced by framework-agnostic ones. |
middleware.starlite.sendDeprecated | Use middleware instead. Framework-specific middleware ops are replaced by framework-agnostic ones. |
handler | Handling of an incoming request by a web server route handler |
view | — |
view.authenticateDeprecated | Use view instead. |
view.render | Rendering of a view. |
view.response.renderDeprecated | Use view.render instead. |
template | — |
function | — |
function.remixDeprecated | Use function instead. Framework-specific function ops are replaced by framework-agnostic ones. |
function.nextjsDeprecated | Use function instead. Framework-specific function ops are replaced by framework-agnostic ones. |
event.djangoDeprecated | Use function instead. Framework-specific event ops are replaced by framework-agnostic ones. |
serialize | — |
console | — |
file | — |
app | — |