Dashboard

Overview

The Arthur application dashboard is the primary place to monitor your AI system's metrics over time. Each application has a Dashboard tab where default and custom charts appear side by side, driven by a shared date range.

You can extend the dashboard by adding charts from a shared library or creating new ones with a SQL-based chart builder. Dashboards can be forked into personal copies, filtered globally, and downloaded as images.

platform_workspace_analytics_dashboard

Dashboard Layout

The dashboard lives at the application level:

Applications → [Project] → [Application] → Dashboard tab

UI ElementDescription
Local Time SelectorDate range picker that controls all charts on the page. Dates filter every chart's {{dateStart}} and {{dateEnd}} template variables.
Last UpdatedTimestamp showing when metrics were last computed for this application.
DASHBOARD DOCSExternal link to this documentation.
Refresh (circular arrow icon)Triggers a metrics recalculation job — see Refreshing Metrics.
Actions dropdownDashboard-level actions (fork, save, etc.).
+ Add dropdownAdd or create charts; add a global filter.
Save (floppy disk icon)Saves layout changes to the current dashboard.
Download (down-arrow icon)Downloads the current dashboard as an image.

Adding Charts

The + Add dropdown offers four options:

OptionWhen to use
Add chartPick an existing chart from the shared library (Global Charts or My Charts)
Create chartBuild a new chart from scratch with the full SQL editor and chart builder
Create chart (basic)Simplified chart builder — no SQL, select metric and aggregation from dropdowns
Add filterAdd a global filter control that affects all charts on the dashboard

Add Chart — Chart Library

Clicking Add chart opens a slide-out panel.

platform_workspace_dashboard

Global Charts — charts created by any member of your workspace and saved to the shared library. These are reusable across applications.

My Charts — charts you have personally created and saved.

Use the search bar to filter by name, type, or created date. Click + on any card to add that chart to the current dashboard.

Charts added from the library are linked copies — the underlying SQL query is the same shared chart definition. Editing the chart edits it everywhere it is used.


Create Chart — Full Chart Builder

Clicking Create chart opens the full chart creation panel.

Step 1 — Name

Click the default title (New Chart (timestamp)) and replace it with a descriptive name.

Step 2 — Select raw table(s)

Choose the TimescaleDB view your query will run against:

ViewUse for
metrics_numeric_latest_versionCount, sum, and scalar numeric metrics
metrics_sketch_latest_versionDistribution and percentile metrics stored as KLL sketches

If your chart needs both (e.g., joining error rate with latency), select either view — the SQL editor accepts any valid query including joins across both views.

Step 3 — Prepare data

Write your TimescaleDB SQL query in the Query builder editor. Click Preview data to run the query and inspect the returned columns before building the chart.

-- Minimal example: daily inference count
SELECT
  time_bucket('1 day', timestamp) AS bucket,
  SUM(value) AS count
FROM metrics_numeric_latest_version
WHERE metric_name = 'inference_count'
  [[ AND timestamp BETWEEN '{{dateStart}}' AND '{{dateEnd}}' ]]
GROUP BY bucket
ORDER BY bucket

Template variables available in chart SQL:

VariableDescription
{{dateStart}}Start of the dashboard date range (cast to timestamptz)
{{dateEnd}}End of the dashboard date range (cast to timestamptz)

The [[ AND ... ]] syntax marks optional filter clauses that are only applied when the variable has a value. Use this pattern for all date range filters.

For the full SQL reference — time_bucket, time_bucket_gapfill, sketch functions, CTE patterns — see Custom Graphs.

Step 4 — Build chart

The Build chart section has four tabs:

Chart Builder (Build / Advanced sub-tabs)

  • Chart type — Line, Stat Card, Grouped Bar, and others
  • X Axis — select the column for the horizontal axis (typically your time bucket column)
  • Date bucket — sets the time granularity for the X axis (day, hour, week, etc.)
  • Y Axis — select the column(s) to plot; configure aggregation (Sum, Avg, etc.) per series
  • + Segment data — under each Y Axis series, breaks the series into multiple lines by a dimension column (e.g., prompt_version_id). This is how "by version" charts work.
  • + Add Series — adds a second Y Axis series (useful for multi-metric charts)

Configure Filters Add chart-level filter controls (independent of the global dashboard filter).

Backing data Inspect the raw query result that drives the chart.

Ask Dash Use natural language to ask an AI assistant to modify the chart query or configuration.

Step 5 — Save

Two buttons appear at the bottom of the panel:

ButtonWhat it does
← Save and add to dashboardSaves the chart and immediately places it on the current dashboard
SaveSaves the chart to your library without adding it to the current dashboard

If your SQL query contains {{dateStart}} or {{dateEnd}} variables that are not yet mapped to a dashboard filter, a "Missing variable filter mappings" modal will appear after saving. Use the dropdowns to link DateStart and DateEnd to the corresponding dashboard filter, then click Apply mappings. Without this step, the date range picker will have no effect on the chart.


Actions Dropdown

The Actions dropdown in the top toolbar contains dashboard-level operations such as forking (cloning) the dashboard.

Dashboard scope

When cloning or creating a dashboard, you choose a scope:

ScopeVisibility
WorkspaceVisible to all members of the workspace
ProjectVisible to members of a specific project

Custom dashboards appear in the Analytics section of the left sidebar under Workspace Dashboard and Project Dashboard.


Refreshing Metrics

Manual Refresh

The Refresh button (circular arrow, top right) triggers an immediate metrics recalculation job.

  1. Click the refresh icon.
  2. In the Refresh Metrics dialog, select the date range to recompute.
  3. Submit — Arthur queues a MetricsCalculation job.
  4. When the job completes, a new metric version is created and the Last Updated timestamp advances.

Scheduled Refresh

To refresh metrics automatically on a recurring basis, use Schedule a data refresh (accessible from the refresh icon or the Actions menu).

FieldDescription
Schedule NameA label for this schedule
Repeat EveryInterval-based frequency — enter a number and select a unit (Minutes, Hours, Days, etc.)
Cron ExpressionAlternative to interval — enter a standard cron expression for precise scheduling (UTC time)
Lookback PeriodHow far back each refresh run recomputes — e.g., Last 60 Minutes recomputes the most recent 60 minutes of metrics on every run

Click Save to activate the schedule.

Each refresh — manual or scheduled — creates a new metric version. The _latest_version views automatically return data from the most recent version. To query historical versions, see Metrics Versioning.


Add Filter — Global Dashboard Filter

+ Add → Add filter inserts a filter control widget onto the dashboard. Once added, setting a filter value narrows all charts on the page that reference the linked dimension.

Common use cases:

  • Filter all charts to a specific model_version dimension
  • Narrow the view to a particular environment (e.g., production vs staging)

Permissions

To add, remove, or edit charts on a dashboard, you need the Editor role on the workspace. Without it, the dashboard is read-only — charts are visible but the + Add and Actions controls are hidden.


Next Steps

GoalWhere to go
Write chart SQL with sketches, CTEs, gap-fillCustom Graphs
Define a new metric to visualizeCustom Metrics
Understand how metric versions workMetrics Versioning
Set up alerts when a metric crosses a thresholdAlerts & Alert Rules