Thanks to visit codestin.com
Credit goes to github.com

Skip to content

tokuhirom/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 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.

1. Build

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:

2. Deploy

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.

Quick demo

A docker image is prepared for quick demo:

$ docker pull jifadocker/jifa-worker:demo
$ docker run -p 8102:8102 jifadocker/jifa-worker:demo

Documents

About

Eclipse Jifa

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 67.6%
  • Vue 27.8%
  • JavaScript 3.5%
  • Other 1.1%