Many production incidents eventually appear to line up with a deployment, configuration update, infrastructure change, or scaling event. Once you've identified a likely change, what do experienced teams do to confirm whether it actually caused the incident?
Do you primarily use logs, metrics, traces, dashboards, or change-history data? Do you try to reproduce the issue in a lower environment? How do you distinguish genuine causation from timing-based correlation, especially when several changes happen close together?
I'm also interested in cases where the obvious deployment turned out to be innocent, or where reverting it only hid a deeper problem. I'd like to understand how teams investigate these situations in real production environments, particularly on AWS, without focusing on any specific tool.
4 Answers
Finding a correlation is only the beginning. If a deployment happened right before an outage, you still need to explain the mechanism connecting that change to the failure. Understand what changed, how the affected components work, and how they interact. A pair of matching graphs isn’t enough to establish causation.
The cleanest confirmation is usually an isolated rollback: revert only the suspected change and see whether the symptom consistently disappears. That isn’t always possible with schema migrations, cache warmups, or other irreversible changes. In those cases, you have to reason from the affected components, blast radius, timing, and whether the failure mode makes technical sense.
Reproducing the behavior in a lower environment can help, but it’s often slower and less conclusive than people expect. Production capacity, traffic patterns, data volume, caches, and dependencies may be different. Treat reproduction as supporting evidence rather than definitive proof, and combine it with timeline data, metric baselines, logs, and an explanation of the failure path.
One of the trickiest distinctions is whether a change caused the problem or merely exposed an existing weakness. For example, a deployment might quadruple database connections and trigger an outage, while the database had already been close to its connection limit for weeks. Reverting the deployment may restore service temporarily without fixing the underlying risk.
A useful approach is to establish the change window from infrastructure and audit history, then compare the relevant metric with the same weekday from one or two weeks earlier. That gives you a better baseline than only comparing it with the previous hour.

Related Questions
Can't Load PhpMyadmin On After Server Update
Redirect www to non-www in Apache Conf
How To Check If Your SSL Cert Is SHA 1
Windows TrackPad Gestures