Skip to content
Dashboard example

SaaS health overview dashboard

Compare account activity, API errors, and revenue on one dashboard. Aggregate each table by account before joining it.

Reviewed by the Telemetry product team on . We checked what each event and metric represents, the SQL and sample results, and the assumptions and data freshness needed to interpret them. Who reviews this page

What one row represents

One row per active account before the final portfolio-level aggregation.

Decision this helps you make

Choose the component dashboard to inspect; do not make a product or incident decision from the composite preview alone.

Metric definitions

Put the denominator and units beside the chart

Use your own field names, but keep the same definition of one row. Check the linked schema before mapping your production events.

  • Active accounts
  • Successful milestones
  • API error rate
  • Monthly revenue represented
Inspect the event schema
Complete DataFusion SQL

Review the query before adapting the fields

Adapt this query to your events before using it in production. Set a time range and environment filter, decide how to handle incomplete time buckets, and require enough events for a useful comparison.

WITH account_activity AS (
  SELECT
    account_id,
    COUNT(*) AS successful_milestones
  FROM product_events
  WHERE status = 'success'
  GROUP BY account_id
),
account_reliability AS (
  SELECT
    account_id,
    COUNT(*) AS requests,
    SUM(CASE WHEN status = 'error' THEN 1 ELSE 0 END) AS errors
  FROM api_requests
  GROUP BY account_id
)
SELECT
  COUNT(*) AS active_accounts,
  SUM(a.successful_milestones) AS successful_milestones,
  ROUND(100.0 * SUM(r.errors) / NULLIF(SUM(r.requests), 0), 2)
    AS api_error_rate_pct,
  SUM(ac.monthly_revenue_usd) AS represented_mrr_usd
FROM account_activity a
JOIN account_reliability r USING (account_id)
JOIN accounts ac USING (account_id);
Data assumptions

Check these before publishing the result

  • Product and request tables use the same pseudonymous account identifier.
  • Account revenue is current dimension data, not a historical invoice ledger.
  • The newest partial UTC day is excluded from period comparisons.
Query review

Check the query and metric definitions

  • Reduce milestones and requests to one row per account before joining.
  • Validate unmatched accounts on every side of the join.
  • Label represented MRR as prioritization context rather than incident loss.

What the results mean

What this result cannot prove by itself

Open the individual metrics to find what changed. The example score alone cannot tell you whether adoption or reliability improved.

Related dashboard examples

Validate the definition with known data

Test the query with known successes, failures, missing values, duplicates, and values at its limits. Check the results before using it in a production dashboard or alert.