Skip to main content

Untrace SDKs

Untrace provides native SDKs for all major programming languages, each designed to integrate seamlessly with your existing codebase and framework of choice.

Supported Languages

JavaScript/TypeScript

Node.js, React, Next.js, Express
Zero-latency instrumentation with decorators and auto-instrumentation

Python

FastAPI, Django, Flask
Async support with context managers and framework integration

Go

Gin, Echo, Fiber
High-performance tracing with context propagation

Rust

Axum, Actix, Tokio
Zero-cost abstractions with async/await support

C#/.NET

ASP.NET Core, Console apps
Built-in DI support and activity-based tracing

Elixir

Phoenix, LiveView, OTP
Actor model integration with supervision trees

Quick Comparison

Common Features

All SDKs provide:
  • Zero-latency instrumentation - Minimal performance overhead
  • OpenTelemetry compliance - Industry-standard observability
  • Automatic provider detection - Works with all major LLM providers
  • Token usage tracking - Automatic cost calculation
  • Error handling - Comprehensive error capture and reporting
  • Custom attributes - Add your own metadata and context
  • Sampling support - Control data volume and costs
  • Batch processing - Efficient data transmission

Getting Started

1. Choose Your Language

Select the SDK that matches your tech stack:
  • Web Development: JavaScript/TypeScript, Python, C#/.NET
  • Microservices: Go, Rust, Elixir
  • AI/ML: Python, JavaScript/TypeScript
  • High Performance: Rust, Go
  • Enterprise: C#/.NET, Java (coming soon)

2. Install the SDK

Each language has its own installation method:

3. Initialize and Start Tracing

Framework Integration

Web Frameworks

AI/ML Frameworks

Migration Between Languages

If you’re switching between languages or have a polyglot codebase, Untrace makes it easy to maintain consistent observability:

Consistent Data Model

All SDKs use the same trace data structure:

Cross-Language Correlation

Traces from different languages are automatically correlated using:
  • Trace IDs - Unique identifiers for each trace
  • Parent-Child relationships - Link related operations
  • Workflow IDs - Group related traces across services
  • User/Session context - Maintain user journey across languages

Best Practices

1. Choose the Right SDK

  • JavaScript/TypeScript: Web applications, full-stack development
  • Python: AI/ML applications, data processing, APIs
  • Go: Microservices, high-performance APIs, CLI tools
  • Rust: High-performance systems, WebAssembly, embedded
  • C#/.NET: Enterprise applications, Windows services
  • Elixir: Real-time applications, distributed systems

2. Consistent Naming

Use consistent naming conventions across all your services:

3. Shared Context

Pass context between services using standard headers:

Next Steps

Choose Your SDK

Start with the main SDK documentation

Language-Specific Guides

Deep dive into your chosen language

Framework Examples

See real-world implementations

Dashboard Setup

Configure your observability dashboard