OTEL-027: memory_limiter check_interval is 0 or unset
Severity: deny (blocking)
Rule Details
memory_limiter enforces limits on a polling interval — it reads runtime.MemStats every check_interval and, if the soft or hard limit is crossed, refuses new work. An interval of zero (or no interval at all) means the check never runs: the processor is in the config and in the pipeline but never fires. That is indistinguishable from having no limiter at all.
This rule fires when a memory_limiter processor has check_interval unset or equal to a zero duration.
Options
This rule has no options.
Examples
Incorrect
processors:
memory_limiter:
limit_percentage: 80
spike_limit_percentage: 25
# check_interval missing
Correct
processors:
memory_limiter:
check_interval: 5s
limit_percentage: 80
spike_limit_percentage: 25
When Not To Use It
Never — an un-polled limiter is a no-op.
Related Rules
- OTEL-001 —
memory_limiterprocessor must be configured - OTEL-002 —
memory_limitermust be included in every pipeline - OTEL-028 —
spike_limit_mib>=limit_mib - OTEL-029 — neither
limit_mibnorlimit_percentageset - OTEL-030 —
limit_percentageoutside safe range
Version
Available since augur v0.1.0.
Further Reading
Resources
- Rule source:
policy/main/memory.rego