pub struct RequestContext { /* private fields */ }Expand description
Request context maintained throughout the request lifecycle.
This struct uses a hybrid approach:
- Immutable fields (start_time) are private with getters
- Mutable fields are public(crate) for efficient access within the proxy module
Implementations§
Source§impl RequestContext
impl RequestContext
Sourcepub fn start_time(&self) -> Instant
pub fn start_time(&self) -> Instant
Get the request start time.
Sourcepub fn correlation_id(&self) -> &str
pub fn correlation_id(&self) -> &str
Get trace_id (alias for backwards compatibility with correlation_id usage).
Sourcepub fn selected_upstream_address(&self) -> Option<&str>
pub fn selected_upstream_address(&self) -> Option<&str>
Get the selected upstream peer address (IP:port), if set.
Sourcepub fn route_config(&self) -> Option<&Arc<RouteConfig>>
pub fn route_config(&self) -> Option<&Arc<RouteConfig>>
Get the cached route configuration, if set.
Sourcepub fn global_config(&self) -> Option<&Arc<Config>>
pub fn global_config(&self) -> Option<&Arc<Config>>
Get the cached global configuration, if set.
Sourcepub fn service_type(&self) -> Option<ServiceType>
pub fn service_type(&self) -> Option<ServiceType>
Get the service type from cached route config.
Sourcepub fn upstream_attempts(&self) -> u32
pub fn upstream_attempts(&self) -> u32
Get the number of upstream attempts.
Sourcepub fn user_agent(&self) -> Option<&str>
pub fn user_agent(&self) -> Option<&str>
Get the User-Agent header, if present.
Sourcepub fn response_bytes(&self) -> u64
pub fn response_bytes(&self) -> u64
Get the response body size in bytes.
Sourcepub fn geo_country_code(&self) -> Option<&str>
pub fn geo_country_code(&self) -> Option<&str>
Get the GeoIP country code, if determined.
Sourcepub fn geo_lookup_performed(&self) -> bool
pub fn geo_lookup_performed(&self) -> bool
Check if a geo lookup was performed for this request.
Sourcepub fn traceparent(&self) -> Option<String>
pub fn traceparent(&self) -> Option<String>
Get traceparent header value for distributed tracing.
Returns the W3C Trace Context traceparent header value if tracing is enabled.
Format: {version}-{trace-id}-{span-id}-{trace-flags}
Sourcepub fn set_trace_id(&mut self, trace_id: impl Into<String>)
pub fn set_trace_id(&mut self, trace_id: impl Into<String>)
Set the trace ID.
Sourcepub fn set_route_id(&mut self, route_id: impl Into<String>)
pub fn set_route_id(&mut self, route_id: impl Into<String>)
Set the route ID.
Sourcepub fn set_upstream(&mut self, upstream: impl Into<String>)
pub fn set_upstream(&mut self, upstream: impl Into<String>)
Set the upstream ID.
Sourcepub fn set_selected_upstream_address(&mut self, address: impl Into<String>)
pub fn set_selected_upstream_address(&mut self, address: impl Into<String>)
Set the selected upstream peer address (IP:port).
Sourcepub fn inc_upstream_attempts(&mut self)
pub fn inc_upstream_attempts(&mut self)
Increment upstream attempt counter.
Sourcepub fn set_response_bytes(&mut self, bytes: u64)
pub fn set_response_bytes(&mut self, bytes: u64)
Set response bytes.
Sourcepub fn fallback_attempt(&self) -> u32
pub fn fallback_attempt(&self) -> u32
Get the current fallback attempt number (0 = primary).
Sourcepub fn tried_upstreams(&self) -> &[String]
pub fn tried_upstreams(&self) -> &[String]
Get the list of upstreams that have been tried.
Sourcepub fn fallback_reason(&self) -> Option<&FallbackReason>
pub fn fallback_reason(&self) -> Option<&FallbackReason>
Get the fallback reason, if fallback was triggered.
Sourcepub fn original_upstream(&self) -> Option<&str>
pub fn original_upstream(&self) -> Option<&str>
Get the original upstream ID (before fallback).
Sourcepub fn model_mapping_applied(&self) -> Option<&(String, String)>
pub fn model_mapping_applied(&self) -> Option<&(String, String)>
Get the model mapping that was applied: (original, mapped).
Sourcepub fn used_fallback(&self) -> bool
pub fn used_fallback(&self) -> bool
Check if fallback was used for this request.
Sourcepub fn record_fallback(&mut self, reason: FallbackReason, new_upstream: &str)
pub fn record_fallback(&mut self, reason: FallbackReason, new_upstream: &str)
Record that a fallback attempt is being made.
Sourcepub fn record_model_mapping(&mut self, original: String, mapped: String)
pub fn record_model_mapping(&mut self, original: String, mapped: String)
Record model mapping applied during fallback.
Sourcepub fn used_model_routing(&self) -> bool
pub fn used_model_routing(&self) -> bool
Check if model-based routing was used to select the upstream.
Sourcepub fn inference_provider_override(&self) -> Option<InferenceProvider>
pub fn inference_provider_override(&self) -> Option<InferenceProvider>
Get the provider override from model-based routing (if any).
Sourcepub fn record_model_routing(
&mut self,
upstream: &str,
model: Option<String>,
provider_override: Option<InferenceProvider>,
)
pub fn record_model_routing( &mut self, upstream: &str, model: Option<String>, provider_override: Option<InferenceProvider>, )
Record model-based routing result.
Called when model-based routing selects an upstream based on the model name.
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for RequestContext
impl !RefUnwindSafe for RequestContext
impl Send for RequestContext
impl Sync for RequestContext
impl Unpin for RequestContext
impl !UnwindSafe for RequestContext
Blanket Implementations§
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<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more