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

    func Dial(o *GRPCRunnerOptions) (conn *grpc.ClientConn, err error)

      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, cacert string, n int, payload string, delay time.Duration, insecure bool) (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, cert, key, healthServiceName string, maxConcurrentStreams uint32) 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, cert, key, healthServiceName string, maxConcurrentStreams uint32) 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
            	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
            	CACert             string        // Path to CA certificate for grpc TLS
            	CertOverride       string        // Override the cert virtual host of authority for testing
            	Insecure           bool          // Allow unknown CA / self signed
            	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.
            	UnixDomainSocket   string        // unix domain socket path to use for physical connection instead of Destination
            }

              GRPCRunnerOptions includes the base RunnerOptions plus http specific options.

              type GRPCRunnerResults

              type GRPCRunnerResults struct {
              	periodic.RunnerResults
              
              	RetCodes    HealthResultMap
              	Destination string
              	Streams     int
              	Ping        bool
              	// 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. nolint: funlen, gocognit

                  func (*GRPCRunnerResults) Run

                  func (grpcstate *GRPCRunnerResults) Run(t int)

                    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, cacert string, svcname string, n int, insecure bool) (*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)
                        }