sre

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Oct 26, 2023 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// StateOpen when circuit breaker open, request not allowed, after sleep
	// some duration, allow one single request for testing the health, if ok
	// then state reset to closed, if not continue the step.
	StateOpen int32 = iota
	// StateClosed when circuit breaker closed, request allowed, the breaker
	// calc to succeed ratio, if request num greater request setting and
	// ratio lower than the setting ratio, then reset state to open.
	StateClosed
)

Variables

This section is empty.

Functions

func NewBreaker

func NewBreaker(opts ...Option) circuitbreaker.CircuitBreaker

NewBreaker return a sreBreaker with options

Types

type Breaker

type Breaker struct {
	// contains filtered or unexported fields
}

Breaker is a sre CircuitBreaker pattern.

func (*Breaker) Allow

func (b *Breaker) Allow() error

Allow request if error returns nil.

func (*Breaker) MarkFailed

func (b *Breaker) MarkFailed()

MarkFailed mark request is failed.

func (*Breaker) MarkSuccess

func (b *Breaker) MarkSuccess()

MarkSuccess mark request is success.

type Option

type Option func(*options)

Option is sre breaker option function.

func WithBucket

func WithBucket(b int) Option

WithBucket set the bucket number in a window duration.

func WithRequest

func WithRequest(r int64) Option

WithRequest with the minimum number of requests allowed.

func WithSuccess

func WithSuccess(s float64) Option

WithSuccess with the K = 1 / Success value of sre breaker, default success is 0.5 Reducing the K will make adaptive throttling behave more aggressively, Increasing the K will make adaptive throttling behave less aggressively.

func WithWindow

func WithWindow(d time.Duration) Option

WithWindow with the duration size of the statistical window.

Jump to

Keyboard shortcuts

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