Mert Özen Further With Every Line

Blog

Mert Özen's blog posts on software development, backend, frontend, and DevOps.

Series
3 posts found #diagnostics
What Changed in Diagnostics from .NET 8 to .NET 11: The System.Runtime Meter, New dotnet-trace Profiles, collect-linux, Runtime Async Stacks and In-Process Crash Reports
Developer Tools PART 10

What Changed in Diagnostics from .NET 8 to .NET 11: The System.Runtime Meter, New dotnet-trace Profiles, collect-linux, Runtime Async Stacks and In-Process Crash Reports

.NET 9 replaced the old EventCounters with the System.Runtime Meter, .NET 10 brought new dotnet-trace defaults and collect-linux, and .NET 11 added lossless event buffering, runtime async and in-process crash reports. We give a mapping table from old to new metric names and show, with real runs on .NET 10 and 11, the cpu-sampling and Block mode errors, runtime async stacks before and after a suspension, and crash report output.

14 Nov 2026 11 min 3
Diagnostics in Production: dotnet-monitor, Collection Rules, Kubernetes Sidecars and Continuous Profiling
Developer Tools PART 08

Diagnostics in Production: dotnet-monitor, Collection Rules, Kubernetes Sidecars and Continuous Profiling

dotnet-monitor collects traces, gcdumps and dumps through an HTTP API and collection rules, so nobody has to get into the container; rules need Listen mode, and security needs a localhost-bound API, an API key and restricted egress. We run Bookstore with a sidecar on kind, measure rules triggered by slow report requests and by our own meter, the throttling of Limits and the suspend/nosuspend difference, and look at the alpha status of OpenTelemetry Profiles.

14 Nov 2026 11 min 2
The .NET Diagnostics Map: Which Tool for Which Question? EventPipe, Diagnostic Ports and Safe Collection
Developer Tools PART 01

The .NET Diagnostics Map: Which Tool for Which Question? EventPipe, Diagnostic Ports and Safe Collection

Tool choice starts from the question: dotnet-counters for whether something is wrong, dotnet-trace for where time goes, dotnet-gcdump for what stays in memory, dotnet-dump for the full process state. We measure the EventPipe vs ETW vs user_events difference, the diagnostic port's TMPDIR and user rules, sidecars in containers, installing with dnx and a tool manifest, and the real overhead and file size of a trace in the Bookstore lab.

14 Nov 2026 12 min 4
Blog Map