Skip to main content

Telemetry

Trait Telemetry 

Source
pub trait Telemetry:
    Send
    + Sync
    + 'static {
Show 16 methods // Provided methods fn on_start(&self, _event: &StartEvent) { ... } fn on_step_start(&self, _event: &StepStartEvent) { ... } fn on_language_model_call_start(&self, _event: &ModelCallStartEvent) { ... } fn on_language_model_call_end(&self, _event: &ModelCallEndEvent) { ... } fn on_tool_execution_start(&self, _event: &ToolExecutionStartEvent) { ... } fn on_tool_execution_end(&self, _event: &ToolExecutionEndEvent) { ... } fn on_step_end(&self, _event: &StepEndEvent) { ... } fn on_embed_start(&self, _event: &EmbedStartEvent) { ... } fn on_embed_end(&self, _event: &EmbedEndEvent) { ... } fn on_rerank_start(&self, _event: &RerankStartEvent) { ... } fn on_rerank_end(&self, _event: &RerankEndEvent) { ... } fn on_end(&self, _event: &EndEvent) { ... } fn on_abort(&self, _event: &AbortEvent) { ... } fn on_error(&self, _event: &ErrorEvent<'_>) { ... } fn execute_language_model_call<'a>( &'a self, _ctx: &'a ModelCallContext, call: BoxFuture<'a, Result<ModelCallOutcome, Error>>, ) -> BoxFuture<'a, Result<ModelCallOutcome, Error>> { ... } fn execute_tool<'a>( &'a self, _ctx: &'a ToolExecutionContext, call: BoxFuture<'a, Result<ToolOutcome, ToolError>>, ) -> BoxFuture<'a, Result<ToolOutcome, ToolError>> { ... }
}
Expand description

A telemetry integration.

Every method has a no-op default; implement the ones you need. Callbacks must not block: hand events to your own channel when processing is slow.

Provided Methods§

Source

fn on_start(&self, _event: &StartEvent)

A call started.

Source

fn on_step_start(&self, _event: &StepStartEvent)

A step started.

Source

fn on_language_model_call_start(&self, _event: &ModelCallStartEvent)

A model call is about to be made.

Source

fn on_language_model_call_end(&self, _event: &ModelCallEndEvent)

A model call finished.

Source

fn on_tool_execution_start(&self, _event: &ToolExecutionStartEvent)

A tool execution started.

Source

fn on_tool_execution_end(&self, _event: &ToolExecutionEndEvent)

A tool execution finished.

Source

fn on_step_end(&self, _event: &StepEndEvent)

A step finished.

Source

fn on_embed_start(&self, _event: &EmbedStartEvent)

An embedding call started.

Source

fn on_embed_end(&self, _event: &EmbedEndEvent)

An embedding call finished.

Source

fn on_rerank_start(&self, _event: &RerankStartEvent)

A rerank call started.

Source

fn on_rerank_end(&self, _event: &RerankEndEvent)

A rerank call finished.

Source

fn on_end(&self, _event: &EndEvent)

A call finished.

Source

fn on_abort(&self, _event: &AbortEvent)

A streaming call was aborted.

Source

fn on_error(&self, _event: &ErrorEvent<'_>)

An error occurred.

Source

fn execute_language_model_call<'a>( &'a self, _ctx: &'a ModelCallContext, call: BoxFuture<'a, Result<ModelCallOutcome, Error>>, ) -> BoxFuture<'a, Result<ModelCallOutcome, Error>>

Runs a model call inside integration-specific context (for example an OpenTelemetry span). The default runs call unchanged.

Source

fn execute_tool<'a>( &'a self, _ctx: &'a ToolExecutionContext, call: BoxFuture<'a, Result<ToolOutcome, ToolError>>, ) -> BoxFuture<'a, Result<ToolOutcome, ToolError>>

Runs a tool execution inside integration-specific context.

Implementations§

Source§

impl dyn Telemetry

Source

pub fn ptr_eq(this: &Arc<Self>, other: &Arc<Self>) -> bool

Convenience for tests: returns true when self is the same object.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§