Transactions are a special kind of span that have additional attributes associated with them. They describe an event captured by an Elastic APM agent instrumenting a service. You can think of transactions as the highest level of work you’re measuring within a service. As an example, a transaction might be a:
- request to your server
- batch job
- background job
- custom transaction type.
Agents decide whether to sample transactions or not, and provide settings to control sampling behavior. If sampled, the spans of a transaction are sent and stored as separate documents. Within one transaction there can be 0, 1, or many spans captured.
A transaction contains:
- The timestamp and duration of the event
- A unique id, type, and name
- A result (e.g. a response code)
- Some contextual data (see below for details)
It can also contain information about the authenticated
An event’s context can also include information about an authenticated
user, a request leading to it, or a response.
For instance, HTTP requests context have
The agents provide some settings for users to capture customized information. This data is stored as not-indexed in a
Searchable information is stored as
Transactions are stored in transaction indices.