Trace Manager

The Trace Manager provides advanced functionality for managing, querying, and analyzing traces collected by the SessionTracer system.

Overview

The Trace Manager handles:
  • Trace Storage: Efficient storage and retrieval of trace data
  • Query Interface: Flexible querying of trace events
  • Data Export: Export traces in various formats
  • Analysis Tools: Built-in analytics and reporting

Basic Usage

from synth_ai.tracing_v3.storage.factory import create_trace_manager

# Create trace manager with storage backend
manager = create_trace_manager({
    "type": "sqlite",
    "database_path": "traces.db"
})

# Query traces
recent_traces = manager.get_traces(
    start_time="2024-01-01",
    end_time="2024-01-31"
)

Query Capabilities

The manager supports rich querying:
# Filter by session
session_traces = manager.get_traces(session_id="my-session")

# Filter by event type
lm_calls = manager.get_events(event_type="lm_call")

# Complex queries
expensive_calls = manager.get_events(
    event_type="lm_call",
    filters={
        "cost": {"gt": 0.01},
        "model": {"contains": "gpt-4"}
    }
)

Data Export

Export traces for external analysis:
# Export to JSON
manager.export_traces(
    session_ids=["session-1", "session-2"],
    format="json",
    output_path="traces.json"
)

# Export to CSV for analysis
manager.export_events(
    event_type="lm_call",
    format="csv",
    output_path="lm_calls.csv"
)

Analytics

Built-in analytics for common use cases:
# Cost analysis
cost_summary = manager.analyze_costs(
    start_date="2024-01-01",
    group_by="model"
)

# Performance metrics
perf_stats = manager.analyze_performance(
    event_type="lm_call",
    metrics=["latency", "tokens_per_second"]
)

Storage Backends

The manager supports multiple storage systems:

SQLite

Local development and small-scale deployments:
config = {
    "type": "sqlite",
    "database_path": "local_traces.db"
}

Turso

Distributed SQLite with global replication:
config = {
    "type": "turso", 
    "database_url": "libsql://your-db.turso.io",
    "auth_token": "your-auth-token"
}