Coverage

ℹ️

Private preview

Composable dashboards and the metrics API are in private preview: available to invited accounts, and features may change. See Integration and feature lifecycles for what this means, and reach out to your account representative to request access.

Overview

Which tables have an active monitor, where the gaps are among your key tables, and how many monitors you have. Current state.

What it answers

  • What is our monitoring coverage.
  • Which key tables have no monitor.
  • Coverage per data product or domain.
  • Coverage gaps per domain and warehouse.
  • How many monitors exist, are active or erroring, with the error.
  • Monitors created in a period.
  • Assets discovered or deleted in a period.
🚧

Not covered here

  • Asset health, alerts and incidents (Data quality metrics).
  • Coverage as of a past date or its change over time (only current state is kept).
  • Column-level coverage.
  • Assets covered per monitor tag, audience or monitor domain.

Try asking

What is our monitoring coverage?

The query your agent runs:

  • Metrics: population_assets, covered_assets, coverage_rate, uncovered_key_assets
  • Grouped by: account__account_name
Request (JSON)
{
  "metrics": [
    "population_assets",
    "covered_assets",
    "coverage_rate",
    "uncovered_key_assets"
  ],
  "group_by": ["account__account_name"]
}

Metrics

MetricWhat it counts
asset_countEvery asset, AI agents and excluded ones included, deleted ones when deleted in the last 13 months or still referenced, dated by when Monte Carlo discovered it: for assets discovered in a period. Coverage counts tables with population_assets. Group by: Asset, Warehouse, time.
assets_with_monitorTables in a Table Monitor's scope or with any other monitor that is not deleted, paused and draft included. In the product: Tables with monitors on the Coverage dashboard, which also counts excluded tables and wildcard parts. After a Table Monitor is paused, its tables leave the count over the following hours or days. Group by: Asset, time. Also per asset tag, data product, domain: asset_tag_assets_with_monitor, data_product_assets_with_monitor, domain_assets_with_monitor.
coverage_rateShare of tables that are covered: covered_assets / population_assets. Group by: Asset, time. Also per asset tag, data product, domain: asset_tag_coverage_rate, data_product_coverage_rate, domain_coverage_rate.
covered_assetsTables with at least one active monitor of any kind. Group by: Asset, time. Also per asset tag, data product, domain, monitor: asset_tag_covered_assets, data_product_covered_assets, domain_covered_assets, monitor_covered_assets.
data_product_countData products of the account, with or without tables, deleted ones included (data_product__is_data_product_deleted). Group by: Data product, time.
domain_countDomains of the account, with or without assets, of every type. In the product: Settings > Domains does not list agentic domains; filter domain__domain_type to leave them out. Group by: Domain, time.
erroring_monitor_countActive monitors in status Error (failed to run). A monitor on many tables counts once. Group by: Monitor, Warehouse, time. Also per asset tag, audience, data product, domain, monitor domain, monitor tag: asset_tag_erroring_monitor_count, audience_erroring_monitor_count, data_product_erroring_monitor_count, domain_erroring_monitor_count, monitor_domain_erroring_monitor_count, monitor_tag_erroring_monitor_count.
key_assetsKey tables in the coverage population. Group by: Asset, time. Also per asset tag, data product, domain: asset_tag_key_assets, data_product_key_assets, domain_key_assets.
live_monitor_countActive monitors: not paused, deleted or draft. A monitor on many tables counts once. Group by: Monitor, Warehouse, time. Also per asset, asset tag, audience, data product, domain, monitor domain, monitor tag: asset_live_monitor_count, asset_tag_live_monitor_count, audience_live_monitor_count, data_product_live_monitor_count, domain_live_monitor_count, monitor_domain_live_monitor_count, monitor_tag_live_monitor_count.
monitor_countMonitors that are not deleted. A monitor on many tables counts once. In the product: the count the Monitors page lists. Group by: Monitor, Warehouse, time. Also per asset, asset tag, audience, data product, domain, monitor domain, monitor tag: asset_monitor_count, asset_tag_monitor_count, audience_monitor_count, data_product_monitor_count, domain_monitor_count, monitor_domain_monitor_count, monitor_tag_monitor_count.
population_assetsTables that coverage counts: not deleted, not excluded, not part of a wildcard table and not in a deleted integration. Filter it on the covered-by dimensions of the table for coverage by monitor type. Group by: Asset, time. Also per asset tag, data product, domain: asset_tag_population_assets, data_product_population_assets, domain_population_assets.
uncovered_key_assetsKey tables with no active monitor: the coverage gaps. Group by: Asset, time. Also per asset tag, data product, domain: asset_tag_uncovered_key_assets, data_product_uncovered_key_assets, domain_uncovered_key_assets.
visibility_only_assetsTables Monte Carlo sees (lineage, metadata) but that are outside the Table Monitor scope, so not monitored by default; other monitors can still cover some of them. In the product: Not monitored. Group by: Asset, time.

