Skip to content
This repository has been archived by the owner on Jul 10, 2021. It is now read-only.

nodeshift-archived/opossum-hystrix

Repository files navigation

This module is deprecated.

Hystrix Metrics for Opossum Circuit Breaker

Node.js CI Coverage Status dependencies Status Known Vulnerabilities

This module provides Hystrix metrics for opossum circuit breakers. To use it with your circuit breakers, just pass them in to the HystrixStats constructor.

Hystrix Dashboard Stream

A Hystrix Stream is available for use with a Hystrix Dashboard using the HystrixStats#stream property. This property provies a Node.js Stream, making it straightforward to create an Server Side Event stream that will be compliant with a Hystrix Dashboard.

Additional Reading: Hystrix Metrics Event Stream, Turbine, Hystrix Dashboard

Example Usage

This module would typically be used in an application that can provide an endpoint for the Hystrix Dashboard to monitor.

  const CircuitBreaker = require('opossum');
  const HystrixStats = require('opossum-hystrix');
  const express = require('express');

  const app = express();
  app.use('/hystrix.stream', hystrixStream);

  // create a couple of circuit breakers
  const c1 = new CircuitBreaker(someFunction);
  const c2 = new CircuitBreaker(someOtherfunction);

  // Provide them to the constructor
  const hystrixMetrics = new HystrixStats([c1, c2]);

  // Provide a Server Side Event stream of metrics data
  function hystrixStream (request, response) {
      response.writeHead(200, {
        'Content-Type': 'text/event-stream',
        'Cache-Control': 'no-cache',
        'Connection': 'keep-alive'
        });
      response.write('retry: 10000\n');
      response.write('event: connecttime\n');

      hystrixMetrics.getHystrixStream().pipe(response);
    };
  }