Skip to main content

OTEL-023: batch send_batch_max_size unset (unlimited)

Severity: warn (advisory)

Rule Details

send_batch_size is the soft trigger that fires a flush; send_batch_max_size is the hard cap that splits oversized batches. With no cap, one very large burst (or a slow exporter that lets batches accumulate) can produce a single payload that the downstream refuses (gRPC ResourceExhausted) or that OOMs the exporter side. A good default is roughly twice send_batch_size.

This rule fires when a batch processor has no send_batch_max_size set.

Options

This rule has no options.

Examples

Avoid
processors:
batch:
timeout: 1s
send_batch_size: 8192
# no send_batch_max_size
Prefer
processors:
batch:
timeout: 1s
send_batch_size: 8192
send_batch_max_size: 16384

When Not To Use It

Environments where the downstream exporter is known to accept arbitrarily large payloads and you would rather never split a batch. Rare in practice.

  • OTEL-003batch processor must be configured
  • OTEL-024send_batch_max_size < send_batch_size
  • OTEL-025batch timeout below 100ms
  • OTEL-026batch timeout above 60s

Version

Available since augur v0.1.0.

Further Reading

Resources