Skip to content

Configure Monitors

Set up automated anomaly detection for your tables. Monitors track freshness, volume, schema changes, and custom metrics over time, flagging deviations from expected patterns. For an overview of what monitors do and how they compare to tests, see Monitor Tables.

Tip

The Data Configuration Setup and Add Table Group wizards can configure monitors as part of their setup flow.

Prerequisites

  • A connection to your database.
  • A table group for the tables you want to monitor.
  • At least one completed profiling run for the table group (required for Freshness monitor generation).

Set up monitors for a table group

  1. Navigate to Monitors from the left sidebar.
  2. Select the target Table Group from the dropdown.
  3. Click Configure Monitors.
  4. In the Monitor Settings dialog, configure the sensitivity and schedule (see below), then click Save.

When you save for the first time, TestGen automatically generates Volume and Schema monitors for every table in the table group. Freshness monitors are generated after the next profiling run completes. After setup, monitors run on the schedule you configure.

Note

Monitors use a prediction model that needs approximately 30 runs before it can detect anomalies. Until then, monitors operate in training mode — collecting data but not flagging issues. Best practice is to run monitors at roughly twice the frequency you expect your tables to change (e.g., every 12 hours if tables update daily).

Sensitivity

The Sensitivity setting in Monitor Settings controls how easily monitors flag anomalies — Low produces the fewest alerts, Medium is balanced, and High flags even small deviations. Start with Medium and adjust based on your alert volume. See Sensitivity for details.

Weekend and holiday adjustments

If your tables follow a business-day schedule — for example, they are not updated on weekends or public holidays — enable Exclude weekends from training or Exclude holidays from training in Monitor Settings. For holidays, specify country or market codes (e.g., "US", "NYSE") to indicate which calendars apply. See the holidays library documentation for available codes.

These settings affect each monitor type differently. For Freshness monitors, excluded time is subtracted from the intervals between table updates so that a weekend gap is not mistaken for a late update. For Volume and Metric monitors, excluded days are flagged as an external factor in the prediction model so the model can learn that those days behave differently.

Add Metric monitors

Metric monitors are the only type you create manually. They track a SQL aggregate expression that returns a single numeric value — useful for monitoring null counts, averages, ratios, or any business-specific metric.

  1. Click the (edit icon) for the target table on the Monitors dashboard.
  2. In the left panel, find Metrics and click Add.
  3. Enter a Metric Name (a label for this metric) and a Metric Expression — a SQL aggregate expression evaluated against the table (e.g., AVG(price) or COUNT(*) FILTER (WHERE status IS NULL)). Optionally adjust the threshold mode.
  4. Click Save.

You can add multiple Metric monitors per table.

Customize per-table settings

Click the (edit icon) for any table on the Monitors dashboard to customize settings for individual monitors. You can change the threshold mode for Volume or Metric monitors from the default prediction model to Historical Calculation or Static Thresholds, or override Freshness monitors with Static Thresholds. See Threshold modes for details on each option.

Set up anomaly notifications

Click the (notifications icon) on the Monitors page to configure email alerts when monitors detect anomalies. You can scope notifications to all tables in the table group or to a specific table. See Notifications for full setup details.

Delete monitors

To remove all monitors for a table group, click the (delete icon) on the Monitors page. This removes the monitor configuration, all definitions, all historical results, and the schedule. This action cannot be undone.