Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.anomalyarmor.ai/llms.txt

Use this file to discover all available pages before exploring further.

Now that you have discovery running and alerts configured, let’s set up completeness monitoring. This tracks row counts in your tables and alerts you when data volumes are abnormal.

What You’ll Accomplish

By the end of this step, you’ll have:
  • Completeness monitoring on a critical table
  • ML-based anomaly detection learning your data patterns
  • Alerts when row counts deviate from expected values

Why Completeness Monitoring?

Row count anomalies catch real problems:
AnomalyWhat It Means
Sudden dropFailed ETL job, data loss, broken pipeline
Unexpected spikeDuplicate loads, runaway inserts
Missing dataSource system outage, extraction failure
Gradual declineUpstream issues, filtering bugs

Set Up Monitoring

1

Navigate to Your Table

  1. Go to Assets from the main navigation
  2. Click on a table you want to monitor (pick one that receives regular data)
  3. Click the Completeness tab
2

Enable Monitoring

Click Enable Completeness Monitoring to open the configuration.
3

Configure Settings

SettingRecommended ValueWhy
ModeAuto-learnML learns your normal patterns
Time Window24 hoursMatches daily ETL schedules
Check IntervalHourlyCatches issues quickly
Sensitivity2 (Medium)Balanced alerting
Auto-learn mode builds a baseline over 7 days, then uses ML to predict expected row counts. No manual thresholds needed.
4

Save

Click Save. Monitoring starts immediately and begins learning patterns.

Understanding the Learning Phase

After enabling, you’ll see a Learning status badge on the monitoring card. The chart will show data points being collected, with a message like “Building baseline - 3 of 7 data points collected.” What happens during learning:
  • Row counts are captured at your check interval
  • ML model analyzes patterns (daily, weekly, hourly trends)
  • After 7+ data points, predictions activate

After Learning Completes

Once the baseline is established:
  • Expected range shown on the chart
  • Anomalies highlighted when row count falls outside predictions
  • Alerts fire to your configured destinations

Explicit Mode (Alternative)

If you know exactly what to expect, use explicit mode:
SettingExample
ModeExplicit
Minimum Rows10,000
Maximum Rows50,000
Alerts fire when row count falls outside your defined range.

Which Tables to Monitor

Start with tables that:
  • Receive data regularly (daily, hourly)
  • Are critical to downstream reporting
  • Have predictable volume patterns
Good candidates:
  • Fact tables (orders, events, transactions)
  • Staging tables from ETL pipelines
  • Aggregation tables
Skip for now:
  • Dimension tables (change infrequently)
  • Archive tables
  • Temporary/scratch tables

Troubleshooting

Check these:
  1. Is the table receiving new data?
  2. Is the check interval appropriate for your data frequency?
  3. View the history tab to see if captures are running
Reduce noise:
  1. Increase sensitivity (3 or 4 = fewer alerts)
  2. Adjust time window to match your data patterns
  3. Consider if this table has irregular patterns
Verify:
  1. Learning phase is complete
  2. Alert rules are configured for completeness events
  3. Check the history tab to see detected anomalies

Common Questions

How long does AnomalyArmor’s anomaly detection take to start catching issues?

Usually 7-14 days of learning before anomaly detection is meaningful. During learning, AnomalyArmor records values without firing alerts so it can establish a baseline. You’ll see a Learning status on the metric until the baseline is stable.

Why is my metric stuck in ‘learning’ status?

Learning needs enough historical data points to build a baseline - typically 14 daily samples or 30+ hourly samples. If your table is new or only sampled sporadically, learning takes longer. Reduce the sampling interval temporarily to accelerate, then relax it once anomaly detection is active.

Can I use AnomalyArmor for row-count monitoring on massive tables without full scans?

Yes - AnomalyArmor uses COUNT(*) only, which most databases satisfy from statistics or indexes without a full scan. For very large tables where even COUNT(*) is expensive, you can monitor a partitioned slice (e.g., created_at >= NOW() - INTERVAL '1 day') as a lightweight proxy.

What’s the difference between row-count monitoring and freshness monitoring?

Row counts detect volume anomalies (sudden drops, spikes) regardless of whether new rows are landing. Freshness detects staleness - was the most recent row added within your SLA? Use both: freshness alerts when the pipeline stops, row counts alert when it runs but produces wrong amounts.

What’s Next

Column Metrics

Track null percentages, distinct counts, and more

Freshness Monitoring

Ensure tables are updated on schedule