Chapter 10. From Monitoring to Observability
As I’ve hopefully shown so far, breaking our system up into smaller, fine-grained microservices results in multiple benefits. It also, as we’ve also covered in some depth, adds significant sources of new complexity. In no situation is this increased complexity more evident than when it comes to understanding the behavior of our systems in a production environment. Very early on, you’ll find the tools and techniques that worked well for relatively simpler single-process monolithic applications don’t work as well for your microservice architecture.
In this chapter, we’ll look at the challenges associated with monitoring our microservice architecture, and show how although new tools can help, fundamentally you may need to shift your entire mindset when it comes to working out what the hell is going on in production. We’ll also talk about the increased focus on the concept of observability - understanding how to make it possible to ask questions of our system to work out what is going wrong.
You won’t truly appreciate the potential pain, suffering, and anguish caused by a microservice architecture until you have it running in production, serving real traffic.
Picture the scene. It’s a quiet Friday afternoon, and the team is looking forward to sloping off early to the pub as a way to start a weekend away from work. Then suddenly the emails arrive. The website is misbehaving! Twitter is ablaze with your company’s failings, ...