jvm-mon
Konsolenbasierte JVM-Überwachung – wenn Sie einfach eine SSH-Verbindung zu einem Server herstellen und sehen möchten, was vor sich geht.
Mit jvm-top können Sie Ihre JVM-Serveranwendungen vom Terminal aus überwachen.
Neue Version
Version: 1.0-ea1
- In Go neu geschrieben
- Einzelne ausführbare Datei
- Kann Anwendungen auf Java 8 und höher überwachen
- Erfordert kein vorhandenes JDK
So funktioniert es:
- Die ausführbare Datei jvm-mon wird mit einem Java-Agent-JAR geliefert
- Beim Start wird der Agent in ein temporäres Verzeichnis extrahiert
- Es wird an die JVM angeschlossen, die Sie überwachen möchten
- Lädt den Agenten in die laufende JVM, um Metriken zu sammeln
- Agent und App stellen eine Socket-Verbindung her, um Metriken zu senden
Installieren
Voraussetzung : ein JDK8 auf dem Server und eine darauf verweisende Umgebungsvariable JAVA_HOME
. Es wird nicht nur mit einer JRE funktionieren.
MacOS
Linux/MacOS
- Laden Sie die Veröffentlichung herunter und extrahieren Sie sie
- Legen Sie die Umgebungsvariable
JAVA_HOME
fest: export JAVA_HOME=/path/to/your/jdk8
- Führen Sie
./bin/jvm-mon
aus dem extrahierten Verzeichnis aus
Verwendung
- Wählen Sie einen JVM-Prozess aus und drücken Sie die Eingabetaste, um ihn zu überwachen
- Drücken Sie q oder Strg+C, um den Vorgang zu beenden
- Drücken Sie Entf oder Rücktaste, um einen Prozess abzubrechen
Was ist verfügbar
Aktuell zeigt es:
- Liste der laufenden JVM-Prozesse
- CPU- und GC-Last
- Heap-Größe und -Nutzung
- Top-Threads mit CPU-Auslastung
Bauen aus der Quelle
Um lokal zu erstellen, führen Sie ./gradlew installDist
aus. Gehen Sie dann zu ./build/install/jvm-mon/
und führen Sie ./bin/jvm-mon
aus.
Zum Entwickeln benötigen Sie npm
auf Ihrem Computer und führen dann ./gradlew npmDeps
einmal aus, um Abhängigkeiten abzurufen.
Wie funktioniert es?
jvm-mon ist eine Kotlin-Anwendung, die auf diesen tollen Bibliotheken basiert:
- blessed-contrib-Terminal-Dashboard-Bibliothek in JavaScript
- J2V8-Java-Bindungen für die V8-JavaScript-Engine und Node.js
- jvmtop Java-Überwachung für die Befehlszeile
Die Funktionsweise ist:
- Die Kotlin-App startet prozessintern eine Node.js-Engine
- Node.js lädt ein Skript mit allen Widgets
- Das Skript ruft Kotlin zurück, um Metriken abzurufen