OTEL-024: batch send_batch_max_size < send_batch_size
Severity: deny (blocking)
Rule Details
send_batch_size is the soft trigger (flush when the batch reaches this size) and send_batch_max_size is the hard cap (split anything larger). If the cap is smaller than the trigger, the trigger can never fire on a full batch — every batch is capped early, flushed at a size lower than intended, and the processor's throughput logic is effectively broken. The cap must be ≥ the trigger.
This rule fires when send_batch_max_size < send_batch_size on any batch processor.
Options
| Field | Constraint |
|---|---|
send_batch_max_size | Must be ≥ send_batch_size |
Examples
Incorrect
processors:
batch:
timeout: 1s
send_batch_size: 8192
send_batch_max_size: 1024 # smaller than send_batch_size
Correct
processors:
batch:
timeout: 1s
send_batch_size: 8192
send_batch_max_size: 16384
When Not To Use It
Never — this configuration cannot behave correctly.
Related Rules
- OTEL-023 —
batchsend_batch_max_sizeunset - OTEL-003 —
batchprocessor must be configured - OTEL-013 —
batchprocessor should be last in pipeline
Version
Available since augur v0.1.0.
Further Reading
Resources
- Rule source:
policy/main/memory.rego