Skip to content

ibm-cloud-architecture/refarch-cloudnative-netflix-hystrix-cf

 
 

Repository files navigation

hystrix-dashboard-bluemix

Sample code for running Netflix Hystrix dashboard on Bluemix Cloud Foundry. The default dashboard implementation by Netflix uses SSE (Server-Sent Events) protocol to stream Hystric metrics to the dashbard UI which runs in the browser. SSE does not work with Bluemix, instead the supported protocol for long running connections in Bluemix is web sockets. The sample code provided uses web sockets instead of SSE to communicate with Hystrix dashboard in the browser.
To allow for metrics aggregation across multiple application instances, standard Turbine AMQP support in Spring Boot for Netflix is used by metrics producer to push all metrics thru same AMQP topic. You will need to provision an instance of RabbitMQ service in Bluemix and provide connection credentials in application.yml for metrics producer.

overview

To run: Enable Turbine AMQP in your Spring boot Netflix app e.g. use this sample app

https://github.com/bijukunjummen/sample-spring-turbine-amqp/tree/master/sample-hystrix-app

Provide your RabbitMQ credentials in application.yml e.g.

hystrix:
  stream:
    queue:
      send-id: false
  command:
    SimpleControlledFailCommand:
      circuitBreaker:
        errorThresholdPercentage: 50
      execution:
        isolation:
          thread:
            timeoutInMilliseconds: 10000

spring:
  rabbitmq:
    host: bluemix-sandbox-dal-9-portal.2.dblayer.com
    port: 15852
    username: admin
    password: xxxx
    virtual-host: bmix_dal_yp_blah-blah-blah
    ssl:
      enabled: true
      algorithm: TLSv1.2

Build server-side dashboard code

mnv clean install

Deploy server-side dashboard code

cf push hystix-dashboard -p hystrix-dashboard-amqp-websockets/target/hystrix-dashboard-amqp-websockets-0.0.1.war

Run the dashboard

http://hystrix-dashboard.mybluemix.net/

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 34.7%
  • Java 25.5%
  • HTML 21.4%
  • CSS 17.5%
  • Shell 0.9%