Skip to content
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

Add alternative prometheus remote write implementation to prometheuesremotewriteexporter #37284

Open
mattdurham opened this issue Jan 17, 2025 · 2 comments

Comments

@mattdurham
Copy link

Component(s)

exporter/prometheusremotewrite

Is your feature request related to a problem? Please describe.

For Grafana Alloy I have been working on an alternative approach to the prometheus remote write WAL.

Describe the solution you'd like

Would it be reasonable to add the this new remote implementation into prometheusremotewriteexporter, the config options would be significantly different. Than the current WAL config so would need to only declare one or the other. Its currently experimental in Alloy but we have been using it internally and alongside several other users.

We haven't had any issues scaling it to a few million series writes a second, also looking into support for the new RW format that would mean only updating the library along with general support.

The underlying code can be found at https://github.com/grafana/walqueue

Describe alternatives you've considered

No response

Additional context

No response

@mattdurham mattdurham added enhancement New feature or request needs triage New item requiring triage labels Jan 17, 2025
Copy link
Contributor

Pinging code owners:

See Adding Labels via Comments if you do not have permissions to add labels yourself.

@dashpole
Copy link
Contributor

A few questions/points:

  • What are the benefits of the new WAL compared to the existing WAL implementation? We should spell those out clearly.
  • We should not maintain multiple WAL implementations long-term. So if we plan to adopt a new WAL, we should plan for it to replace the existing WAL implementation.
  • The above means we need a migration plan. If someone updates their collector version without changing configuration, we should not drop telemetry stored in the "legacy" WAL.
  • I the WAL was initially implemented because we needed in-order points and the exporter helper's persistent queue doesn't preserve order.
    • Given Prometheus has started supporting OOO samples, do we still need a WAL? (I think the answer is yes, but we should think this through.
    • Should the WAL be added to exporterhelper?

The effort to add support for PRW 2.0 is being worked on by @jmichalek132. I would sync up with him on that. If we can keep that effort decoupled from the WAL implementation, that would be preferable.

@dashpole dashpole removed the needs triage New item requiring triage label Jan 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants