TraceAgent

Lightweight Python SDK for observability with distributed tracing and span management.

Version: 0.1.0 License: MIT Package: traceagent

Overview

Lightweight Python observability SDK providing distributed tracing, span management, pluggable storage, function decorators, an MCP-compatible server, and a Rich terminal dashboard.

Components

ModulePurpose
modelsSpan, Trace, SpanStatus data classes
tracerTracer context-manager based span lifecycle
storageInMemoryStorage, FileStorage backends
decorators@trace, @trace_async function instrumentation
mcp_serverMCPServer exposing list_traces, get_trace, get_stats
dashboardrender_dashboard, render_trace via Rich

Quick Start

from traceagent import get_tracer, trace

tracer = get_tracer()

# Context manager
with tracer.start_span("my-operation", attributes={"user": "alice"}) as span:
    span.add_event("cache_miss")
    # ... your code ...

# Decorator
@trace(name="process-request")
def handle(req):
    ...

# Dashboard
from traceagent.dashboard import render_dashboard
render_dashboard()

MCP Server

from traceagent.mcp_server import MCPServer
server = MCPServer()
print(server.call_tool("get_stats"))

Storage Backends

from traceagent import FileStorage, Tracer
tracer = Tracer(storage=FileStorage("/tmp/traces"))