Traces
A trace represents a complete unit of work in your application. For example, a single API request to your server that involves multiple LLM calls would be one trace. Traces help you understand the full picture of what happened during a request, including all the LLM calls made along the way.Spans
A span is a single operation within a trace. Spans can be nested to represent parent-child relationships. For example:Generations
A generation is a single LLM API call. It captures:- Input - The messages/prompt sent to the model
- Output - The response from the model
- Model - Which model was used (e.g.,
gpt-4o,claude-3-5-sonnet) - Provider - The LLM provider (OpenAI, Anthropic, Google)
- Tokens - Input and output token counts
- Cost - Calculated cost based on token usage
- Latency - How long the request took
Projects
A project in Muxx represents a single application or environment. Each project has:- Its own API key
- Separate log storage
- Independent rate limits and settings
- Provider API keys configured per project
- One project per application
- Separate projects for development, staging, and production
Organizations
An organization is a container for projects and team members. Organizations handle:- Billing and subscription
- Team member access and roles
- Project organization
Gateway vs SDK
| Feature | Gateway | SDK |
|---|---|---|
| Setup | Change base URL | Install package, wrap client |
| Code changes | Minimal | Some |
| Tracing depth | Request-level | Trace/span-level |
| Caching | Yes | No (direct to provider) |
| Rate limiting | Yes | No (direct to provider) |
| Latency impact | Minimal | None (async batching) |