We monitor our servers and key parameters that indicated certain conditions, but we do not monitor individual domains. Because our users can run any arbitrary code on their domains, there is no way to know if domain in question working correctly or not. Multiply that by 10K domains across several dozen servers and you get constantly shifting load and usage pattern.
The problems occur usually due to poor code quality, if someones site running poorly optimized queries on incorrectly placed indexes or is consuming too much system memory, it will degrade the performance of other sites on the same server and/or network. This is Achilles heel of shared hosting, everyone has to "behave" in order to not have problems. Of course this is also how you able to host complex web applications for the price of McDonald's happy meal or even less in case of resellers.