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...
Main Author: | |
---|---|
Other Authors: | |
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