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
Published: Birmingham Packt Publishing, Limited 2023
Edition:1st edition
Online Access:
Collection: O'Reilly - Collection details see MPG.ReNa
LEADER 07053nmm a2200433 u 4500
001 EB002172233
003 EBX01000000000000001310010
005 00000000000000.0
007 cr|||||||||||||||||||||
008 230808 ||| eng
020 |a 9781837636280 
050 4 |a QA76.76.S65 
100 1 |a Molkova, Liudmila 
245 0 0 |a Modern Distributed Tracing In .NET  |h [electronic resource]  |b A Practical Guide to Observability and Performance Analysis for Microservices  |c Liudmila Molkova 
250 |a 1st edition 
260 |a Birmingham  |b Packt Publishing, Limited  |c 2023 
300 |a 336 p. 
505 0 |a 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 
505 0 |a 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 
505 0 |a 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 
505 0 |a 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 
505 0 |a 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 
653 |a Software measurement / 
653 |a Mesure du logiciel 
653 |a Software measurement / fast 
653 |a Electronic data processing / Distributed processing / Management / fast 
653 |a Electronic data processing / Distributed processing / Management / 
700 1 |a Kanzhelev, Sergey 
041 0 7 |a eng  |2 ISO 639-2 
989 |b OREILLY  |a O'Reilly 
500 |a Description based upon print version of record. - The ObservableUpDownCounter class 
776 |z 1837636133 
776 |z 9781837636136 
856 4 0 |u  |x Verlag  |3 Volltext 
082 0 |a 658 
082 0 |a 005.14 
520 |a 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 volume under control Adopt and evolve observability in your organization Who this book is for This book is for software developers, architects, and systems operators running .NET services who want to use modern observability tools and standards and take a holistic approach to performance analysis and end-to-end debugging. Software testers and support engineers will also find this book useful. Basic knowledge of the C# programming language and .NET platform is assumed to grasp the examples of manual instrumentation, but it is not necessary 
520 |a Instrument .NET apps using OpenTelemetry and explore logs and .NET diagnostic tools to debug, monitor, and analyze the performance of complex systems in the cloud Key Features Get a clear understanding of complex systems using .NET and OpenTelemetry Adopt a systematic approach toward performance analysis and debugging Explore instrumentation techniques for common distributed patterns Book DescriptionAs distributed systems become more complex and dynamic, their observability needs to grow to aid the development of holistic solutions for performance or usage analysis and debugging. Distributed tracing brings structure, correlation, causation, and consistency to your telemetry, thus allowing you to answer arbitrary questions about your system and creating a foundation for observability vendors to build visualizations and analytics.  
520 |a 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-neutral way. Next, you’ll explore how to produce useful traces and metrics for typical cloud patterns and get insights into your system and investigate functional, configurational, and performance issues. The book is filled with instrumentation examples that help you grasp how to enrich auto-generated telemetry or produce your own to get the level of detail your system needs, along with controlling your costs with sampling, aggregation, and verbosity. By the end of this book, you'll be ready to adopt and leverage tracing and other observability signals and tools and tailor them to your needs as your system evolves.