Documentation ¶
Overview ¶
Package benchmark implements the building blocks to setup end-to-end gRPC benchmarks.
Index ¶
- Constants
- func DoByteBufStreamingRoundTrip(stream testgrpc.BenchmarkService_StreamingCallClient, reqSize, _ int) error
- func DoStreamingRoundTrip(stream testgrpc.BenchmarkService_StreamingCallClient, reqSize, respSize int) error
- func DoStreamingRoundTripPreloaded(stream testgrpc.BenchmarkService_StreamingCallClient, req any) error
- func DoUnaryCall(tc testgrpc.BenchmarkServiceClient, reqSize, respSize int) error
- func NewClientConn(addr string, opts ...grpc.DialOption) *grpc.ClientConn
- func NewClientConnWithContext(ctx context.Context, addr string, opts ...grpc.DialOption) *grpc.ClientConn
- func NewPayload(t testpb.PayloadType, size int) *testpb.Payload
- func StartServer(info ServerInfo, opts ...grpc.ServerOption) func()
- type ServerInfo
Constants ¶
const PreloadMsgSizeHeader = "preload-msg-size"
PreloadMsgSizeHeader indicates that the client is going to ask for a fixed response size and passes this size to the server. The server is expected to preload the response on startup.
const UnconstrainedStreamingDelayHeader = "unconstrained-streaming-delay"
UnconstrainedStreamingDelayHeader is used to pass the maximum amount of time the server should sleep between consecutive RPC responses.
const UnconstrainedStreamingHeader = "unconstrained-streaming"
UnconstrainedStreamingHeader indicates to the StreamingCall handler that its behavior should be unconstrained (constant send/receive in parallel) instead of ping-pong.
Variables ¶
This section is empty.
Functions ¶
func DoByteBufStreamingRoundTrip ¶
func DoByteBufStreamingRoundTrip(stream testgrpc.BenchmarkService_StreamingCallClient, reqSize, _ int) error
DoByteBufStreamingRoundTrip performs a round trip for a single streaming rpc, using a custom codec for byte buffer.
func DoStreamingRoundTrip ¶
func DoStreamingRoundTrip(stream testgrpc.BenchmarkService_StreamingCallClient, reqSize, respSize int) error
DoStreamingRoundTrip performs a round trip for a single streaming rpc.
func DoStreamingRoundTripPreloaded ¶ added in v1.57.0
func DoStreamingRoundTripPreloaded(stream testgrpc.BenchmarkService_StreamingCallClient, req any) error
DoStreamingRoundTripPreloaded performs a round trip for a single streaming rpc with preloaded payload.
func DoUnaryCall ¶
func DoUnaryCall(tc testgrpc.BenchmarkServiceClient, reqSize, respSize int) error
DoUnaryCall performs an unary RPC with given stub and request and response sizes.
func NewClientConn ¶
func NewClientConn(addr string, opts ...grpc.DialOption) *grpc.ClientConn
NewClientConn creates a gRPC client connection to addr.
func NewClientConnWithContext ¶ added in v1.13.0
func NewClientConnWithContext(ctx context.Context, addr string, opts ...grpc.DialOption) *grpc.ClientConn
NewClientConnWithContext creates a gRPC client connection to addr using ctx.
func NewPayload ¶ added in v1.18.0
func NewPayload(t testpb.PayloadType, size int) *testpb.Payload
NewPayload creates a payload with the given type and size.
func StartServer ¶
func StartServer(info ServerInfo, opts ...grpc.ServerOption) func()
StartServer starts a gRPC server serving a benchmark service according to info. It returns a function to stop the server.
Types ¶
type ServerInfo ¶
type ServerInfo struct { // Type is the type of the server. // It should be "protobuf" or "bytebuf". Type string // Metadata is an optional configuration. // For "protobuf", it's ignored. // For "bytebuf", it should be an int representing response size. Metadata any // Listener is the network listener for the server to use Listener net.Listener }
ServerInfo contains the information to create a gRPC benchmark server.
Directories ¶
Path | Synopsis |
---|---|
Package main provides benchmark with setting flags.
|
Package main provides benchmark with setting flags. |
To format the benchmark result:
|
To format the benchmark result: |
Package main provides a client used for benchmarking.
|
Package main provides a client used for benchmarking. |
Package flags provide convenience types and routines to accept specific types of flag values on the command line.
|
Package flags provide convenience types and routines to accept specific types of flag values on the command line. |
Package latency provides wrappers for net.Conn, net.Listener, and net.Dialers, designed to interoperate to inject real-world latency into network connections.
|
Package latency provides wrappers for net.Conn, net.Listener, and net.Dialers, designed to interoperate to inject real-world latency into network connections. |
Package main provides a server used for benchmarking.
|
Package main provides a server used for benchmarking. |
Package stats tracks the statistics associated with benchmark runs.
|
Package stats tracks the statistics associated with benchmark runs. |
Binary worker implements the benchmark worker that can turn into a benchmark client or server.
|
Binary worker implements the benchmark worker that can turn into a benchmark client or server. |