Best server Performance Monitoring Tool for Java Servers
At work, we are trying to combat the monstrosity that our application servers have become - we are now running out of server resources after many months of resource-creep. 

I would like to begin the process of finding out what to investigate by seeing what people think the best server monitoring tools are. 

Specifically, I'm interested in tools that work with Java and provide method hit counts and runtime, can run stress testing, report on Exception throws, uptime, load, etc. They don't necessarily all need to be a single tool, although that would be great. 

What are the best tools out there for this sort of thing? How has your experience been with them? What are the costs involved?

Thanks!
Best server Performance Monitoring Tool for Java Servers
===

At work, we are trying to combat the monstrosity that our application servers have become - we are now running out of server resources after many months of resource-creep. 

I would like to begin the process of finding out what to investigate by seeing what people think the best server monitoring tools are. 

Specifically, I'm interested in tools that work with Java and provide method hit counts and runtime, can run stress testing, report on Exception throws, uptime, load, etc. They don't necessarily all need to be a single tool, although that would be great. 

What are the best tools out there for this sort of thing? How has your experience been with them? What are the costs involved?

Thanks!