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.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.
What Discovery Does
Discovery queries your database’s system catalogs (not your data) to find:| Asset Type | What We Capture |
|---|---|
| Tables | Name, schema, column definitions |
| Views | Name, schema, underlying columns |
| Columns | Name, data type, nullability, constraints |
| Metadata | Primary 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
Go to Asset Management
Click Settings in the left sidebar, then select the Assets tab.Find the connection you created in the previous step.
Open Connection Details
Click on your connection name to open its details page.You’ll see connection information, discovery status, and options.
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
Wait for Completion
Discovery typically completes in 1-5 minutes depending on database size.
You can navigate away. Discovery runs in the background.
| Database Size | Typical Duration |
|---|---|
| < 100 tables | < 1 minute |
| 100-500 tables | 1-3 minutes |
| 500-1000 tables | 3-5 minutes |
| 1000+ tables | 5-10 minutes |
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:Recommended Schedules
| Environment | Frequency | Rationale |
|---|---|---|
| Production | Hourly | Catch changes quickly |
| Staging | Every 6 hours | Balance coverage and load |
| Development | Daily | Lower priority |
Configure Schedule
- Go to Settings → Assets → Select your connection
- Click the Settings tab on the asset detail page
- Under Discovery Schedule, choose frequency
- Click Save
- Every 15 minutes (real-time monitoring)
- Hourly (recommended for production)
- Every 6 hours
- Daily
- Weekly
- Manual only
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)
Incremental vs. Full Discovery
| Type | What It Does | When to Use |
|---|---|---|
| Incremental | Detects changes since last run | Default for scheduled runs |
| Full | Complete rescan of everything | After major changes, troubleshooting |
Troubleshooting
Discovery takes too long
Discovery takes too long
Cause: Large database or network latencySolutions:
- Exclude schemas you don’t need (e.g.,
pg_temp, test schemas) - Run during off-peak hours
- Use a read replica instead of primary database
- Settings → Assets → Select your connection → Settings tab → Schema Filter
- Add schemas to exclude:
pg_temp_*, test_*
Discovery finds no tables
Discovery finds no tables
Cause: Permission or schema filtering issuesSolutions:
- Verify the user has
SELECToninformation_schema - Check schema filter isn’t excluding everything
- Confirm you’re connected to the correct database
- Verify tables exist in the schemas you’re monitoring
Discovery fails with error
Discovery fails with error
Cause: Connection or permission issuesSolutions:
- Test the connection (Settings → Assets → Select connection → Test Connection)
- Check database user permissions
- Verify network connectivity
- Check database logs for errors
Row counts not showing
Row counts not showing
Cause: Some databases don’t expose row counts in system tablesSolutions:
- PostgreSQL: Run
ANALYZEon tables to populatepg_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
Common Questions
How long does discovery take for a large database?
Discovery queries only system catalogs, not your data, so it’s fast. Typical durations: under 1 minute for up to 100 tables, 1-3 minutes for 100-500 tables, 3-5 minutes for 500-1000 tables, and 5-10 minutes for 1000+ tables. You can navigate away during discovery.Does discovery impact my database’s performance?
Minimal. Discovery runs information-schema queries against system tables, not table scans on your data. Expect a brief spike in catalog read activity for a few seconds, no noticeable load on production workloads.Can I limit which schemas or tables AnomalyArmor discovers?
Yes. Configure include/exclude patterns per schema on the connection’s detail page. Patterns support glob-style matching (e.g.,analytics_* includes every schema starting with analytics_, public.audit_* excludes specific tables).
How often does discovery re-run after the first scan?
By default, daily. Set it to hourly on the connection’s detail page if your environment changes often. Each subsequent run is incremental - AnomalyArmor only records what changed since the last scan, which is also what drives schema-drift alerts.Why are my row counts showing as zero or missing after discovery?
Some databases don’t expose row counts in system tables by default. For PostgreSQL, runANALYZE on the affected tables to populate pg_stat_user_tables. Row counts are informational only - monitoring, freshness, and schema-drift detection all work without them.
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

