You have different kinds of tools to get different kind of information.
Let's start with the tools you would not run on a production server.
First you have the code profilers, like JProfiler and Yourkit Profiler. You use these tools to get in depth information on how the application behaves internally, mostly focused on performance of specific methods and memory consumption.
Second you want to simulate a production server with more load than a single developer clicking away on the application. You use load-testing tools like JMeter to simulate the actual circumstances that will occur on production, with multiple users active at the same time.
Note that you can combine both a profiler and a load test tool to have information on what happens inside the application, when the application is under load. Keep in mind that use of a profiler adds some overhead to the application and will affect the measurements of the load test tool.
Then there's the tools you can use on production servers.
First there are the monitoring tools like Nagios. These can monitor the application from the outside and can record information that is exposed to the application. This usually means information available through the operating system, like memory and CPU statistics and information explicitly made available within the application because this exposed from the application using JMX. This means you have to write or alter code to expose specific data.
Finally there's Glassbox. This tool monitors java applications via Aspect Oriented Programming. Meaning that Glassbox can monitor the application on the inside and it knows about methods and exceptions, without altering one line of code.
Glassbox then not only monitors and logs information, but actually diagnoses specific errors and performance and resource problems.
All tools have their use and complement each other, but especially Glassbox can give a very quick insight on what's happening on your production server.
Please note that Glassbox has some, but very limited overhead on the server. So make sure the overhead is acceptable before installing this on production servers.