Good to know

Grouping and filtering for all metrics, including why the numbers per domain, data product or tag do not add up to the account's: Before you group or filter.

  • Tables counted: Coverage counts tables that are not deleted, not excluded, not part of a wildcard table and not in a deleted integration; AI agents are not counted.
  • Covered: A table with at least one active monitor of any kind (not paused, deleted or draft). assets_with_monitor counts tables in a Table Monitor's scope or with any other monitor that is not deleted, as Tables with monitors on the product's Coverage dashboard, which also counts excluded tables and wildcard parts. asset__is_asset_monitored is the Table Monitor scope, also used for billing.
  • By monitor type: Filter population_assets on asset__is_asset_covered_by_freshness_monitor, asset__is_asset_covered_by_validation_monitor or another covered-by dimension of the table. By creation source, priority or status: monitor_covered_assets grouped by the monitor dimension; a table covered by two kinds of monitor counts in both.
  • Groupings: Per domain, data product and asset tag, the metric starts with the grouping (domain_coverage_rate). A monitor counts in a domain, data product or asset tag when it covers one of its tables, and in a monitor domain, monitor tag or audience when it is assigned to it.
  • Domain: domain__ is the domains of the tables, as the Coverage dashboard's domain filter uses them; monitor_domain__ is the domain monitors are assigned to, as the domain filter of the Monitors and Alerts pages.
  • Gaps without a domain: Per-domain metrics leave out tables in no domain, so a domain by warehouse matrix (domain_uncovered_key_assets) can miss whole warehouses. Show the gaps per warehouse from uncovered_key_assets grouped by warehouse next to it; that total includes every table.
  • Monitor counts: A monitor on many tables counts once, as the product lists monitors; live_monitor_count counts the active ones. The monitors a bulk or generated monitor creates (monitor__parent_monitor_uuid is set) and out-of-the-box replacement rules are not counted.
  • Current state: Coverage and monitor counts are today's, with no history yet. Monitors created in a period: monitor_count by monitor__monitor_created_at; tables discovered in a period: asset_count.

Examples

How many assets were discovered in the last 7 days?

  • Metrics: asset_count
  • Filter: metric_time__day on or after 7 days ago
Request (JSON)
{
  "metrics": ["asset_count"],
  "filters": [
    {
      "field": "metric_time__day",
      "op": "gte",
      "values": ["<7 days ago>"]
    }
  ]
}

Key tables without a monitor per domain and warehouse

  • Metrics: domain_uncovered_key_assets
  • Grouped by: domain, domain__domain_name, asset__warehouse, warehouse__warehouse_name
Request (JSON)
{
  "metrics": ["domain_uncovered_key_assets"],
  "group_by": [
    "domain",
    "domain__domain_name",
    "asset__warehouse",
    "warehouse__warehouse_name"
  ]
}

Coverage per data product, lowest first

  • Metrics: data_product_population_assets, data_product_covered_assets, data_product_coverage_rate
  • Grouped by: data_product, data_product__data_product_name
  • Filter: data_product__is_data_product_deleted is false
  • Sorted by: data_product_coverage_rate, lowest first
