The road to zen winds through self-monitoring applications, which can reduce the time and effort in diagnosing and correcting production issues. In this talk, we will see how modern Windows applications can self-monitor, self-diagnose, and potentially self-recover without needing an external monitoring agent or a brute-force restarting watchdog. By harnessing the power of ETW for low-level accurate monitoring, Windows performance counters for zero-overhead statistics, and the CLRMD library for inspecting your own threads, heap objects, and locks, you can take your applications one step closer to self-awareness. This will be illustrated through a series of demos: automatic CPU profiling and pinpointing the busy threads and stacks; automatic GC monitoring, including object allocations; automatic heap analysis to reveal unraveling memory leaks; and more. At the end of the talk, you will be equipped with tools and techniques for implementing self-monitoring in your own applications.
Dina Goldshtein has recently started working at Google as a Software Engineer. Previously, she was a Senior Software Engineer at Riverbed. Riverbed builds performance monitoring tools that run on millions of PCs and mobile devices. Dina was on the team responsible for the core collection mechanism, which hooks low-level Windows events and collects performance information from a variety of sources. During her time at Riverbed, she worked a lot on boot performance monitoring, identifying bottlenecks in the Windows boot process and on monitoring user-experience on the Web.