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
Performance / custom dashboards: new configs #3668
Conversation
- discovery_enabled (true/false/auto) to switch discovery mode - discovery_auto_threshold: pods threshold above which discovery is skipped in auto mode Part of kiali#3660
cc @primeroz Note, I'll address the prometheus API improvement in a separate PR |
Testers: a simple way to test is to have some runtime metrics demo and scale up pods. Example:
kubectl label namespace default istio-injection=enabled
kubectl apply -f <(curl -L https://raw.githubusercontent.com/jotak/demo-mesh-arena/zizou/quickstart-metrics.yml) -n default
|
@jotak i ll test this afternoon when i can get the change merged. So, to understand this correctly, with this change i should get custom dashboards in istio-system namespace for kiali ( since there are only a few pods there ) but not in my busy namespaces. right ? thanks for the quick turn around |
@primeroz yes that's the idea, though it's not per namespace decision, but per app/workload |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Verified:
- discovery_enabled=true it discovers custom dashboards in any case (discovery_auto_threshold is ignored)
- discovery_enabled=false it does not discover custom dashboards (discovery_auto_threshold is ignored)
- discovery_enabled=auto custom dashboards are discovered when pods count are less than discovery_auto_threshold value
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGFM
@jotak Is working for me as well sort of but there are still a couple of issues:
I don't know exactly how this bit works but i have a situation like this:
Also for some reasons, probably unrelated to your change but maybe part of 1.30 branch, in the workload page in the
even though the path is correct and it includes the namespace |
It's expected that, when autodiscovery is run, it continues to run that "Series" query. I think the quickest thing to do for you is just to turn off the discovery (you'll still be able to have dashboards from annotations). But there's also an alternative, because even if with this simple flag turned off you get decent performances, you may still run into troubles later at higher scale. What's recommended when you hit the metrics cardinality problem, is to change your prometheus setup to decrease the retention time on istio's prometheus, have that prometheus strictly limited to scraping istio metrics (no more), and have a second prometheus instance that can scrape more targets and also rewrites istio metrics by discarding a couple of data (essentially pod information). The two prometheus are connected through federation. This is described more in details here: https://istio.io/latest/docs/ops/best-practices/observability/#using-prometheus-for-production-scale-monitoring
My bad, I messed up this while building the image, don't worry it's not part of this pull request (it's what I did yesterday to disable the mini-graph when we weren't sure yet what was causing your issue) |
perfect, that is good enough for me. I will wait for this feature to release and will set just the autodiscovery off while keeping the custom dashboards on thanks! |
Thanks for tests and reviews, I'll merge and backport to 1.29 |
- discovery_enabled (true/false/auto) to switch discovery mode - discovery_auto_threshold: pods threshold above which discovery is skipped in auto mode Part of kiali#3660
skipped in auto mode
Part of #3660
Operator PR: kiali/kiali-operator#243