Skip to content

Added Remote-Write Specification 2.0. #2462

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 31 commits into from
Jun 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
be65e1f
Added Remote-Write Specification 2.0.
bwplotka May 2, 2024
32a2ab6
Addressed some feedback.
bwplotka May 22, 2024
775abc3
Work together with Callum.
bwplotka May 24, 2024
6799197
Final changes.
bwplotka Jun 4, 2024
69885ef
Changed stale marker section, added more info on CT.
bwplotka Jun 5, 2024
d6fc3be
Exemplars MAY skip labels given https://github.com/prometheus/prometh…
bwplotka Jun 5, 2024
62e2019
Grammar fixes thx to Grammarly.
bwplotka Jun 5, 2024
e50ee4d
Added Experimental status, moved to 2.0-rc.0 version.
bwplotka Jun 5, 2024
bb765d5
Trying same but different format.
bwplotka Jun 5, 2024
321d8cb
Fixed formatting issues.
bwplotka Jun 5, 2024
b5a9813
Fixed typo.
bwplotka Jun 10, 2024
291aafa
Proposed wording changes after Tom Wilkie's feedback.
bwplotka Jun 10, 2024
4db930c
Adjusted the language in the comparision.
bwplotka Jun 10, 2024
48bfc1e
Improved formatting, added RFC 9111 SHOULD mention for User-Agent.
bwplotka Jun 10, 2024
7968e29
Last formatting touches.
bwplotka Jun 10, 2024
b64c2e6
Moved the spec to new location after the rebase.
bwplotka Jun 10, 2024
843eca9
Update content/docs/specs/remote_write_spec.md
bwplotka Jun 11, 2024
179cc51
Apply suggestions from code review
bwplotka Jun 13, 2024
dfa4d8d
Update content/docs/specs/remote_write_spec_2_0.md
bwplotka Jun 19, 2024
4ef58fb
Update content/docs/specs/remote_write_spec_2_0.md
bwplotka Jun 19, 2024
c5a3997
Update content/docs/specs/remote_write_spec_2_0.md
bwplotka Jun 19, 2024
e61d6c7
Update content/docs/specs/remote_write_spec_2_0.md
bwplotka Jun 19, 2024
0cd2935
Update content/docs/specs/remote_write_spec_2_0.md
bwplotka Jun 19, 2024
4a6182b
Update content/docs/specs/remote_write_spec_2_0.md
bwplotka Jun 19, 2024
bfd0ef7
Update content/docs/specs/remote_write_spec_2_0.md
bwplotka Jun 19, 2024
badc7ca
Update content/docs/specs/remote_write_spec_2_0.md
bwplotka Jun 19, 2024
0fe10e3
Addressed Nico & Callum review comments.
bwplotka Jun 19, 2024
c3c282c
Update content/docs/specs/remote_write_spec_2_0.md
bwplotka Jun 19, 2024
9042e61
Fixed formatting.
bwplotka Jun 19, 2024
411cd9d
add backticks to all fields and types references (#2480)
bwplotka Jun 20, 2024
257d8fc
format fixes: changed Proto Message to Protobuf Message, prefer plula…
bwplotka Jun 20, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions content/docs/specs/remote_write_spec.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
---
title: Prometheus Remote-Write
sort_rank: 4
title: Prometheus Remote-Write 1.0
sort_rank: 5
---

# Prometheus Remote-Write Specification

- Version: 1.0
- Status: Published
- Date: April 2023
Expand All @@ -19,8 +20,7 @@ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "S

The remote write protocol is designed to make it possible to reliably propagate samples in real-time from a sender to a receiver, without loss.

The remote write protocol is designed to make stateless implementations of the server possible; as such there are little-to-no inter-message references. As such the protocol is not considered "streaming." To achieve a streaming effect multiple messages should be sent over the same connection using e.g. HTTP/1.1 or HTTP/2. "Fancy" technologies such as gRPC were considered, but at the time were not widely adopted, and it was challenging to expose gRPC services to the internet behind load balancers such as an AWS EC2 ELB.

The Remote-Write protocol is designed to be stateless; there is strictly no inter-message communication. As such the protocol is not considered "streaming". To achieve a streaming effect multiple messages should be sent over the same connection using e.g. HTTP/1.1 or HTTP/2. "Fancy" technologies such as gRPC were considered, but at the time were not widely adopted, and it was challenging to expose gRPC services to the internet behind load balancers such as an AWS EC2 ELB.

The remote write protocol contains opportunities for batching, e.g. sending multiple samples for different series in a single request. It is not expected that multiple samples for the same series will be commonly sent in the same request, although there is support for this in the protocol.

Expand Down Expand Up @@ -183,7 +183,7 @@ This section contains speculative plans that are not considered part of protocol
## Related
### Compatible Senders and Receivers

The spec is intended to describe how the following components interact:
The spec is intended to describe how the following components interact (as of April 2023):

- [Prometheus](https://github.com/prometheus/prometheus/tree/master/storage/remote) (as both a "sender" and a "receiver")
- [Avalanche](https://github.com/prometheus-community/avalanche) (as a "sender") - A Load Testing Tool Prometheus Metrics.
Expand Down
Loading