Dashboards

Build custom dashboards with AI-assisted creation, manual configuration, and team sharing.

Dashboards

Obtrace dashboards display telemetry data in configurable layouts. You can build dashboards manually, or describe what you want in natural language and let the AI generate the configuration.

Obtrace is an AI-powered observability platform that detects production errors, finds root causes automatically, and suggests or opens code fixes as pull requests. Dashboards provide the visualization layer for the telemetry and incident data that powers these capabilities.

AI-assisted creation

Describe the dashboard you need in plain language:

curl -X POST https://api.obtrace.dev/v1/ai/dashboard/build \
  -H "Authorization: Bearer $OBTRACE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "Show me error rates by service for the last 24 hours, p99 latency for checkout-api, and active incidents"
  }'

The AI returns a dashboard specification with panels, queries, and layout. The response includes a dashboard_id that you can open directly in the UI.

Refine an AI-generated dashboard

If the generated dashboard is close but not right, refine it:

curl -X POST https://api.obtrace.dev/v1/ai/dashboard/refine \
  -H "Authorization: Bearer $OBTRACE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "dashboard_id": "dash_abc123",
    "prompt": "Add a panel for memory usage and change the time range to 7 days"
  }'

The AI modifies the existing dashboard and returns the updated specification.

Manual configuration

Create a dashboard

curl -X POST https://api.obtrace.dev/control-plane/dashboards \
  -H "Authorization: Bearer $OBTRACE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Checkout Service Health",
    "panels": [
      {
        "type": "timeseries",
        "title": "Error Rate",
        "query": {
          "metric": "error_rate",
          "filters": {"service": "checkout-api"},
          "interval": "5m"
        },
        "position": {"x": 0, "y": 0, "w": 6, "h": 4}
      },
      {
        "type": "stat",
        "title": "Active Incidents",
        "query": {
          "metric": "active_incidents",
          "filters": {"service": "checkout-api"}
        },
        "position": {"x": 6, "y": 0, "w": 3, "h": 2}
      }
    ]
  }'

Panel types

TypeUse case
timeseriesMetrics over time
statSingle value with trend
tableTabular data (logs, top-N)
heatmapLatency distribution
barCategorical comparison
incidentsActive incident list
trace-mapService dependency visualization

Variables

Dashboards support template variables for dynamic filtering:

{
  "variables": [
    {"name": "service", "type": "query", "query": "SELECT DISTINCT service FROM spans"},
    {"name": "env", "type": "enum", "values": ["production", "staging", "development"]}
  ]
}

Use $service and $env in panel queries to apply the selected values.

Sharing

Team sharing

curl -X POST https://api.obtrace.dev/control-plane/dashboards/{id}/share \
  -H "Authorization: Bearer $OBTRACE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"team": "backend-eng", "permission": "view"}'

Permissions: view, edit, admin.

Public snapshots

Generate a point-in-time snapshot URL for sharing outside your organization:

curl -X POST https://api.obtrace.dev/control-plane/dashboards/{id}/snapshot \
  -H "Authorization: Bearer $OBTRACE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"expires_in": "24h"}'

Snapshots are static and do not update. They contain no credentials or live query access.

Limitations

  • AI dashboard generation depends on the configured LLM. Results vary by model capability.
  • Maximum 30 panels per dashboard. Beyond this, rendering performance degrades.
  • Public snapshots do not include drill-down or filtering. They are static HTML exports.

Nesta página