pub struct AnalyticsDimension {
pub name: String,
pub source: Option<DimensionSource>,
pub header: Option<String>,
pub claim: Option<String>,
pub body_path: Option<String>,
}Expand description
One custom analytics dimension (DW-043,
analytics.dimensions[]).
DW-093 extends the source beyond headers: a source of claim
extracts from the verified JWT’s claims, and body_path extracts
from the request body via a JSON pointer (only when the body is
buffered). The original header-only shape (header without
source) is preserved for backward compatibility.
Fields§
§name: StringThe dimension name: lowercase [a-z0-9_], at most 32 bytes —
it becomes the rollup table’s dim key and the query field.
source: Option<DimensionSource>The dimension source (DW-093). Absent defaults to header
(the original DW-043 behavior). When header, the header
field is required; when claim, the claim field is
required; when body_path, the body_path field is required.
header: Option<String>The request header whose value is captured (case-insensitive,
as HTTP header names are). Required when source is header
(or absent). The FIRST value of a repeated header wins;
non-UTF-8 and over-128-byte values are skipped.
claim: Option<String>The JWT claim name whose value is captured (DW-093). Required
when source is claim. The claim must be a string- or
number-valued top-level claim in the verified token; other
types and absent claims are skipped for that request.
body_path: Option<String>An RFC 6901 JSON pointer into the request body (DW-093).
Required when source is body_path. Only works when the
body is buffered (retries, hedging, request transforms, or
request validation); the zero-buffering default skips
body-path dimensions silently. The body must be valid JSON;
non-JSON bodies and unresolved pointers are skipped.
Implementations§
Source§impl AnalyticsDimension
impl AnalyticsDimension
Sourcepub fn effective_source(&self) -> DimensionSource
pub fn effective_source(&self) -> DimensionSource
The effective source (defaults to DimensionSource::Header
when source is absent — the backward-compatible DW-043
behavior).
Trait Implementations§
Source§impl Clone for AnalyticsDimension
impl Clone for AnalyticsDimension
Source§fn clone(&self) -> AnalyticsDimension
fn clone(&self) -> AnalyticsDimension
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for AnalyticsDimension
impl Debug for AnalyticsDimension
Source§impl<'de> Deserialize<'de> for AnalyticsDimension
impl<'de> Deserialize<'de> for AnalyticsDimension
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 AnalyticsDimension
impl JsonSchema for AnalyticsDimension
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 AnalyticsDimension
impl PartialEq for AnalyticsDimension
Source§impl Serialize for AnalyticsDimension
impl Serialize for AnalyticsDimension
impl StructuralPartialEq for AnalyticsDimension
Auto Trait Implementations§
impl Freeze for AnalyticsDimension
impl RefUnwindSafe for AnalyticsDimension
impl Send for AnalyticsDimension
impl Sync for AnalyticsDimension
impl Unpin for AnalyticsDimension
impl UnwindSafe for AnalyticsDimension
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