For monitoring the apps' performance it is useful to watch their system metrics: memory consumption, CPU utilization, network resource consumption, garbage collector's work. It can easily be done using Task Manager, Process Explorer, PerfMon, and other GUI tools.
But in order to send these metrics to Graphite, for example, or to write it to your app's log you need to know how to collect these metrics from the code. It would also be good if metric-collecting tools were not interfering with your app's performance.
In this talk Evgeny will tell:
- what are the differences between various system metrics;
- which mistakes in metric collecting do not allow you to see performance issues;
- which performance issues do Process and PerformanceCounter classes have;
- what is the internal design of Performance Counters and how to work with them correctly and effectively.
We will also knock together different ways of collecting metrics in benchmarks.