pub struct MetricEvent {Show 39 fields
pub ts: u64,
pub tool: &'static str,
pub duration_ms: u64,
pub output_chars: usize,
pub param_path_depth: usize,
pub max_depth: Option<u32>,
pub result: &'static str,
pub error_type: Option<String>,
pub error_subtype: Option<String>,
pub session_id: Option<String>,
pub seq: Option<u32>,
pub cache_hit: Option<bool>,
pub cache_tier: Option<&'static str>,
pub cache_write_failure: Option<bool>,
pub exit_code: Option<i32>,
pub timed_out: bool,
pub output_truncated: Option<bool>,
pub chars_threshold_breach: bool,
pub file_ext: Option<&'static str>,
pub filter_applied: Option<String>,
pub language: Option<String>,
pub git_ref_used: bool,
pub summary_mode: bool,
pub is_paginated: bool,
pub fields_projected: bool,
pub match_mode: Option<String>,
pub follow_depth: Option<u32>,
pub import_lookup: bool,
pub def_use: bool,
pub impl_only: bool,
pub stdin_provided: bool,
pub timeout_configured_ms: Option<i64>,
pub drain_timeout_ms: Option<i64>,
pub working_dir_used: bool,
pub l1_eviction_count: Option<u64>,
pub l2_entry_count: Option<u64>,
pub l2_size_bytes: Option<u64>,
pub stdout_bytes_raw: Option<u64>,
pub stderr_bytes_raw: Option<u64>,
}Expand description
A single metric event emitted by a tool invocation.
Fields§
§ts: u64§tool: &'static str§duration_ms: u64§output_chars: usize§param_path_depth: usize§max_depth: Option<u32>§result: &'static str§error_type: Option<String>§error_subtype: Option<String>§session_id: Option<String>§seq: Option<u32>§cache_hit: Option<bool>§cache_tier: Option<&'static str>§cache_write_failure: Option<bool>Set to Some(true) when an L2 disk cache write fails (dir, tempfile, write, or rename). Drives the cache_write_failures_total OTEL counter.
exit_code: Option<i32>§timed_out: bool§output_truncated: Option<bool>§chars_threshold_breach: boolTrue when output_chars > 30_000; fires for the top ~0.33% of exec_command calls
(p99.7 of 27,981 observed calls). Early-warning signal for responses approaching
the per-stream byte-cap threshold.
file_ext: Option<&'static str>File extension of the analyzed path, lowercased. Some("rs") for known extensions,
Some("other") for unrecognized extensions, None when the path has no extension.
Only populated for analyze_file and analyze_module.
filter_applied: Option<String>Name of the filter rule that matched and transformed exec_command output.
None when no filter fired or for non-exec_command tools.
language: Option<String>Human-readable programming language name derived from the file extension
(e.g., Some("Rust") for .rs files). None when the path has no extension
or the extension is not recognized. Only populated for analyze_file and
analyze_module.
git_ref_used: boolWhether the tool call used a git_ref parameter. Populated by analyze_directory
and analyze_symbol.
summary_mode: boolWhether the tool call used summary=true or was auto-summarized.
Populated by analyze_directory, analyze_file, and analyze_symbol.
is_paginated: boolWhether the tool call used pagination (cursor was provided).
Populated by analyze_directory, analyze_file, and analyze_symbol.
fields_projected: boolWhether the fields parameter was provided to analyze_file.
Populated by analyze_file.
match_mode: Option<String>Symbol matching mode used by analyze_symbol (e.g., “exact”, “insensitive”).
None when not an analyze_symbol call.
follow_depth: Option<u32>Call graph traversal depth for analyze_symbol (default 1).
import_lookup: boolWhether import_lookup=true was set on analyze_symbol.
def_use: boolWhether def_use=true was set on analyze_symbol.
impl_only: boolWhether impl_only=true was set on analyze_symbol.
stdin_provided: boolWhether stdin was provided to exec_command.
timeout_configured_ms: Option<i64>Configured timeout in milliseconds for exec_command. None means no limit.
drain_timeout_ms: Option<i64>Drain timeout in milliseconds for exec_command. None means default (500ms).
working_dir_used: boolWhether a working_dir parameter was provided. Populated by edit_overwrite,
edit_replace, and exec_command.
l1_eviction_count: Option<u64>L1 cache eviction count at the time of metric emission. Only populated for cache-related metrics.
l2_entry_count: Option<u64>L2 disk cache entry count at the time of metric emission. Only populated for cache-related metrics.
l2_size_bytes: Option<u64>L2 disk cache total size in bytes at the time of metric emission. Only populated for cache-related metrics.
stdout_bytes_raw: Option<u64>Approximate stdout bytes read before any truncation, counted as line.len() + 1
per LinesStream line (last line and CRLF not exact). Only populated for
exec_command when output_truncated=true, timed_out=false, and no drain-abort.
stderr_bytes_raw: Option<u64>Approximate stderr bytes read before any truncation, counted as line.len() + 1
per LinesStream line (last line and CRLF not exact). Only populated for
exec_command when output_truncated=true, timed_out=false, and no drain-abort.
Trait Implementations§
Source§impl Clone for MetricEvent
impl Clone for MetricEvent
Source§fn clone(&self) -> MetricEvent
fn clone(&self) -> MetricEvent
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for MetricEvent
impl Debug for MetricEvent
Source§impl Default for MetricEvent
impl Default for MetricEvent
Source§fn default() -> MetricEvent
fn default() -> MetricEvent
Source§impl Deserialize<'static> for MetricEventwhere
MetricEvent: Default,
impl Deserialize<'static> for MetricEventwhere
MetricEvent: Default,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'static>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'static>,
Auto Trait Implementations§
impl Freeze for MetricEvent
impl RefUnwindSafe for MetricEvent
impl Send for MetricEvent
impl Sync for MetricEvent
impl Unpin for MetricEvent
impl UnsafeUnpin for MetricEvent
impl UnwindSafe for MetricEvent
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> ⓘ
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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 more