by: Chris Tozzi
When we talk about observability, we tend to focus first and foremost on the metrics, logs, and traces that you can collect from applications – such as request rates, error rates, and request duration. Infrastructure-level metrics, like CPU and memory utilization, might factor into the discussion as well.
Here’s a third category of critical observability insights that teams tend to overlook: the network. Indeed, given how complex modern networks are, and what a crucial role they play in overall application performance and end-user experience, it’s surprising how easy it is to overlook network observability within the broader context of observability.
In this article, we will explain why network observability must be a part of any observability strategy as well as how to achieve network observability.
Virtually every application today relies on the network. In fact, many applications rely on the network in multiple ways: they use it not just to communicate with end-users, but also to manage the internal communications that allow microservices to communicate with each other. Orchestration tools like Kubernetes, too, need the network to communicate with the various resources they manage.
What this means is that a problem with the network can quickly become a problem with the overall application. From problems with DNS configurations to inefficient load-balancing to packet loss caused by application errors or hardware problems and beyond, a lot of things can go wrong with networks that either cause an application to fail entirely or lead to degradations in performance.
What’s more, the ever-increasing complexity of modern network architectures and technologies makes the network an even more important factor in overall user experience. Many applications today rely not just on conventional, local network infrastructure but also on 5G networks that integrate data centers with IoT or edge workloads, for instance. Hybrid and multi-cloud architectures, too, usually involve complex networking techniques, like VPC peering, to share data securely between different clouds or data centers.
Faced with challenges like these, organizations need network observability as one pillar of managing overall application performance. Without continuously understanding the state of your network, you can’t gain full context into reliability issues that arise within other layers of your stack. Nor can you stay a step ahead of networking issues that could lead to application failure or performance degradation.
A complete guide to implementing network observability is beyond the scope of this article, but here’s a primer on key concepts to consider.
The first step in network observability is to know at all times how your network is designed and configured.
Ten years ago, these insights would have been obvious to most teams. But today, it can be very hard simply to map all of the segments of your network, figure out how overlay networks map onto other resources, track how traffic flows across multiple clouds, and so on. That’s especially true if network configurations change continuously, which they often do in today’s dynamic, distributed environments.
Sometimes, networking problems are caused by issues within your applications or the specific networking architecture and configurations you use. Other times, they are “Internet-level” issues that originate with an ISP, a cloud provider, or another external source that you don’t control.
Network observability requires the ability to distinguish between these issues quickly. If you’re seeing high rates of packet loss, for example, you’ll need to know whether it’s an issue just within your environment, or with a broader segment of the Internet.
Collecting data about network performance can be harder than tracking performance at the application or infrastructure level, because networks don’t typically generate logs or expose metrics in the same way as other resources. Nor can you simply deploy some kind of instrumentation library into your network that will expose the data you need.
To solve this problem, you must build observability into your network. This will often mean deploying agents that can track network performance as traffic flows across different components of the network. You’ll also want to draw on any network log or metrics data that is available, such as VPC flow logs.
Because most modern networks span a variety of clouds, data centers, or other locations, network monitoring tools that only work within a specific cloud or logs that only record networking performance data from one environment are of limited use. The best network observability strategy is powered by tools that work with all segments of your network, no matter where the networking infrastructure is physically located or how it is configured.
In short, you can’t observe any resource very effectively if you lack observability into the network. Application- and infrastructure-level observability will take you far, but knowing how your network operates and what is happening within it is critical for achieving full observability.
Watch industry experts, analysts and your peers discuss the importance of network observability in Broadcom’s AIOps and Observability On-Demand Virtual Summit.