Request (JSON)
{
  "metrics": [
    "data_product_population_assets",
    "data_product_covered_assets",
    "data_product_coverage_rate"
  ],
  "group_by": [
    "data_product",
    "data_product__data_product_name"
  ],
  "filters": [
    {
      "field": "data_product__is_data_product_deleted",
      "op": "in",
      "values": [false]
    }
  ],
  "order_by": [{"field": "data_product_coverage_rate"}]
}

Coverage per domain, lowest first

  • Metrics: domain_population_assets, domain_covered_assets, domain_coverage_rate
  • Grouped by: domain, domain__domain_name
  • Sorted by: domain_coverage_rate, lowest first
Request (JSON)
{
  "metrics": [
    "domain_population_assets",
    "domain_covered_assets",
    "domain_coverage_rate"
  ],
  "group_by": ["domain", "domain__domain_name"],
  "order_by": [{"field": "domain_coverage_rate"}]
}

Erroring monitors per asset tag

  • Metrics: asset_tag_population_assets, asset_tag_erroring_monitor_count
  • Grouped by: asset_tag__asset_tag_name, asset_tag__asset_tag_value
  • Sorted by: asset_tag_erroring_monitor_count, highest first
Request (JSON)
{
  "metrics": [
    "asset_tag_population_assets",
    "asset_tag_erroring_monitor_count"
  ],
  "group_by": [
    "asset_tag__asset_tag_name",
    "asset_tag__asset_tag_value"
  ],
  "order_by": [
    {
      "field": "asset_tag_erroring_monitor_count",
      "descending": true
    }
  ]
}

Which monitors are erroring right now, and with what error?

  • Metrics: erroring_monitor_count
  • Grouped by: monitor, monitor__monitor_name, monitor__monitor_type, monitor__monitor_error_message
Request (JSON)
{
  "metrics": ["erroring_monitor_count"],
  "group_by": [
    "monitor",
    "monitor__monitor_name",
    "monitor__monitor_type",
    "monitor__monitor_error_message"
  ]
}

Which key tables have no monitor, most important first?

  • Metrics: uncovered_key_assets
  • Grouped by: asset, asset__asset_full_table_id, warehouse__warehouse_name, asset__asset_importance_score
  • Sorted by: asset__asset_importance_score, highest first
Request (JSON)
{
  "metrics": ["uncovered_key_assets"],
  "group_by": [
    "asset",
    "asset__asset_full_table_id",
    "warehouse__warehouse_name",
    "asset__asset_importance_score"
  ],
  "order_by": [
    {
      "field": "asset__asset_importance_score",
      "descending": true
    }
  ]
}

Active monitors by type

  • Metrics: live_monitor_count
  • Grouped by: monitor__monitor_type
  • Sorted by: live_monitor_count, highest first
Request (JSON)
{
  "metrics": ["live_monitor_count"],
  "group_by": ["monitor__monitor_type"],
  "order_by": [
    {"field": "live_monitor_count", "descending": true}
  ]
}

Monitors created in the last month, by creation source

  • Metrics: monitor_count
  • Grouped by: monitor__monitor_creation_source
  • Filter: monitor__monitor_created_at__day on or after 1 month ago
Request (JSON)
{
  "metrics": ["monitor_count"],
  "group_by": ["monitor__monitor_creation_source"],
  "filters": [
    {
      "field": "monitor__monitor_created_at__day",
      "op": "gte",
      "values": ["<1 month ago>"]
    }
  ]
}

Key tables without a monitor per warehouse

  • Metrics: uncovered_key_assets, key_assets
  • Grouped by: asset__warehouse, warehouse__warehouse_name
  • Sorted by: uncovered_key_assets, highest first
Request (JSON)
{
  "metrics": ["uncovered_key_assets", "key_assets"],
  "group_by": [
    "asset__warehouse",
    "warehouse__warehouse_name"
  ],
  "order_by": [
    {"field": "uncovered_key_assets", "descending": true}
  ]
}

See also


Did this page help you?