Meet Otter
Otter is always just a click away via the floating chat button (bottom-right corner of every page) or from the Chat entry in the sidebar. Otter paddles through your traces, metrics, and logs so you don’t have to.Key Features
- Natural Language Queries: Ask questions about your traces, metrics, costs, and tokens — the AI converts them to ClickHouse SQL and executes them
- Trace and Span Analysis: Run structured AI analysis on a full trace hierarchy or an individual span, with findings grouped by performance, reliability, cost, token efficiency, and execution path
- Prompt Improvement: Ask Otter to review an existing Prompt Hub prompt and suggest improvements without automatically saving changes
- Resource Management: Create and manage rules, contexts, prompts, vault secrets, and custom models through conversation
- Dashboard Generation: Describe the dashboard you want and get a complete importable layout with working queries
- SQL Execution: Generated queries run automatically with results displayed inline as tables and charts
- Save as Widget: Save any query result as a reusable dashboard widget
Get Started
Configure AI Provider
Navigate to Chat → Settings (gear icon in chat sidebar) and configure:
- Provider — Select from 14 supported providers (OpenAI, Anthropic, Google, etc.)
- Model — Choose a model from the provider’s list (includes custom models from Manage Models)
- API Key — Select a vault secret containing your provider’s API key
Store your API key in the Vault first, then select it in Chat Settings.
Start a Conversation
Click New Chat in the sidebar or use the floating chat button available on any page.Try example prompts like:
- “What are my top 5 most expensive models this week?”
- “Show me error rate by provider over the last 24 hours”
- “Create a rule that triggers when request duration exceeds 5 seconds”
Data Queries
Ask questions about your OpenTelemetry data and the AI generates ClickHouse SQL with dynamic time filters.Supported Tables
| Table | Description |
|---|---|
otel_traces | Traces and spans (LLM calls, API requests, etc.) |
otel_metrics_gauge | Gauge metrics (GPU temperature, memory, etc.) |
otel_metrics_sum | Counter/sum metrics (token counts, etc.) |
otel_metrics_histogram | Histogram metrics (request durations, etc.) |
Example Queries
Save as Widget
Click Save as Widget on any query result to:- Choose a widget type (Stat Card, Bar Chart, Line Chart, Pie Chart, Area Chart, Table)
- Select a dashboard to add it to
- The query is automatically converted to use dynamic time filters (
{{filter.timeLimit.start/end}})
AI Analysis for Traces and Spans
Otter can analyze telemetry directly from chat or from the trace detail view. Use this when you want a structured explanation of what happened in a trace, why a span is slow or expensive, or which part of an agent path should be improved.What Otter Reviews
Trace and span analysis evaluates:- Performance: slow spans, blocking operations, duration hotspots, and inefficient execution paths.
- Reliability: failed spans, exception signals, retry patterns, and unstable downstream calls.
- Cost: model usage, high-cost spans, token usage, and estimated spend.
- Token efficiency: input/output token balance, cache usage, repeated context, and response verbosity.
- Prompt and model behavior: prompt structure, model selection, and output quality signals.
- Telemetry quality: missing span attributes, weak resource metadata, and incomplete trace context.
- Actionability: each analysis section is reviewed by a grader pass to make recommendations clearer and more useful.
How to Run It
You can ask Otter questions like:Output
The response streams progress while each analysis dimension runs, then collapses into a completed analysis summary. Findings include the affected spans, severity, supporting evidence, and suggested fixes.Prompt Improvement from Chat
Otter can review Prompt Hub prompts by name or ID. For review-only requests, it loads the prompt and suggests changes without mutating the saved prompt. Example prompts:Otter only updates a Prompt Hub version when you explicitly ask it to save, apply, update, publish, or create a new version.
Resource Management
The chat can create and manage platform resources through natural language. All operations execute immediately.Supported Operations
| Resource | Operations |
|---|---|
| Rules | Create, update, delete, list, get details, link/unlink entities |
| Contexts | Create, update, delete, list |
| Prompts | Create, read, improve, update version, delete, list |
| Vault Secrets | Create, update, delete, list |
| Custom Models | Create, update, delete, list |
Examples
Vault key names are automatically normalized to UPPER_SNAKE_CASE (e.g., “my openai key” becomes “MY_OPENAI_KEY”).
Dashboard Generation
Describe the dashboard you want and the AI generates a complete importable layout.How it Works
- Ask: “Create a GPU monitoring dashboard with utilization, memory, and temperature widgets”
- The AI generates a dashboard JSON with:
- Widget definitions (type, title, SQL query, display properties)
- Grid layout positions
- Dynamic time filters (
{{filter.timeLimit.start/end}})
- A dashboard card appears with:
- Dashboard title and widget count
- Widget preview chips
- Import Dashboard button
- Download JSON button
- Click Import Dashboard to create it instantly
Dashboard Queries
All generated queries use the Mustache template pattern for dynamic time filtering:Cost & Token Tracking
Each conversation tracks:- Per-message: Input tokens, output tokens, estimated cost
- Per-conversation: Accumulated totals displayed in the sidebar
Conversation Management
- URL-based navigation: Each conversation has a unique URL (
/chat?id=<uuid>) - Auto-generated titles: Titles are generated after the first message exchange
- Persistent history: Conversations and messages are stored in ClickHouse
- Search: Filter conversations by title in the sidebar
- Delete: Hover over a conversation and click the trash icon
Configuration
Chat Settings
Access via the gear icon in the chat sidebar or navigate to/chat/settings.
| Setting | Description |
|---|---|
| Provider | LLM provider (OpenAI, Anthropic, Google, Mistral, Cohere, Groq, etc.) |
| Model | Model from the provider’s list (includes custom models) |
| API Key | Vault secret reference for the provider’s API key |
Supported Providers
OpenAI, Anthropic, Google, Mistral, Cohere, Groq, Perplexity, Azure OpenAI, Together AI, Fireworks AI, DeepSeek, xAI, Hugging Face, ReplicateSecurity
- All SQL queries execute with
readonlymode — no write operations possible - Queries are validated against an allowlist of tables (
otel_traces,otel_metrics_*) - DDL/DML statements (INSERT, UPDATE, DELETE, DROP, etc.) are rejected
- API keys are stored in the Vault and never sent to the client
- Query results have a LIMIT cap of 10,000 rows

