# Available Monitor Types

{% embed url="<https://youtu.be/k9fM4a8KICE>" %}

Decube provides six monitor types, each designed to detect a different category of data quality issue. Schema Drift and Job Failure monitors are enabled automatically when you connect a data source. All other types are created manually from the Config module.

***

## Table-level monitors

### Schema Drift

Schema Drift monitors detect structural changes to your tables — column additions, deletions, data type changes, and other schema modifications. They are enabled automatically on all tables when you connect a data source and require no additional setup.

{% content-ref url="/pages/BK77u7wZMk210T4bia4f" %}
[Modify Schema Drift Monitors](/data-quality/how-to-set-up-monitors/set-up-schema-drift-monitors.md)
{% endcontent-ref %}

### Freshness

Freshness monitors detect when data stops arriving on its expected schedule. The scheduled Freshness monitor uses an ML model trained on historical arrival patterns — it learns when data normally shows up and raises an incident when the probability of arrival drops below 50%. This means it accounts for expected quiet periods (weekends, off-hours) without alerting unnecessarily.

{% content-ref url="/pages/YpzBR4Fms5X6aZfHSJXj" %}
[Set Up Freshness Monitors](/data-quality/how-to-set-up-monitors/set-up-freshness-monitors.md)
{% endcontent-ref %}

### Volume

Volume monitors detect when the row-count increment added to a table per scan window falls outside the expected range. The monitor tracks the number of new rows added since the last scan — not the total row count — so it catches both missing data loads and unexpected data spikes.

{% content-ref url="/pages/K9nwiEHp0zGa6BN2j0kl" %}
[Set Up Volume Monitors](/data-quality/how-to-set-up-monitors/set-up-volume-monitors.md)
{% endcontent-ref %}

***

## Column-level monitors

### Field Health

Field Health monitors run tests against individual columns — null rates, uniqueness, value ranges, string patterns, and more. Available test types include:

* **Null** — monitors null values (Absolute, Percentage, or Auto threshold)
* **Unique** — monitors duplicate values (Absolute, Percentage, or Auto threshold)
* **Average / Min / Max** — monitors statistical metrics (Range or Auto threshold)
* **Cardinality** — tracks distinct value counts using a 5-period rolling window (Scheduled only; no training period required)
* **String Length** — validates string lengths (Range or Auto threshold)
* **Email / UUID / Regex Match** — validates format compliance (Absolute, Percentage, or Auto threshold)

{% hint style="info" %}
Available test types depend on the column's data type. For example, Average, Min, and Max apply to numeric columns only.
{% endhint %}

{% content-ref url="/pages/Dtvx04oJ0XpeTvHOkQQD" %}
[Set Up Field Health Monitors](/data-quality/how-to-set-up-monitors/set-up-field-tests.md)
{% endcontent-ref %}

***

## Advanced monitors

### Custom SQL

Custom SQL monitors let you define validation logic in SQL. You write a query that returns the failing rows; Decube counts those rows and opens an incident when the count is greater than zero. Custom SQL monitors attach to a data source connection rather than a specific table, so your query can reference any table in that source.

Custom SQL monitors do not support Smart Training. All thresholds are set manually.

{% content-ref url="/pages/PWGhO7SkX4GtJu3jfRBX" %}
[Set Up Custom SQL Monitors](/data-quality/how-to-set-up-monitors/custom-sql-monitors.md)
{% endcontent-ref %}

### Job Failure

Job Failure monitors detect failed runs in connected ETL tools (dbt, Airflow, and others). They are auto-created when you connect an ETL-type data source and require no additional configuration.

{% content-ref url="/pages/QRC6dLfH1ui8linyrJWK" %}
[Modify Job Failure Monitors (Data Job)](/data-quality/how-to-set-up-monitors/set-up-data-job-job-failure-monitors.md)
{% endcontent-ref %}

***

## Grouped-By monitors

Any monitor type (except Volume and Freshness) can be configured with a Group By column, creating one sub-monitor per distinct value in that column. Each sub-monitor tracks its own metric and opens incidents independently, giving you per-segment visibility without creating monitors manually for each value.

{% content-ref url="/pages/6W2WRDo4OLRfQIOt0QLk" %}
[Grouped-by Monitors](/data-quality/how-to-set-up-monitors/set-up-grouped-by-monitors.md)
{% endcontent-ref %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.decube.io/data-quality/available-monitor-types.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
