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 the Operations Breakdown feature. For example, both db.init and db.query will be categorized as database operations (db). The default operations breakdown config can be seen here.

List of Operations

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.

General

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

Browser

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

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

Web Server

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.resolve
graphql.request
graphql.query
graphql.mutation
graphql.subscription
subprocess
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
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

Database

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
cache
cache.get_item
cache.clear
cache.delete_item
cache.save

Serverless (FAAS)

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 serverless function
function.aws.lambda
function.azureInvocations of an Azure serverless function

Mobile

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

Desktop

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/Queues

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

Currently Used Categories

CategoryDescription
mark
pageload
navigation
resource
browser
measure
ui
app
http
websocket
rpc
grpc
graphql
subprocess
middleware
view
template
serialize
console
db
file
function
topic
queue
You can edit this page on GitHub.