pub struct AnalyticsStreamWebhook {
pub url: String,
pub headers: BTreeMap<String, String>,
pub timeout_ms: u64,
pub max_attempts: u32,
pub backoff_base_ms: u64,
pub backoff_cap_ms: u64,
}Expand description
The webhook batch sink (DW-121,
gateway.analytics_stream.sink.webhook). Same URL/header/retry
grammar as gateway.webhooks[] (DW-044) — the delivery engine is
shared — minus the events filter (a record stream has no kinds to
filter: every record goes to the sink).
Fields§
§url: StringAbsolute http:// or https:// URL the batch is POSTed to.
https:// verifies against the public webpki root set (no
trusted_ca_file override — v1 scope, same as alert webhooks).
headers: BTreeMap<String, String>Headers sent on every batch delivery (e.g. the collector’s auth
token). Values may be inline or ${ENV_NAME} / ${file:/path}
secret references (DW-045), resolved at config-compile time;
inline values are redacted in every config echo. Use a
reference for bearer tokens and signing secrets.
timeout_ms: u64TOTAL budget for one batch delivery (all retry attempts share
it), in milliseconds. Default 5000: a BATCH is heavier than a
single alert envelope, and the flusher delivers batches strictly
in order, so this bounds how long one unlucky batch can hold
back the queue. Validation enforces
1..=limits::MAX_WEBHOOK_TIMEOUT_MS (the shared engine’s
bound).
max_attempts: u32Total attempts per batch delivery (first try plus retries);
retries cover transport failures and the transient status set
(429/502/503/504), honoring a seconds-form Retry-After.
Default 3; validation enforces
1..=limits::MAX_WEBHOOK_ATTEMPTS.
backoff_base_ms: u64First backoff between batch attempts, doubling per retry up to
backoff_cap_ms (a Retry-After answer replaces the computed
value for that wait). Default 250 — a batch retry is heavier
than an alert retry, so it starts slower.
backoff_cap_ms: u64Upper bound on the computed backoff. Default 4000; must be >=
backoff_base_ms.
Trait Implementations§
Source§impl Clone for AnalyticsStreamWebhook
impl Clone for AnalyticsStreamWebhook
Source§fn clone(&self) -> AnalyticsStreamWebhook
fn clone(&self) -> AnalyticsStreamWebhook
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for AnalyticsStreamWebhook
impl Debug for AnalyticsStreamWebhook
Source§impl<'de> Deserialize<'de> for AnalyticsStreamWebhook
impl<'de> Deserialize<'de> for AnalyticsStreamWebhook
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for AnalyticsStreamWebhook
impl JsonSchema for AnalyticsStreamWebhook
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreSource§impl PartialEq for AnalyticsStreamWebhook
impl PartialEq for AnalyticsStreamWebhook
Source§impl Serialize for AnalyticsStreamWebhook
impl Serialize for AnalyticsStreamWebhook
impl StructuralPartialEq for AnalyticsStreamWebhook
Auto Trait Implementations§
impl Freeze for AnalyticsStreamWebhook
impl RefUnwindSafe for AnalyticsStreamWebhook
impl Send for AnalyticsStreamWebhook
impl Sync for AnalyticsStreamWebhook
impl Unpin for AnalyticsStreamWebhook
impl UnwindSafe for AnalyticsStreamWebhook
Blanket Implementations§
§impl<T> AnyExt for T
impl<T> AnyExt for T
§fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
T behind reference§fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
T behind mutable reference§fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
T behind Rc pointer§fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
T behind Arc pointer§fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
T behind Box pointer§fn downcast_move<T>(this: Self) -> Option<T>
fn downcast_move<T>(this: Self) -> Option<T>
Self to T,
useful only in generic context as a workaround for specializationSource§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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
fn coerce_rc_to(self: Rc<X>) -> Rc<T>
fn coerce_box_to(self: Box<X>) -> Box<T>
fn coerce_ref_to(&self) -> &T
fn coerce_mut_to(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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 more