TracerSystem

Struct TracerSystem 

Source
pub struct TracerSystem { /* private fields */ }
Expand description

Central system for capturing and querying tracer events

The TracerSystem is responsible for recording events related to LLM calls, tool usage, and agent interactions, providing a way to trace through the major events of the system.

Implementations§

Source§

impl TracerSystem

Source

pub fn new(event_store: Option<Arc<EventStore>>, enabled: bool) -> Self

Create a new tracer system

§Arguments
  • event_store - Optional event store to use. If None, a new one will be created.
  • enabled - Whether the tracer system is enabled (default: true)
Source

pub fn is_enabled(&self) -> bool

Check if the tracer is enabled

Source

pub fn enable(&self)

Enable the tracer system

Source

pub fn disable(&self)

Disable the tracer system

Source

pub fn record_event(&self, event: Box<dyn TracerEvent>)

Record a tracer event in the event store

§Arguments
  • event - The tracer event to record
Source

pub fn record_llm_call( &self, model: impl Into<String>, messages: Vec<HashMap<String, Value>>, temperature: f64, tools: Option<Vec<HashMap<String, Value>>>, source: impl Into<String>, correlation_id: impl Into<String>, )

Record an LLM call event

§Arguments
  • model - The name of the LLM model being called
  • messages - The messages sent to the LLM (simplified representation)
  • temperature - The temperature setting for the LLM call
  • tools - The tools available to the LLM, if any
  • source - The source of the event
  • correlation_id - UUID string for tracing related events
Source

pub fn record_llm_response( &self, model: impl Into<String>, content: impl Into<String>, tool_calls: Option<Vec<HashMap<String, Value>>>, call_duration_ms: Option<f64>, source: impl Into<String>, correlation_id: impl Into<String>, )

Record an LLM response event

§Arguments
  • model - The name of the LLM model that responded
  • content - The content of the LLM response
  • tool_calls - Any tool calls made by the LLM in its response
  • call_duration_ms - The duration of the LLM call in milliseconds
  • source - The source of the event
  • correlation_id - UUID string for tracing related events
Source

pub fn record_tool_call( &self, tool_name: impl Into<String>, arguments: HashMap<String, Value>, result: Value, caller: Option<String>, call_duration_ms: Option<f64>, source: impl Into<String>, correlation_id: impl Into<String>, )

Record a tool call event

§Arguments
  • tool_name - The name of the tool being called
  • arguments - The arguments provided to the tool
  • result - The result returned by the tool
  • caller - The name of the agent or component calling the tool
  • call_duration_ms - The duration of the tool call in milliseconds
  • source - The source of the event
  • correlation_id - UUID string for tracing related events
Source

pub fn record_agent_interaction( &self, from_agent: impl Into<String>, to_agent: impl Into<String>, event_type: impl Into<String>, event_id: Option<String>, source: impl Into<String>, correlation_id: impl Into<String>, )

Record an agent interaction event

§Arguments
  • from_agent - The name of the agent sending the event
  • to_agent - The name of the agent receiving the event
  • event_type - The type of event being processed
  • event_id - A unique identifier for the event
  • source - The source of the event
  • correlation_id - UUID string for tracing related events
Source

pub fn get_event_summaries( &self, start_time: Option<f64>, end_time: Option<f64>, filter_func: Option<&dyn EventFilterFn>, ) -> Vec<String>

Get event summaries from the store, optionally filtered

§Arguments
  • start_time - Include events with timestamp >= start_time
  • end_time - Include events with timestamp <= end_time
  • filter_func - Custom filter function to apply to events
§Returns

Vector of event summaries matching the filter criteria

Source

pub fn get_last_n_summaries( &self, n: usize, filter_func: Option<&dyn EventFilterFn>, ) -> Vec<String>

Get the last N event summaries, optionally filtered

§Arguments
  • n - Number of events to return
  • filter_func - Optional custom filter function
§Returns

Vector of the last N event summaries matching the filter criteria

Source

pub fn count_events( &self, start_time: Option<f64>, end_time: Option<f64>, filter_func: Option<&dyn EventFilterFn>, ) -> usize

Count events matching filters

§Arguments
  • start_time - Include events with timestamp >= start_time
  • end_time - Include events with timestamp <= end_time
  • filter_func - Custom filter function to apply to events
§Returns

Number of events matching the filter criteria

Source

pub fn clear(&self)

Clear all events from the event store

Source

pub fn len(&self) -> usize

Get the total number of events in the store

Source

pub fn is_empty(&self) -> bool

Check if the event store is empty

Trait Implementations§

Source§

impl Default for TracerSystem

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> PolicyExt for T
where T: ?Sized,

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more