grpc

package
v0.3.11 Latest Latest
Warning

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

Go to latest
Published: Feb 14, 2024 License: AGPL-3.0 Imports: 14 Imported by: 0

Documentation

Overview

Package grpc implements a proxy that applies disruptions to gRPC requests This package is inspired by and extensively copies code from https://github.com/mwitkow/grpc-proxy

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewHandler

func NewHandler(disruption Disruption, forwardConn *grpc.ClientConn, metrics *protocol.MetricMap) grpc.StreamHandler

NewHandler returns a StreamHandler that attempts to proxy all requests that are not registered in the server.

func NewProxy

func NewProxy(listener net.Listener, upstreamAddress string, d Disruption) (protocol.Proxy, error)

NewProxy return a new Proxy

Types

type Disruption

type Disruption struct {
	// Average delay introduced to requests
	AverageDelay time.Duration
	// Variation in the delay (with respect of the average delay)
	DelayVariation time.Duration
	// Fraction (in the range 0.0 to 1.0) of requests that will return an error
	ErrorRate float32
	// Status code to be returned by requests selected to return an error
	StatusCode int32
	// Status message to be returned in requests selected to return an error
	StatusMessage string
	// List of grpc services to be excluded from disruptions
	Excluded []string
}

Disruption specifies disruptions in grpc requests

Jump to

Keyboard shortcuts

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