Documentation
¶
Overview ¶
Package tracingapi provides types for OpenTelemetry tracing support, notably to reduce chance of cyclic imports. No implementations besides no-op are here.
Index ¶
- type Backend
- type BackendRecorder
- type BackendSpan
- type ChatCompletionRecorder
- type ChatCompletionSpan
- type ChatCompletionTracer
- type CompletionRecorder
- type CompletionSpan
- type CompletionTracer
- type CountTokensRecorder
- type CountTokensSpan
- type CountTokensTracer
- type EmbeddingsRecorder
- type EmbeddingsSpan
- type EmbeddingsTracer
- type ImageGenerationRecorder
- type ImageGenerationSpan
- type ImageGenerationTracer
- type MCPSpan
- type MCPTracer
- type MessageRecorder
- type MessageSpan
- type MessageTracer
- type NoopChatCompletionTracer
- type NoopChunkRecorder
- type NoopCompletionTracer
- type NoopCountTokensTracer
- type NoopEmbeddingsTracer
- type NoopImageGenerationTracer
- type NoopMCPTracer
- type NoopMessageTracer
- type NoopRerankTracer
- type NoopResponsesInputTokensTracer
- type NoopResponsesTracer
- type NoopSpeechTracer
- type NoopTokenizeTracer
- type NoopTracer
- type NoopTracing
- func (NoopTracing) ChatCompletionTracer() ChatCompletionTracer
- func (NoopTracing) CompletionTracer() CompletionTracer
- func (NoopTracing) CountTokensTracer() CountTokensTracer
- func (NoopTracing) EmbeddingsTracer() EmbeddingsTracer
- func (NoopTracing) ImageGenerationTracer() ImageGenerationTracer
- func (t NoopTracing) MCPTracer() MCPTracer
- func (NoopTracing) MessageTracer() MessageTracer
- func (NoopTracing) RerankTracer() RerankTracer
- func (NoopTracing) ResponsesInputTokensTracer() ResponsesInputTokensTracer
- func (NoopTracing) ResponsesTracer() ResponsesTracer
- func (NoopTracing) Shutdown(context.Context) error
- func (NoopTracing) SpeechTracer() SpeechTracer
- func (NoopTracing) TokenizeTracer() TokenizeTracer
- func (NoopTracing) TranscriptionTracer() TranscriptionTracer
- func (NoopTracing) TranslationTracer() TranslationTracer
- type NoopTranscriptionTracer
- type NoopTranslationTracer
- type RequestTracer
- type RerankRecorder
- type RerankSpan
- type RerankTracer
- type ResponsesInputTokensRecorder
- type ResponsesInputTokensSpan
- type ResponsesInputTokensTracer
- type ResponsesRecorder
- type ResponsesSpan
- type ResponsesTracer
- type Span
- type SpanRecorder
- type SpanResponseRecorder
- type SpeechRecorder
- type SpeechSpan
- type SpeechTracer
- type TokenizeRecorder
- type TokenizeSpan
- type TokenizeTracer
- type Tracing
- type TranscriptionRecorder
- type TranscriptionSpan
- type TranscriptionTracer
- type TranslationRecorder
- type TranslationSpan
- type TranslationTracer
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Backend ¶ added in v1.1.0
type Backend struct {
// Schema is the backend's API schema name, e.g. "OpenAI" or "AWSBedrock".
Schema string
// Name is the configured backend name, used when Schema has no well-known
// mapping.
Name string
}
Backend describes the upstream a request was routed to. It is deliberately a small value type rather than filterapi.Backend so this package stays free of heavier dependencies.
type BackendRecorder ¶ added in v1.1.0
type BackendRecorder interface {
// RecordBackend records backend attributes to the span.
RecordBackend(span trace.Span, backend Backend)
}
BackendRecorder is implemented by span recorders whose semantic convention records the resolved backend. Recorders that do not simply omit it.
type BackendSpan ¶ added in v1.1.0
type BackendSpan interface {
// RecordBackend records the resolved upstream backend on the span.
RecordBackend(backend Backend)
}
BackendSpan is implemented by spans that can record the resolved backend.
It is an optional interface rather than part of Span because the backend is only known after routing, long after the span starts, and because only some semantic conventions record it. Callers must type-assert.
type ChatCompletionRecorder ¶
type ChatCompletionRecorder = SpanRecorder[openai.ChatCompletionRequest, openai.ChatCompletionResponse, openai.ChatCompletionResponseChunk]
ChatCompletionRecorder records attributes to a span according to a semantic convention.
type ChatCompletionSpan ¶
type ChatCompletionSpan = Span[openai.ChatCompletionResponse, openai.ChatCompletionResponseChunk]
ChatCompletionSpan represents an OpenAI chat completion.
type ChatCompletionTracer ¶
type ChatCompletionTracer = RequestTracer[openai.ChatCompletionRequest, openai.ChatCompletionResponse, openai.ChatCompletionResponseChunk]
ChatCompletionTracer creates spans for OpenAI chat completion requests.
type CompletionRecorder ¶
type CompletionRecorder = SpanRecorder[openai.CompletionRequest, openai.CompletionResponse, openai.CompletionResponse]
CompletionRecorder records attributes to a span according to a semantic convention. Note: Completion streaming chunks are full CompletionResponse objects, not deltas like chat completions.
type CompletionSpan ¶
type CompletionSpan = Span[openai.CompletionResponse, openai.CompletionResponse]
CompletionSpan represents an OpenAI completion request. Note: Completion streaming chunks are full CompletionResponse objects, not deltas like chat completions.
type CompletionTracer ¶
type CompletionTracer = RequestTracer[openai.CompletionRequest, openai.CompletionResponse, openai.CompletionResponse]
CompletionTracer creates spans for OpenAI completion requests.
type CountTokensRecorder ¶ added in v1.1.0
type CountTokensRecorder = SpanRecorder[anthropicschema.CountTokensRequest, anthropicschema.CountTokensResponse, struct{}]
CountTokensRecorder records attributes to a span according to a semantic convention.
type CountTokensSpan ¶ added in v1.1.0
type CountTokensSpan = Span[anthropicschema.CountTokensResponse, struct{}]
CountTokensSpan represents an Anthropic count tokens request span.
type CountTokensTracer ¶ added in v1.1.0
type CountTokensTracer = RequestTracer[anthropicschema.CountTokensRequest, anthropicschema.CountTokensResponse, struct{}]
CountTokensTracer creates spans for Anthropic count tokens requests.
type EmbeddingsRecorder ¶
type EmbeddingsRecorder = SpanRecorder[openai.EmbeddingRequest, openai.EmbeddingResponse, struct{}]
EmbeddingsRecorder records attributes to a span according to a semantic convention.
type EmbeddingsSpan ¶
type EmbeddingsSpan = Span[openai.EmbeddingResponse, struct{}]
EmbeddingsSpan represents an OpenAI embeddings request. The chunk type is unused and therefore set to struct{}.
type EmbeddingsTracer ¶
type EmbeddingsTracer = RequestTracer[openai.EmbeddingRequest, openai.EmbeddingResponse, struct{}]
EmbeddingsTracer creates spans for OpenAI embeddings requests.
type ImageGenerationRecorder ¶
type ImageGenerationRecorder = SpanRecorder[openai.ImageGenerationRequest, openai.ImageGenerationResponse, struct{}]
ImageGenerationRecorder records attributes to a span according to a semantic convention.
type ImageGenerationSpan ¶
type ImageGenerationSpan = Span[openai.ImageGenerationResponse, struct{}]
ImageGenerationSpan represents an OpenAI image generation.
type ImageGenerationTracer ¶
type ImageGenerationTracer = RequestTracer[openai.ImageGenerationRequest, openai.ImageGenerationResponse, struct{}]
ImageGenerationTracer creates spans for OpenAI image generation requests.
type MCPSpan ¶
type MCPSpan interface {
// RecordRouteToBackend records the backend that was routed to. It is called
// once per backend, so for the methods that broadcast (initialize, the
// list aggregations) it is called several times on the same span.
RecordRouteToBackend(backend string, session string, isNew bool)
// RecordClientSession records the client-facing MCP session, i.e. the
// session between the MCP client and this gateway. Unlike the per-backend
// session passed to RecordRouteToBackend, there is exactly one per request,
// which is what the conventions mean by mcp.session.id.
RecordClientSession(sessionID string)
// AddEvent records a timestamped event (OTel annotation) on the span, giving
// list operations a "begin"/"end" timeline alongside their attributes.
AddEvent(name string)
// RecordListResult records the size of an aggregated list result
// (tools/list, resources/list, prompts/list, resources/templates/list) as a
// count attribute. Content is never recorded; only the count is.
RecordListResult(result any)
// RecordToolCallResult records the tools/call result payload as the
// gen_ai.tool.call.result attribute. The raw result JSON is recorded only
// when message-content capture is enabled; otherwise the call is a no-op.
RecordToolCallResult(resultJSON []byte)
// EndSpan finalizes and ends the span.
EndSpan()
// EndSpanOnError finalizes and ends the span with an error status.
EndSpanOnError(errType string, err error)
}
MCPSpan represents an MCP span.
A span records the vocabulary of the semantic convention selected by the AI_GATEWAY_TRACING_SEMCONV environment variable. Methods describing signals a convention does not define are no-ops under that convention rather than errors, so the MCP proxy calls them unconditionally.
type MCPTracer ¶
type MCPTracer interface {
// StartSpanAndInjectMeta starts a span and injects trace context into
// the _meta mutation.
//
// The parent trace context is taken from the HTTP headers first, then the JSON-RPC _meta on
// top, so _meta wins when a client propagates in both. Either source alone works.
//
// Parameters:
// - ctx: might include a parent span context.
// - req: Incoming MCP request message.
// - param: Incoming MCP parameter used to extract parent trace context.
// - headers: Request HTTP request headers, also used to extract parent trace context.
//
// Returns nil unless the span is sampled.
StartSpanAndInjectMeta(ctx context.Context, req *jsonrpc.Request, param mcp.Params, headers http.Header) MCPSpan
}
MCPTracer creates spans for MCP requests.
type MessageRecorder ¶
type MessageRecorder = SpanRecorder[anthropicschema.MessagesRequest, anthropicschema.MessagesResponse, anthropicschema.MessagesStreamChunk]
MessageRecorder records attributes to a span according to a semantic convention.
type MessageSpan ¶
type MessageSpan = Span[anthropicschema.MessagesResponse, anthropicschema.MessagesStreamChunk]
MessageSpan represents an Anthropic messages request span.
type MessageTracer ¶
type MessageTracer = RequestTracer[anthropicschema.MessagesRequest, anthropicschema.MessagesResponse, anthropicschema.MessagesStreamChunk]
MessageTracer creates spans for Anthropic messages requests.
type NoopChatCompletionTracer ¶
type NoopChatCompletionTracer = NoopTracer[openai.ChatCompletionRequest, openai.ChatCompletionResponse, openai.ChatCompletionResponseChunk]
NoopChatCompletionTracer implements ChatCompletionTracer.
type NoopChunkRecorder ¶
type NoopChunkRecorder[ChunkT any] struct{}
NoopChunkRecorder provides a no-op RecordResponseChunks implementation for recorders that don't emit streaming chunks.
func (NoopChunkRecorder[ChunkT]) RecordResponseChunks ¶
func (NoopChunkRecorder[ChunkT]) RecordResponseChunks(trace.Span, []*ChunkT)
RecordResponseChunks implements SpanRecorder.RecordResponseChunks as a no-op.
type NoopCompletionTracer ¶
type NoopCompletionTracer = NoopTracer[openai.CompletionRequest, openai.CompletionResponse, openai.CompletionResponse]
NoopCompletionTracer implements CompletionTracer.
type NoopCountTokensTracer ¶ added in v1.1.0
type NoopCountTokensTracer = NoopTracer[anthropicschema.CountTokensRequest, anthropicschema.CountTokensResponse, struct{}]
NoopCountTokensTracer implements CountTokensTracer.
type NoopEmbeddingsTracer ¶
type NoopEmbeddingsTracer = NoopTracer[openai.EmbeddingRequest, openai.EmbeddingResponse, struct{}]
NoopEmbeddingsTracer implements EmbeddingsTracer.
type NoopImageGenerationTracer ¶
type NoopImageGenerationTracer = NoopTracer[openai.ImageGenerationRequest, openai.ImageGenerationResponse, struct{}]
NoopImageGenerationTracer implements ImageGenerationTracer.
type NoopMCPTracer ¶
type NoopMCPTracer struct{}
NoopMCPTracer is a no-op implementation of MCPTracer.
func (NoopMCPTracer) StartSpanAndInjectMeta ¶
func (NoopMCPTracer) StartSpanAndInjectMeta(context.Context, *jsonrpc.Request, mcp.Params, http.Header) MCPSpan
StartSpanAndInjectMeta implements MCPTracer.StartSpanAndInjectMeta.
type NoopMessageTracer ¶
type NoopMessageTracer = NoopTracer[anthropicschema.MessagesRequest, anthropicschema.MessagesResponse, anthropicschema.MessagesStreamChunk]
NoopMessageTracer implements MessageTracer.
type NoopRerankTracer ¶
type NoopRerankTracer = NoopTracer[cohere.RerankV2Request, cohere.RerankV2Response, struct{}]
NoopRerankTracer implements RerankTracer.
type NoopResponsesInputTokensTracer ¶ added in v1.1.0
type NoopResponsesInputTokensTracer = NoopTracer[openai.ResponseRequest, openai.ResponsesInputTokensResponse, struct{}]
NoopResponsesInputTokensTracer implements ResponsesInputTokensTracer.
type NoopResponsesTracer ¶
type NoopResponsesTracer = NoopTracer[openai.ResponseRequest, openai.Response, openai.ResponseStreamEventUnion]
NoopResponsesTracer implements ResponsesTracer.
type NoopSpeechTracer ¶ added in v0.6.0
type NoopSpeechTracer = NoopTracer[openai.SpeechRequest, []byte, openai.SpeechStreamChunk]
NoopSpeechTracer implements SpeechTracer.
type NoopTokenizeTracer ¶ added in v1.1.0
type NoopTokenizeTracer = NoopTracer[tokenize.RequestUnion, tokenize.Response, struct{}]
NoopTokenizeTracer implements TokenizeTracer.
type NoopTracer ¶
NoopTracer implements RequestTracer without producing spans.
func (NoopTracer[ReqT, RespT, RespChunkT]) StartSpanAndInjectHeaders ¶
func (NoopTracer[ReqT, RespT, RespChunkT]) StartSpanAndInjectHeaders(context.Context, map[string]string, propagation.TextMapCarrier, *ReqT, []byte) Span[RespT, RespChunkT]
StartSpanAndInjectHeaders implements RequestTracer.StartSpanAndInjectHeaders.
type NoopTracing ¶
type NoopTracing struct{}
NoopTracing is a Tracing that doesn't do anything.
func (NoopTracing) ChatCompletionTracer ¶
func (NoopTracing) ChatCompletionTracer() ChatCompletionTracer
ChatCompletionTracer implements Tracing.ChatCompletionTracer.
func (NoopTracing) CompletionTracer ¶
func (NoopTracing) CompletionTracer() CompletionTracer
CompletionTracer implements Tracing.CompletionTracer.
func (NoopTracing) CountTokensTracer ¶ added in v1.1.0
func (NoopTracing) CountTokensTracer() CountTokensTracer
CountTokensTracer implements Tracing.CountTokensTracer.
func (NoopTracing) EmbeddingsTracer ¶
func (NoopTracing) EmbeddingsTracer() EmbeddingsTracer
EmbeddingsTracer implements Tracing.EmbeddingsTracer.
func (NoopTracing) ImageGenerationTracer ¶
func (NoopTracing) ImageGenerationTracer() ImageGenerationTracer
ImageGenerationTracer implements Tracing.ImageGenerationTracer.
func (NoopTracing) MCPTracer ¶
func (t NoopTracing) MCPTracer() MCPTracer
func (NoopTracing) MessageTracer ¶
func (NoopTracing) MessageTracer() MessageTracer
func (NoopTracing) RerankTracer ¶
func (NoopTracing) RerankTracer() RerankTracer
RerankTracer implements Tracing.RerankTracer.
func (NoopTracing) ResponsesInputTokensTracer ¶ added in v1.1.0
func (NoopTracing) ResponsesInputTokensTracer() ResponsesInputTokensTracer
ResponsesInputTokensTracer implements Tracing.ResponsesInputTokensTracer.
func (NoopTracing) ResponsesTracer ¶
func (NoopTracing) ResponsesTracer() ResponsesTracer
ResponsesTracer implements Tracing.ResponsesTracer.
func (NoopTracing) Shutdown ¶
func (NoopTracing) Shutdown(context.Context) error
Shutdown implements Tracing.Shutdown.
func (NoopTracing) SpeechTracer ¶ added in v0.6.0
func (NoopTracing) SpeechTracer() SpeechTracer
SpeechTracer implements Tracing.SpeechTracer.
func (NoopTracing) TokenizeTracer ¶ added in v1.1.0
func (NoopTracing) TokenizeTracer() TokenizeTracer
TokenizeTracer implements Tracing.TokenizeTracer.
func (NoopTracing) TranscriptionTracer ¶ added in v0.7.0
func (NoopTracing) TranscriptionTracer() TranscriptionTracer
TranscriptionTracer implements Tracing.TranscriptionTracer.
func (NoopTracing) TranslationTracer ¶ added in v0.7.0
func (NoopTracing) TranslationTracer() TranslationTracer
TranslationTracer implements Tracing.TranslationTracer.
type NoopTranscriptionTracer ¶ added in v0.7.0
type NoopTranscriptionTracer = NoopTracer[openai.TranscriptionRequest, openai.TranscriptionResponse, openai.TranscriptionStreamEvent]
NoopTranscriptionTracer implements TranscriptionTracer.
type NoopTranslationTracer ¶ added in v0.7.0
type NoopTranslationTracer = NoopTracer[openai.TranslationRequest, openai.TranslationResponse, struct{}]
NoopTranslationTracer implements TranslationTracer.
type RequestTracer ¶
type RequestTracer[ReqT any, RespT any, RespChunkT any] interface { // StartSpanAndInjectHeaders starts a span and injects trace context into the header mutation. // // Parameters: // - ctx: might include a parent span context. // - headers: Incoming HTTP headers used to extract parent trace context. // - headerMutation: The new span will have its context written to these headers unless NoopTracing is used. // - req: The typed request used to detect streaming and record request attributes. // - body: contains the original raw request body as a byte slice. // // Returns nil unless the span is sampled. StartSpanAndInjectHeaders(ctx context.Context, headers map[string]string, carrier propagation.TextMapCarrier, req *ReqT, body []byte) Span[RespT, RespChunkT] }
RequestTracer standardizes tracer implementations for non-MCP requests.
type RerankRecorder ¶
type RerankRecorder = SpanRecorder[cohere.RerankV2Request, cohere.RerankV2Response, struct{}]
RerankRecorder records attributes to a span according to a semantic convention.
type RerankSpan ¶
type RerankSpan = Span[cohere.RerankV2Response, struct{}]
RerankSpan represents a rerank request span.
type RerankTracer ¶
type RerankTracer = RequestTracer[cohere.RerankV2Request, cohere.RerankV2Response, struct{}]
RerankTracer creates spans for rerank requests.
type ResponsesInputTokensRecorder ¶ added in v1.1.0
type ResponsesInputTokensRecorder = SpanRecorder[openai.ResponseRequest, openai.ResponsesInputTokensResponse, struct{}]
ResponsesInputTokensRecorder records attributes to a span according to a semantic convention.
type ResponsesInputTokensSpan ¶ added in v1.1.0
type ResponsesInputTokensSpan = Span[openai.ResponsesInputTokensResponse, struct{}]
ResponsesInputTokensSpan represents an OpenAI /v1/responses/input_tokens request span.
type ResponsesInputTokensTracer ¶ added in v1.1.0
type ResponsesInputTokensTracer = RequestTracer[openai.ResponseRequest, openai.ResponsesInputTokensResponse, struct{}]
ResponsesInputTokensTracer creates spans for OpenAI /v1/responses/input_tokens requests.
type ResponsesRecorder ¶
type ResponsesRecorder = SpanRecorder[openai.ResponseRequest, openai.Response, openai.ResponseStreamEventUnion]
ResponsesRecorder records attributes to a span according to a semantic convention.
type ResponsesSpan ¶
type ResponsesSpan = Span[openai.Response, openai.ResponseStreamEventUnion]
ResponsesSpan represents an OpenAI responses request span.
type ResponsesTracer ¶
type ResponsesTracer = RequestTracer[openai.ResponseRequest, openai.Response, openai.ResponseStreamEventUnion]
ResponsesTracer creates spans for OpenAI responses requests.
type Span ¶
type Span[RespT any, RespChunkT any] interface { // RecordResponseChunk records streaming response chunks. Implementations that do not support streaming should provide a no-op implementation. RecordResponseChunk(resp *RespChunkT) // RecordResponse records the response attributes to the span. RecordResponse(resp *RespT) // EndSpanOnError finalizes and ends the span with an error status. EndSpanOnError(statusCode int, body []byte) // EndSpan finalizes and ends the span. EndSpan() }
Span standardizes span interfaces, supporting both streaming and non-streaming endpoints.
type SpanRecorder ¶
type SpanRecorder[ReqT any, RespT any, RespChunkT any] interface { SpanResponseRecorder[RespT, RespChunkT] // StartParams returns the name and options to start the span with. // // Parameters: // - req: contains the typed request. // - body: contains the complete request body. // // Note: Avoid expensive data conversions since the span might not be sampled. StartParams(req *ReqT, body []byte) (spanName string, opts []trace.SpanStartOption) // RecordRequest records request attributes to the span. RecordRequest(span trace.Span, req *ReqT, body []byte) }
SpanRecorder standardizes recorder implementations for non-MCP tracers.
type SpanResponseRecorder ¶
type SpanResponseRecorder[RespT, RespChunkT any] interface { // RecordResponse records response attributes to the span. RecordResponse(span trace.Span, resp *RespT) // RecordResponseOnError ends recording the span with an error status. RecordResponseOnError(span trace.Span, statusCode int, body []byte) // RecordResponseChunks records response chunk attributes to the span for streaming response. RecordResponseChunks(span trace.Span, chunks []*RespChunkT) }
SpanResponseRecorder standardizes response recording for non-MCP tracers.
It is separated from SpanRecorder to allow reusing response recording logic.
type SpeechRecorder ¶ added in v0.6.0
type SpeechRecorder = SpanRecorder[openai.SpeechRequest, []byte, openai.SpeechStreamChunk]
SpeechRecorder records attributes to a span according to a semantic convention.
type SpeechSpan ¶ added in v0.6.0
type SpeechSpan = Span[[]byte, openai.SpeechStreamChunk]
SpeechSpan represents an OpenAI speech synthesis request span.
type SpeechTracer ¶ added in v0.6.0
type SpeechTracer = RequestTracer[openai.SpeechRequest, []byte, openai.SpeechStreamChunk]
SpeechTracer creates spans for OpenAI speech synthesis requests.
type TokenizeRecorder ¶ added in v1.1.0
type TokenizeRecorder = SpanRecorder[tokenize.RequestUnion, tokenize.Response, struct{}]
TokenizeRecorder records attributes to a span according to a semantic convention.
type TokenizeSpan ¶ added in v1.1.0
TokenizeSpan represents a tokenize request span. The chunk type is unused and therefore set to struct{}.
type TokenizeTracer ¶ added in v1.1.0
type TokenizeTracer = RequestTracer[tokenize.RequestUnion, tokenize.Response, struct{}]
TokenizeTracer creates spans for tokenize requests.
type Tracing ¶
type Tracing interface {
// ChatCompletionTracer creates spans for OpenAI chat completion requests on /chat/completions endpoint.
ChatCompletionTracer() ChatCompletionTracer
// ImageGenerationTracer creates spans for OpenAI image generation requests.
ImageGenerationTracer() ImageGenerationTracer
// CompletionTracer creates spans for OpenAI completion requests on /completions endpoint.
CompletionTracer() CompletionTracer
// EmbeddingsTracer creates spans for OpenAI embeddings requests on /embeddings endpoint.
EmbeddingsTracer() EmbeddingsTracer
// ResponsesTracer creates spans for OpenAI responses requests on /v1/responses endpoint.
ResponsesTracer() ResponsesTracer
// SpeechTracer creates spans for OpenAI speech synthesis requests on /v1/audio/speech endpoint.
SpeechTracer() SpeechTracer
// TranscriptionTracer creates spans for OpenAI audio transcription requests on /v1/audio/transcriptions endpoint.
TranscriptionTracer() TranscriptionTracer
// TranslationTracer creates spans for OpenAI audio translation requests on /v1/audio/translations endpoint.
TranslationTracer() TranslationTracer
// RerankTracer creates spans for rerank requests.
RerankTracer() RerankTracer
// MessageTracer creates spans for Anthropic messages requests.
MessageTracer() MessageTracer
// TokenizeTracer creates spans for tokenize requests.
TokenizeTracer() TokenizeTracer
// ResponsesInputTokensTracer creates spans for OpenAI /v1/responses/input_tokens requests.
ResponsesInputTokensTracer() ResponsesInputTokensTracer
// CountTokensTracer creates spans for Anthropic count tokens requests.
CountTokensTracer() CountTokensTracer
// MCPTracer creates spans for MCP requests.
MCPTracer() MCPTracer
// Shutdown shuts down the tracer, flushing any buffered spans.
Shutdown(context.Context) error
}
Tracing gives access to tracer types needed for endpoints such as OpenAI chat completions, image generation, embeddings, and MCP requests.
type TranscriptionRecorder ¶ added in v0.7.0
type TranscriptionRecorder = SpanRecorder[openai.TranscriptionRequest, openai.TranscriptionResponse, openai.TranscriptionStreamEvent]
TranscriptionRecorder records attributes to a span according to a semantic convention.
type TranscriptionSpan ¶ added in v0.7.0
type TranscriptionSpan = Span[openai.TranscriptionResponse, openai.TranscriptionStreamEvent]
TranscriptionSpan represents an OpenAI audio transcription request span.
type TranscriptionTracer ¶ added in v0.7.0
type TranscriptionTracer = RequestTracer[openai.TranscriptionRequest, openai.TranscriptionResponse, openai.TranscriptionStreamEvent]
TranscriptionTracer creates spans for OpenAI audio transcription requests. The chunk type is openai.TranscriptionStreamEvent because gpt-4o-transcribe and gpt-4o-mini-transcribe emit SSE events when stream=true. whisper-1 and gpt-4o-transcribe-diarize never stream, but the chunk recorder is still invoked with a zero-length slice for those — same as any other non-streaming endpoint.
type TranslationRecorder ¶ added in v0.7.0
type TranslationRecorder = SpanRecorder[openai.TranslationRequest, openai.TranslationResponse, struct{}]
TranslationRecorder records attributes to a span according to a semantic convention.
type TranslationSpan ¶ added in v0.7.0
type TranslationSpan = Span[openai.TranslationResponse, struct{}]
TranslationSpan represents an OpenAI audio translation request span.
type TranslationTracer ¶ added in v0.7.0
type TranslationTracer = RequestTracer[openai.TranslationRequest, openai.TranslationResponse, struct{}]
TranslationTracer creates spans for OpenAI audio translation requests. Translation has no streaming per the OpenAI spec, so the chunk type stays struct{}.