---
title: Enable the transactions processor
description: Enable the Coralogix transactions processor so your services emit transaction data and the operation drilldown can break each operation into its segments.
url: https://coralogix.com/docs/user-guides/apm-v2/features/transactions/enable-transactions-processor/
product: apm
feature: APM Overview
feature_id: apm-general
feature_identifier: apm/apm-general
last_updated: '2026-09-29'
---

# Enable the transactions processor

The [Transactions](https://coralogix.com/docs/user-guides/apm-v2/features/transactions.md) tab breaks a service into its operations, and - for services that emit transaction data - breaks each operation into its **segments** in the drilldown. That segment breakdown appears only once the Coralogix transactions processor is running. This guide walks through enabling it.

Use this guide if an operation's drilldown shows only its spans list with no segment breakdown, or if you are setting up a new service and want segment-level visibility from day one.

## What you need

* Coralogix [Application Performance Monitoring (APM)](https://coralogix.com/docs/user-guides/apm-v2/getting-started/apm-onboarding-tutorial.md) installed and configured.
* [Span Metrics](https://coralogix.com/docs/user-guides/apm-v2/getting-started/span-metrics.md) enabled for the service.
* An OpenTelemetry Collector running version `0.130.0` or later.
* For Kubernetes deployments, the [Coralogix Kubernetes Complete Observability](https://coralogix.com/docs/opentelemetry/kubernetes-observability/advanced-configuration.md) integration on Helm chart `v0.0.203` or later.

## How it works

By default, OpenTelemetry lets you aggregate the performance of a single operation (span or endpoint) over time. It does not natively aggregate the performance of multiple connected operations over time as a single logical unit. The Coralogix transactions processor fills that gap, generating the segment-level data the operation drilldown uses.

You can continue using pure OpenTelemetry while adding transaction data through a lightweight, open processor contributed by Coralogix to the OpenTelemetry community. This approach adds no vendor-locked SDKs or agents and requires no modifications to the OpenTelemetry SDK. See the [v0.130.0 enhancements in the OpenTelemetry Collector Contrib changelog](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/CHANGELOG.md#v01300).

The processor automatically identifies the transaction root span within each transaction and applies transaction attributes to all spans in that transaction:

* **Transaction root identification**: the processor finds the span with no parent span ID (or whose parent is not in the current trace) and marks it as the transaction root.

* **Transaction attributes**: all spans from the same service that are part of traces containing a transaction root receive the following attributes:

  <!-- -->

  * `cgx.transaction`: set to the name of the transaction root span.
  * `cgx.transaction.root`: set to `true` for the root span only.

## Configure the processor

Configure the [Coralogix transactions processor](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/coralogixprocessor#coralogix-processor) for your deployment.

* Kubernetes integration
* Custom OpenTelemetry deployments

The [Coralogix Kubernetes Complete Observability](https://coralogix.com/docs/opentelemetry/kubernetes-observability/advanced-configuration.md) integration ships the transactions processor as a preset in the [`values.yaml`](https://github.com/coralogix/telemetry-shippers/blob/7e2a7890605f8bb2c6315e9bb3aa8a8d0dbde2f4/otel-integration/k8s-helm/values.yaml#L355).

To enable the Coralogix transactions processor in your own collector configuration:

1. Add `coralogix` and `groupbytrace/transactions` processors in the `processors` section:

   ```
   processors:

     groupbytrace/transactions:

       wait_duration: 5s

       num_traces: 1000

     coralogix:

       transactions:

         enabled: true
   ```

   Note

   The `groupbytrace/transactions` processor must be added before the `coralogix` processor. This ensures that all spans belonging to the same trace are grouped and processed together.

2. Add `coralogix` and `groupbytrace/transactions` processors to your `traces` pipeline:

   ```
   service:

     pipelines:

       traces:

         processors:

           - groupbytrace/transactions

           - coralogix
   ```

Once configured, the transactions processor starts generating segment-level visibility, and the segment breakdown appears in each operation's drilldown.

## Next steps

Group a service's failures by status code in [Errors](https://coralogix.com/docs/user-guides/apm-v2/features/errors.md).

## Additional resources

* [Transactions](https://coralogix.com/docs/user-guides/apm-v2/features/transactions.md)
* [Span Metrics](https://coralogix.com/docs/user-guides/apm-v2/getting-started/span-metrics.md)
* [Coralogix Kubernetes Complete Observability](https://coralogix.com/docs/opentelemetry/kubernetes-observability/advanced-configuration.md)
* [Coralogix processor (OpenTelemetry Collector Contrib)](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/coralogixprocessor#coralogix-processor)
