How barosl/jvm-monitor works
jvm-monitor is a Java-agent debugger-like monitor: the JVM reports exception events, and the agent records exception details and locals across stack frames. A separate Python step parses that log into JSON, which the FastAPI viewer loads and presents. The README documents class filters and manual exceptions for non-exception error cases. Agent callback internals and template details are only partially sampled, so the graph shows documented behavior without asserting unverified internal calls.
Main entry points: web.py Viewer app · parse.py Log parser · main.c JVMTI agent · index.html Log page
Components 13
Java agent
- Agent config
cfg.txt - JVMTI agent
src/main.c - Exception capture
src/main.c - Stack and locals
src/main.c
Log processing
- Exception log
- Log parser
parse.py - Parsed log data
Web viewer
- Viewer app
web.py - Log page
tpls/index.html
Other components
- Operator
- Java application
TestApp/TestApp.java - Java VM
- Browser
Connections 16
- Operator → Java VM: starts
- Java application → Java VM: runs in
- Operator → Agent config: configures
- Java VM → JVMTI agent: loads agent
- JVMTI agent → Agent config: reads
- Java VM → Exception capture: reports exceptions
- Exception capture → Stack and locals: captures frames
- Stack and locals → Exception log: writes records
- Operator → Log parser: runs on log
- Exception log → Log parser: reads
- Log parser → Parsed log data: writes JSON
- Operator → Viewer app: launches
- Viewer app → Parsed log data: loads
- Browser → Viewer app: requests page
- Viewer app → Log page: renders
- Log page → Browser: returns page