Troubleshooting AWS RDS
RDS-specific issues: Parameter Group changes not applying, CloudWatch IAM, security groups.
Parameter Group "applied" but nothing changes
RDS has two flavors of parameter. Dynamic parameters apply on the next session (or a config reload); static parameters require an instance reboot. If you changed shared_preload_libraries or any postmaster-context GUC, you must reboot the instance from the RDS console. The Parameter Group page shows "Pending reboot" against affected parameters when this is the case — easy to miss if you're not looking for it.
Hosted collector can't connect
Three things in order: Security Group must allow inbound from 20.107.185.112/29 on the PostgreSQL port. Public accessibility must be Yes (Modify → Network & security). SSL mode in MonPG should be require (the default; matches RDS's default of accepting SSL). If your DB is in a private VPC and you can't or won't expose it, switch to agent mode and run the collector inside your VPC.
CloudWatch logs missing in Log Insights
The most common cause is "Log exports" was never turned on. RDS Modify → Log exports → check "PostgreSQL log". Without this checkbox, RDS writes to internal logs that we can't reach.
If exports are on but you still see no logs, check the IAM role MonPG assumes. It needs logs:GetLogEvents and logs:DescribeLogStreams on /aws/rds/instance/<id>/postgresql:*. The AWS log setup page has the policy template. While you're there, double-check the AssumeRole trust policy has the correct ExternalId — we surface ours in the MonPG UI when you connect AWS.
auto_explain plans don't appear in Query Advisor
Four things to verify, in order. Is auto_explain in the cluster's shared_preload_libraries (RDS Parameter Group → look for the parameter). Did you reboot the instance after adding it (this is the one most people miss). Is auto_explain.log_min_duration actually set (the default of -1 means disabled). And confirm log exports → CloudWatch is enabled per the section above — RDS sends auto_explain output to its own logs, not to a separate stream.
Performance Insights and MonPG
Both work simultaneously and read different paths. PI uses RDS-internal sampling without an extension; MonPG reads pg_stat_statements + auto_explain. They don't interfere with each other, and most customers who use both keep PI for the AAS time-series and lean on MonPG for query-level analysis and index advice.