Observing Application Behavior and Performance
With every new version of our software, we feel that release thrill. Did we manage to finally fix all those pesky problems we've been working on lately? Will it work or will it break? Will users be satisfied, or will they complain about new bugs or performance issues?
We usually employ various quality assurance techniques and automated testing methodologies to increase our confidence in software quality and validity. But these techniques and methodologies just increase our expectation that things will run smoothly with each new release. But how can you make sure that an application is running smoothly for your users? Or conversely, how can you know if something is going wrong?
In this chapter we will discuss the topic of application observability. Observability is a property of a software system that allows you to explain and understand the application's state based on its outputs. If you know the state of the system...