3 Sources

 

This chapter covers

  • What we mean by signal sources
  • The types of sources that exist and when to select which source
  • Gaining actionable insights from selecting the right sources for a task
  • How to deal with code you own and how and when to instrument
  • Understanding supply chain visibility

From an observability point of view, the system under observation (SUO) is made up of a collection of sources. These sources emit telemetry signals, such as logs, metrics, and traces, which we discussed in chapter 2 and which form the basis for actionable insights for humans and machines alike.

In the context of cloud-native systems, things tend to move fast—new open source projects are launched, providers add features to their products, and cloud providers introduce new services. It is for this reason (that is, the iteration speed found in cloud-native systems) that we won’t go into great detail about specific offerings, their APIs, or their features. What is important and what I’d like to focus on is to enable you to understand which sources are at your disposal and which ones you may wish to select for a certain task.

In this chapter, we will categorize sources using a simple and widely used trichotomy: compute, storage, and network. On a high level, this looks as follows:

3.1 Selecting sources

3.2 Compute-related sources

3.2.1 Basics

3.2.2 Containers

3.2.3 Kubernetes

3.2.4 Serverless compute

3.3 Storage-related sources

3.3.1 Relational databases and NoSQL data stores

3.3.2 File systems and object stores

3.4 Network-related sources

3.4.1 Network interfaces

3.4.2 Higher-level network sources

3.5 Your code