From the eBook - 1st edition.
Part 1: Introducing Distributed Tracing
Chapter 1: Observability Needs of Modern Applications
Understanding why logs and counters are not enough
Introducing distributed tracing
Reviewing context propagation
Out-of-process propagation
Ensuring consistency and structure
Building application topology
Performance analysis overview
Investigating performance issues
Chapter 2: Native Monitoring in .NET
Building a sample application
On-demand logging with dotnet-monitor
Monitoring with runtime counters
Enabling auto-collection with OpenTelemetry
Installing and configuring OpenTelemetry
Exploring auto-generated telemetry
Chapter 3: The .NET Observability Ecosystem
Configuring cloud storage
Using instrumentations for popular libraries
Instrumenting application
Leveraging infrastructure
Configuring observability on Dapr
Instrumenting serverless environments
Chapter 4: Low-Level Performance Analysis with Diagnostic Tools
Investigating common performance problems
Using diagnostics tools in production
Part 2: Instrumenting .NET Applications
Chapter 5: Configuration and Control Plane
Controlling costs with sampling
Enriching and filtering telemetry
Customizing instrumentations
Customizing context propagation
Processing a pipeline with the OpenTelemetry Collector
Chapter 6: Tracing Your Code
Tracing with System.Diagnostics or the OpenTelemetry API shim
Tracing with System.Diagnostics
Tracing with the OpenTelemetry API shim
Correlating spans with links
Testing your instrumentation
Filtering relevant activities
Chapter 7: Adding Custom Metrics
The ObservableCounter class