diff --git a/src/Checker.js b/src/Checker.js index 2edd4f7..b2ff7de 100644 --- a/src/Checker.js +++ b/src/Checker.js @@ -3,6 +3,7 @@ const moment = require('moment'); const _ = require('lodash'); +const { getLogger } = require('./logger'); const { DEPLOYMENT_STATES } = require('./consts'); class Checker { @@ -30,14 +31,23 @@ class Checker { this._updateTaskDefs(serviceNames, serviceStates); - return { - serviceDeployStates, + const alerts = { serviceDeployingAlerts, serviceScalingAlerts, serviceRecoverAlerts, serviceDeployDoneAlerts, serviceDeployTimeoutAlerts, }; + + if (this._hasAlerts(alerts)) { + getLogger().debug('An alert was created', { ...serviceDeployStates }); + } + + return { ...alerts, serviceDeployStates }; + } + + _hasAlerts(iterationResults) { + return _.some(_.mapValues(iterationResults, list => list.length > 0)); } _getDeploymentStates(serviceNames, newStates) { diff --git a/src/checker-loop.js b/src/checker-loop.js index 4b5a5ca..4698a88 100644 --- a/src/checker-loop.js +++ b/src/checker-loop.js @@ -6,13 +6,12 @@ const { getLogger, loggerInit } = require('./logger'); const Checker = require('./Checker'); const ecsApi = require('./ecs-api'); const Messager = require('./Messager'); -const utils = require('./utils'); const defaults = require('./defaults'); const { DEPLOYMENT_STATES } = require('./consts'); async function runCheck(params, messageSender, messageFormatter) { - const { providedLogger, serviceNamesOverride, checkIntervalSeconds, secondsUntilAlert, logInterval, refreshServicesInterval, ecsCluster, ecsRegion } = _.merge(defaults, params); + const { providedLogger, serviceNamesOverride, checkIntervalSeconds, secondsUntilAlert, refreshServicesInterval, ecsCluster, ecsRegion } = _.merge(defaults, params); loggerInit(providedLogger); ecsApi.initECS(ecsRegion); @@ -30,13 +29,10 @@ async function runCheck(params, messageSender, messageFormatter) { const initialServiceStates = await ecsApi.runCheckInBatches(ecsCluster, serviceNameBatches); const checker = new Checker(secondsUntilAlert, initialServiceStates); - const intervalLogger = utils.runInInterval(logInterval, utils.printLogContent); setInterval(async () => { const serviceStates = await ecsApi.runCheckInBatches(ecsCluster, serviceNameBatches); const results = checker.iterate(serviceStates); - - intervalLogger(results.serviceDeployStates); await messager.sendMessages(results); }, checkIntervalSeconds * 1000); } diff --git a/src/defaults.js b/src/defaults.js index 5af47d8..a13173a 100644 --- a/src/defaults.js +++ b/src/defaults.js @@ -4,7 +4,6 @@ module.exports = { serviceNamesOverride: [], checkIntervalSeconds: 5, secondsUntilAlert: 60, - logInterval: 5, refreshServicesInterval: 20, ecsCluster: null, }; diff --git a/src/utils.js b/src/utils.js deleted file mode 100644 index adc569c..0000000 --- a/src/utils.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -const { getLogger } = require('./logger'); - -function runInInterval(interval, func) { - let logIntervalCounter = 0; - return logContent => { - logIntervalCounter += 1; - if (logIntervalCounter === interval) { - func(logContent); - logIntervalCounter = 0; - } - }; -} - -function printLogContent(logContent) { - getLogger().debug(JSON.stringify(logContent)); -} - -module.exports = { - runInInterval, - printLogContent, -}; diff --git a/tests/checker-alert-creation.test.js b/tests/checker-alert-creation.test.js index 5588771..8fadf11 100644 --- a/tests/checker-alert-creation.test.js +++ b/tests/checker-alert-creation.test.js @@ -3,6 +3,9 @@ const moment = require('moment'); const { mockResults, checkAlerts } = require('./test-utils'); const Checker = require('../src/Checker'); +const { loggerInit } = require('../src/logger'); + +loggerInit(console); describe('Deployment checker', () => { let checker; diff --git a/tests/checker-status-calculations.test.js b/tests/checker-status-calculations.test.js index b94ec82..6ae3cab 100644 --- a/tests/checker-status-calculations.test.js +++ b/tests/checker-status-calculations.test.js @@ -3,6 +3,9 @@ const { DEPLOYMENT_STATES } = require('../src/consts'); const { mockResults } = require('./test-utils'); const Checker = require('../src/Checker'); +const { loggerInit } = require('../src/logger'); + +loggerInit(console); describe('Deployment checker', () => { let checker;