Occasionally, you will see .NET events that do not have any call stack information because they are “light”. Don’t get confused.. That’s an indication that .NET Agent has applied so-called “heavy-light” performance optimization to that particular event.
In short, the idea is that .NET Agent will not collect performance callstacks for a web page if the page does not look like a potential performance problem. More exactly, .NET Agent will follow the following decision process:
The rationale behind this logic is that there is, likely, no reason to process the callstack if all the previous calls to the same page have been faster than the alerting threshold. It does help to optimize performance since in many cases that prevents .NET Agent from spending CPU resources on collecting data for a page that is going to be too fast anyway.
Occasionally, though, an otherwise fast page may turn out to be slow under some special circumstances, and that’s exactly when .NET Agent will notify you that you are dealing with a light event:
Usually, there is not so much you can do about it. However, if the same page exceeds alerting threshold again, you should be able to see performance callstacks (well, most of the times. There are a few other parameters that may affect this behavior – see my next post). That’s because the page will now be marked as a “heavy” one (see the diagram). Keep in mind that .NET Agent will apply this logic every time the monitored process is restarted. In other words, if you recycle IIS, you will likely see “light” events again.