pub struct NetMetrics {
pub active_requests: AtomicU64,
pub bytes_sent_total: AtomicU64,
pub bytes_received_total: AtomicU64,
pub rtt_histogram: [AtomicU64; 8],
/* private fields */
}Expand description
Network metrics registry.
Tracks per-method counters and global totals. All atomic fields are
updated with Ordering::Relaxed which is sufficient for monotonically
increasing counters observed by a single scraper.
Fields§
§active_requests: AtomicU64Currently-in-flight request gauge.
bytes_sent_total: AtomicU64Total bytes sent (response bodies).
bytes_received_total: AtomicU64Total bytes received (request bodies).
rtt_histogram: [AtomicU64; 8]RTT histogram — 8 buckets: 7 finite bounds + +Inf.
Implementations§
Source§impl NetMetrics
impl NetMetrics
Sourcepub fn enter_request(&self) -> ActiveRequestGuard<'_>
pub fn enter_request(&self) -> ActiveRequestGuard<'_>
Increment the active-requests gauge and return a guard that decrements it.
The guard must be kept alive until the request completes.
Sourcepub fn add_bytes_received(&self, bytes: u64)
pub fn add_bytes_received(&self, bytes: u64)
Record bytes received (request body size).
Sourcepub fn add_bytes_sent(&self, bytes: u64)
pub fn add_bytes_sent(&self, bytes: u64)
Record bytes sent (response body size).
Sourcepub fn record_rtt(&self, rtt_ms: u64)
pub fn record_rtt(&self, rtt_ms: u64)
Record a single RTT observation (milliseconds) in the histogram.
Sourcepub fn record_request(&self, method: &str, duration_ms: u64, is_error: bool)
pub fn record_request(&self, method: &str, duration_ms: u64, is_error: bool)
Record a request for method with the given duration_ms.
Creates a per-method entry the first time a method name is seen.
Sourcepub fn to_prometheus(&self) -> String
pub fn to_prometheus(&self) -> String
Render all metrics in Prometheus text format.
The output format follows the OpenMetrics / Prometheus exposition
format, consistent with amaters_core::metrics::CoreMetrics::to_prometheus.
Auto Trait Implementations§
impl !Freeze for NetMetrics
impl RefUnwindSafe for NetMetrics
impl Send for NetMetrics
impl Sync for NetMetrics
impl Unpin for NetMetrics
impl UnsafeUnpin for NetMetrics
impl UnwindSafe for NetMetrics
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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> 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::RequestSource§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.