opentelemetry-collector icon indicating copy to clipboard operation
opentelemetry-collector copied to clipboard

Limiter extension API interfaces and implementation helpers (**draft 5**)

Open jmacd opened this issue 6 months ago • 1 comments

Description

Draft demonstrating the following advances on the previous draft:

  1. Base limiter is the MustDeny function as a stand-alone, like memory limiter extension/processor would use.
  2. Rate/Resource limiters have a single non-blocking interface
  3. Helper functions wrap the non-blocking interfaces with blocking forms
  4. Limiter middleware helpers for HTTP and gRPC revived from earlier draft
  5. Basic rate limiter based on golang.org/x/time/rate
  6. Basic resource limiter based on collector-contrib/internal/otelarrow/admission2
  7. More-consistent functional style
  8. Suggested configmiddleware integration
  9. memorylimiterextension

Follows drafts 1: https://github.com/open-telemetry/opentelemetry-collector/pull/12558 2: https://github.com/open-telemetry/opentelemetry-collector/pull/12633 3: https://github.com/open-telemetry/opentelemetry-collector/pull/12700 4: https://github.com/open-telemetry/opentelemetry-collector/pull/12953

Link to tracking issue

Part of #9591. Part of #12603.

Testing

NONE: This is a demonstration, smaller PRs will be broken apart and tested individually if reviewers like the look of this, the full assembly.

Documentation

Updated.

jmacd avatar May 20 '25 01:05 jmacd