-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Support Prometheus Remote Write as an Optional Results Visualization #1761
Comments
Thanks for making this issue! I can't say that I am familiar with Prometheus remote write, but from skimming the docs, it seems like a much better fit for k6 than the previous attempt at integrating Prometheus (#478). And yes, I'd say that we want to have Prometheus support in the core of k6... As I mentioned in a PR for another potential output yesterday (#1755 (comment)), we plan to heavily refactor the current k6 output interface in the next few months, hopefully in time for k6 v0.31.0. The main reason for that is that the current output (or That said, even if someone contributes a quality Prometheus remote write PR with the current output interface, I think we'd be willing to merge it and port it to the new API ourselves... 😅 Or, after we refactor everything, making such a PR ourselves will probably be very high on the priority list. |
Prometheus folks added experimental support for remote_write requests on the latest release. That means, that apart from shipping results to a wide array of remote write backends, this would work with "vanilla" Prometheus too! |
From a glance, this look as it could be as easy as just forwarding the existing samples through the prometheus remote write client That's of course not the case though. From some playing, I think the way we'll need to go about doing this is by:
|
Confirming that @simskij's draft extension works 👍
And not like this:
👀 |
To track overall progress for the remote write extension see here |
While browsing currently supported results visualizations I noticed that Prometheus is missing. Prometheus is a commonly used and powerful time series aggregation and querying solution that we would like to leverage to visualize output from k6.
We have recently just merged a few k6 benchmark tests in our repo and enabled them in CI. We (and I think others as well) could benefit from storing output metrics from these applications in Prometheus.
Feature Description
I can't say I'm familiar enough with the various visualization options and what data is available to give a good description here. I am quite familiar with the prometheus metrics format/options and can provide insight/advice from that side.
Suggested Solution (optional)
I believe the best path to supporting Prometheus would be to implement the remote write protocol.
Also note by doing so you would immediately be adding support for a large number of tsdbs and backends: https://prometheus.io/docs/operating/integrations/#remote-endpoints-and-storage that others may be interested in using.
The actual Prometheus RW client is exposed and usable directly in a go application:
https://github.com/prometheus/prometheus/blob/master/storage/remote/client.go#L81
The text was updated successfully, but these errors were encountered: