Coverage
Public previewThe Analytics API is in public preview: on for every account, and features may change. Monitor run metrics are in private preview: reach out to your account representative to request access. See Integration and feature lifecycles for what this means.
Overview
Which tables have an active monitor, where the gaps are among your key tables, and how many monitors you have, day by day.
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.
- How many monitors were in error each day, and since when and why a monitor fails to run.
- 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
| Metric | What it counts |
|---|---|
asset_count | Every 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_monitor | Tables 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_rate | Share 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_assets | Tables 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_count | Data products of the account, with or without tables, deleted ones included (data_product__is_data_product_deleted). Group by: Data product, time. |
domain_count | Domains 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_count | Active monitors in status Error (failed to run) on the last day of the selection (today without a date filter). A monitor on many tables counts once. Grouped by day: how many were in error each day. The per-grouping versions (domain_erroring_monitor_count and the like) are today's state only. Group by: Monitor, 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_assets | Key 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_count | Active monitors (not paused, deleted or draft) on the last day of the selection (today without a date filter). A monitor on many tables counts once. Grouped by day, week or month: the count on the last day of each. The per-grouping versions (domain_live_monitor_count and the like) are today's state only. Group by: Monitor, 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_count | Monitors that are not deleted, on the last day of the selection (today without a date filter). A monitor on many tables counts once. Grouped by day, week or month: the count on the last day of each. The per-grouping versions (domain_monitor_count and the like) are today's state only. In the product: the count the Monitors page lists. Group by: Monitor, 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. |
monitor_error_day_count | Days an active monitor was in status Error in the selection. Per monitor with its error text, it tells since when and why a monitor fails to run, within the last 35 days. Group by: Monitor, time. |
population_assets | Tables 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_assets | Key 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_assets | Tables 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_monitorcounts 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_monitoredis the Table Monitor scope, also used for billing. - By monitor type: Filter
population_assetsonasset__is_asset_covered_by_freshness_monitor,asset__is_asset_covered_by_validation_monitoror another covered-by dimension of the table. By creation source, priority or status:monitor_covered_assetsgrouped 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 fromuncovered_key_assetsgrouped 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_countcounts the active ones. The monitors a bulk or generated monitor creates (monitor__parent_monitor_uuidis set) and out-of-the-box replacement rules are not counted. - Current state and history: Coverage is today's, with no history yet. Monitor counts (
monitor_count,live_monitor_count,erroring_monitor_count) are the count on the last day of the period, today without a date filter; grouped bymetric_time__day,__weekor__month, the count on the last day of each. Their history is the last 35 days; the API refuses earlier dates with the date the history starts. Grouped by a monitor attribute, a group whose monitors are all deleted (or, for active monitors, paused) on that day returns 0; drop the 0 rows for a breakdown chart. Monitors created in a period:monitor_countbymonitor__monitor_created_at; tables discovered in a period:asset_count. - Since when a monitor fails to run:
monitor_error_day_countgrouped bymonitor__monitor_uuidwithmonitor__monitor_nameandmonitor_status__monitor_status_error_messageover the period; group bymetric_time__dayas well for the days.monitor_status__monitor_status_valueis a monitor's status on each day.
Examples
How many assets were discovered in the last 7 days?
- Metrics:
asset_count - Filter:
metric_time__dayon 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_uuid,domain__domain_name,asset__warehouse__warehouse_uuid,asset__warehouse__warehouse_name
Request (JSON)
{
"metrics": ["domain_uncovered_key_assets"],
"group_by": [
"domain__domain_uuid",
"domain__domain_name",
"asset__warehouse__warehouse_uuid",
"asset__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_uuid,data_product__data_product_name - Filter:
data_product__is_data_product_deletedisfalse - 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_uuid",
"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_uuid,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_uuid", "domain__domain_name"],
"order_by": [{"field": "domain_coverage_rate"}]
}How many monitors were in error each day over the last 30 days?
- Metrics:
erroring_monitor_count,live_monitor_count - Grouped by:
metric_time__day - Filter:
metric_time__dayon or after 30 days ago
Request (JSON)
{
"metrics": [
"erroring_monitor_count",
"live_monitor_count"
],
"group_by": ["metric_time__day"],
"filters": [
{
"field": "metric_time__day",
"op": "gte",
"values": ["<30 days ago>"]
}
]
}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_uuid,monitor__monitor_name,monitor__monitor_type,monitor__monitor_error_message - Filter:
monitor__is_monitor_erroringistrue
Request (JSON)
{
"metrics": ["erroring_monitor_count"],
"group_by": [
"monitor__monitor_uuid",
"monitor__monitor_name",
"monitor__monitor_type",
"monitor__monitor_error_message"
],
"filters": [
{
"field": "monitor__is_monitor_erroring",
"op": "in",
"values": [true]
}
]
}Which key tables have no monitor, most important first?
- Metrics:
uncovered_key_assets - Grouped by:
asset__asset_mcon,asset__asset_full_table_id,asset__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_mcon",
"asset__asset_full_table_id",
"asset__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}
]
}Which monitors failed to run in the last 30 days, for how many days, and why?
- Metrics:
monitor_error_day_count - Grouped by:
monitor__monitor_uuid,monitor__monitor_name,monitor_status__monitor_status_error_message - Filter:
metric_time__dayon or after 30 days ago - Sorted by:
monitor_error_day_count, highest first - At most 50 rows
Request (JSON)
{
"metrics": ["monitor_error_day_count"],
"group_by": [
"monitor__monitor_uuid",
"monitor__monitor_name",
"monitor_status__monitor_status_error_message"
],
"filters": [
{
"field": "metric_time__day",
"op": "gte",
"values": ["<30 days ago>"]
}
],
"order_by": [
{"field": "monitor_error_day_count", "descending": true}
],
"limit": 50
}Monitors created in the last month, by creation source
- Metrics:
monitor_count - Grouped by:
monitor__monitor_creation_source - Filter:
monitor__monitor_created_at__dayon 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_uuid,asset__warehouse__warehouse_name - Sorted by:
uncovered_key_assets, highest first
Request (JSON)
{
"metrics": ["uncovered_key_assets", "key_assets"],
"group_by": [
"asset__warehouse__warehouse_uuid",
"asset__warehouse__warehouse_name"
],
"order_by": [
{"field": "uncovered_key_assets", "descending": true}
]
}See also
- Dimensions these metrics group by: Asset, Asset tag, Audience, Data product, Domain, Monitor, Monitor domain, Monitor tag, Warehouse
- All metrics: Metrics; all dimensions: Dimensions; overview and guides: Analytics API; product words: Glossary
Updated about 1 hour ago
Did this page help you?
