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§
Sourcefn on_start(&self, _event: &StartEvent)
fn on_start(&self, _event: &StartEvent)
A call started.
Sourcefn on_step_start(&self, _event: &StepStartEvent)
fn on_step_start(&self, _event: &StepStartEvent)
A step started.
Sourcefn on_language_model_call_start(&self, _event: &ModelCallStartEvent)
fn on_language_model_call_start(&self, _event: &ModelCallStartEvent)
A model call is about to be made.
Sourcefn on_language_model_call_end(&self, _event: &ModelCallEndEvent)
fn on_language_model_call_end(&self, _event: &ModelCallEndEvent)
A model call finished.
Sourcefn on_tool_execution_start(&self, _event: &ToolExecutionStartEvent)
fn on_tool_execution_start(&self, _event: &ToolExecutionStartEvent)
A tool execution started.
Sourcefn on_tool_execution_end(&self, _event: &ToolExecutionEndEvent)
fn on_tool_execution_end(&self, _event: &ToolExecutionEndEvent)
A tool execution finished.
Sourcefn on_step_end(&self, _event: &StepEndEvent)
fn on_step_end(&self, _event: &StepEndEvent)
A step finished.
Sourcefn on_embed_start(&self, _event: &EmbedStartEvent)
fn on_embed_start(&self, _event: &EmbedStartEvent)
An embedding call started.
Sourcefn on_embed_end(&self, _event: &EmbedEndEvent)
fn on_embed_end(&self, _event: &EmbedEndEvent)
An embedding call finished.
Sourcefn on_rerank_start(&self, _event: &RerankStartEvent)
fn on_rerank_start(&self, _event: &RerankStartEvent)
A rerank call started.
Sourcefn on_rerank_end(&self, _event: &RerankEndEvent)
fn on_rerank_end(&self, _event: &RerankEndEvent)
A rerank call finished.
Sourcefn on_abort(&self, _event: &AbortEvent)
fn on_abort(&self, _event: &AbortEvent)
A streaming call was aborted.
Sourcefn on_error(&self, _event: &ErrorEvent<'_>)
fn on_error(&self, _event: &ErrorEvent<'_>)
An error occurred.
Sourcefn execute_language_model_call<'a>(
&'a self,
_ctx: &'a ModelCallContext,
call: BoxFuture<'a, Result<ModelCallOutcome, Error>>,
) -> BoxFuture<'a, Result<ModelCallOutcome, Error>>
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.
Sourcefn execute_tool<'a>(
&'a self,
_ctx: &'a ToolExecutionContext,
call: BoxFuture<'a, Result<ToolOutcome, ToolError>>,
) -> BoxFuture<'a, Result<ToolOutcome, ToolError>>
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§
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".