Skip to content

Observability

OpenTelemetry helpers for GLLM Inference.

LMSpanAttributeSetter(logger)

Writes canonical GenAI text content attributes onto an invocation span.

Initialize the span attribute setter with the invoker's logger.

Parameters:

Name Type Description Default
logger Logger

The logger used to record optional content serialization failures.

required

is_capturing_usage property

Returns whether this execution context has an active usage capture scope.

Returns:

Name Type Description
bool bool

whether this execution context has an active usage capture scope

capture_usage(span)

Capture token usage in the current context and write it to the span on exit.

Parameters:

Name Type Description Default
span Span

The span that receives the latest usage snapshot.

required

record_usage(output)

Store a usage-only snapshot for the active attempt, when one exists.

Parameters:

Name Type Description Default
output LMOutput

The provider output containing usage information.

required

set_input_content(span, trace_context, messages)

Record enabled canonical input parts without modifying the source messages.

Text, tool-call, and tool-result parts are independently controlled by their respective input capture options. Unrepresentable parts are skipped without affecting the remaining content; tool results are emitted in canonical tool-role messages.

Parameters:

Name Type Description Default
span Span

The invocation span to record the attribute on.

required
trace_context LMTraceContext

Invocation-scoped trace state.

required
messages list[Message]

The effective messages to serialize.

required

set_output_content(span, trace_context, output)

Record canonical output parts without modifying the normalized result.

Text, structured, and thinking parts are each independently opt-in and keep the ordering of LMOutput.outputs. A part whose value cannot be converted to JSON is skipped without affecting the remaining parts.

Parameters:

Name Type Description Default
span Span

The invocation span to record the attribute on.

required
trace_context LMTraceContext

Invocation-scoped trace state.

required
output LMOutput

The model output to serialize.

required

set_response_metadata(span, output)

Record allowlisted optional response metadata.

Parameters:

Name Type Description Default
span Span

The invocation span to record the attribute on.

required
output LMOutput

The model output containing optional response metadata.

required

set_system_instructions(span, trace_context, messages)

Record the source system instruction when provider handling removed it from history.

Parameters:

Name Type Description Default
span Span

The invocation span to record the attribute on.

required
trace_context LMTraceContext

Invocation-scoped trace state.

required
messages list[Message]

The effective messages after provider system handling.

required

set_tool_definitions(span, trace_context, tools)

Record configured tool definitions without exposing native-tool configuration.

Parameters:

Name Type Description Default
span Span

The invocation span to record the attribute on.

required
trace_context LMTraceContext

Invocation-scoped trace state.

required
tools list[Tool | NativeTool]

Configured function and provider-native tools.

required

set_usage(span, output)

Record available token usage attributes on a completed model-operation span.

Parameters:

Name Type Description Default
span Span

The invocation span to record the attributes on.

required
output LMOutput

The LMOutput object containing token usage information.

required

LMStreamTraceState(span)

Track streaming metrics for one language-model operation span.

Attributes:

Name Type Description
span Span

The span receiving the time-to-first-chunk attribute.

Initialize streaming timing state for a span.

Parameters:

Name Type Description Default
span Span

The span receiving the time-to-first-chunk attribute.

required

record_first_chunk()

Record elapsed time when the first provider chunk arrives.

start_request()

Start timing the current provider attempt.

A retry can restart the timer until this span has recorded its first chunk.

LMTraceContentConfig

Bases: ContentCaptureConfig

Model to hold configuration settings for capturing LM trace content.

Attributes:

Name Type Description
system_instructions bool

Whether to capture system instructions. Defaults to False.

tool_definitions bool

Whether to capture configured tool definitions. Defaults to False.

input_text bool

Whether to capture input text. Defaults to False.

input_tool_calls bool

Whether to capture tool calls in input history. Defaults to False.

input_tool_results bool

Whether to capture tool results in input history. Defaults to False.

input_attachments bool

Whether to capture input attachments. Defaults to False.

output_text bool

Whether to capture output text. Defaults to False.

output_structured bool

Whether to capture structured output. Defaults to False.

output_thinking bool

Whether to capture thinking output. Defaults to False.

output_tool_calls bool

Whether to capture model-produced tool calls. Defaults to False.

output_attachments bool

Whether to capture generated attachments. Defaults to False.

output_citations bool

Whether to capture output citations. Defaults to False.

output_code_exec_results bool

Whether to capture code execution results. Defaults to False.

output_mcp_calls bool

Whether to capture MCP calls. Defaults to False.

max_attribute_bytes int

Maximum number of bytes to capture for each attribute. Defaults to DEFAULT_MAX_ATTRIBUTE_BYTES.

has_input_capture_enabled property

Return whether any input trace-content capture option is enabled.

Returns:

Name Type Description
bool bool

True when input text, tool calls, tool results, or attachments are captured.

has_output_capture_enabled property

Return whether any output trace-content capture option is enabled.

Returns:

Name Type Description
bool bool

True when any supported output content category is captured.

LMTraceContext

Bases: BaseModel

Invocation-scoped trace state shared across provider calls in a tool loop.

Attributes:

Name Type Description
trace_attributes dict[str, TraceValue]

Validated caller-supplied span attributes.

trace_config LMTraceContentConfig

Invocation-scoped content capture config snapshot.

system_instruction str | None

Source system text from the caller's history. Defaults to None.

LMUsageTraceState

Bases: BaseModel

Invocation attempt-scoped trace state that holds the latest usage-only snapshot.

Attributes:

Name Type Description
usage_snapshot LMOutput | None

The provider usage and usage-status metadata, without response content. Defaults to None.

get_tracer()

Gets the GLLM Inference tracer singleton.

Returns:

Type Description
Tracer

trace.Tracer: The versioned tracer for GLLM Inference instrumentation.