vectordotdev / vector

A high-performance observability data pipeline.
https://vector.dev
Mozilla Public License 2.0
18.21k stars 1.6k forks source link

Adaptive Request Concurrency (ARC) should maintain separate state per (some) partition keys #21725

Open jszwedko opened 2 weeks ago

jszwedko commented 2 weeks ago

A note for the community

Problem

Broken off from https://github.com/vectordotdev/vector/issues/21402

Currently, ARC maintains a global view of requests originating from a given sink; however, different request partitions can have correlated response behavior from the upstream. For example, a Datadog Logs sink where some incoming events have different API keys, one of which is invalid, can cause ARC to think it should back off all requests, and not just the partition with the invalid API key.

Ideally, ARC would maintain separate limits per partition key that can impact upstream responses so that partitions don't conflict.

Open questions:

Configuration

No response

Version

v0.42.0

Debug Output

No response

Example Data

No response

Additional Context

No response

References