Open SungJin1212 opened 3 weeks ago
Thanks! I think we should start with milestone 1 and having milestone 1 is good enough to support RW 2.0
We need to think more about milestone 2 before actually changing the internal write protocol between distributor and ingester. They are not user facing and we can do whatever we want so doesn't need to be same as RW 2.0
We can test it using the client-golang
library. The upstream client-golang pr is here: https://github.com/prometheus/client_golang/pull/1658.
I'm implementing Prometheus remote write v2 (PRW2.0) based on PRW2.0 docs (https://prometheus.io/docs/specs/remote_write_spec_2_0).
There are two milestones:
Milestone1
The distributor can accept PRW2.0 requests. It requires small changes between the Distributor and Ingester, including adding response headers. The ingestion is done by converting the PRW2.0 request to PRW1.0, then using existing
Push
methods in the Distributor and Ingester.push response headers to be added:
Milestone2
Add PRW2.0 proto and update the protocol used between the Distributor and Ingester.