The Challenge of Monitoring “Across The Stack”
Today’s technology stacks change at an ever increasing pace. As developers and operations professionals, we encounter constant challenges when adopting new development patterns and changing the way we deploy applications or services. We’ve started using complex stacks to build our applications and every deployment of a new application stack results in new interactions with services built on their own stacks. It’s imperative, for performance and stability reasons, to understand the interactions between each service stack and therefore we need to monitor “across the stack”, meaning that we need to monitor the stack itself and all interactions between each stack.
Adding to the list of challenges, we’ve accelerated our pace of deploying new service stacks that use the latest technologies. While Continuous Integration is an integral part of almost all application development pipelines today, Continuous Deployment is gaining traction too, and is still accelerating. Monitoring application and service infrastructures that are constant updated and deployed is an increasingly difficult task.
Figure 1: Representation of modern service stacks that support business critical applications.
Distributed Tracing Across The Stack
In addition to the term “across the stack”, monitoring vendors also use the term “full stack monitoring”. These terms are commonly used to explain the situation where user requests are monitored not only in a single system, but along all involved components – some internal, some external.
In the past, application stacks mostly consisted of a monolith application, a database (we all know the 3 big ones, Oracle, IBM, SAP), maybe a mainframe system, and if you were really unlucky, an ESB to integrate many disparate systems.
In these older architectures, monitoring across the stack meant supporting a few major technologies, and visualizing requests across 10’s or 100’s of components.
In modern architectures, however, we change technologies with ever increasing speed and we deploy an order of magnitude more components. We have many more technologies to choose from and today’s teams tend to use the “right tool for the job” instead of a “standard technology stack” for easier operations. The strange thing is, this new approach makes sense when you’re focused on agility and innovation.
Monitoring Across All Of Your Technology Stack
The increase of pace, number of unique technologies being used, and the highly dynamic nature of containers, makes monitoring “across the stack” an interesting challenge.
Today we not only want to see the trace of a user’s request throughout all the different technologies being used, we also want to understand the influence of failing systems upon other parts of the stack. We need to have all the information correlated in such a way that is helpful to identify the root cause of issues, automatically if possible.
Figure 2: Distributed trace of a user request traversing a polyglot application architecture
Full stack monitoring (or monitoring across the stack) is a totally different beast from what it was in the last decade and even just a few years ago. Providing monitoring for current and future application architectures is a task that monitoring tools must be built for, from the ground up. You cannot take an old monitoring tool and make it work well in a modern application environment. There are simply too many legacy artifacts hard coded into old products for them to be effective at monitoring CI/CD driven, highly dynamic, containerized application stacks.
Instana and the Golden Age of Dynamic Applications
Instana was built, from the ground up, to monitor modern applications. Not only does Instana support most technologies used in modern stacks, but leaps way ahead of the game by continuously and automatically monitoring every new component as they are deployed.
Furthermore Instana utilizes Stan, our AI, to automatically discover the full technology stack, map out service and component dependencies, perform dependency and event correlation, and to automatically determine the root cause of issues and incidents.
If you want a deeper look into how this is all possible you can read about our dynamic graph technology. It’s a foundational technology that is unique to Instana and enables so many of our powerful capabilities.
If you simply want to see how Instana works using your own environment, look for the “Try Instana” button at the top of this page and get started today.