Transactions

edit

A transaction describes an event captured by an Elastic APM agent instrumenting a service. Some examples of a transaction might be:

  • An HTTP request
  • A background job

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)
  • Other relevant information depending on the agent. Example: The JavaScript RUM captures transaction marks, which are points in time relative to the start of the transaction with some label.

The contextual data describes the environment in which an event is recorded. It includes the service, the system where the service runs, and the process.

It can also contain information about the authenticated user.

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 url, cookies, body, headers, etc.

The agents provide some settings for users to capture customized information. This data is stored as not-indexed in a custom object. Searchable information is stored as tags instead.

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 several, or no spans captured.

Transactions are stored in transaction indices.