Skip to main content

OTEL-025: batch timeout below 100ms

Severity: warn (advisory)

Rule Details

timeout is the maximum time a batch can wait before being flushed. Anything under ~100ms means most batches flush on the timeout rather than on send_batch_size, so you pay the per-batch overhead (gRPC headers, compression setup, TLS handshakes for keepalive-less exporters) on tiny batches. If you need low end-to-end latency, set other knobs; do not starve the batcher.

This rule fires when batch.timeout < 100ms.

Options

FieldConstraint
timeoutShould be ≥ 100ms

Examples

Avoid
processors:
batch:
timeout: 10ms # below 100ms
send_batch_size: 1024
Prefer
processors:
batch:
timeout: 1s
send_batch_size: 1024

When Not To Use It

Ultra-low-latency tracing pipelines where you deliberately trade throughput for freshness and have measured that a sub-100ms timeout is actually needed.

  • OTEL-023batch send_batch_max_size unset
  • OTEL-024send_batch_max_size < send_batch_size
  • OTEL-026batch timeout above 60s

Version

Available since augur v0.1.0.

Further Reading

Resources