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

Implement ValueStream? #638

Closed
thefallentree opened this Issue Apr 15, 2015 · 11 comments

Comments

Projects
None yet
4 participants
@thefallentree
Copy link

thefallentree commented Apr 15, 2015

Hi,

I'm surprised to see that prometheus (or should I say, borgmon2) doesn't implement a valuestream function yet (allow transferring timeseries between prometheus instances). Which I thought was crucial to implement a multi-tier aggregation hierarchy,

Any thoughts?

BTW: you guys are awsome creating prometheus!

@matthiasr

This comment has been minimized.

Copy link
Contributor

matthiasr commented Apr 15, 2015

I've been playing around with multi-tier aggregation by exposing handcrafted "metrics" endpoints as console templates, building on this example. You can, instead of matching the name, specify any query (but need to then give it a new name). The effect is that one Prometheus can publish arbitrary (raw, aggregated or otherwise computed) timeseries that are then available to be scraped (albeit not at the standard endpoint) by any other prometheus.

@beorn7

This comment has been minimized.

Copy link
Member

beorn7 commented Apr 15, 2015

@sunyc Could you explain what you mean by "valuestream"?

@thefallentree

This comment has been minimized.

Copy link
Author

thefallentree commented Apr 15, 2015

@matthiasr which is obviously not very efficient... And there is timestamping issue.

@beorn7 ValueStream is a RPC service that allows an prometheus instance scrape timeseries from another prometheus . Which also retains original timestamp etc.

It has a number of usefulness, namely, one could have a prometheus that valuestream from several peers for aggregation etc etc etc.

@matthiasr

This comment has been minimized.

Copy link
Contributor

matthiasr commented Apr 15, 2015

I'm not too worried about timestamps … when aggregating for example request counts from many individual instances as one timeseries, there is no one timestamp anyway. And if the samples are just passed through 1:1 then why aggregate in the first place?

@beorn7

This comment has been minimized.

Copy link
Member

beorn7 commented Apr 15, 2015

The Prometheus scrape protocol already contains a timestamp for that purpose. However, it is currently not possible to scrape multiple samples for one time series in one scrape.

@thefallentree

This comment has been minimized.

Copy link
Author

thefallentree commented Apr 15, 2015

@matthiasr because scrape is not synchronized between targets, If there were no timestamp in the output the aggregation would produce wrong values..

@juliusv

This comment has been minimized.

Copy link
Member

juliusv commented Apr 15, 2015

Heya Yucong,

valuestreaming aka hierarchical federation is on our roadmap:
http://prometheus.io/docs/introduction/roadmap/#hierarchical-federation

Right now we only have the "hack" that Matthias mentioned, but soon[tm]
we'll have the real thing. I agree, it should be possible to transfer raw
samples with their original timestamps and uninterpolated values.

Cheers,
Julius

On Wed, Apr 15, 2015 at 5:27 PM, Yucong Sun notifications@github.com
wrote:

@matthiasr https://github.com/matthiasr because scrape is not
synchronized between targets, If there were no timestamp in the output the
aggregation would produce wrong values..


Reply to this email directly or view it on GitHub
#638 (comment)
.

@thefallentree

This comment has been minimized.

Copy link
Author

thefallentree commented Apr 15, 2015

I would be happy to help (maybe we can also use go-grpc now), believe it or not, i spent quite a bit of of time on it in the past life .

LoL

@beorn7

This comment has been minimized.

Copy link
Member

beorn7 commented Apr 15, 2015

I'll close this as a duplicate of #9 (updated that issue with the notion of "streaming").

@beorn7 beorn7 closed this Apr 15, 2015

@juliusv

This comment has been minimized.

Copy link
Member

juliusv commented Apr 15, 2015

@sunyc That'd be great in general. As a smaller starter project it'd probably be good to start with something small to get acquainted with the whole code and contributing business, and then go from there. We're all also hanging out on #prometheus on Freenode for discussions and inspiration :)

simonpasquier pushed a commit to simonpasquier/prometheus that referenced this issue Oct 12, 2017

Add Tarantool to the list of client libraries (prometheus#638)
Tarantool is a fast in-memory database and an application
server for Lua apps.

Homepage: https://tarantool.org
@lock

This comment has been minimized.

Copy link

lock bot commented Mar 24, 2019

This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

@lock lock bot locked and limited conversation to collaborators Mar 24, 2019

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
You can’t perform that action at this time.