Span Operations

Span operations are a short code identifying the type of operation the span is measuring. Span operations are low cardinality attributes - they should be as general as possible while still being human readable and useful. They should avoid including high cardinality data like IDs and URLs.

Operations are expected to follow OpenTelemetry's semantic conventions as much as possible.

It's important to keep categories consistent between SDKs and integrations as they are used by Sentry in various parts of the platform. For example, both db.init and db.query will be categorized as database operations (db). The default operations breakdown config can be seen here.

The following tables contain examples of operations used by the SDKs and Sentry product. The usage column in the table contains examples of using that operation category, but are not hard recommendations for operation usage. As long as categories stay consistent, SDK developers are free to choose actions and identifiers that best match the use case they are instrumenting.

If a span operation is not provided, the value of default is set by Relay. The value default can also be set by SDKs, for example, to avoid breaking changes when no longer requiring op to be set on TransactionContext.

CategoryUsageDescription
markA general point-in-time span (span with 0 duration)
functionThe time it took for a general function to execute

CategoryUsageDescription
pageloadA full page load of a web application.
navigationClient-side browser history change in a web application.
resourceResource as per Performance Resource Timing. Defaults to resource.other if resource cannot be indentified.
resource.script
resource.link
resource.css
resource.img
browserUsage of browser APIs or functionality
browser.paint
measureUsage of performance.measure() API
ui
ui.taskA task that is taken on the main UI thread. Typically used to indicate to users about things like the Long Tasks API.
ui.renderTime it takes to render a UI element
ui.updateTime it takes to update a UI element
ui.actionA user interaction
ui.action.click
http
http.client
http.graphql.query
http.graphql.mutation
http.graphql.subscription
serializeSerialization of data

JS Frameworks should be prepended with the ui category for operations related to UI components.

CategoryUsageDescription
ui.reactSpans related to React components
ui.react.render
ui.react.update
ui.react.mount
ui.vueSpans related to Vue.js components
ui.vue.activate
ui.vue.create
ui.vue.destroy
ui.vue.mount
ui.vue.update
ui.svelteSpans related to Svelte components
ui.svelte.init
ui.svelte.update
ui.angularSpans related to Angular components
ui.angular.init
ui.angular.routing
ui.angular.[methodName]Created when a method wrapped with TraceMethodDecorator was called
ui.emberSpans related to EmberJS components
ui.ember.route.before_model
ui.ember.route.model
ui.ember.route.after_model
ui.ember.route.setup_controller
ui.livewireSpans related to Livewire
components
ui.livewire.component

Web server related spans should aim to follow OpenTelemetry's HTTP and RPC semantic conventions when possible.

CategoryUsageDescription
httpSpans related to http operations
http.client
http.server
websocket
websocket.server
rpcSpans related to remote procedure calls (RPC)
grpcUsage of the gRPC framework
graphqla GraphQL operation
graphql.execute
graphql.parse
graphql.resolve
graphql.request
graphql.query
graphql.mutation
graphql.subscription
graphql.validate
subprocessCreating new processes
subprocess.wait
subprocess.communicate
middlewareUsage of webserver middlewares
middleware.express
middleware.handle
middleware.starlette
middleware.django
viewRendering of a view
view.process_action.action_controller
view.render
template
template.init
template.parse
template.render
template.django.render
template.render_template.action_view
event
event.djangoSpans related to Django signals
function
function.remixSpans related to Remix data fetchers
function.remix.document_request
function.remix.action
function.remix.loader
function.nextjsSpans related to NextJS data fetchers
serializeSerialization of data
consoleAccessing web servers through the command line (ex. Rails console)
console.command
fileOperations on the file system (internal or external)
app
app.bootstrap
app.php.autoload

Databased related spans are expected to follow OpenTelemetry's Database semantic conventions when possible.

CategoryUsageDescription
dbAn operation on a database
db.query
db.sql.query
db.sql.prisma
db.redis
db.sql.active_record
db.sql.execute
db.sql.transaction
cache
cache.get_item
cache.clear
cache.delete_item
cache.save

Serverless related spans are expected to follow OpenTelemetry's Function as a Service (FaaS) semantic conventions when possible.

CategoryUsageDescription
http
http.client
http.client.stream
grpc
grpc.client
function.gcpInvocations of a GCP function
function.gcp.event
function.gcp.cloud_event
function.gcp.http
function.awsInvocations of an AWS Lambda function
function.azureInvocations of an Azure serverless function

CategoryUsageDescription
appData about the mobile app
app.start
app.start.warm
app.start.cold
uiAn operation on a mobile UI
ui.load
ui.load.initial_display
ui.load.full_display
ui.action
ui.action.click
ui.action.swipe
ui.action.scroll
navigationNavigating to another screen
fileOperations on the file system
file.read
file.write
file.copy
file.delete
file.open
file.rename
serializeSerialization of data
http
http.client
http.graphql.query
http.graphql.mutation
http.graphql.subscription

CategoryUsageDescription
appData about the desktop app
app.start
app.start.warm
app.start.cold
uiAn operation on a desktop UI
ui.load
ui.action
ui.action.click
ui.action.swipe
ui.action.scroll
serializeSerialization of data
http
http.client
http.graphql.query
http.graphql.mutation
http.graphql.subscription

Messages/Queue spans are expected follow OpenTelemetry's Messaging semantic conventions when possible.

CategoryUsageDescription
topic
topic.send
topic.receive
topic.process
queue
queue.task
queue.task.celery
queue.task.rq
queue.task.delayed_job
queue.task.active_job
queue.submit
queue.submit.celery
queue.resque
queue.sidekiq

CategoryDescription
ai
app
browser
console
db
file
function
graphql
graphql
grpc
http
mark
measure
middleware
navigation
pageload
queue
resource
rpc
serialize
socket
subprocess
template
topic
ui
view
websocket
Help improve this content
Our documentation is open source and available on GitHub. Your contributions are welcome, whether fixing a typo (drat!) or suggesting an update ("yeah, this would be better").