fgrpc

package
v1.0.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 9, 2023 License: Apache-2.0 Imports: 23 Imported by: 0

Documentation

Overview

Package fgrpc is a generated protocol buffer package.

It is generated from these files:

ping.proto

It has these top-level messages:

PingMessage

Index

Constants

View Source
const (
	// DefaultHealthServiceName is the default health service name used by fortio.
	DefaultHealthServiceName = "ping"
	// Error indicates that something went wrong with healthcheck in grpc.
	Error = "ERROR"
)

Variables

This section is empty.

Functions

func Dial

Dial dials grpc using insecure or tls transport security when serverAddr has prefixHTTPS or cert is provided. If override is set to a non empty string, it will override the virtual host name of authority in requests.

func PingClientCall

func PingClientCall(serverAddr string, n int, payload string, delay time.Duration, tlsOpts *fhttp.TLSOptions, md metadata.MD,
) (float64, error)

PingClientCall calls the ping service (presumably running as PingServer on the destination). returns the average round trip in seconds.

func PingServer

func PingServer(port, healthServiceName string, maxConcurrentStreams uint32, tlsOptions *fhttp.TLSOptions) net.Addr

PingServer starts a grpc ping (and health) echo server. returns the port being bound (useful when passing "0" as the port to get a dynamic server). Pass the healthServiceName to use for the grpc service name health check (or pass DefaultHealthServiceName) to be marked as SERVING. Pass maxConcurrentStreams > 0 to set that option.

func PingServerTCP

func PingServerTCP(port, healthServiceName string, maxConcurrentStreams uint32, tlsOptions *fhttp.TLSOptions) int

PingServerTCP is PingServer() assuming tcp instead of possible unix domain socket port, returns the numeric port.

func RegisterPingServerServer

func RegisterPingServerServer(s *grpc.Server, srv PingServerServer)

Types

type GRPCRunnerOptions

type GRPCRunnerOptions struct {
	periodic.RunnerOptions
	fhttp.TLSOptions
	Destination        string
	Service            string        // Service to be checked when using grpc health check
	Profiler           string        // file to save profiles to. defaults to no profiling
	Payload            string        // Payload to be sent for grpc ping service
	Streams            int           // number of streams. total go routines and data streams will be streams*numthreads.
	Delay              time.Duration // Delay to be sent when using grpc ping service
	CertOverride       string        // Override the cert virtual host of authority for testing
	AllowInitialErrors bool          // whether initial errors don't cause an abort
	UsePing            bool          // use our own Ping proto for grpc load instead of standard health check one.
	Metadata           metadata.MD   // input metadata that will be added to the request
	// contains filtered or unexported fields
}

GRPCRunnerOptions includes the base RunnerOptions plus grpc specific options.

type GRPCRunnerResults

type GRPCRunnerResults struct {
	periodic.RunnerResults

	RetCodes    HealthResultMap
	Destination string
	Streams     int
	Ping        bool
	Metadata    metadata.MD
	// contains filtered or unexported fields
}

GRPCRunnerResults is the aggregated result of an GRPCRunner. Also is the internal type used per thread/goroutine.

func RunGRPCTest

func RunGRPCTest(o *GRPCRunnerOptions) (*GRPCRunnerResults, error)

RunGRPCTest runs an http test and returns the aggregated stats.

func (*GRPCRunnerResults) Run

func (grpcstate *GRPCRunnerResults) Run(outCtx context.Context, t periodic.ThreadID) (bool, string)

Run exercises GRPC health check or ping at the target QPS. To be set as the Function in RunnerOptions.

type HealthResultMap

type HealthResultMap map[string]int64

HealthResultMap short cut for the map of results to count.

func GrpcHealthCheck

func GrpcHealthCheck(serverAddr, svcname string, n int, tlsOpts *fhttp.TLSOptions, md metadata.MD) (*HealthResultMap, error)

GrpcHealthCheck makes a grpc client call to the standard grpc health check service.

type PingMessage

type PingMessage struct {
	Seq        int64  `protobuf:"varint,1,opt,name=seq" json:"seq,omitempty"`
	Ts         int64  `protobuf:"varint,2,opt,name=ts" json:"ts,omitempty"`
	Payload    string `protobuf:"bytes,3,opt,name=payload" json:"payload,omitempty"`
	DelayNanos int64  `protobuf:"varint,4,opt,name=delayNanos" json:"delayNanos,omitempty"`
}

func (*PingMessage) Descriptor

func (*PingMessage) Descriptor() ([]byte, []int)

func (*PingMessage) GetDelayNanos

func (m *PingMessage) GetDelayNanos() int64

func (*PingMessage) GetPayload

func (m *PingMessage) GetPayload() string

func (*PingMessage) GetSeq

func (m *PingMessage) GetSeq() int64

func (*PingMessage) GetTs

func (m *PingMessage) GetTs() int64

func (*PingMessage) ProtoMessage

func (*PingMessage) ProtoMessage()

func (*PingMessage) Reset

func (m *PingMessage) Reset()

func (*PingMessage) String

func (m *PingMessage) String() string

type PingServerClient

type PingServerClient interface {
	Ping(ctx context.Context, in *PingMessage, opts ...grpc.CallOption) (*PingMessage, error)
}

func NewPingServerClient

func NewPingServerClient(cc *grpc.ClientConn) PingServerClient

type PingServerServer

type PingServerServer interface {
	Ping(context.Context, *PingMessage) (*PingMessage, error)
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL