// Module included in the following assemblies:
//
// * observability/otel/otel-collector/otel-collector-processors.adoc

:_mod-docs-content-type: REFERENCE
[id="otel-processors-batch-processor_{context}"]
= Batch Processor

[role="_abstract"]
The Batch Processor batches traces and metrics to reduce the number of outgoing connections needed to transfer the telemetry information.

.Example of the OpenTelemetry Collector custom resource when using the Batch Processor
[source,yaml]
----
# ...
  config:
    processors:
      batch:
        timeout: 5s
        send_batch_max_size: 10000
    service:
      pipelines:
        traces:
          processors: [batch]
        metrics:
          processors: [batch]
# ...
----

.Parameters used by the Batch Processor
[options="header"]
[cols="a,a,a"]
|===
|Parameter |Description |Default

|`timeout`
|Sends the batch after a specific time duration and irrespective of the batch size.
|`200ms`

|`send_batch_size`
|Sends the batch of telemetry data after the specified number of spans or metrics.
|`8192`

|`send_batch_max_size`
|The maximum allowable size of the batch. Must be equal or greater than the `send_batch_size`.
|`0`

|`metadata_keys`
|When activated, a batcher instance is created for each unique set of values found in the `client.Metadata`.
|`[]`

|`metadata_cardinality_limit`
|When the `metadata_keys` are populated, this configuration restricts the number of distinct metadata key-value combinations processed throughout the duration of the process.
|`1000`
|===
