pub struct Pattern {
pub template: String,
pub occurrences: usize,
pub window_ms: u64,
pub distinct_params: usize,
pub span_duration_us_p50: Option<u64>,
pub span_duration_us_p99: Option<u64>,
pub span_duration_cv_x1000: Option<u32>,
}Expand description
Pattern details for a finding.
Fields§
§template: StringNormalized query or URL template shared by the matched spans.
occurrences: usizeNumber of spans that matched this template within the window.
window_ms: u64Time span, in milliseconds, covering all matched occurrences.
distinct_params: usizeCount of distinct parameter sets observed across occurrences.
span_duration_us_p50: Option<u64>Median per-span duration in the group (µs). Diagnostic field populated by the n+1 and slow detectors. Not used in the detection verdict, exposed so downstream consumers can profile cache-warm patterns without needing daemon-log access.
span_duration_us_p99: Option<u64>99th-percentile per-span duration in the group (µs).
span_duration_cv_x1000: Option<u32>Coefficient of variation of per-span durations, scaled by 1000
(523 means CV = 0.523). Avoids floating-point fields so
Pattern can keep its Eq derive.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Pattern
impl<'de> Deserialize<'de> for Pattern
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>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for Pattern
impl StructuralPartialEq for Pattern
Auto Trait Implementations§
impl Freeze for Pattern
impl RefUnwindSafe for Pattern
impl Send for Pattern
impl Sync for Pattern
impl Unpin for Pattern
impl UnsafeUnpin for Pattern
impl UnwindSafe for Pattern
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request