Open timebertt opened 4 years ago
We had an internal discussion with @wyb1 and @istvanballok. Thanks again for the productive session!
To summarize, we formalized the following action items / plan for this topic:
/assign @danielfoehrKn as he showed some interest in this these topics and might start looking into it
After initially looking into it, I have to say that I would need a considerable amount of time and focus for this topic ( this is one of the areas I am least familiar in ) that I do not have at the moment. Lets discuss this in a bigger round when @timebertt is back.
/unassign
/touch
/assign @timuthy @rfranzke
/unassign @timuthy @rfranzke for now in favor of #1723 and #1724 and #1725
/touch
cc @shafeeqes
@shafeeqes @timebertt Can you check whether this issue is still up-to-date and if not change the description accordingly? :) Thank you!
I think
controller workqueue stats (depth, dirty, inflight, duration, ...)
is completed with #7180
I checked off a few of the tasks that are already done with the controller runtime refactoring. I expect that alerts won't be done, as alerts are kind of orphaned and unmaintained in this repository. The remaining open tasks for additional metrics and dashboards could partially still be interesting to add.
How to categorize this issue?
/area monitoring ops-productivity /kind enhancement /priority normal
What would you like to be added: Currently the
/metrics
endpoint of our components (gcm, g-scheduler, gardenlet) only expose some very rudimentary metrics:{garden_cm,gardener_scheduler,gardenlet}_worker_amount
, basic go runtime metrics and prometheus http handler metrics. AFAIK, we don't display any of those metrics in any dashboard.We should augment the set of component metrics, that are collected and exposed to improve observability of the gardener core components. The client-go and controller-runtime libraries contain some helpers for collecting controller related metrics, that can/should be leveraged for that (see client-go and c-r).
Helpful client-side metrics would be:
short_watches_total
,watch_duration
,lists_total
)Further server-side metrics, that would also be helpful:
More advanced metrics, that could be displayed in dashboards or used in alerts, may include (but not so important):
We could then add dedicated dashboards for all gardener system components displaying:
Once we gained some experience with those metrics, we could build more alerts based on those metrics regarding our system components, for example:
Why is this needed: While operating fast growing gardener systems, it is important to be able to have deeper insights for its system components. In the past few months we have observed some issues regarding scalability/stability/availability which are very hard to debug, reproduce and fix (e.g. #2689, #2747). Having component-aware metrics, alerts and dashboards will help in running and operating large-scale gardener installations, while maintaining quality of service and keeping operational effort low.
/cc @wyb1 @istvanballok