-
Notifications
You must be signed in to change notification settings - Fork 149
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 collector interface #36
Comments
Once this has been done, more performance optimizations are possible, like incrementing all affected histogram buckets during a scrape instead of during each observe. See https://github.com/prometheus/client_golang/blob/a5060f1eaab721946b185b2de468ff83ea5b89cb/prometheus/histogram.go#L240-L282 |
@grobie Reading that doc, I'm not sure I understand what this would be. As for the performance improvement mentioned, we're doing that already: :) |
@dmagliola,
One use case which I encountered here is to create a custom collector that collects metrics when it's instructed. One example on Go language is in this LXD exporter which exports metrics as instructed. I think this isn't possible for current version of client_ruby. |
Thank you for your explanation @nieltg ! My understanding so far is that the way the Ruby client works, the main difference between a "regular" Metric, and a "Custom Collector" is that the Custom Collector can actually define multiple metrics. This is what makes it non-trivial to implement. And the other of course being that these metrics inside the Custom Collector get their value assigned at scrape time, rather than during normal app operation. Is that correct? If we had a solution where we have a |
Yes.
No. collect should return all the metrics, as a collector doesn't always know which metrics it'll return in advance (plus that'd be racy). |
Ah, right, excellent. Thank you! |
The client library should follow our standard collector design and not scrape metrics directly: https://prometheus.io/docs/instrumenting/writing_clientlibs/#overall-structure
The text was updated successfully, but these errors were encountered: