Avoid these pitfalls when setting up AnomalyArmor. Most users encounter at least one of these. Here’s how to prevent and fix them.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.
Database Connection Mistakes
Wrong Port Number
The mistake: Using the wrong default port for your database.| Database | Correct Port | Common Mistake |
|---|---|---|
| PostgreSQL | 5432 | 3306 (MySQL) |
| ClickHouse HTTPS | 8443 | 9000 (native) |
| ClickHouse HTTP | 8123 | 9000 (native) |
| Databricks | 443 | N/A |
SSL Not Enabled
The mistake: Not enabling SSL when your database requires it. Most cloud databases require SSL:- AWS RDS/Aurora: Required by default
- Supabase: Required
- ClickHouse Cloud: Always HTTPS
- Google Cloud SQL: Required by default
require in your connection settings.
Forgot to Allowlist IPs
The mistake: Firewall or security group blocks AnomalyArmor. Symptoms:- “Connection refused” error
- “Connection timed out” error
- Go to Settings → Security to find AnomalyArmor IPs
- Add them to your security group/firewall rules
- Test the connection again
Using Wrong Endpoint (AWS)
The mistake: Using the wrong RDS/Aurora endpoint.Permission Mistakes
Insufficient Database Permissions
The mistake: User can connect but can’t read metadata. Symptoms:- “Permission denied” error
- Discovery finds no tables
Forgetting Schema Permissions
The mistake: Granting table access but not schema access.Not Granting Access to Future Tables
The mistake: New tables aren’t automatically monitored.Alert Configuration Mistakes
Alerting on Everything
The mistake: Creating broad rules that alert on every change in every environment. Result: Alert fatigue. Your team ignores all alerts. Better approach:- Start with 5-10 critical production tables
- Alert only on breaking changes (column removed, table removed)
- Exclude dev/test environments
- Add coverage gradually
Same Destination for All Severities
The mistake: Sending all alerts to Slack or all alerts to PagerDuty. Result: Important alerts get buried or you get paged for trivial issues. Better approach:Too-Tight Freshness SLAs
The mistake: Setting freshness SLA to match exact expected timing.Not Disabling Rules During Maintenance
The mistake: Getting paged during planned maintenance. How to fix: Before maintenance:- Go to Alerts → Rules
- Toggle OFF relevant rules
- Set a reminder to re-enable
- Toggle rules back ON after maintenance
Discovery Configuration Mistakes
Discovery Too Infrequent
The mistake: Daily discovery for production databases. Result: Schema changes aren’t caught until the next day. After pipelines fail. Better approach:| Environment | Discovery Frequency |
|---|---|
| Production | Hourly |
| Staging | Every 6 hours |
| Development | Daily |
Not Scheduling Before Pipeline Runs
The mistake: Discovery runs at random times, not before pipelines. Better approach:Including Unnecessary Schemas
The mistake: Monitoring schemas that change constantly.Freshness Monitoring Mistakes
Wrong Timestamp Column
The mistake: Usingcreated_at for tables that get updated.
| Table Type | Right Column |
|---|---|
| Append-only (events, logs) | created_at |
| Updated tables (users, profiles) | updated_at |
| ETL destination | _loaded_at or _etl_timestamp |
Not Handling Weekends
The mistake: Freshness SLA assumes 24/7 updates. Result: Weekend alerts for data that legitimately doesn’t update. Options:- Longer SLA (72 hours for daily data)
- Disable rules on Friday, re-enable Monday
- Different weekend thresholds (coming soon)
Security Mistakes
Using Production Application Credentials
The mistake: Using the same credentials your application uses. Risks:- If compromised, attacker has full application access
- Can’t easily rotate without affecting application
- No audit trail separation
Not Using SSL
The mistake: Disabling SSL “because it’s easier.” Risk: Credentials transmitted in plaintext. How to fix: Always useSSL Mode: require for production.
Checklist: Before Going Live
Use this checklist to avoid common mistakes: Connection:- Correct hostname (no typos)
- Correct port for database type
- SSL mode set to
require - AnomalyArmor IPs allowlisted
- Dedicated read-only user created
- CONNECT granted on database
- USAGE granted on schemas
- SELECT granted on tables
- Future table access configured
- Discovery frequency matches environment (hourly for production, 6h for staging, daily for dev)
- Scheduled before pipeline runs
- Noisy schemas excluded
- Started with critical tables only
- Routing by event type configured
- Dev/test excluded
- Freshness SLAs have buffer
- Maintenance rule-toggle process documented
Still Having Issues?
Connection Issues
Detailed connection troubleshooting
Contact Support
Get help from our team
Common Questions
Why does AnomalyArmor find zero tables after I connect my database?
The user can connect but lacksUSAGE on the schemas or SELECT on information_schema. Grant both, then re-run discovery. See Forgetting Schema Permissions above for the exact grants.
Why do new tables never show up in AnomalyArmor?
New tables are not automatically covered byGRANT SELECT ON ALL TABLES. Add ALTER DEFAULT PRIVILEGES so future tables inherit access. See Not Granting Access to Future Tables for the PostgreSQL syntax.
Why are we getting false positive freshness alerts on a table that updates fine?
Almost always the wrong timestamp column. Append-only tables usecreated_at, but tables that get updated in place need updated_at or _loaded_at. Switch the column and the noise usually stops.
