Modern Distributed Tracing In .NET A Practical Guide to Observability and Performance Analysis for Microservices

Modern Distributed Tracing in .NET is your comprehensive guide to observability that focuses on tracing and performance analysis using a combination of telemetry signals and diagnostic tools. You'll begin by learning how to instrument your apps automatically as well as manually in a vendor-neut...

Full description

Bibliographic Details
Main Author: Molkova, Liudmila
Other Authors: Kanzhelev, Sergey
Format: eBook
Language:English
Published: Birmingham Packt Publishing, Limited 2023
Edition:1st edition
Subjects:
Online Access:
Collection: O'Reilly - Collection details see MPG.ReNa
Table of Contents:
  • The dotnet-monitor tool
  • Summary
  • Questions
  • Part 2: Instrumenting .NET Applications
  • Chapter 5: Configuration and Control Plane
  • Technical requirements
  • Controlling costs with sampling
  • Head-based sampling
  • Tail-based sampling
  • Enriching and filtering telemetry
  • Span processors
  • Customizing instrumentations
  • Resources
  • Metrics
  • Customizing context propagation
  • Processing a pipeline with the OpenTelemetry Collector
  • Summary
  • Questions
  • Chapter 6: Tracing Your Code
  • Technical requirements
  • Tracing with System.Diagnostics or the OpenTelemetry API shim
  • Cover
  • Title Page
  • Copyright and Credit
  • Dedicated
  • Foreword
  • Contributors
  • Table of Contents
  • Preface
  • Part 1: Introducing Distributed Tracing
  • Chapter 1: Observability Needs of Modern Applications
  • Understanding why logs and counters are not enough
  • Logs
  • Events
  • Metrics and counters
  • What's missing?
  • Introducing distributed tracing
  • Span
  • Tracing
  • building blocks
  • Reviewing context propagation
  • In-process propagation
  • Out-of-process propagation
  • Ensuring consistency and structure
  • Building application topology
  • Resource attributes
  • Performance analysis overview
  • The baseline
  • Investigating performance issues
  • Summary
  • Questions
  • Further reading
  • Chapter 2: Native Monitoring in .NET
  • Technical requirements
  • Building a sample application
  • Log correlation
  • On-demand logging with dotnet-monitor
  • Monitoring with runtime counters
  • Enabling auto-collection with OpenTelemetry
  • Installing and configuring OpenTelemetry
  • Exploring auto-generated telemetry
  • Debugging
  • Performance
  • Summary
  • Questions
  • Chapter 3: The .NET Observability Ecosystem
  • Technical requirements
  • Configuring cloud storage
  • Tracing with System.Diagnostics
  • Tracing with the OpenTelemetry API shim
  • Using ambient context
  • Recording events
  • When to use events
  • The ActivityEvent API
  • Correlating spans with links
  • Using links
  • Testing your instrumentation
  • Intercepting activities
  • Filtering relevant activities
  • Summary
  • Questions
  • Chapter 7: Adding Custom Metrics
  • Technical requirements
  • Metrics in .NET
  • past and present
  • Cardinality
  • When to use metrics
  • Reporting metrics
  • Using counters
  • The Counter class
  • The UpDownCounter class
  • The ObservableCounter class
  • Using instrumentations for popular libraries
  • Instrumenting application
  • Leveraging infrastructure
  • Configuring secrets
  • Configuring observability on Dapr
  • Tracing
  • Metrics
  • Instrumenting serverless environments
  • AWS Lambda
  • Azure Functions
  • Summary
  • Questions
  • Chapter 4: Low-Level Performance Analysis with Diagnostic Tools
  • Technical requirements
  • Investigating common performance problems
  • Memory leaks
  • Thread pool starvation
  • Profiling
  • Inefficient code
  • Debugging locks
  • Using diagnostics tools in production
  • Continuous profiling