tracing

package
v0.2.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 3, 2026 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BraintrustOption

type BraintrustOption func(*braintrustConfig)

BraintrustOption configures a BraintrustProvider.

func WithBraintrustBaseURL

func WithBraintrustBaseURL(url string) BraintrustOption

WithBraintrustBaseURL sets the Braintrust API base URL.

func WithBraintrustExperiment

func WithBraintrustExperiment(name string) BraintrustOption

WithBraintrustExperiment sets the Braintrust experiment name.

func WithBraintrustProject

func WithBraintrustProject(name string) BraintrustOption

WithBraintrustProject sets the Braintrust project name.

type BraintrustProvider

type BraintrustProvider struct {
	// contains filtered or unexported fields
}

BraintrustProvider exports traces to Braintrust.

func NewBraintrustProvider

func NewBraintrustProvider(apiKey string, opts ...BraintrustOption) *BraintrustProvider

NewBraintrustProvider creates a new Braintrust tracing provider.

func (*BraintrustProvider) Flush

func (p *BraintrustProvider) Flush(ctx context.Context) error

func (*BraintrustProvider) StartGeneration

func (*BraintrustProvider) StartRun

func (p *BraintrustProvider) StartRun(ctx context.Context, info RunInfo) (context.Context, RunSpan)

func (*BraintrustProvider) StartToolCall

type GenerationInfo

type GenerationInfo struct {
	AgentName string
	Model     string
	Messages  []graft.Message
}

GenerationInfo carries data for starting a generation span.

type GenerationSpan

type GenerationSpan interface {
	End(err error)
	SetMetadata(meta map[string]any)
	SetUsage(usage graft.Usage)
	SetModel(model string)
}

GenerationSpan represents an LLM generation span.

type LangSmithOption

type LangSmithOption func(*langsmithConfig)

LangSmithOption configures a LangSmithProvider.

func WithLangSmithBaseURL

func WithLangSmithBaseURL(url string) LangSmithOption

WithLangSmithBaseURL sets the LangSmith API base URL.

func WithLangSmithProject

func WithLangSmithProject(name string) LangSmithOption

WithLangSmithProject sets the LangSmith project name.

type LangSmithProvider

type LangSmithProvider struct {
	// contains filtered or unexported fields
}

LangSmithProvider exports traces to LangSmith.

func NewLangSmithProvider

func NewLangSmithProvider(apiKey string, opts ...LangSmithOption) *LangSmithProvider

NewLangSmithProvider creates a new LangSmith tracing provider.

func (*LangSmithProvider) Flush

func (p *LangSmithProvider) Flush(ctx context.Context) error

func (*LangSmithProvider) StartGeneration

func (*LangSmithProvider) StartRun

func (p *LangSmithProvider) StartRun(ctx context.Context, info RunInfo) (context.Context, RunSpan)

func (*LangSmithProvider) StartToolCall

func (p *LangSmithProvider) StartToolCall(ctx context.Context, info ToolCallInfo) (context.Context, ToolCallSpan)

type MultiProvider

type MultiProvider struct {
	// contains filtered or unexported fields
}

MultiProvider fans out trace events to multiple providers. Errors from individual providers are logged, not propagated.

func NewMultiProvider

func NewMultiProvider(providers ...TracingProvider) *MultiProvider

NewMultiProvider creates a provider that sends to all given providers.

func (*MultiProvider) Flush

func (m *MultiProvider) Flush(ctx context.Context) error

func (*MultiProvider) StartGeneration

func (m *MultiProvider) StartGeneration(ctx context.Context, info GenerationInfo) (context.Context, GenerationSpan)

func (*MultiProvider) StartRun

func (m *MultiProvider) StartRun(ctx context.Context, info RunInfo) (context.Context, RunSpan)

func (*MultiProvider) StartToolCall

func (m *MultiProvider) StartToolCall(ctx context.Context, info ToolCallInfo) (context.Context, ToolCallSpan)

type NoopProvider

