API Server Status Test
The API Server status indicates the health and operational state of the Kubernetes API Server, the central component of the control plane. It manages cluster requests, interacts with etcd, and ensures resource synchronization. Monitoring its status helps detect failures, performance issues, and ensures the cluster's seamless operation.
Monitoring the API Server status is crucial to ensure the health of the Kubernetes control plane. It helps detect failures, performance degradation, or resource constraints, preventing disruptions in cluster operations. Timely monitoring enables proactive issue resolution, ensuring seamless communication between components and maintaining cluster availability and performance.
The API Server Status Test continuously monitors the API Server in the target node and reports key detailing the events, requests, queues and authentication. These metrics are invaluable for the administrators to ensure that service is up and prevent any issues in case service has problems.
Target of the test : A Kubernetes Master Node
Agent deploying the test : A remote agent
Outputs of the test : One set of results for the target Kubernetes Master node being monitored
Parameter |
Description |
---|---|
Test Period |
How often should the test be executed. |
Host |
The IP address of the host for which this test is to be configured. |
Port |
Specify the port at which the specified Host listens. By default, this is 6443. |
Timeout |
Specify the duration (in seconds) beyond which the test will timeout in the Timeout text box. The default value is 10 seconds. |
Metric URL |
Each of the Kubernetes system components expose monitoring metrics through /metrics endpoint of the HTTP server. For components that don't expose endpoint by default, refer official Kubernetes distribution documentation site. Specify the metric URL textbox. |
Measurement |
Description |
Measurement Unit |
Interpretation |
---|---|---|---|
Number of watch event size distribution |
Indicates the number of distributions created for watch event size. |
Number |
Large watch events consume more network bandwidth and memory, potentially overloading the API Server and clients. |
Total watch event size distribution |
Indicate the total number of watch even size distributions. |
Number |
|
Average watch event size distribution |
Indicates the average number of watch event size distribution. |
Number |
|
Max limit of used inflight request |
Indicates the number of requests that the API Server can handle concurrently. |
Number |
This limit ensures that the API Server does not get overwhelmed by excessive requests, maintaining stable performance. |
Long running apiserver requests |
Indicates the number of requests running for long time. |
Number |
Prolonged request processing times can lead to delays in deployments, scaling, or monitoring, affecting cluster responsiveness. |
Number of request latency |
Indicates the number of times the time taken by the Kubernetes API Server to process API requests, was measured. |
Number |
Monitoring this latency provides insights into the performance of the API Server and its ability to handle workloads efficiently. |
Total request latency |
Indicates the total time taken by the Kubernetes API Server to process API all requests. |
Milliseconds |
The API Server exposes metrics that measure latency for different types of requests. |
Average request latency |
Indicates the average time taken by the Kubernetes API Server to process API requests across all requests. |
Milliseconds |
|
Requests apiserver terminated in self-defense |
Indicates the number of requests which are terminated by API Server to improve performace. |
Number |
If the number of concurrent requests surpasses the limits set by --max-requests-inflight or --max-mutating-requests-inflight, the API Server rejects additional requests with a 429 Too Many Requests error. |
Request received by deprecated APIs |
Indicates the API requests made to versions or endpoints that have been marked as deprecated |
Number |
|
Authenticated requests |
Indicates the number of authentication requests sent to the API Server by clients. |
Number |
|
Authenticated request attempts |
Indicates the number of authentication requests attempts made to the API Server by clients. |
Number |
|
Number of request |
Indicates the total number of requests received by API server during the last measurement period. |
Number |
If the number of requests is very high, it can cause some of the requests getting dropped. |
Total request duration |
Indicates the cumulative time taken by the Kubernetes API Server to process all incoming API requests during the last measurement period. |
Milliseconds |
Helps assess whether the API Server is responding to requests within acceptable time limits and if performance tuning is needed. |
Average request duration |
Indicates the mean time taken by the Kubernetes API Server to process individual API requests. |
Milliseconds |
A high average request duration indicates potential bottlenecks in the API Server, etcd, or networking layers. |
HTTP requests |
Indicates the total number of HTTP requests received by API Server. |
Milliseconds |
|
Depth of workqueue |
Indicates the number of items currently present in the workqueue, |
Number |
|
Number of additions handled by work queue |
Indicates the count of items (e.g., resource events) added to a controller’s workqueue for processing. |
Number |
High numbers of additions indicate frequent resource updates or events, which may increase controller load. |
Number of authentication |
Indicates the total number of authentication happened during the last measurement period. |
Number |
|
Total authentication duration |
Indicates the total time taken for the authentication by API Server during the last measurement period. |
Milliseconds |
|
Average authentication duration |
Indicates the average time taken by each authentication request. |
Milliseconds |
|
API Services which are marked as unavailable |
Indicates the number of services which are marked as unavailable by API server after health checks. |
Number |
The API Server periodically checks the health of API services. If a service fails to respond or returns errors, it is marked as unavailable. |