Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign upMake Prometheus tolerate dynamic values #1636
Comments
brian-brazil
added
the
kind/support
label
May 17, 2016
This comment has been minimized.
This comment has been minimized.
|
If you wish to assert that a particular label set exists for a metric the standard way to do that is on the client side. See https://prometheus.io/docs/practices/instrumentation/#avoid-missing-metrics Doing it on the server side would be quite complex, and the doing it on the client has proven to work fine thus far. What you propose would only work where each combination had the same labels, which is not always the case. |
mwitkow
changed the title
Add metadata hints about possible label values
Make Prometheus tolerate dynamic values
May 18, 2016
This comment has been minimized.
This comment has been minimized.
|
@brian-brazil in the other issue:
If there are post-mortems related to this, then it's clearly an issue with the system's design. As grpc-ecosystem/go-grpc-prometheus#5 shows, expecting third-parties to provide all the necessary interfaces is not practical.
The "let's expect clients to handle everything correctly" is an approach that would work at Google, where theres us a significant homogenity of technologies and libraries. Giving people a library that cannot be correctly (since "obvious ways" have significant risks that you point out) integrated with existing interfaces (where others like statsd or logstash can) is not a good strategy for adoption. |
This comment has been minimized.
This comment has been minimized.
This is a fundamental problem with time series monitoring. At some point you have to know about all the time series that are meant to exist.
That doesn't apply here. Either the developer of the client or the end user must handle this correctly, we can't do it in the Prometheus server alone. Your proposal is about the client handling this.
The library can be used correctly, many applications already do so, and there are no significant risks to doing so (just a small performance hit, which is only at initialisation in most cases - see Line 85 in e83f05f Statsd as a component of a time series monitoring system has the same fundamental problem, and I don't believe it's possible to use it correctly. |
fabxc
added
kind/enhancement
priority/Pmaybe
and removed
kind/support
labels
May 24, 2016
This comment has been minimized.
This comment has been minimized.
|
We already have a standard solution to this problem in client libraries, no need to add anything on the Prometheus side. |
brian-brazil
closed this
Feb 13, 2017
This comment has been minimized.
This comment has been minimized.
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. |
mwitkow commentedMay 17, 2016
In grpc-ecosystem/go-grpc-prometheus#5 @brian-brazil brought up as an issue the discoverability of label values when all labels can't be pre-populated.
I believe that this is better handled through metric metadata (already such a concept exists, but is not utilized). An additional annotation alongside the
helpstring that lists "predefined" values for a given label could then be scraped and stored by Prometheus.