pub struct OtelMetrics { /* private fields */ }Expand description
A Metrics implementation backed by OpenTelemetry instruments.
Records the following instruments:
| Instrument | Kind | Unit | Description |
|---|---|---|---|
rpc.server.call.duration | Histogram | s | Every inbound call, per the semantic conventions |
a2a.server.requests | Counter | request | Total inbound requests |
a2a.server.responses | Counter | response | Total outbound responses |
a2a.server.errors | Counter | error | Total errors |
a2a.server.latency | Histogram | s | Request latency in seconds |
a2a.server.queue_depth | Gauge | queue | Number of active event queues |
a2a.server.persistence_errors | Counter | error | Task writes that failed |
a2a.server.push_deliveries | Counter | delivery | Push attempts, by outcome |
a2a.server.pool.active | Gauge | connection | Active (in-use) connections |
a2a.server.pool.idle | Gauge | connection | Idle connections |
a2a.server.pool.created | Counter | connection | Total connections created |
a2a.server.pool.closed | Counter | connection | Connections closed |
rpc.server.call.duration carries rpc.system.name, rpc.method,
rpc.status_code and, on failure, error.type (see RpcCall). The
a2a.server.* counters and histogram carry a method attribute; the
error counter additionally carries an error attribute. Both histograms
use the conventions’ advisory buckets (RPC_DURATION_BUCKETS).
Implementations§
Source§impl OtelMetrics
impl OtelMetrics
Sourcepub fn from_meter(meter: &Meter) -> Self
pub fn from_meter(meter: &Meter) -> Self
Create an OtelMetrics from an already-configured Meter.
Prefer OtelMetricsBuilder for typical usage.
Trait Implementations§
Source§impl Debug for OtelMetrics
impl Debug for OtelMetrics
Source§impl Metrics for OtelMetrics
impl Metrics for OtelMetrics
Source§fn on_request(&self, method: &str)
fn on_request(&self, method: &str)
Called when a request is received, before processing.
Source§fn on_response(&self, method: &str)
fn on_response(&self, method: &str)
Called when a response is successfully sent.
Source§fn on_error(&self, method: &str, error: &str)
fn on_error(&self, method: &str, error: &str)
Called when a request results in an error. Read more
Source§fn on_latency(&self, method: &str, duration: Duration)
fn on_latency(&self, method: &str, duration: Duration)
Called when a request completes (successfully or not) with the wall-clock
duration from receipt to response. Read more
Source§fn on_queue_depth_change(&self, active_queues: usize)
fn on_queue_depth_change(&self, active_queues: usize)
Called when the number of active event queues changes.
Source§fn on_persistence_error(&self, operation: &str, error_kind: &str)
fn on_persistence_error(&self, operation: &str, error_kind: &str)
Called when the background event processor fails to persist a task. Read more
Source§fn on_push_delivery(&self, outcome: &str)
fn on_push_delivery(&self, outcome: &str)
Called after each attempt to deliver a push notification. Read more
Source§fn on_connection_pool_stats(&self, stats: &ConnectionPoolStats)
fn on_connection_pool_stats(&self, stats: &ConnectionPoolStats)
Called with connection pool statistics when available. Read more
Auto Trait Implementations§
impl !Freeze for OtelMetrics
impl !RefUnwindSafe for OtelMetrics
impl !UnwindSafe for OtelMetrics
impl Send for OtelMetrics
impl Sync for OtelMetrics
impl Unpin for OtelMetrics
impl UnsafeUnpin for OtelMetrics
Blanket Implementations§
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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