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>,
pub dlq_records_written: u64,
pub dlq_bytes_written: 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).
dlq_records_written: u64Envelopes written to the dead-letter queue (#870).
dlq_bytes_written: u64Estimated serialized bytes written to the dead-letter queue.
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 summed per kind, unit, side and connector).
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>,
Source§impl JsonSchema for UsageSnapshot
impl JsonSchema for UsageSnapshot
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$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
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> ⓘ
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> ⓘ
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>
T in a tonic::Request