Skip to content

Prometheus Remote Write v2 Implementation #6324

Open
@SungJin1212

Description

@SungJin1212

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:

X-Prometheus-Remote-Write-Samples-Written <count of all successfully written Samples>
X-Prometheus-Remote-Write-Histograms-Written <count of all successfully written Histogram samples>
X-Prometheus-Remote-Write-Exemplars-Written <count of all successfully written Exemplars>

Milestone2

Add PRW2.0 proto and update the protocol used between the Distributor and Ingester.

  • Add RPW2.0 proto
  • Implement Distributor & Ingester Push functions
  • Add fallback logic for rolling updates: when the Distributor can accept PRW2.0 but not Ingester, we have to ingest metrics.
  • Add some performance tests between PRW2.0 and 1.0.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions