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

Configurable parameters for the test

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.

Measurements made by the test

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