kube-state-metrics: kube-state-metrics breaking release aka 2.0

We have accumulated a number of deprecated metrics and odd behaviors that I believe may justify a 2.0 release. I’d like to take this issue to discuss whether people think this is a good idea and collect what we would potentially like to break should we do a breaking release.

Off the top of my head breaking changes I would like to do:

I would see a breaking release at least 3 months out there, as I would like to validate the performance optimizations independently first. Further thoughts?

@andyxning @zouyee @mxinden

About this issue

  • Original URL
  • State: closed
  • Created 6 years ago
  • Comments: 48 (42 by maintainers)

Commits related to this issue

Most upvoted comments

We finished and release is cut 🎉 Thank you all!!

@bboreham you can also just blacklist those metrics for now until they are removed? --metric-blacklist="kube_configmap_metadata_resource_version" for example should work. 😃

Came here to +1 removal of high-cardinality kube_configmap_metadata_resource_version. This one metric occupies 3% of all the data in our service.

I’m intrigued: what does anyone use this metric for, in its current form?

I would add to the list, renaming all the leftover user-facing occurrences of collectors to resources, as we recently removed the collectors package. That would also mean renaming collector in options to resource. Overall the --resources=pods flag would become more self-descriptive.

/remove-lifecycle stale

One more thing that came up during kubecon: Before we do the v2 release we probably want to do another round of scalability tests. I believe Google volunteered to do this.

Sharding isn’t breaking so I feel it can be added in a backward compatible way in 1.x or 2.x. It’s fairly close to being ready I would say though so I’d like to see it go into a 1.x release.

Sorry I should have been more clear about why I think we should change ports. Anything lower than 1024 requires root on Linux (or at least have the CAP_NET_ADMIN capability). That’s why default ports of kube-state-metrics should be higher than that. And beyond that, whatever we use should be consistent across the pure binary and the container.