Instrument .NET applications with distributed tracing and metrics using OpenTelemetry and go even deeper with logs and .NET diagnostics tools to debug, monitor, and analyze the performance of complex systems in the cloud
Key Features
- Gain visibility into complex systems using .NET and OpenTelemetry
- Use a systematic approach for performance analysis and debugging
- Explore instrumentation techniques for common distributed patterns
Book Description
As distributed systems become more complex and dynamic, their observability needs grow to require holistic solutions for performance or usage analysis and debugging. Distributed tracing brings structure, correlation, causation, and consistency to your telemetry, allowing to answer arbitrary questions about your system and creating a foundation for observability vendors to build visualizations and analytics.
Modern Distributed Tracing in .NET is your comprehensive guide to observability with a focus on tracing and performance analysis using a combination of telemetry signals and diagnostic tools. You'll learn how to instrument your applications automatically and manually in a vendor-neutral way. We’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.
Through instrumentation examples, you'll learn how to enrich auto-generated telemetry or produce your own to get the level of detail your system needs and control 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.
What you will learn
- Learn 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 system operators running .NET services who want to use modern observability tools and standards along with a holistic approach to performance analysis and end-to-end debugging. Software testers and support engineers would also find it useful. Basic knowledge of C# programming language and .NET platform is assumed to read examples of manual instrumentation but is not essential.
Table of Contents
- Observability Needs of Modern Applications
- Native Monitoring in .NET
- The .NET Observability Ecosystem
- Low-Level Performance Analysis with Diagnostic Tools
- Control plane and configuration
- Tracing your code
- Adding custom metrics
- Writing structured and correlated logs
- Best practices
- Network calls
- Messaging and streaming
- Databases and caches
- Web clients
- Driving the change
- Creating standards within your company
- Instrumenting brownfield applications
Liudmila Malkova is a principal software engineer working on observability at Microsoft. She is a co-author of the distributed tracing in .NET and tracing implementation in Azure Functions and Application Insights SDK features. She’s currently a tracing and observability architect on Azure SDKs and an active contributor to the OpenTelemetry semantic conventions and instrumentation working group. Liudmila’s love to observability started at Skype, where she got first-hand experience running complex systems at high scale and was fascinated by how much telemetry can reveal even to those deeply familiar with the code.