UNPKG

hystrix-controller

Version:

Simplify your hystrixjs architecture, open and close circuits for testing, check circuit health, and more.

27 lines (24 loc) 993 B
'use strict'; const CreateCommands = require('./create-commands') const ensureArray = require('ensure-array') const { circuitFactory, commandFactory, metricsFactory} = require('hystrixjs') const Metrics = require('./metrics') module.exports = class CircuitHealth extends CreateCommands{ constructor(config){ super(config) this.metrics = new Metrics() } circuitHealth(circuit){ let circuits = circuit ? ensureArray(this.structuredConfig[circuit]) : this.hystrixConfig return circuits.map(({name}) => ({ name, circuitStatus: this.getCircuitStatus(name), metrics: this.metrics.getCommandMetrics(this.getCircuitMetrics(name).rollingCount.buckets) })) } getCircuitStatus(circuit){ const forceStatus = this.getCircuitBreaker(circuit).circuitBreakerForceOpened const isOpen = this.getCircuitBreaker(circuit).isOpen(); return forceStatus || isOpen ? 'opened' : 'closed' } }