This topic describes the metrics supported by kube-controller-manager and provides usage notes for the dashboards of kube-controller-manager.
Metrics
Metrics can indicate the status and parameter settings of a component. The following table describes the metrics supported by kube-controller-manager.
Metric | Type | Description |
workqueue_adds_total | Counter | The number of Adds events processed by the workqueue. |
workqueue_depth | Gauge | The length of the workqueue. |
workqueue_queue_duration_seconds_bucket | Histogram | The duration for which a task remains in the workqueue. |
memory_utilization_byte | Gauge | The memory usage. Unit: bytes. |
memory_utilization_ratio | Gauge | Memory utilization = Amount of used memory/Total amount of memory. Unit: %. |
cpu_utilization_core | Gauge | The CPU usage. Unit: vCores. |
cpu_utilization_ratio | Gauge | CPU utilization = Number of used vCores/Total number of vCores. Unit: %. |
rest_client_requests_total | Counter | The number of HTTP requests calculated based on status codes, methods, and hosts. |
rest_client_request_duration_seconds_bucket | Histogram | The HTTP response latency calculated based on Verbs and URLs. |
Usage notes for dashboards
You can modify the quantile (request quantile) and interval (PromQL sampling interval) parameters in the upper-left corner of the ACK Pro Kube Controller Manager dashboard. Dashboards are generated based on metrics and Prometheus Query Language (PromQL). The following sections describe the observability and features of the dashboards of kube-controller-manager.
Workqueue
Observability
Features
Dashboard
PromQL
Description
Workqueue Rate
sum(rate(workqueue_adds_total{job="ack-kube-controller-manager"}[$interval])) by (name)
None
Workqueue Depth
sum(rate(workqueue_depth{job="ack-kube-controller-manager"}[$interval])) by (name)
None
Workqueue Latency
histogram_quantile($quantile, sum(rate(workqueue_queue_duration_seconds_bucket{job="ack-kube-controller-manager"}[5m])) by (name, le))
None
Resources
Observability
Features
Dashboard | PromQL | Description |
Memory Utilization | memory_utilization_byte{container="kube-controller-manager"} | The memory usage. Unit: bytes. |
CPU Utilization | cpu_utilization_core{container="kube-controller-manager"}*1000 | The CPU usage. Unit: millicores. |
Memory Utilization Rate | memory_utilization_ratio{container="kube-controller-manager"} | The memory utilization. Unit: percentage. |
CPU Utilization Rate | cpu_utilization_ratio{container="kube-controller-manager"} | The CPU utilization. Unit: percentage. |
Kube API
Observability
Features
Dashboard
PromQL
Description
Kube API Request Rate
sum(rate(rest_client_requests_total{job="ack-scheduler",code=~"2.."}[$interval])) by (method,code)
sum(rate(rest_client_requests_total{job="ack-scheduler",code=~"3.."}[$interval])) by (method,code)
sum(rate(rest_client_requests_total{job="ack-scheduler",code=~"4.."}[$interval])) by (method,code)
sum(rate(rest_client_requests_total{job="ack-scheduler",code=~"5.."}[$interval])) by (method,code)
The number of HTTP requests sent by kube-controller-manager to kube-apiserver per second. The QPS value is calculated based on methods and status codes.
Kube API Request Latency
histogram_quantile($quantile, sum(rate(rest_client_request_duration_seconds_bucket{job="ack-kube-controller-manager"}[$interval])) by (verb,url,le))
The interval of time between a request sent by kube-controller-manager and a response returned by kube-apiserver. The latency is calculated based on Verbs and URLs.