Documentation
¶
Index ¶
- func EnsureCircuitBreaker(breaker circuitbreaking.CircuitBreaker) circuitbreaking.CircuitBreaker
- func ProvideCircuitBreakerFromConfig(ctx context.Context, cfg *Config, logger logging.Logger, ...) (circuitbreaking.CircuitBreaker, error)
- func RegisterCircuitBreaker(i do.Injector)
- type Config
- type ProvideOption
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func EnsureCircuitBreaker ¶
func EnsureCircuitBreaker(breaker circuitbreaking.CircuitBreaker) circuitbreaking.CircuitBreaker
EnsureCircuitBreaker ensures a valid CircuitBreaker is made available.
func ProvideCircuitBreakerFromConfig ¶
func ProvideCircuitBreakerFromConfig(ctx context.Context, cfg *Config, logger logging.Logger, metricsProvider metrics.Provider, opts ...ProvideOption) (circuitbreaking.CircuitBreaker, error)
ProvideCircuitBreakerFromConfig provides a CircuitBreaker from config.
func RegisterCircuitBreaker ¶
RegisterCircuitBreaker registers a CircuitBreaker with the injector.
Types ¶
type Config ¶
type Config struct {
Name string `env:"NAME" json:"name"`
ErrorRate float64 `env:"ERROR_RATE" json:"circuitBreakerErrorPercentage"`
MinimumSampleThreshold uint64 `env:"MINIMUM_SAMPLE_THRESHOLD" json:"circuitBreakerMinimumOccurrenceThreshold"`
}
func (*Config) EnsureDefaults ¶
func (cfg *Config) EnsureDefaults()
func (*Config) ProvideCircuitBreaker ¶
func (cfg *Config) ProvideCircuitBreaker(ctx context.Context, logger logging.Logger, metricsProvider metrics.Provider, opts ...ProvideOption) (circuitbreaking.CircuitBreaker, error)
ProvideCircuitBreaker provides a CircuitBreaker.
type ProvideOption ¶
type ProvideOption func(*provideOptions)
ProvideOption customizes how a CircuitBreaker is provided.
func WithMetricAttributes ¶
func WithMetricAttributes(attrs ...attribute.KeyValue) ProvideOption
WithMetricAttributes attaches a fixed set of attributes to every metric the circuit breaker emits. It is used to distinguish breakers that share counter names (for example, tagging a per-key breaker with its partition).
Click to show internal directories.
Click to hide internal directories.