Skip to main content

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.

  • OTEL-001memory_limiter processor must be configured
  • OTEL-002memory_limiter must be included in every pipeline
  • OTEL-028spike_limit_mib >= limit_mib
  • OTEL-029 — neither limit_mib nor limit_percentage set
  • OTEL-030limit_percentage outside safe range

Version

Available since augur v0.1.0.

Further Reading

Resources