pub struct AgentV2 { /* private fields */ }Expand description
Protocol v2 agent with connection pooling and bidirectional streaming.
Implementations§
Source§impl AgentV2
impl AgentV2
Sourcepub fn new(config: AgentConfig, circuit_breaker: Arc<CircuitBreaker>) -> Self
pub fn new(config: AgentConfig, circuit_breaker: Arc<CircuitBreaker>) -> Self
Create a new v2 agent.
Sourcepub fn circuit_breaker(&self) -> &CircuitBreaker
pub fn circuit_breaker(&self) -> &CircuitBreaker
Get the agent’s circuit breaker.
Sourcepub fn failure_mode(&self) -> FailureMode
pub fn failure_mode(&self) -> FailureMode
Get the agent’s failure mode.
Sourcepub fn timeout_ms(&self) -> u64
pub fn timeout_ms(&self) -> u64
Get the agent’s timeout in milliseconds.
Sourcepub fn metrics(&self) -> &AgentMetrics
pub fn metrics(&self) -> &AgentMetrics
Get the agent’s metrics.
Sourcepub fn handles_event(&self, event_type: EventType) -> bool
pub fn handles_event(&self, event_type: EventType) -> bool
Check if agent handles a specific event type.
Sourcepub async fn initialize(&self) -> SentinelResult<()>
pub async fn initialize(&self) -> SentinelResult<()>
Initialize agent connection(s).
Sourcepub async fn call_request_headers(
&self,
event: &RequestHeadersEvent,
) -> SentinelResult<AgentResponse>
pub async fn call_request_headers( &self, event: &RequestHeadersEvent, ) -> SentinelResult<AgentResponse>
Call agent with request headers event.
Sourcepub async fn call_request_body_chunk(
&self,
event: &RequestBodyChunkEvent,
) -> SentinelResult<AgentResponse>
pub async fn call_request_body_chunk( &self, event: &RequestBodyChunkEvent, ) -> SentinelResult<AgentResponse>
Call agent with request body chunk event.
For streaming body inspection, chunks are sent sequentially with
increasing chunk_index. The agent responds after processing each chunk.
Sourcepub async fn call_response_headers(
&self,
event: &ResponseHeadersEvent,
) -> SentinelResult<AgentResponse>
pub async fn call_response_headers( &self, event: &ResponseHeadersEvent, ) -> SentinelResult<AgentResponse>
Call agent with response headers event.
Called when upstream response headers are received, allowing the agent to inspect/modify response headers before they’re sent to the client.
Sourcepub async fn call_response_body_chunk(
&self,
event: &ResponseBodyChunkEvent,
) -> SentinelResult<AgentResponse>
pub async fn call_response_body_chunk( &self, event: &ResponseBodyChunkEvent, ) -> SentinelResult<AgentResponse>
Call agent with response body chunk event.
For streaming response body inspection, chunks are sent sequentially. The agent can inspect and optionally modify response body data.
Sourcepub async fn cancel_request(
&self,
correlation_id: &str,
reason: CancelReason,
) -> SentinelResult<()>
pub async fn cancel_request( &self, correlation_id: &str, reason: CancelReason, ) -> SentinelResult<()>
Cancel an in-flight request.
Sourcepub async fn capabilities(&self) -> Option<AgentCapabilities>
pub async fn capabilities(&self) -> Option<AgentCapabilities>
Get agent capabilities.
Sourcepub async fn is_healthy(&self) -> bool
pub async fn is_healthy(&self) -> bool
Check if agent is healthy.
Sourcepub fn record_success(&self, duration: Duration)
pub fn record_success(&self, duration: Duration)
Record successful call (lock-free).
Sourcepub fn time_since_last_success(&self) -> Option<Duration>
pub fn time_since_last_success(&self) -> Option<Duration>
Get the time since last successful call.
Sourcepub fn record_failure(&self)
pub fn record_failure(&self)
Record failed call.
Sourcepub fn record_timeout(&self)
pub fn record_timeout(&self)
Record timeout.
Sourcepub async fn pool_stats(&self) -> Option<AgentPoolStats>
pub async fn pool_stats(&self) -> Option<AgentPoolStats>
Get pool statistics.
Sourcepub fn pool_metrics_collector(&self) -> &MetricsCollector
pub fn pool_metrics_collector(&self) -> &MetricsCollector
Get the pool’s metrics collector.
Returns a reference to the shared metrics collector that aggregates metrics reports from all agents in this pool.
Sourcepub fn pool_metrics_collector_arc(&self) -> Arc<MetricsCollector>
pub fn pool_metrics_collector_arc(&self) -> Arc<MetricsCollector>
Get an Arc to the pool’s metrics collector.
This is useful for registering the collector with a MetricsManager.
Sourcepub fn export_prometheus(&self) -> String
pub fn export_prometheus(&self) -> String
Export agent metrics in Prometheus format.
Returns a string containing all metrics collected from agents in Prometheus exposition format.
Sourcepub fn config_pusher(&self) -> &ConfigPusher
pub fn config_pusher(&self) -> &ConfigPusher
Get the pool’s config pusher.
Returns a reference to the shared config pusher that distributes configuration updates to agents.
Sourcepub fn push_config(&self, update_type: ConfigUpdateType) -> Option<String>
pub fn push_config(&self, update_type: ConfigUpdateType) -> Option<String>
Push a configuration update to this agent.
Returns the push ID if the agent supports config push, None otherwise.
Sourcepub async fn send_configuration(&self, config: Value) -> SentinelResult<()>
pub async fn send_configuration(&self, config: Value) -> SentinelResult<()>
Send a configuration update to this agent via the control stream.
This is a direct config push using the ConfigureEvent message.
Auto Trait Implementations§
impl !Freeze for AgentV2
impl !RefUnwindSafe for AgentV2
impl Send for AgentV2
impl Sync for AgentV2
impl Unpin for AgentV2
impl !UnwindSafe for AgentV2
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