Skip to content

test-mass-forker-org-1/eclipse-jifa

 
 

Repository files navigation

Eclipse Jifa

License

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.

Introduction

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

Jifa Sample

Goal

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 :-)

Links

  • 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

Quick start

Prerequisites for building Jifa:

  • Install JDK 11, and make sure $JAVA_HOME is set properly
  • Install npm

Jifa provides two modes of running: worker-only mode and full cluster mode. The following shows how to use the these two mode, respectively.

1. Worker-only mode

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
$ ./gradlew buildWorker
$ cd demo
$ ./run_worker.sh

2. Full cluster mode

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.

Documents

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 67.0%
  • Vue 29.1%
  • JavaScript 3.7%
  • Other 0.2%