API Server gRPC Performance
gRPC (Google Remote Procedure Call) enables high-performance communication between services. It uses HTTP/2 for multiplexing, which improves speed by allowing multiple requests on a single connection. With efficient serialization via Protocol Buffers (Protobuf), gRPC reduces payload size and enhances throughput. Its bidirectional streaming, low-latency, and support for asynchronous calls make it ideal for scalable API servers.
Monitoring gRPC performance is essential to ensure efficient service communication, detect latency issues, and maintain system reliability. By tracking metrics like response times, error rates, and throughput, teams can identify bottlenecks, optimize resource usage, and improve user experience, ensuring smooth, scalable, and responsive API interactions.
The API Server gRPCTest continuously monitors the API Server in the target node and reports key metrics like number of number of gRPC calls, calls completed, streams received and sent etc. 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 |
---|---|---|---|
RPCs completed by the client |
Indicates the number of Remote Procedure Calls (RPCs) that a client successfully sends and receives responses for. |
Number |
This metric tracks the number of operations or requests completed from the client side, indicating how many interactions with the server were processed successfully without errors. Monitoring this helps measure the system's responsiveness and load handling. |
RPCs started on the client |
Indicates the number of Remote Procedure Calls (RPCs) initiated by the client to the server. |
Number |
This metric tracks the total number of requests sent by the client, regardless of whether they are completed or not. It provides insight into the workload generated by the client and helps measure client-side activity and request load. |
GRPC stream messages received by client |
Indicates the number of gRPC stream messages that a client successfully receives and sends responses for. |
Number |
|
GRPC stream messages sent by the client |
Indicates the number of gRPC stream messages that a client successfully sends and sends responses for. |
Number |
|