-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Propagate select pod labels to all metrics without requiring promql metric joins. #2551
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
Comments
This issue is currently awaiting triage. If kube-state-metrics contributors determine this is a relevant issue, they will accept it by applying the The Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
+1 It would also be convenient if all resources' metrics |
See the discussion here kubernetes#2551 This frees users from having to join on the various label series, which is useful when infrastructure has agents that can't do recording rules.
Walked a possible implementation out here: Just targeted |
See the discussion here kubernetes#2551 This frees users from having to join on the various label series, which is useful when infrastructure has agents that can't do recording rules.
See the discussion here kubernetes#2551 This frees users from having to join on the various label series, which is useful when infrastructure has agents that can't do recording rules.
Uh oh!
There was an error while loading. Please reload this page.
What would you like to be added:
In large clusters, pod replicas often represent a "class" or "category" or worker. It's really useful to get metrics broken down by e.g. the pod's controller, or some common label that categorizes pods without the cardinality of tens of thousands of pod IDs.
The time series'
kube_pod_labels
covers some ground, but requires joins. Joins, for usability, often engender recording rules. Recording rules in turn, demand stateful prometheus servers which e.g. 4x the memory footprint in systems like prometheus running in agent mode, or grafana's alloy. Particularly, if one is forwarding the metrics to a 3rd party it's nice to minimize the footprint of in-house infra by keeping things stateless as long as possible - certainly at some point you hit a big beefy backend that you can query.Why not skip the label join requirement entirely? And allow for configurable appending of specific kube pod labels to the underlying time series instead. Again, this works incredibly well with "stateless" prometheus remote-writers and system's like Grafana's adaptive metrics that can do some limited metric aggregation etc without a full recording rule engine.
Why is this needed:
kube_pod_container_status_restarts_total
categorized by a workload without having to jump into recording rules.Describe the solution you'd like
kube_pod_*
time series' without requiring a label join.Additional context
kube_pod_
time series, that does stretch the command line arguments approach though and it might just make sense to leverage the existing allow list and simply have a secondary boolean to enable / disable the label (and I suppose annotation for symmetry...) propagation.The text was updated successfully, but these errors were encountered: