I am going to present quick overview of useful tools which can be helpful when you trying to troubleshoot application in case of performance issues.
Describing each tool, some overview is provided, the way the tool is installed, free/paid info, inclusion in the JDK and the information if it can be used in production environment.
- logs
- application logs, application server logs, database logs
- no installation
- free
- included with JDK
- can be used in production
- application server monitoring
- administration console
- provided by default with application server or installation needed – varies between application servers
- free (comes with application server)
- not included with JDK
- can be used in production (if properly secured)
- New Relic
- application performance management and monitoring
- application has to be started with agent
- basic features: free; advanced features: paid
- not included with JDK
- can be used in production
- AppDynamics
- application performance management software; useful for developers as well as operations; great visual tool
- application has to be started with agent
- lite version: free; pro version: paid
- not included with JDK
- can be used in production
- YourKit
- cpu and memory profiler
- installation needed
- paid
- not included with JDK
- cannot be used in production
- JVisualVM
- cpu and memory profiler
- no installation needed
- free
- provided with JDK
- some features can be used in production
- JConsole
- JMX metrics
- no installation needed
- free
- provided with JDK
- can be used in production
- JMap/JHat
- prints Java process memory map
- no installation needed, attaches to the running process
- free
- included with JDK
- cannot be used in production
- JStack
- prints thread dump of Java process
- no installation needed, attaches to the running process
- free
- included with JDK
- can be used in production