Chapter 9. Observability
The ability to observe any software system is critical. If you cannot examine the condition of your running applications, you cannot effectively manage them. And that is what we are addressing with observability: the various mechanisms and systems we use to understand the condition of running software that we are responsible for. We should acknowledge that we’re not adhering to the control theory definition of observability in this context. We chose to use this term simply because it has become popular and we want people to readily understand what we’re getting at.
The components of observability can be broken into three categories:
- Logging
-
Aggregating and storing the logged event messages written by programs
- Metrics
-
Collecting time series data, making it available in dashboards, and alerting upon it
- Tracing
-
Capturing data for requests that traverse multiple distinct workloads in the cluster
In this chapter, we will cover how to implement effective observability in Kubernetes-based platforms so that you can safely manage a platform and the workloads it hosts in production. First, we will explore logging and examine the systems for aggregating logs and forwarding them to your company’s logging backend. Next, we’ll cover how to collect metrics, how to visualize that data, and how to alert upon it. Lastly, we’ll cover tracing requests through distributed systems so as to better understand what’s happening when applications are composed of distinct ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access