Company
Date Published
Author
Christophe Nasarre
Word count
1912
Language
English
Hacker News points
None

Summary

The blog post introduces the Profiling Engineering team at Datadog and their work on developing a continuous .NET profiler, which is designed for 24/7 production use with minimal impact on application performance. It distinguishes the profiler from other tools by its ability to run continuously in production environments, collecting data on CPU usage, wall time, exceptions, lock contention, and memory allocations. The post details the architectural components of the .NET profiler, including individual profilers, samplers, aggregators, and exporters that work together to collect, serialize, and send data to Datadog's backend for analysis. The post also discusses the challenges and decisions involved in implementing the profiler, such as choosing native code over sidecar applications, and the mechanisms used to manage CLR event notifications and call stack cleanup. The profiler relies heavily on CLR services to function efficiently and is initialized at application startup, ensuring compatibility with various .NET runtime versions. The post serves as an introduction to a series that will explore the technical choices made to ensure the profiler's efficiency and low impact on production systems.