pub struct OtelLayer;Expand description
Middleware that creates an HTTP server span for each request.
- Reads W3C
traceparentfrom the request to continue an existing trace. - Creates a new trace when no
traceparentis present. - Stores the active span in thread-local storage so downstream middleware
(e.g.
crate::proxy::ReverseProxy) can propagate it. - Records the span on the way out with
http.method,http.target, andhttp.status_codeattributes.
Requires setup or setup_from_env to be called at startup. Without
initialisation the layer is a no-op passthrough.
Trait Implementations§
Source§impl Middleware for OtelLayer
impl Middleware for OtelLayer
fn handle( &self, request: &Request, connection: &ConnectionInfo, next: &dyn Application, ) -> Result<Response, String>
Source§fn runs_inline(&self, _request: &Request, _connection: &ConnectionInfo) -> bool
fn runs_inline(&self, _request: &Request, _connection: &ConnectionInfo) -> bool
true when this layer’s own work for request never blocks (in-memory
state, atomics, short mutexes) — see Application::runs_inline. A
WithMiddleware stack runs inline only if every layer and the inner
application agree. Default false.Source§fn is_passthrough(
&self,
_request: &Request,
_connection: &ConnectionInfo,
) -> bool
fn is_passthrough( &self, _request: &Request, _connection: &ConnectionInfo, ) -> bool
true when handle would do nothing for request but call next
(e.g. a rate limit that isn’t configured). A WithMiddleware stack
offers the inner application’s execute_async only if every layer
passes the request through. Default false.Auto Trait Implementations§
impl Freeze for OtelLayer
impl RefUnwindSafe for OtelLayer
impl Send for OtelLayer
impl Sync for OtelLayer
impl Unpin for OtelLayer
impl UnsafeUnpin for OtelLayer
impl UnwindSafe for OtelLayer
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