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

What you will learn Understand the core concepts of distributed tracing and observability Auto-instrument .NET applications with OpenTelemetry Manually instrument common scenarios with traces and metrics Systematically debug issues and analyze the performance Keep performance overhead and telemetry...

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:
  • 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
  • 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
  • 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