Getting started
Introduction
What DIXY is, what it detects, and how the pieces fit together.
What is DIXY?
DIXY is an open-source Java runtime monitoring and deadlock-detection tool. It watches thread and lock activity inside a Java application, builds a wait-for graph from that activity, and reports circular dependencies between threads — the shape of a deadlock.
What it finds
- Classic deadlocks — thread A holds lock X and waits for lock Y, while thread B holds Y and waits for X.
- Virtual-thread pinning — virtual threads pinned to their carrier inside a
synchronizedsection, read from the JFRjdk.VirtualThreadPinnedevent. - Hybrid cycles — deadlock cycles that include a pinning edge.
Ways to run it
| Mode | What you get |
|---|---|
dixy | Interactive dixy> shell with tab completion. |
dixy detect | Non-interactive live scan with exit codes, ideal for scripts. |
| Web / API mode | REST API on port 8081 plus Prometheus metrics. |
-javaagent | Attach the agent to your own application; it reports cycles to the backend. |
Project status
The latest public release is v1.0.4. The native agent ships for Linux x86-64 and Windows x86-64 only. Deadlock prediction and Grafana dashboards are in progress; see the roadmap.