type NoopProvider struct{}

NoopProvider is a no-op tracing provider for disabling tracing.

func NewNoopProvider

func NewNoopProvider() *NoopProvider

NewNoopProvider creates a no-op provider.

func (*NoopProvider) Flush

func (p *NoopProvider) Flush(_ context.Context) error

func (*NoopProvider) StartGeneration

func (*NoopProvider) StartRun

func (p *NoopProvider) StartRun(ctx context.Context, _ RunInfo) (context.Context, RunSpan)

func (*NoopProvider) StartToolCall

func (p *NoopProvider) StartToolCall(ctx context.Context, _ ToolCallInfo) (context.Context, ToolCallSpan)

type OTelProvider

type OTelProvider struct {
	// contains filtered or unexported fields
}

OTelProvider bridges the TracingProvider interface to OpenTelemetry.

func NewOTelProvider

func NewOTelProvider(tracer trace.Tracer) *OTelProvider

NewOTelProvider creates a TracingProvider backed by OTel.

func (*OTelProvider) Flush

func (p *OTelProvider) Flush(_ context.Context) error

func (*OTelProvider) StartGeneration

func (p *OTelProvider) StartGeneration(ctx context.Context, info GenerationInfo) (context.Context, GenerationSpan)

func (*OTelProvider) StartRun

func (p *OTelProvider) StartRun(ctx context.Context, info RunInfo) (context.Context, RunSpan)

func (*OTelProvider) StartToolCall

func (p *OTelProvider) StartToolCall(ctx context.Context, info ToolCallInfo) (context.Context, ToolCallSpan)

type Option

type Option func(*tracedConfig)

Option configures a TracedRunner.

func WithCaptureInput

func WithCaptureInput(enabled bool) Option

WithCaptureInput enables capturing input messages in traces.

func WithCaptureOutput

func WithCaptureOutput(enabled bool) Option

WithCaptureOutput enables capturing output messages in traces.

func WithMetadata

func WithMetadata(meta map[string]any) Option

WithMetadata sets default metadata added to all spans.

type RunInfo

type RunInfo struct {
	AgentName string
	Model     string
	Messages  []graft.Message
	Metadata  map[string]any
}

RunInfo carries data for starting a run span.

type RunSpan

type RunSpan interface {
	End(err error)
	SetMetadata(meta map[string]any)
	SetUsage(usage graft.Usage)
}

RunSpan represents a top-level agent run span.

type ToolCallInfo

type ToolCallInfo struct {
	ToolName  string
	Arguments []byte
}

ToolCallInfo carries data for starting a tool call span.

type ToolCallSpan

type ToolCallSpan interface {
	End(err error)
	SetMetadata(meta map[string]any)
	SetResult(result any)
}

ToolCallSpan represents a tool invocation span.

type TracedRunner

type TracedRunner struct {
	// contains filtered or unexported fields
}

TracedRunner wraps a graft.Runner with tracing instrumentation.

func NewTracedRunner

func NewTracedRunner(runner graft.Runner, provider TracingProvider, opts ...Option) *TracedRunner

NewTracedRunner creates a new tracing-instrumented runner.

func (*TracedRunner) Run

func (r *TracedRunner) Run(ctx context.Context, agent *graft.Agent, messages []graft.Message, opts ...graft.RunOption) (*graft.Result, error)

func (*TracedRunner) RunStream

func (r *TracedRunner) RunStream(ctx context.Context, agent *graft.Agent, messages []graft.Message, opts ...graft.RunOption) (<-chan graft.StreamEvent, error)

type TracingProvider

type TracingProvider interface {
	StartRun(ctx context.Context, info RunInfo) (context.Context, RunSpan)
	StartGeneration(ctx context.Context, info GenerationInfo) (context.Context, GenerationSpan)
	StartToolCall(ctx context.Context, info ToolCallInfo) (context.Context, ToolCallSpan)
	Flush(ctx context.Context) error
}

TracingProvider is the interface for agent-specific tracing backends.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL