Eclipse Jifa is a web application based on the Eclipse Memory Analyser Tooling (MAT) that provides HTTP services so that users can view the heap dump files analysis through a browser. Users can deploy Jifa to their production environments, and share the same analysis result to different users via their browsers, we believe it's a more convenient way to troubleshoot Java heap issues.
Eclipse Jifa uses Vert.x as the main backend framework, and uses Vue 2.0 as the frontend framework.
Currently, supported features:
Heap dump Analysis:
- Overview
- Leak Suspects
- GC Roots
- Dominator Tree
- Thread Overview
- OQL
- Other features
We believe that many companies have encountered problems when troubleshooting Java problems in their production environments, and we hope that Jifa will grow into a popular product to help developers quickly resolve production problems.
Looking forward to more users and contributors :-)
- Join the Eclipse Jifa developer community mailing list. The community primarily uses this list for project announcements and administrative discussions amongst committers. Questions are welcome here as well.
- Ask a question or start a discussion via the GitHub issue.
- Slack channel: Eclipse Jifa
Jifa provides two modes of running: worker-only mode and full cluster mode. The following shows how to use the these two mode, respectively.
Only using worker as a standalone application is a simple and lightweight mode. In this mode, we only need to deploy the front end and worker side without any database configuration. To use this mode, we need to forward the http requests to the workers:
$ ./gradlew clean buildWorker
$ cd demo
$ ./run_worker.sh
The other mode is to start the entire Jifa, which includes worker and master. This mode needs to set up the database in advance.
Here we have prepared an example to demonstrate how to get started. First, configure the database:
$ cd demo
$ docker-compose build
$ docker-compose up # start mysql server
Then build the Jifa:
$ ./gradlew clean buildJifa
Artifacts can be found in the ./deploy
directory.
In production mode, we could use nginx
as a static front-end resource server,
and then start multiple workers and at least one master.
For the sake of simplicity, we demonstrate how to start them in development mode:
Frontend
:cd frontend && npm run serve
Master node
:./gradlew :backend:master:run
Worker node
:./gradlew :backend:worker:run
This would work for further developing and testing.
1. Jifa Customization
2. Contribution
If you would like to contribute to Jifa, please check out the contribution guide for more information.