I finished reading this article on High Scalability entitled, Troubleshooting Response Time Problems â€“ Why You Cannot Trust Your System Metrics and it reminded me of why I developed a Cacti graphing plugin for monitoring sockets, pipes and files.
This article is interesting because it basically demonstrates the same thing at the JVM level. Monitoring instantiated data structures and access to function/API calls is critical for guaranteeing performance of your application. I think of it as run time unit testing. It’s too bad we couldn’t climb up the stack a hair further and standardize on some essential data structures to monitor in all of the virtual machines: JVM, Ruby, Python, Perl, etc.