Console based JVM monitoring
jvm-top lets you monitor your Java/Scala/.. server applications from the terminal.
Requirement: a JDK on the server and JAVA_HOME
environment variable pointing to it. It won't work with just a JRE.
To install:
- Download the release
- Unzip or untar
- Run
./bin/jvm-mon
Usage:
- Select a JVM process and press
Enter
to monitor it - Press
Esc
to exit
Currently it shows:
- List of running JVM processes
- Cpu and GC load
- Heap size and usage
To build locally run ./gradlew installDist
to install to ./build/install/jvm-mon/
.
To develop you will need npm
on your machine and then run ./gradlew npmDeps
once to get dependencies.
jvm-mon is a Java application based on these awesome libraries:
- blessed-contrib terminal dashboard library in JavaScript
- J2V8 Java Bindings for V8 JavaScript engine and Node.js
- jvmtop Java monitoring for the command-line
The way it works is:
- The java app starts a Node.js engine in-process
- Node.js loads a script with all the widgets
- The script calls back into java land to get metrics
Open to suggestions/contributions on what to add. This project was crafted in a one day so there's definitely room for improvment. Some ideas:
- View process classpath and parameters
- View threads
- Thread count/Loaded classes
- Windows build