5a558eb09e
TypeScript SDK Compatibility V1.x E2E Tests / Select Node version matrix (push) Has been cancelled
TypeScript SDK Compatibility V1.x E2E Tests / TypeScript SDK Compatibility V1.x E2E Tests Node ${{matrix.node_version}} (push) Has been cancelled
TypeScript SDK E2E Tests / TypeScript SDK E2E Tests Node ${{matrix.node_version}} (push) Has been cancelled
Opik Optimizer - E2E Tests / build-opik (push) Has been cancelled
TypeScript SDK Compatibility V1.x E2E Tests / build-opik (push) Has been cancelled
Python SDK E2E Tests / Select Python version matrix (push) Has been cancelled
Python SDK E2E Tests / Python SDK E2E Tests ${{matrix.python_version}} (push) Has been cancelled
Python SDK E2E Tests / build-opik (push) Has been cancelled
Python SDK Compatibility V1.x E2E Tests / Select Python version matrix (push) Has been cancelled
Python SDK Compatibility V1.x E2E Tests / Python SDK Compatibility V1.x E2E Tests ${{matrix.python_version}} (push) Has been cancelled
Python SDK Compatibility V1.x E2E Tests / build-opik (push) Has been cancelled
TypeScript SDK E2E Tests / Select Node version matrix (push) Has been cancelled
TypeScript SDK E2E Tests / build-opik (push) Has been cancelled
Opik Optimizer - E2E Tests / Opik Optimizer E2E Tests Python ${{matrix.python_version}} (push) Has been cancelled
Opik Optimizer - E2E Tests / Opik Optimizer Integration Smoke Tests (push) Has been cancelled
🐙 Code Quality / detect (push) Has been cancelled
🐙 Code Quality / lint (${{ matrix.leg.name }}) (push) Has been cancelled
🐙 Code Quality / summary (push) Has been cancelled
TypeScript SDK Library Integration Tests / Check Secrets (push) Has been cancelled
TypeScript SDK Library Integration Tests / opik-vercel (Vercel AI SDK / eve) (push) Has been cancelled
SDK Library Integration Tests Runner / Check Secrets (push) Has been cancelled
SDK Library Integration Tests Runner / Missed OpenAI API Key Warning (push) Has been cancelled
SDK Library Integration Tests Runner / Build (push) Has been cancelled
SDK Library Integration Tests Runner / openai_tests (push) Has been cancelled
SDK Library Integration Tests Runner / langchain_tests (push) Has been cancelled
SDK Library Integration Tests Runner / langchain_legacy_tests (push) Has been cancelled
SDK Library Integration Tests Runner / llama_index_tests (push) Has been cancelled
SDK Library Integration Tests Runner / anthropic_tests (push) Has been cancelled
SDK Library Integration Tests Runner / mistral_tests (push) Has been cancelled
SDK Library Integration Tests Runner / groq_tests (push) Has been cancelled
SDK Library Integration Tests Runner / aisuite_tests (push) Has been cancelled
SDK Library Integration Tests Runner / haystack_tests (push) Has been cancelled
SDK Library Integration Tests Runner / dspy_tests (push) Has been cancelled
SDK Library Integration Tests Runner / crewai_v0_tests (push) Has been cancelled
SDK Library Integration Tests Runner / crewai_v1_tests (push) Has been cancelled
SDK Library Integration Tests Runner / genai_tests (push) Has been cancelled
SDK Library Integration Tests Runner / adk_tests (push) Has been cancelled
SDK Library Integration Tests Runner / adk_legacy_1_3_0_tests (push) Has been cancelled
SDK Library Integration Tests Runner / evaluation_metrics_tests (push) Has been cancelled
SDK Library Integration Tests Runner / bedrock_tests (push) Has been cancelled
SDK Library Integration Tests Runner / litellm_tests (push) Has been cancelled
SDK Library Integration Tests Runner / harbor_tests (push) Has been cancelled
SDK Library Integration Tests Runner / Slack Notification (push) Has been cancelled
Lint Opik Helm Chart / render-equality (push) Has been cancelled
Opik Optimizer - Unit Tests / Opik Optimizer Unit Tests Python ${{matrix.python_version}} (push) Has been cancelled
Python BE E2E Tests / Python BE E2E (push) Has been cancelled
Python Backend Tests / run-python-backend-tests (push) Has been cancelled
Python SDK Unit Tests / Python SDK Unit Tests ${{matrix.python_version}} (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
SDK E2E Libraries Integration Tests / Check Secrets (push) Has been cancelled
SDK E2E Libraries Integration Tests / Missed OpenAI API Key Warning (push) Has been cancelled
SDK E2E Libraries Integration Tests / build-opik (push) Has been cancelled
SDK E2E Libraries Integration Tests / E2E Lib Integration Python ${{matrix.python_version}} (push) Has been cancelled
TypeScript SDK Integration Build & Publish / build-and-publish (opik-gemini) (push) Has been cancelled
TypeScript SDK Integration Build & Publish / build-and-publish (opik-langchain) (push) Has been cancelled
TypeScript SDK Integration Build & Publish / build-and-publish (opik-openai) (push) Has been cancelled
TypeScript SDK Integration Build & Publish / build-and-publish (opik-otel) (push) Has been cancelled
TypeScript SDK Integration Build & Publish / build-and-publish (opik-vercel) (push) Has been cancelled
TypeScript SDK Build & Publish / build-and-publish (push) Has been cancelled
TypeScript SDK Unit Tests / Test on Node ${{ matrix.node-version }} (push) Has been cancelled
Backend Tests / discover-tests (push) Has been cancelled
Backend Tests / ${{ matrix.name }} (push) Has been cancelled
Build and Publish SDK / build-and-publish (push) Has been cancelled
Build Opik Docker Images / set-version (push) Has been cancelled
Build Opik Docker Images / build-backend (push) Has been cancelled
Build Opik Docker Images / build-sandbox-executor-python (push) Has been cancelled
Build Opik Docker Images / build-python-backend (push) Has been cancelled
Build Opik Docker Images / build-frontend (push) Has been cancelled
Build Opik Docker Images / create-git-tag (push) Has been cancelled
ClickHouse Migration Cluster Check / validate-clickhouse-migrations (push) Has been cancelled
Docs - Publish / run (push) Has been cancelled
E2E Tests - Post Merge (v2) / 🧪 E2E v2 Tests (${{ github.event.inputs.tier || 't1' }}) (push) Has been cancelled
E2E Tests - Post Merge (v2) / 📢 Slack Notification (push) Has been cancelled
Frontend Unit Tests / Test on Node 20 (push) Has been cancelled
Guardrails E2E Tests / Select Python version matrix (push) Has been cancelled
Guardrails E2E Tests / Guardrails E2E Tests ${{matrix.python_version}} (push) Has been cancelled
Guardrails E2E Tests / 📢 Slack Notification (push) Has been cancelled
Guardrails Backend Unit Tests / Guardrails Backend Unit Tests (push) Has been cancelled
Guardrails Backend Unit Tests / 📢 Slack Notification (push) Has been cancelled
Lint Opik Helm Chart / lint-helm-chart (Helm v3.21.0) (push) Has been cancelled
Lint Opik Helm Chart / lint-helm-chart (Helm v4.2.0) (push) Has been cancelled
Lint Opik Helm Chart / unittest-helm-chart (push) Has been cancelled
328 lines
13 KiB
Plaintext
328 lines
13 KiB
Plaintext
---
|
|
description: Create customizable dashboards to monitor quality, cost, and performance of your LLM projects and visualize experiment results.
|
|
headline: Dashboards | Opik Documentation
|
|
og:description: Build and customize dashboards in Opik to track project metrics, compare experiments, and monitor LLM application performance over time.
|
|
og:site_name: Opik Documentation
|
|
og:title: Dashboards - Opik
|
|
title: Dashboards
|
|
canonical-url: https://www.comet.com/docs/opik/tracing/dashboards/dashboards
|
|
---
|
|
|
|
Dashboards allow you to create customizable views for monitoring your LLM applications. You can track project metrics like trace volume, cost, latency, and feedback scores, as well as compare experiment results across different runs.
|
|
|
|
Opik provides two ways to visualize data:
|
|
|
|
- **Insights** — built-in and custom views embedded directly in project and experiment pages for quick, in-context monitoring
|
|
- **Workspace dashboards** — standalone dashboards accessible from the sidebar for cross-project analysis
|
|
|
|
<Frame>
|
|
<img src="/img/production/dashboard_example.png" alt="Project Overview — built-in Insights view" />
|
|
</Frame>
|
|
|
|
If you have any feedback or feature requests for dashboards, please [open an issue on GitHub](https://github.com/comet-ml/opik/issues).
|
|
|
|
## Dashboard types
|
|
|
|
Every dashboard has a **type** that determines what kind of data it works with and which widgets are available:
|
|
|
|
| Type | Purpose | Available widgets |
|
|
|------|---------|-------------------|
|
|
| **Multi-project** | Track metrics across one or more projects (traces, threads, cost, latency) | Time series, Single metric, Markdown |
|
|
| **Experiments** | Compare feedback scores and results across experiment runs | Metrics, Leaderboard, Markdown |
|
|
|
|
## Accessing dashboards
|
|
|
|
### Dashboards page
|
|
|
|
Access the standalone Dashboards page from the sidebar navigation to create and manage workspace-level dashboards. The dashboards list includes a **Type** column showing whether each dashboard is Multi-project or Experiments.
|
|
|
|
### Project page — Insights tab
|
|
|
|
Within any project, the **Insights** tab provides built-in and custom views for monitoring that project's traces, threads, and quality metrics.
|
|
|
|
### Compare Experiments — Insights tab
|
|
|
|
When comparing experiments, the **Insights** tab shows a built-in read-only view with experiment comparison charts.
|
|
|
|
## Insights tab
|
|
|
|
The Insights tab provides curated, in-context monitoring views directly within project and experiment pages.
|
|
|
|
### Project Insights
|
|
|
|
When you open a project's Insights tab, you land on the built-in **Project Overview** view — a read-only dashboard covering key health metrics: trace volume, errors, latency, cost, feedback scores, and thread activity.
|
|
|
|
#### Custom views
|
|
|
|
Beyond the built-in view, you can create custom Insight views for your project:
|
|
|
|
1. Open the **views selector** dropdown in the Insights tab
|
|
2. Click **Add new** at the bottom
|
|
3. Enter a name for your view
|
|
|
|
Custom views are fully editable — you can add sections, configure widgets, and rearrange the layout. The current project is automatically set as the data source for all widgets.
|
|
|
|
**Views selector dropdown:**
|
|
|
|
- Search box at the top for filtering views
|
|
- Built-in "Project Overview" is always listed first with a "Built-in" tag
|
|
- Custom views appear below with their widget count and last modified date
|
|
- **Add new** button at the bottom
|
|
|
|
<Frame>
|
|
<img src="/img/production/dashboard_insights_views_selector.png" alt="Views selector dropdown" />
|
|
</Frame>
|
|
|
|
**View actions** (available on hover for custom views):
|
|
|
|
- **Edit name** — rename the view
|
|
- **Duplicate** — create a copy of the view
|
|
- **Delete** — remove the view (this action cannot be undone)
|
|
|
|
You can also **duplicate the built-in view** to create an editable copy as a custom view.
|
|
|
|
The Insights tab has its own time range selector, separate from the Logs tab. Each tab remembers its own time range across sessions.
|
|
|
|
### Experiment Insights
|
|
|
|
When comparing experiments, the Insights tab shows a single built-in read-only view displaying experiment comparison charts for the currently selected experiments. There is no view selector — only the built-in view is available.
|
|
|
|
<Frame>
|
|
<img src="/img/production/dashboard_insights_experiment.png" alt="Experiment Insights tab" />
|
|
</Frame>
|
|
|
|
## Widget types
|
|
|
|
Dashboards support several widget types. The available types depend on the dashboard type (Multi-project or Experiments).
|
|
|
|
### Time series widget (Multi-project)
|
|
|
|
Displays time-series charts for project metrics over time. Supports both line and bar chart visualizations.
|
|
|
|
**Available metrics:**
|
|
|
|
- **Trace feedback scores** - Quality metrics for traces over time
|
|
- **Number of traces** - Trace volume trends
|
|
- **Trace duration** - Trace performance trends
|
|
- **Token usage** - Token consumption over time
|
|
- **Estimated cost** - Spending trends
|
|
- **Failed guardrails** - Guardrail violations over time
|
|
- **Number of threads** - Thread volume trends
|
|
- **Thread duration** - Thread performance trends
|
|
- **Thread feedback scores** - Quality metrics for threads over time
|
|
|
|
**Configuration options:**
|
|
|
|
- **Project**: Select the project to pull data from
|
|
- **Metric type**: Choose from any of the metrics listed above
|
|
- **Chart type**: Line chart (best for trends) or Bar chart (good for volume/period comparisons)
|
|
- **Breakdown**: Optionally group data by a field to see per-group patterns. Available fields depend on the data source:
|
|
- Trace metrics: Tags, Name, Has error, Error type, Metadata key
|
|
- Span metrics: Tags, Name, Has error, Error type, Metadata key, Model, Provider, Span type
|
|
- Thread metrics: Tags
|
|
|
|
When a breakdown is active, use the **aggregation toggle** to control how data is bucketed: **Total** shows one value per group for the entire date range, while **Time-based** shows values in time buckets (hourly, daily, or weekly). Click a label in the chart legend to navigate directly to the traces list filtered to that group.
|
|
- **Filters**: Apply trace or thread filters to focus on specific data based on tags, metadata, or other attributes
|
|
- **Feedback scores**: When using feedback score metrics, optionally select specific scores to display (leave empty to show all)
|
|
|
|
<Frame>
|
|
<img
|
|
src="/img/production/dashboard_widget_project_metrics.png"
|
|
alt="Time series widget example"
|
|
/>
|
|
</Frame>
|
|
|
|
### Single metric widget (Multi-project)
|
|
|
|
Shows a single metric value with a compact card display. Ideal for summary dashboards and key performance indicators.
|
|
|
|
**Data sources:** Traces or Spans
|
|
|
|
**Trace-specific metrics:**
|
|
|
|
- Total trace count
|
|
- Total thread count
|
|
- Average LLM span count
|
|
- Average span count
|
|
- Average estimated cost per trace
|
|
- Total guardrails failed count
|
|
|
|
**Span-specific metrics:**
|
|
|
|
- Total span count
|
|
- Average estimated cost per span
|
|
|
|
**Shared metrics (available for both traces and spans):**
|
|
|
|
- P50 duration - Median duration
|
|
- P90 duration - 90th percentile duration
|
|
- P99 duration - 99th percentile duration
|
|
- Total input count
|
|
- Total output count
|
|
- Total metadata count
|
|
- Average number of tags
|
|
- Total estimated cost sum
|
|
- Output tokens (avg.)
|
|
- Input tokens (avg.)
|
|
- Total tokens (avg.)
|
|
- Total error count
|
|
- Average feedback scores - Any feedback score defined in your project
|
|
|
|
<Frame>
|
|
<img
|
|
src="/img/production/dashboard_widget_project_stats.png"
|
|
alt="Single metric widget example"
|
|
/>
|
|
</Frame>
|
|
|
|
### Metrics widget (Experiments)
|
|
|
|
Compares feedback scores across multiple experiments. Ideal for visualizing A/B test results and prompt iteration outcomes.
|
|
|
|
**Chart types:**
|
|
|
|
- **Line chart** - Show trends across experiments (default)
|
|
- **Bar chart** - View detailed score distributions side by side
|
|
- **Radar chart** - Compare multiple feedback scores across experiments in a radial view
|
|
|
|
**Configuration options:**
|
|
|
|
- **Filters**: Filter experiments by:
|
|
- Dataset — show only experiments from a specific dataset
|
|
- Configuration — filter by metadata keys and values (e.g., model="gpt-4")
|
|
- Experiment IDs — include specific experiments by ID
|
|
- **Groups** (collapsible, collapsed by default): Group aggregated results by:
|
|
- Dataset — compare results across different datasets
|
|
- Configuration — group by metadata keys to aggregate feedback scores (e.g., group by model type)
|
|
- Supports up to 5 grouping levels for hierarchical comparisons
|
|
- **Max experiments**: Limit the number of experiments displayed
|
|
- **Chart type**: Choose line, bar, or radar chart visualization
|
|
- **Metrics**: Optionally display only specific feedback scores (leave empty to show all)
|
|
|
|
<Frame>
|
|
<img
|
|
src="/img/production/dashboard_widget_experiments_metrics.png"
|
|
alt="Experiments metrics widget example"
|
|
/>
|
|
</Frame>
|
|
|
|
### Leaderboard widget (Experiments)
|
|
|
|
Displays a table comparing experiments with configurable columns. Useful for ranking experiments by specific metrics and comparing results at a glance.
|
|
|
|
**Configuration options:**
|
|
|
|
- **Filters**: Same filtering options as the Metrics widget (dataset, configuration, experiment IDs)
|
|
- **Groups**: Same grouping options as the Metrics widget
|
|
- **Max experiments**: Limit the number of experiments displayed
|
|
- **Columns**: Select and reorder which columns to display. The columns menu shows all available columns with a "N of N selected" indicator and drag handles for reordering
|
|
- **Ranking**: Rank experiments by a specific metric. Options are "No ranking" (default) and any available feedback score metric. When "No ranking" is selected, the ranking order option is disabled
|
|
|
|
<Frame>
|
|
<img src="/img/production/dashboard_widget_leaderboard.png" alt="Leaderboard widget example" />
|
|
</Frame>
|
|
|
|
### Markdown text widget
|
|
|
|
Available for both Multi-project and Experiments dashboards. Add custom notes, descriptions, or documentation using markdown formatting. Use this widget to:
|
|
|
|
- Add section headers and explanations
|
|
- Document dashboard purpose and context
|
|
- Include links to related resources
|
|
- Add team notes or guidelines
|
|
|
|
<Frame>
|
|
<img
|
|
src="/img/production/dashboard_widget_markdown_text.png"
|
|
alt="Markdown text widget example"
|
|
/>
|
|
</Frame>
|
|
|
|
## Creating a workspace dashboard
|
|
|
|
1. Navigate to the **Dashboards** page from the sidebar
|
|
2. Click **Create new dashboard**
|
|
3. Select the dashboard type: **Multi-project** or **Experiments**
|
|
4. Enter a name (description is optional)
|
|
5. Click **Create**
|
|
|
|
<Frame>
|
|
<img src="/img/production/dashboard_create_dialog.png" alt="Create dashboard dialog" />
|
|
</Frame>
|
|
|
|
## Adding and configuring widgets
|
|
|
|
When you click the **+** button within a section, a unified widget configuration modal opens:
|
|
|
|
1. **Select a widget type** from the clickable cards at the top. The available types depend on the dashboard type:
|
|
- **Multi-project**: Time series, Single metric, Markdown
|
|
- **Experiments**: Metrics, Leaderboard, Markdown
|
|
2. Configure the widget settings below. The configuration area updates based on the selected widget type.
|
|
3. Each widget has its own **project or experiment selector** — there are no global dashboard defaults. For Insight views, the current project is automatically set.
|
|
4. For chart widgets, select the **visualization type** (line, bar, or radar) using clickable cards.
|
|
5. Click **Save** to add the widget.
|
|
|
|
<Frame>
|
|
<img src="/img/production/dashboard_add_widget.png" alt="Add widget dialog" />
|
|
</Frame>
|
|
|
|
## Customizing dashboards
|
|
|
|
### Adding sections
|
|
|
|
Dashboards are organized into sections, each containing one or more widgets:
|
|
|
|
1. Click **Add section** at the bottom of the dashboard
|
|
2. Give the section a title
|
|
3. Add widgets to the section
|
|
|
|
### Editing widgets
|
|
|
|
1. Click the menu icon on any widget
|
|
2. Select **Edit** to modify the widget configuration
|
|
3. Make your changes and save
|
|
|
|
### Rearranging widgets
|
|
|
|
- **Drag and drop**: Use the drag handle on widgets to reorder them within a section
|
|
- **Resize**: Drag the edges of widgets to adjust their size
|
|
|
|
### Collapsing sections
|
|
|
|
Click on a section title to collapse or expand it. The collapsed state is preserved across sessions.
|
|
|
|
## Date range filtering
|
|
|
|
Use the date picker in the toolbar to filter data by time range. Select a preset range (Last 24 hours, Last 7 days, etc.) or choose custom dates.
|
|
|
|
**Widgets that use date range filtering:**
|
|
|
|
- Time series widget - filters time-series data to the selected range
|
|
- Single metric widget - calculates statistics within the selected range
|
|
|
|
**Widgets not affected by date range:**
|
|
|
|
- Experiments metrics widget - displays experiment results regardless of date
|
|
- Leaderboard widget - displays experiment results regardless of date
|
|
- Markdown text widget - static content
|
|
|
|
## Saving changes
|
|
|
|
All dashboard changes are **saved automatically**. Built-in Insight views are read-only — duplicate them to create an editable copy.
|
|
|
|
## Sharing dashboards
|
|
|
|
To share your current dashboard view:
|
|
|
|
1. Click the **Share** button in the toolbar
|
|
2. The URL is copied to your clipboard
|
|
3. Share this URL with team members who have access to the workspace
|
|
|
|
The shared URL includes the dashboard ID, active date range, and any active filters, so recipients see the same view.
|
|
|
|
## Next steps
|
|
|
|
- Set up [Online Evaluation Rules](/v1/production/rules) to automatically generate feedback scores for your dashboards
|
|
- Configure [Alerts](/v1/production/alerts) to get notified when metrics exceed thresholds
|
|
- Learn about [Production Monitoring](/v1/production/production_monitoring) best practices
|