pub struct UsageSnapshot {
pub records_read: u64,
pub records_written: u64,
pub bytes_read: u64,
pub bytes_written: u64,
pub source_roundtrips: BTreeMap<String, u64>,
pub sink_roundtrips: BTreeMap<String, u64>,
pub signals: Vec<CostSignal>,
pub throttled: u64,
pub throttle_wait_secs: f64,
pub source_retries: BTreeMap<String, u64>,
}Expand description
The counters a run accumulated, frozen for reporting and storage.
Fields§
§records_read: u64Records the source yielded.
records_written: u64Records the sink accepted.
bytes_read: u64Estimated serialized bytes read.
bytes_written: u64Estimated serialized bytes written.
source_roundtrips: BTreeMap<String, u64>Source backend round trips by op (page, get, list, …).
sink_roundtrips: BTreeMap<String, u64>Sink backend round trips by op (insert, put, merge, …).
signals: Vec<CostSignal>Backend-reported usage figures.
throttled: u64Rate-limit responses (HTTP 429 and equivalents) the source received.
throttle_wait_secs: f64Seconds the source actually slept because of those responses.
source_retries: BTreeMap<String, u64>Source-side retries by retry class (rate_limited, http_5xx,
connection, timeout).
Implementations§
Source§impl UsageSnapshot
impl UsageSnapshot
Sourcepub fn roundtrips(&self, side: UsageSide) -> u64
pub fn roundtrips(&self, side: UsageSide) -> u64
Total round trips on side.
Sourcepub fn merge(&mut self, other: &UsageSnapshot)
pub fn merge(&mut self, other: &UsageSnapshot)
Fold another snapshot into this one (sums; signals concatenated).
Trait Implementations§
Source§impl Clone for UsageSnapshot
impl Clone for UsageSnapshot
Source§impl Debug for UsageSnapshot
impl Debug for UsageSnapshot
Source§impl Default for UsageSnapshot
impl Default for UsageSnapshot
Source§impl<'de> Deserialize<'de> for UsageSnapshot
impl<'de> Deserialize<'de> for UsageSnapshot
Source§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
Source§impl JsonSchema for UsageSnapshot
impl JsonSchema for UsageSnapshot
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Returns a string that uniquely identifies the schema produced by this type. Read more
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Generates a JSON Schema for this type. Read more
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
Whether JSON Schemas generated for this type should be included directly in parent schemas,
rather than being re-used where possible using the
$ref keyword. Read moreSource§impl PartialEq for UsageSnapshot
impl PartialEq for UsageSnapshot
Source§impl Serialize for UsageSnapshot
impl Serialize for UsageSnapshot
impl StructuralPartialEq for UsageSnapshot
Auto Trait Implementations§
impl Freeze for UsageSnapshot
impl RefUnwindSafe for UsageSnapshot
impl Send for UsageSnapshot
impl Sync for UsageSnapshot
impl Unpin for UsageSnapshot
impl UnsafeUnpin for UsageSnapshot
impl UnwindSafe for UsageSnapshot
Blanket Implementations§
impl<T> Allocation for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request