Monitor runs
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
The runs of your metric, custom SQL, validation and agent monitors as the monitor chart shows them, with their value, threshold and outcome. Private preview: contact your Monte Carlo account team to inquire. Some monitors are not loaded yet, such as legacy monitors and monitors with very many segments.
What it answers
- The run history of a monitor with value and thresholds.
- Which runs breached or were anomalies, per monitor, monitor type, metric, field, segment and time.
- How many runs, breaches and anomalies.
Not covered here
- Since when a monitor fails to run and why (Coverage metrics:
monitor_error_day_count).- Aggregates per domain, data product, asset tag, monitor tag (team) or audience.
- Runs older than the window kept for the series.
Try asking
Runs and breaches per validation monitor over the last 30 days, most breaches first
The query your agent runs:
- Metrics:
monitor_run_item_count,monitor_run_item_breach_count - Grouped by:
monitor__monitor_uuid,monitor__monitor_name - Filter:
monitor__monitor_typeisvalidation - Filter:
monitor__is_monitor_deletedisfalse - Filter:
monitor_run_item__is_gapfilledisfalse - Filter:
metric_time__dayon or after 30 days ago - Sorted by:
monitor_run_item_breach_count, highest first
Request (JSON)
{
"metrics": [
"monitor_run_item_count",
"monitor_run_item_breach_count"
],
"group_by": [
"monitor__monitor_uuid",
"monitor__monitor_name"
],
"filters": [
{
"field": "monitor__monitor_type",
"op": "in",
"values": ["validation"]
},
{
"field": "monitor__is_monitor_deleted",
"op": "in",
"values": [false]
},
{
"field": "monitor_run_item__is_gapfilled",
"op": "in",
"values": [false]
},
{
"field": "metric_time__day",
"op": "gte",
"values": ["<30 days ago>"]
}
],
"order_by": [
{
"field": "monitor_run_item_breach_count",
"descending": true
}
]
}Metrics
Every metric here groups by Monitor, Monitor run, Monitored metric, Segment, Warehouse, and time.
| Metric | What it counts |
|---|---|
monitor_run_item_anomaly_count | Runs that raised an alert: anomalies on learned (ML) thresholds and alerted breaches on set ones. |
monitor_run_item_anomaly_rate | Share of runs of monitors with learned (ML) thresholds that were flagged as anomalies; gap-filled points are left out. |
monitor_run_item_breach_count | Runs of monitors with a set threshold that broke it. |
monitor_run_item_breach_rate | Share of runs of monitors with a set threshold that broke it; gap-filled points and runs without a threshold are left out. |
monitor_run_item_count | Runs (measured points) in the selection. |
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.
- Runs: Each run is a point on a monitor's chart. Group by
monitor_run_item__monitor_run_item_uuidfor one row per run, and filter onmetric_time__day(the day of the run) to bound the time. - Outcome: Breach or pass for monitors with a set threshold, anomaly or no anomaly for monitors with learned (ML) thresholds, track for series without an alert condition, unknown for a set threshold with no value or no bound to compare it to.
- Rates:
monitor_run_item_breach_ratefor set thresholds,monitor_run_item_anomaly_ratefor learned ones. - Thresholds:
monitor_run_item__monitor_run_item_lower_thresholdandmonitor_run_item__monitor_run_item_upper_thresholdare the band the monitor computed for that run; where it computed none, the threshold set on the monitor now, not when it ran. EQ and NEQ monitors have no bound; their value isparent_time_series__parent_time_series_threshold. - Gap-filled points: Drawn on the chart but not runs; filter
monitor_run_item__is_gapfilledis false to count runs. - Series: A monitor writes one series per metric it measures, told apart by
parent_time_series__parent_time_series_metric. A validation monitor with a percentage threshold writes three per run:validation_<uuid>(the share of invalid rows, which the threshold applies to),percentage_breach_count_<uuid>(invalid rows) andpercentage_baseline_<uuid>(rows checked). Group or filter by it before readingmonitor_run_item_valueas invalid rows. - History: The runs loaded in the last 90 days. A monitor's first load also brings the older points the source keeps for its schedule, so a series can start earlier; at most 20,000 runs per series.
- Groupings: Domains, data products and tags are not here; filter on the monitors of a domain, data product or tag, listed with the Coverage metrics. A bulk or generated monitor has no runs of its own; they are on the monitors it creates. Take the runs filtered on
monitor__monitor_uuidand, in a second query, onmonitor__parent_monitor_uuid, both with the listed monitors.
Examples
Show the runs of the validation monitors over the last 30 days with value, threshold and breach
- Metrics:
monitor_run_item_count - Grouped by:
monitor_run_item__monitor_run_item_uuid,monitor__monitor_uuid,monitor__monitor_name,monitor_run_item__monitor_run_item_measured_at__second,monitor_run_item__monitor_run_item_value,parent_time_series__parent_time_series_operator,monitor_run_item__monitor_run_item_lower_threshold,monitor_run_item__monitor_run_item_upper_threshold,parent_time_series__parent_time_series_threshold,monitor_run_item__is_monitor_run_item_breach - Filter:
monitor__monitor_typeisvalidation - Filter:
monitor__is_monitor_deletedisfalse - Filter:
monitor_run_item__is_gapfilledisfalse - Filter:
metric_time__dayon or after 30 days ago
Request (JSON)
{
"metrics": ["monitor_run_item_count"],
"group_by": [
"monitor_run_item__monitor_run_item_uuid",
"monitor__monitor_uuid",
"monitor__monitor_name",
"monitor_run_item__monitor_run_item_measured_at__second",
"monitor_run_item__monitor_run_item_value",
"parent_time_series__parent_time_series_operator",
"monitor_run_item__monitor_run_item_lower_threshold",
"monitor_run_item__monitor_run_item_upper_threshold",
"parent_time_series__parent_time_series_threshold",
"monitor_run_item__is_monitor_run_item_breach"
],
"filters": [
{
"field": "monitor__monitor_type",
"op": "in",
"values": ["validation"]
},
{
"field": "monitor__is_monitor_deleted",
"op": "in",
"values": [false]
},
{
"field": "monitor_run_item__is_gapfilled",
"op": "in",
"values": [false]
},
{
"field": "metric_time__day",
"op": "gte",
"values": ["<30 days ago>"]
}
]
}More questions these metrics answer:
- Show the last 30 days of runs of monitor X with value and threshold.
- Which runs of monitor X breached last week?
- Export the run history of the monitors of team Y.
See also
- Dimensions these metrics group by: Monitor, Monitor run, Monitored metric, Segment, Warehouse
- All metrics: Metrics; all dimensions: Dimensions; overview and guides: Analytics API; product words: Glossary
Updated about 1 hour ago
