
The Difference Between Detecting a Problem and Understanding Its Cause
Learn why detecting infrastructure problems is easier than finding their causes, and how monitoring and troubleshooting can improve diagnosis.
Read field noteField notes / Latest
Engineering notes from operating open infrastructure: the failures, design decisions, and upstream work that make open infrastructure better.
Browse all field notes
Learn why detecting infrastructure problems is easier than finding their causes, and how monitoring and troubleshooting can improve diagnosis.
Read field note
VEXXHOST commits $100K in infrastructure credits for 2027 to support the OpenInfra Foundation, building on years of contributions to OpenDev.
Read field note
Learn how to monitor cloud spending, forecast costs, and configure budget alerts in VEXXHOST Public Cloud using APIs and CLI tools.
Read field noteLearn why detecting infrastructure problems is easier than finding their causes, and how monitoring and troubleshooting can improve diagnosis.
TL;DR
Infrastructure monitoring can detect performance issues and failures, but identifying their underlying causes requires understanding how compute, networking, storage, and applications interact. Fragmented monitoring data, cascading failures, and configuration changes can complicate troubleshooting. Correlating metrics, logs, dependencies, and recent changes helps infrastructure teams investigate incidents more effectively and address recurring problems.
An infrastructure alert can tell engineers that something is wrong, but identifying the underlying cause is often a much more complicated process.
An application might experience slow response times even though its compute resources appear healthy. A virtual machine may become unresponsive because of storage latency, network congestion, or a problem with another service. Monitoring can reveal the symptoms, but understanding what caused them requires looking beyond the component reporting the issue.
This challenge is reflected in the 2025 Grafana Labs Observability Survey. Based on responses from 1,255 participants, the report found that 39% identified complexity and overhead as major obstacles to observability, while 38% cited excessive noise and difficulty distinguishing useful signals. The findings highlight how collecting monitoring data does not automatically make infrastructure problems easier to diagnose.
At VEXXHOST, we help organizations design, deploy, and operate OpenStack, Kubernetes, and Ceph infrastructure. Our services include architecture, deployment, monitoring, troubleshooting, upgrades, and ongoing operations, with hosted and on-premises options and expert support or fully managed services.
In environments where compute, networking, storage, and applications depend on one another, the first visible problem may be several layers away from its actual cause. Effective troubleshooting requires more than responding to alerts. Engineers need to understand how infrastructure components interact, identify the source of a failure, and determine what needs to change to prevent it from happening again.
When an application starts responding slowly, the first instinct is often to investigate the system where the problem appears. Engineers might check CPU utilization, memory consumption, or the status of the virtual machine hosting the application.
But the component experiencing the problem is not necessarily the one causing it.
A virtual machine can have sufficient compute resources and still perform poorly because its storage is experiencing high latency. An application might report connection timeouts even though the underlying network is functioning normally, with the actual issue originating from an overloaded database or another dependent service.
These situations are particularly common in environments where multiple infrastructure services work together. A single request may depend on compute resources, virtual networking, storage, authentication, and application-level services. A problem in one layer can affect workloads elsewhere without immediately revealing its source.
This is one reason monitoring individual infrastructure components is not enough. As we discuss in Monitoring an OpenStack Cloud: Tools, Metrics, and Alert Fatigue, effective monitoring requires visibility into different parts of the environment and an understanding of which metrics are relevant to operational health.
For example, high CPU utilization may indicate a compute bottleneck, but it can also be a normal consequence of a demanding workload. Similarly, low CPU utilization does not rule out a performance problem if an application is spending most of its time waiting for storage or network responses.
Engineers need to compare symptoms across infrastructure layers, examine when problems began, and identify which services share dependencies. This helps distinguish between the system reporting an issue and the component responsible for it.
Treating the first visible symptom as the root cause can lead teams to spend time adjusting resources or configurations that were never responsible for the problem.
Modern infrastructure relies on several interconnected systems, and performance problems rarely stay confined to a single layer.
Consider a Kubernetes application running on virtual machines provisioned through OpenStack, with persistent storage provided by Ceph. The application may begin experiencing slow database queries or delayed responses, even though the Kubernetes pods are running and the virtual machines appear healthy.
The underlying issue could be increased storage latency in the Ceph cluster. If storage operations take longer to complete, the database may spend more time waiting for data, causing application requests to slow down. From the application's perspective, the problem looks like poor database performance, even though its origin is in the storage infrastructure.
Networking introduces similar challenges. Packet loss or congestion between services can cause timeouts and retries, increasing response times without necessarily producing an obvious failure in the application itself.
These relationships make troubleshooting more difficult because different teams and monitoring tools may only have visibility into specific parts of the environment. An application engineer might investigate database queries, while an infrastructure engineer examines storage performance or network traffic.
Identifying the cause requires connecting those observations. Metrics from the application, virtual machines, network, and storage systems need to be examined together, particularly around the time the problem first appeared.
Understanding these dependencies helps engineers narrow their investigation and avoid making changes to components that are functioning as expected.
Infrastructure teams often collect large amounts of monitoring data, including system metrics, application logs, network statistics, and storage performance indicators. While this information is valuable, having more of it does not necessarily make troubleshooting faster.
The challenge is knowing which signals matter.
A single performance issue can generate alerts across several systems. An overloaded storage service might trigger warnings about disk latency, database response times, and application timeouts. Each alert describes a different symptom of the same underlying problem.
When monitoring tools operate independently, engineers may need to switch between dashboards, compare timestamps, and manually reconstruct what happened. Differences in how systems collect and report data can make this process even more difficult.
VEXXHOST's article Expanding OpenStack Monitoring Through Atmosphere provides a practical example of bringing monitoring tools together. It explains how Atmosphere integrates Prometheus for metrics, Loki for centralized logs, Grafana for dashboards, and AlertManager for notifications. Making these tools accessible through a common monitoring environment can reduce the effort involved in investigating infrastructure issues.
Alert thresholds can also create unnecessary noise. A temporary increase in CPU usage might trigger a warning even when the workload is behaving normally, while a gradual rise in storage latency may go unnoticed until users begin reporting problems.
This is where context becomes more useful than the number of metrics collected. Engineers need to understand which services depend on one another, what normal performance looks like, and whether an alert represents an isolated event or part of a broader issue.
Correlating metrics, logs, and infrastructure changes can help narrow the investigation. For example, if application response times increase immediately after a network configuration change, that change becomes a reasonable starting point for troubleshooting, although it still needs to be verified as the cause.
Effective monitoring is therefore not simply about collecting more information. It is about making the available information useful enough to distinguish routine activity from problems that require investigation.
Not every infrastructure problem can be traced to a single event. Some failures develop gradually, while others appear intermittently or result from several conditions occurring at the same time.
A storage system, for example, might experience occasional latency spikes that disappear before engineers can investigate them. Network congestion may affect only certain workloads or become noticeable during peak usage. These problems are difficult to reproduce, particularly when the infrastructure appears healthy by the time troubleshooting begins.
Configuration changes add another layer of complexity. A performance issue might emerge after an upgrade, a new deployment, or a change to network policies. However, the timing alone does not prove that the change caused the problem. Engineers still need to examine logs, compare performance metrics, and rule out other possible explanations.
Cascading failures can make the investigation even harder. When one service becomes unavailable, dependent systems may generate additional errors and alerts. The resulting activity can obscure the original failure, especially when monitoring data is spread across different tools.
Root cause analysis therefore involves reconstructing what happened, identifying the relationships between affected components, and testing possible explanations against the available evidence.
Sometimes the investigation reveals several contributing factors rather than one definitive cause. A temporary increase in workload, an existing capacity limitation, and a configuration issue might combine to produce an incident that none of those conditions would have caused independently.
Understanding these factors helps teams address underlying weaknesses instead of repeatedly resolving the same symptoms.
Improving infrastructure troubleshooting starts with making monitoring data easier to interpret and connect across systems.
Consistent metrics, centralized logs, and distributed tracing can help engineers follow problems across applications and infrastructure services. Establishing performance baselines is equally useful, since teams need to understand normal system behavior before they can recognize unusual patterns.
Infrastructure changes should also be part of the investigation. Keeping records of deployments, upgrades, configuration adjustments, and maintenance activities makes it easier to determine whether a problem coincides with a recent change.
Alerting deserves regular attention as well. Thresholds that generate too many false positives can distract engineers, while alerts that lack sufficient context may identify a problem without providing useful information about where to investigate. Reviewing alert quality and connecting notifications to relevant dashboards or operational procedures can make incident response more effective.
Automation can also help teams maintain consistency. As discussed in Automating Recovery with Infrastructure-as-Code, Orchestration, and Atmosphere, infrastructure as code provides a reproducible record of intended configurations, while observability helps operators understand system behavior. Together, these practices can provide useful context when investigating incidents or unexpected infrastructure changes.
Post-incident reviews provide another opportunity to improve diagnosis. Examining what happened, which signals were missed, and how the issue was eventually identified can reveal gaps in monitoring coverage or infrastructure knowledge.
For organizations operating complex environments, these practices are most effective when they become part of routine infrastructure operations. Monitoring configurations, dependency maps, and troubleshooting procedures need to evolve alongside the systems they support.
The goal is to give engineers enough reliable information to investigate problems efficiently, identify contributing factors, and make informed decisions about how to resolve them.
Detecting an infrastructure problem is often straightforward compared to identifying what caused it. An alert may point to a slow application, an unresponsive virtual machine, or increased storage latency, but the underlying issue can originate elsewhere in the environment.
Effective troubleshooting depends on understanding how systems interact. Monitoring data, application logs, infrastructure dependencies, and recent configuration changes all provide context that helps engineers distinguish symptoms from their underlying causes.
Improving this process requires more than adding monitoring tools. Clear visibility across infrastructure layers, meaningful alerts, and regular post-incident reviews help teams investigate problems more efficiently and address recurring issues.
At VEXXHOST, we help organizations design, deploy, manage, and troubleshoot OpenStack, Kubernetes, and Ceph infrastructure. Our expertise in cloud architecture, storage, and ongoing operations helps teams maintain visibility into complex environments and address infrastructure challenges as they arise.
If you're looking to improve the reliability and manageability of your cloud infrastructure, talk to our team about your requirements.
Choose from Atmosphere Cloud, Hosted, or On-Premise.
Simplify your cloud operations with our intuitive dashboard.
Run it yourself, tap our expert support, or opt for full remote operations.
Leverage Terraform, Ansible or APIs directly powered by OpenStack & Kubernetes