Skip to main content
Discovery is how AnomalyArmor learns about your database. It scans your metadata to find tables, views, columns, and their data , creating a complete inventory of your data assets. Discovery Process

What Discovery Does

Discovery queries your database’s system catalogs (not your data) to find:
Asset TypeWhat We Capture
TablesName, schema, column definitions
ViewsName, schema, underlying columns
ColumnsName, data type, nullability, constraints
MetadataPrimary keys, indexes, row counts (if available)
Privacy First: Discovery reads ONLY metadata (table names, columns, types). It never reads your actual data values. We only query metadata from information_schema, pg_catalog, or equivalent system tables.

Step-by-Step Guide

1

Go to Asset Management

Click Settings in the left sidebar, then select the Assets tab.Find the connection you created in the previous step.
2

Open Connection Details

Click on your connection name to open its details page.You’ll see connection information, discovery status, and options.
3

Click Run Discovery

Click the Run Discovery button to start scanning your database.A progress indicator will appear showing:
  • Discovery status (running, completed, failed)
  • Assets discovered so far
  • Elapsed time
4

Wait for Completion

Discovery typically completes in 1-5 minutes depending on database size.
Database SizeTypical Duration
< 100 tables< 1 minute
100-500 tables1-3 minutes
500-1000 tables3-5 minutes
1000+ tables5-10 minutes
You can navigate away. Discovery runs in the background.
5

Review Results

Once complete, you’ll see a summary of discovered assets:
Discovery results summary
6

Explore Your Assets

Navigate to Assets in the sidebar to view all discovered tables and views.You’ll see:
  • Table name and schema
  • Column count
  • Last updated timestamp (if available)
  • Status indicators

Understanding Discovery Results

The Asset Catalog

After discovery, your assets appear in the catalog. You can view them by clicking Assets in the sidebar.

Asset Details

Click any asset to see detailed information:
  • Columns: Full list with data types and constraints
  • Schema History: Changes detected over time (empty for first discovery)
  • Freshness: Data recency (requires configuration)
  • Description: AI-generated or manual documentation

Setting Up Scheduled Discovery

Discovery should run regularly to detect changes. Configure a schedule:
EnvironmentFrequencyRationale
ProductionHourlyCatch changes quickly
StagingEvery 6 hoursBalance coverage and load
DevelopmentDailyLower priority

Configure Schedule

  1. Go to SettingsAssets → Select your connection
  2. Click the Settings tab on the asset detail page
  3. Under Discovery Schedule, choose frequency
  4. Click Save
Discovery Schedule Options:
  • Every 15 minutes (real-time monitoring)
  • Hourly (recommended for production)
  • Every 6 hours
  • Daily
  • Weekly
  • Manual only
Start with hourly discovery for production databases. You can adjust based on how frequently your schemas change and your alerting needs.

What Happens on Subsequent Discoveries

After the initial discovery, subsequent runs detect changes:
  • New tables/views added since last discovery
  • Removed tables/views that no longer exist
  • Schema changes (columns added, removed, type changed)
  • Freshness updates (latest timestamp values)
Changes trigger alerts if you have alert rules configured (next step!).

Incremental vs. Full Discovery

TypeWhat It DoesWhen to Use
IncrementalDetects changes since last runDefault for scheduled runs
FullComplete rescan of everythingAfter major changes, troubleshooting
To run a full discovery: Click Run Discovery → Select Full Discovery.

Troubleshooting

Cause: Large database or network latencySolutions:
  1. Exclude schemas you don’t need (e.g., pg_temp, test schemas)
  2. Run during off-peak hours
  3. Use a read replica instead of primary database
To exclude schemas:
  • SettingsAssets → Select your connection → Settings tab → Schema Filter
  • Add schemas to exclude: pg_temp_*, test_*
Cause: Permission or schema filtering issuesSolutions:
  1. Verify the user has SELECT on information_schema
  2. Check schema filter isn’t excluding everything
  3. Confirm you’re connected to the correct database
  4. Verify tables exist in the schemas you’re monitoring
Cause: Connection or permission issuesSolutions:
  1. Test the connection (Settings → Assets → Select connection → Test Connection)
  2. Check database user permissions
  3. Verify network connectivity
  4. Check database logs for errors
Cause: Some databases don’t expose row counts in system tablesSolutions:
  • PostgreSQL: Run ANALYZE on tables to populate pg_stat_user_tables
  • This is informational only. Monitoring works without row counts

What You’ve Accomplished

After completing discovery, you have:
  • A complete inventory of your database assets
  • Metadata for all tables, views, and columns
  • A baseline for detecting future changes
  • Assets visible in your catalog

Next Step

Now that your assets are discovered, let’s set up alerts to notify you when something changes.

Set Up First Alert

Configure notifications for schema changes and freshness violations