Documentation ¶
Overview ¶
Package flaky can be used to emulate flaky GAE errors that happen randomly with some probability.
NOTE: Emulates only datastore errors currently.
To install it:
ctx, fb := featureBreaker.FilterRDS(ctx, nil) fb.BreakFeaturesWithCallback( flaky.Errors(...), featureBreaker.DatastoreFeatures...)
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrFlakyRPCDeadline = errors.New("simulated RPC deadline error")
ErrFlakyRPCDeadline is returned by FlakyErrors to indicate a deadline.
Functions ¶
func Errors ¶
func Errors(params Params) featureBreaker.BreakFeatureCallback
Errors can be used to emulate flaky GAE errors that happen randomly with some probability.
NOTE: Emulates only datastore errors currently.
Types ¶
type Params ¶
type Params struct { // Rand is a source of pseudo-randomness to use. // // It will be accessed under a lock. // // By default it is new rand.NewSource(0). Rand interface { Int63() int64 // uniformly-distributed pseudo-random value in the range [0, 1<<63) } // DeadlineProbability is a probability of ErrFlakyRPCDeadline happening on // any of the calls that involve RPCs. // // Deadline can happen independently of other errors. For example, // a transaction can fail due to a deadline or due to a commit confict. These // events are assumed to be independent and their probabilities add up // accordingly. // // Default is 0 (no deadline errors at all). DeadlineProbability float64 // ConcurrentTransactionProbability is a probability of datastore commit // returning ErrConcurrentTransaction. // // Default is 0 (no commit errors at all). ConcurrentTransactionProbability float64 }
Params define options for Errors
Click to show internal directories.
Click to hide internal directories.