/standalone-hystrix-dashboard

Standalone hystrix dashboard that can be started using a single jar and is very lightweight

Primary LanguageJavaMIT LicenseMIT

Standalone Hystrix Dashboard

Build Status Codacy Badge Dependency Status Download

Standalone hystrix dashboard that can be started using a single fatJar and is very lightweight and fast!

Features

  • Extremely fast startup (About half a sec)
  • Extremely lightweight, the fat jar is around 5 MBs
  • Easy to start, just run the JAR
  • Doesn't need a servlet container
  • Non Blocking
  • Implemented with Vert.x
  • Compression enable (Saves alot of bandwidth)
  • Docker Image to easily deploy

Another hystrix-dashboards web app?

It's the same hystrix-dashboard app as the Netflix one, that can be found here netflix-hystrix-dashboard, the only difference is that this one isn't servlet based, so doesn't need a servlet container, nor any other configuration, it's just a single jar that you can run and you are read to start monitoring you hystrix enabled services.

Motivations

When i first tried hystrix and hystrix-dashboard, i had some problems testing the examples, not only me but other people had problems too, i think that hystrix-dashboard is soo awesome that shouldn't take more than a single file run to be able to use it, so i built this little adaptation to provide that, and help people that want to get started using hystrix and it's modules, and help advanced users that just need to run a dashboard more easily.

Download

The standalone-hystrix-dashboard is available at Maven Central, BinTray.

Click on "download" blue badge in the top to go to bintray.

The maven link will be available once it gets published.

Run fatJar

Generate the fatJar from source or download it and simple do the following:

java -jar standalone-hystrix-dashboard-{VERSION}-all.jar

it should start the dashboard on default port 7979.

Run on background

Starting the application

Generate the fatJar from source or download it and simple do the following:

java -jar standalone-hystrix-dashboard-{VERSION}-all.jar start

it should start the dashboard on default port 7979 and it will print an UUID.

Stopping the application

After starting it, the startup process will print a UUID that you can use it to stop the application, if you don't remember the UUID you can check the running instances using the following commands:

java -jar standalone-hystrix-dashboard-{VERSION}-all.jar list

With the UUID you can stop the running instance with the following command:

java -jar standalone-hystrix-dashboard-{VERSION}-all.jar stop UUDI

Run from source

To run the project from source simple do the following:

git clone https://github.com/kennedyoliveira/standalone-hystrix-dashboard.git
cd standalone-hystrix-dashboard
./gradlew runDashboard

it should start the dashboard on default port 7979.

Generate fatJar from source

To generate the fatJar from source simple do the following:

git clone https://github.com/kennedyoliveira/standalone-hystrix-dashboard.git
cd standalone-hystrix-dashboard
./gradlew fatJar

and your fatJar should be in build/libs/standalone-hystrix-dashboard-{VERSION}-all.jar.

Docker Image

There is a docker image available that you can run by:

docker run --rm -ti -p 7979:7979 kennedyoliveira/hystrix-dashboard

You can pass configuration or jvm params by using the ENV VAR JVM_ARGS as with the example below:

docker run --rm -ti -p 7979:7979 -e JVM_ARGS='-Xmx2048m' kennedyoliveira/hystrix-dashboard

The docker images will have tags equal to hystrix-dashboard and hystrix-core versions, so if you need a especific version you can check there, starting with 1.5.1+

Configurations

You can pass configuration parameters using the -Dconfiguration=value parameter, the available configurations are listened in the table below.

Example:

java -jar -DserverPort=8080 -DbindAddress=192.168.1.100 standalone-hystrix-dashboard-{VERSION}-all.jar
Configuration Description Default
serverPort The port that the server will listen to. 7979
bindAddress The address that the server will bind to. 0.0.0.0
disableCompression Flag to disable compression support for the metrics stream enabled
proxyHost Proxy host address none (no http proxy will be used by default)
proxyPort Proxy port 80

Demonstration

Demonstration