Enum goose::metrics::GooseCoordinatedOmissionMitigation [−][src]
pub enum GooseCoordinatedOmissionMitigation { Average, Maximum, Minimum, Disabled, }
Expand description
Mitigate the loss of data (coordinated omission) due to stalls on the upstream server.
Stalling can happen for many reasons, for example: garbage collection, a cache stampede,
even unrelated load on the same server. Without any mitigation, Goose loses
statistically relevant information as GooseUser
threads are unable to make additional requests while they are blocked by an upstream stall.
Goose mitigates this by backfilling the requests that would have been made during that time.
Backfilled requests show up in the --request-file
if enabled, though they were not actually
sent to the server.
By default, Goose is configured to backfill based on the Average response time seen for the stalled request. However, different server configurations and testing plans can work on different assumptions so the following configurations are supported.
Variants
Backfill based on the average response_time for this request (default).
Backfill based on the maximum response_time for this request.
Backfill based on the minimum response_time for this request.
Completely disable coordinated omission mitigation.
Trait Implementations
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Allow --co-mitigation
from the command line using text variations on supported
GooseCoordinatedOmissionMitigation
s by implementing FromStr
.
fn set_default(
self,
key: GooseDefault,
value: GooseCoordinatedOmissionMitigation
) -> Result<Box<Self>, GooseError>
Auto Trait Implementations
impl Send for GooseCoordinatedOmissionMitigation
impl Sync for GooseCoordinatedOmissionMitigation
impl Unpin for GooseCoordinatedOmissionMitigation
Blanket Implementations
Mutably borrows from an owned value. Read more
Compare self to key
and return true
if they are equal.
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
type Output = T
type Output = T
Should always be Self
pub fn vzip(self) -> V