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 address 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.(Recommend)
- Slack channel: Eclipse Jifa
Prerequisites for building Jifa:
- Install JDK 11, and make sure $JAVA_HOME is set properly
- Install npm
Jifa actually has two application: Master and Worker. Master accepts requests, does some authentications, clears disk periodically, etc, then it forwards requests to Worker, that's the real place where heap dump parsing/analyzing happens. If you don't need these advanced features, you can just build Worker and deploy it, otherwise, you can build the whole Jifa, which contains either Master and Worker.
First of all, we need to build Jifa:
$ cd scripts
$ ./build_jifa.sh # build the whole Jifa
$ ./build_worker.sh # build the worker only
$ cd docker_images
$ ./build_image.sh # build the whole Jifa and create docker images(Advanced use case)If all goes well, you would see a top-level artifacts directory. That's what we need when deploying.
Also, you can build docker images via the following command:
Jifa provides several deploy patterns:
K8S Pattern: Deploy master only, it starts worker only when necessary.Default Pattern:Master+Worker: Deploy one master and several workers.Worker Only: Deploy worker only.
See deployment document for more details.
A docker image is prepared for quick demo:
$ docker pull jifadocker/jifa-worker:demo
$ docker run -p 8102:8102 jifadocker/jifa-worker:demo