Skip to main content

RpmConfigOpts

Struct RpmConfigOpts 

Source
pub struct RpmConfigOpts {
    pub moving_average_distance: usize,
    pub std_tolerance: f64,
    pub trimmed_mean_percent: f64,
    pub max_loaded_connections: usize,
    pub interval_duration_ms: Duration,
    pub test_duration_ms: Duration,
    pub conn_type: ConnectionType,
    pub upload_bytes_per_request: usize,
}

Fields§

§moving_average_distance: usize

The number of intervals to use when calculating the moving average.

§std_tolerance: f64

How far a measurement is allowed to be from the previous moving average before the measurement is considered unstable.

§trimmed_mean_percent: f64

Determines which percentile to use for averaging when calculating the trimmed mean of throughputs or RPM scores. A value of 0.95 means to only use values in the 95th percentile to calculate an average.

§max_loaded_connections: usize

The maximum number of loaded connections that the test can use to saturate the network.

§interval_duration_ms: Duration

The duration between test intervals.

§test_duration_ms: Duration

The overall test duration.

§conn_type: ConnectionType

Create an HTTP/1.1, HTTP/2, or HTTP/3 connection.

§upload_bytes_per_request: usize

Maximum bytes sent in any single upload load-generating request.

Upload load is generated as a sequence of requests of this size on each connection, rather than one enormous request, because servers may cap request body size and reject anything larger with HTTP 413. Such caps apply per-request, so staying under one here keeps the link loaded indefinitely without ever tripping it.

Must be below the smallest such cap on the path, with margin. It has no effect on connections too slow to send this many bytes within the test duration, since their first request never completes either way.

Trait Implementations§

Source§

impl Debug for RpmConfigOpts

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for RpmConfigOpts

Source§

fn default() -> Self

Return RpmConfigOpts { moving_average_distance: 4, std_tolerance: 0.05, trimmed_mean_percent: 0.95, max_loaded_connections: 16, interval_duration_ms: Duration::from_millis(500), test_duration_ms: Duration::from_millis(12_000), conn_type: ConnectionType::H2, upload_bytes_per_request: 100_000_000 }

Source§

impl<'de> Deserialize<'de> for RpmConfigOpts

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<T> NoneValue for T
where T: Default,

§

type NoneType = T

§

fn null_value() -> T

The none-equivalent value.
§

impl<T> PolicyExt for T
where T: ?Sized,

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more