What this PR does / why we need it:
Adds the ability for the distributor to send requests to multiple places (like the Tee) but also ensuring that all of those requests are successful via tracking their responses.
Naming: I picked "TrackedTee" as a generic name, but I'm wondering if this should be "RequiredTee" or some other name like "target" or "downstream"
Introduced the 'required' param which controls whether to wait for responses or if they are best-effort. Open to suggestions on where to put this - currently it lives under the ingester.kafka_ingestion Config object.
I'm not particularly sold on the re-use of the Tee model and re-using the tracker object like I have. I'm definitely open to suggestions on alternatives!
Special notes for your reviewer:
I'm wondering whether to continue with this approach and convert the existing implementation to it's own Tee so we can manage them in the same way, or if that is overkill.
[x] Title matches the required conventional commits format, see here
Note that Promtail is considered to be feature complete, and future development for logs collection will be in Grafana Alloy. As such, feat PRs are unlikely to be accepted unless a case can be made for the feature actually being a bug fix to existing behavior.
What this PR does / why we need it: Adds the ability for the distributor to send requests to multiple places (like the Tee) but also ensuring that all of those requests are successful via tracking their responses.
I'm not particularly sold on the re-use of the Tee model and re-using the tracker object like I have. I'm definitely open to suggestions on alternatives!
Which issue(s) this PR fixes: Fixes https://github.com/grafana/loki-private/issues/1109
Special notes for your reviewer: I'm wondering whether to continue with this approach and convert the existing implementation to it's own Tee so we can manage them in the same way, or if that is overkill.
Checklist
CONTRIBUTING.md
guide (required)feat
PRs are unlikely to be accepted unless a case can be made for the feature actually being a bug fix to existing behavior.