Documentation ¶
Overview ¶
Package protocol implements the agent that injects disruptors in protocols. The protocol disruptors run as a proxy. The agent redirects the traffic to the proxy using iptables.
Index ¶
Constants ¶
const ( // MetricRequests is the total number of requests received by the proxy. MetricRequests = "requests_total" // MetricRequestsExcluded is the total number of requests passed through due to exclusion rules. MetricRequestsExcluded = "requests_excluded" // MetricRequestsDisrupted is the total number requests that the proxy altered in any way. MetricRequestsDisrupted = "requests_disrupted" )
Variables ¶
var ErrNoRequests = errors.New("disruptor did not receive any request")
ErrNoRequests is returned when a proxy supports MetricRequests and returns a value of 0 for it.
Functions ¶
This section is empty.
Types ¶
type Disruptor ¶
Disruptor defines the interface agent
func NewDisruptor ¶
func NewDisruptor( executor runtime.Executor, proxy Proxy, redirector TrafficRedirector, ) (Disruptor, error)
NewDisruptor creates a new instance of a Disruptor that applies a disruptions to a target The configuration controls how the disruptor operates.
type MetricMap ¶ added in v0.3.8
type MetricMap struct {
// contains filtered or unexported fields
}
MetricMap is a simple storage for name-indexed counter metrics.
func NewMetricMap ¶ added in v0.3.8
NewMetricMap returns a MetricMap with the specified metrics initialized to zero.
type Proxy ¶
type Proxy interface { Start() error Stop() error // Metrics returns a map of counter-type metrics. Implementations may return zero or more of the metrics defined // below, as well as any number of implementation-defined metrics. Callers can check if a metric exists in the map // returned by Metrics to distinguish a counter with a value of zero from an unsupported metric. Metrics() map[string]uint Force() error }
Proxy defines an interface for a proxy
type TrafficRedirector ¶ added in v0.3.3
type TrafficRedirector interface { // Start initiates the redirection of traffic and resets existing connections Start() error // Stop restores the traffic to the original target and resets existing connections // to the redirection target Stop() error }
TrafficRedirector defines the interface for a traffic redirector
func NoopTrafficRedirector ¶ added in v0.3.3
func NoopTrafficRedirector() TrafficRedirector
NoopTrafficRedirector returns a dummy traffic redirector that has no effect
Directories ¶
Path | Synopsis |
---|---|
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
|
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 |
Package http implements a proxy that applies disruptions to HTTP requests
|
Package http implements a proxy that applies disruptions to HTTP requests |