Skip to main content

Snapshot

Struct Snapshot 

Source
pub struct Snapshot {
Show 27 fields pub info: ServiceInfo, pub uptime: i64, pub timestamp: i64, pub latency: HistogramSummary, pub payload_size: HistogramSummary, pub cross_region_latency: HistogramSummary, pub cross_zone_latency: HistogramSummary, pub server_latency: HistogramSummary, pub cross_region_queue_wait: HistogramSummary, pub cross_zone_queue_wait: HistogramSummary, pub server_queue_wait: HistogramSummary, pub client_out_queue_p99: u64, pub server_in_queue_p99: u64, pub server_out_queue_p99: u64, pub dnode_client_out_queue_p99: u64, pub peer_in_queue_p99: u64, pub peer_out_queue_p99: u64, pub remote_peer_in_queue_p99: u64, pub remote_peer_out_queue_p99: u64, pub alloc_msgs: i64, pub free_msgs: i64, pub alloc_mbufs: i64, pub free_mbufs: i64, pub dyn_memory: i64, pub pool: PoolStats, pub server: ServerStats, pub failure: FailureSnapshot,
}
Expand description

Aggregate snapshot of the stats subsystem at a point in time.

This is the value rendered by Snapshot::to_json and exposed through the REST endpoint. It is Send + Sync and cheap to clone.

Fields§

§info: ServiceInfo

Static identification strings.

§uptime: i64

Seconds since the engine started.

§timestamp: i64

Wall-clock seconds since UNIX epoch.

§latency: HistogramSummary

Latency histogram summary.

§payload_size: HistogramSummary

Payload size histogram summary.

§cross_region_latency: HistogramSummary

Cross-region RTT histogram summary.

§cross_zone_latency: HistogramSummary

Cross-zone latency histogram summary.

§server_latency: HistogramSummary

Per-server latency summary.

§cross_region_queue_wait: HistogramSummary

Cross-region queue wait time summary.

§cross_zone_queue_wait: HistogramSummary

Cross-zone queue wait time summary.

§server_queue_wait: HistogramSummary

Server queue wait time summary.

§client_out_queue_p99: u64

99th percentile of the client outbound queue length.

§server_in_queue_p99: u64

99th percentile of the server inbound queue length.

§server_out_queue_p99: u64

99th percentile of the server outbound queue length.

§dnode_client_out_queue_p99: u64

99th percentile of the dnode client outbound queue length.

§peer_in_queue_p99: u64

99th percentile of the local-DC peer inbound queue length.

§peer_out_queue_p99: u64

99th percentile of the local-DC peer outbound queue length.

§remote_peer_in_queue_p99: u64

99th percentile of the remote-DC peer inbound queue length.

§remote_peer_out_queue_p99: u64

99th percentile of the remote-DC peer outbound queue length.

§alloc_msgs: i64

Number of message structs allocated.

§free_msgs: i64

Number of message structs on the free list.

§alloc_mbufs: i64

Number of mbuf chunks allocated.

§free_mbufs: i64

Number of mbuf chunks on the free list.

§dyn_memory: i64

Resident set size in bytes.

§pool: PoolStats

Aggregated pool counters.

§server: ServerStats

Aggregated server counters.

§failure: FailureSnapshot

Aggregated failure-cause metrics.

Implementations§

Source§

impl Snapshot

Source

pub fn to_json(&self) -> String

Serialize the snapshot to a JSON string.

The layout is a single JSON object with flat top-level fields followed by a nested pool object containing the per-pool metric counters and a per-server sub-object.

§Examples
use dynomite::stats::{Snapshot, PoolStats, ServerStats};

let mut snap = Snapshot::default();
snap.pool = PoolStats::new("dyn_o_mite");
snap.server = ServerStats::new("redis_local");
let s = snap.to_json();
assert!(s.starts_with('{'));
assert!(s.contains("\"dyn_o_mite\""));
Source

pub fn write_json<W: Write>(&self, w: &mut W) -> Result

Render the snapshot as JSON into any fmt::Write sink.

§Examples
use dynomite::stats::Snapshot;
let snap = Snapshot::default();
let mut s = String::new();
snap.write_json(&mut s).expect("writing into String never fails");
assert!(s.starts_with('{'));

Trait Implementations§

Source§

impl Clone for Snapshot

Source§

fn clone(&self) -> Snapshot

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Snapshot

Source§

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

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

impl Default for Snapshot

Source§

fn default() -> Snapshot

Returns the “default value” for a type. 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
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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FutureExt for T

Source§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
Source§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
Source§

impl<T> Instrument for T

Source§

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

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

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> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.
Source§

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

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

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
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,