Database platform

AWS retired Performance Insights. What now?

The built-in monitoring in RDS and Aurora was deprecated on 30 June 2026. Most teams have not replaced it properly, and the gap is quieter than an outage.

Start a conversation
All posts

Amazon deprecated the built-in Performance Insights monitoring in RDS and Aurora on 30 June 2026, extended from an original November 2025 date.

The deadline passed quietly, which is the problem. Nothing broke. No alarm fired. Databases carried on serving traffic exactly as before. The only change is that the tool many teams relied on to understand why a database was slow is no longer there.

What it actually did

Performance Insights was not another CPU graph. It sampled active sessions continuously and attributed database load to the thing causing it: a specific SQL statement, a specific wait event, a specific host or user.

That distinction matters. CloudWatch tells you the database is busy. Performance Insights told you which query, waiting on what, and since when.

For most teams it was the only wait-event visibility they had, and it was free enough at the default retention that nobody had to justify it.

Losing it does not cause an incident. It makes the next incident take three times longer to diagnose.

How to tell whether you have a gap

Three questions, answerable in about ten minutes:

  • When a database slowed down last quarter, how did you find the query? If the answer involves the Performance Insights dashboard, you have a gap.
  • Can you see wait events today? Not CPU, not connections. What sessions are actually waiting on.
  • Do you have any load history? Being able to say a workload changed on the fourteenth is worth more than knowing it is slow now.

A surprising number of estates answer no to all three and have not noticed, because the absence only shows up under pressure.

What the replacement looks like

There is no single drop-in. The realistic options fall into three groups.

Build it from the database

PostgreSQL exposes most of what you need through pg_stat_statements, pg_stat_activity, and the wait event columns. Sample active sessions on a short interval, store the samples, and you have the same data model Performance Insights used.

Cheapest, and it works everywhere including on-premises and other clouds. It is also the option most teams underestimate, because the collection is easy and the retention, aggregation and presentation are not.

Use a purpose-built tool

Several vendors do database performance monitoring properly, with query-level attribution, plan history and regression detection. Better than what you lost, and priced accordingly.

Extend what you already run

If there is already a Prometheus, Datadog or New Relic footprint, database exporters will get you part of the way. Be honest about how far. Generic infrastructure monitoring rarely gives real wait-event attribution, and a dashboard that looks complete while missing the diagnostic layer is worse than an obvious gap.

The thing worth doing regardless

Whatever you choose, capture a baseline now.

The most useful property of a monitoring system is not the live view. It is the ability to answer whether this is normal. That requires history, and history only exists if collection started before the incident.

Every week without collection is a week of comparison you cannot get back.

Why this pattern keeps repeating

Managed services remove operational burden and, occasionally, they remove a capability. When that happens, the need does not disappear with the feature. It becomes invisible, and it lands on whoever is on call the next time something is slow at two in the morning.

Worth checking what else in your estate depends on a managed feature you did not choose and cannot control.

Working through something like this?

If any of the above matches a problem in front of you, the fastest way in is a fixed-scope assessment. Two to three weeks, written findings, yours to keep either way.

See assessments Start a conversation