Cloud Observability in Action (Final Release) 9781633439597

Don’t fly blind. Observability gives you actionable insights into your cloud native systems—from pinpointing errors, to

162 126

English Pages 266 Year 2023

Report DMCA / Copyright

DOWNLOAD FILE

Cloud Observability in Action (Final Release)
 9781633439597

Table of contents :
inside front cover
Cloud Observability in Action
Copyright
dedication
contents
front matter
preface
acknowledgments
about this book
Who should read this book
How this book is organized
About the code
liveBook discussion forum
Online resources
about the author
about the cover illustration
1 End-to-end observability
1.1 What is observability?
1.2 Observability use cases
1.3 Roles and goals
1.4 Example microservices app
1.5 Challenges and how observability helps
1.5.1 Return on investment
1.5.2 Signal correlation
1.5.3 Portability
Summary
2 Signal types
2.1 Reference example
2.2 Assessing instrumentation costs
2.3 Logs
2.3.1 Instrumentation
2.3.2 Telemetry
2.3.3 Costs and benefits
2.3.4 Observability with logs
2.4 Metrics
2.4.1 Instrumentation
2.4.2 Telemetry
2.4.3 Costs and benefits
2.4.4 Observability with metrics
2.5 Traces
2.5.1 Instrumentation
2.5.2 Telemetry
2.5.3 Costs and benefits
2.5.4 Observability with traces
2.6 Selecting signals
Summary
3 Sources
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
3.5.1 Instrumentation
3.5.2 Proxy sources
Summary
4 Agents and instrumentation
4.1 Log routers
4.1.1 Fluentd and Fluent Bit
4.1.2 Other log routers
4.2 Metrics collection
4.2.1 Prometheus
4.2.2 Other metrics agents
4.3 OpenTelemetry
4.3.1 Instrumentation
4.3.2 Collector
4.4 Other agents
4.5 Selecting an agent
4.5.1 Security for and of the agent
4.5.2 Agent performance and resource usage
4.5.3 Agent nonfunctional requirements
Summary
5 Backend destinations
5.1 Backend destination terminology
5.2 Backend destinations for logs
5.2.1 Cloud providers
5.2.2 Open source log backends
5.2.3 Commercial offerings for log backends
5.3 Backend destinations for metrics
5.3.1 Cloud providers
5.3.2 Open source metrics backends
5.3.3 Commercial offerings for metrics backends
5.4 Backend destinations for traces
5.4.1 Cloud providers
5.4.2 Open source traces backends
5.4.3 Commercial offerings for trace backends
5.5 Columnar data stores
5.6 Selecting backend destinations
5.6.1 Costs
5.6.2 Open standards
5.6.3 Back pressure
5.6.4 Cardinality and queries
Summary
6 Frontend destinations
6.1 Frontends
6.1.1 Grafana
6.1.2 Kibana and OpenSearch Dashboards
6.1.3 Other open source frontends
6.1.4 Cloud providers and commercial frontends
6.2 All-in-ones
6.2.1 CNCF Jaeger
6.2.2 CNCF Pixie
6.2.3 Zipkin
6.2.4 Apache SkyWalking
6.2.5 SigNoz
6.2.6 Uptrace
6.2.7 Commercial offerings
6.3 Selecting frontends and all-in-ones
Summary
7 Cloud operations
7.1 Incident management
7.1.1 Health and performance monitoring
7.1.2 Handling the incident
7.1.3 Learning from the incident after the fact
7.2 Alerting
7.2.1 Prometheus alerting
7.2.2 Using Grafana for alerting
7.2.3 Cloud providers
7.3 Usage tracking
7.3.1 Users
7.3.2 Costs
Summary
8 Distributed tracing
8.1 Intro and terminology
8.1.1 Motivational example
8.1.2 Terminology
8.1.3 Use cases
8.2 Using distributed tracing in a microservices app
8.2.1 Example app overview
8.2.2 Implementing the example app
8.2.3 The “happy path”
8.2.4 Exploring a failure in the example app
8.3 Practical considerations
8.3.1 Sampling
8.3.2 Observability tax
8.3.3 Traces vs. metrics vs. logs
Summary
9 Developer observability
9.1 Continuous profiling
9.1.1 The humble beginnings
9.1.2 Common technologies
9.1.3 Open source CP tooling
9.1.4 Commercial continuous profiling offerings
9.1.5 Using continuous profiling to assess continuous profiling
9.2 Developer productivity
9.2.1 Challenges
9.2.2 Tooling
9.3 Tooling considerations
9.3.1 Symbolization
9.3.2 Storing profiles
9.3.3 Querying profiles
9.3.4 Correlation
9.3.5 Standards
9.3.6 Using tooling in production
Summary
10 Service level objectives
10.1 The fundamentals of SLOs
10.1.1 Types of services
10.1.2 Service level indicator
10.1.3 Service level objective
10.1.4 Service level agreement
10.2 Implementing SLOs
10.2.1 High-level example
10.2.2 Using Prometheus to implement SLOs
10.2.3 Commercial SLO offerings
10.3 Considerations
Summary
11 Signal correlation
11.1 Correlation fundamentals
11.1.1 Correlation with OpenTelemetry
11.1.2 Correlating traces
11.1.3 Correlating metrics
11.1.4 Correlating logs
11.1.5 Correlating profiles
11.2 Using Prometheus, Jaeger, and Grafana for correlation
11.2.1 Metrics–traces correlation example setup
11.2.2 Using metrics–traces correlation
11.3 Signal correlation support in commercial offerings
11.4 Considerations
11.4.1 Early days
11.4.2 Signals
11.4.3 User experience
11.5 Conclusion
Summary
Appendix. A Kubernetes end-to-end example
A.1 Overview
A.2 Prerequisites
A.3 Demo walk-through
A.3.1 Installing the demo
A.3.2 Using the demo
index
inside back cover

Polecaj historie