83 lines
2.7 KiB
JavaScript
83 lines
2.7 KiB
JavaScript
var lib = require('requirefrom')('lib');
|
|
var expect = require('expect.js');
|
|
var moment = require('moment');
|
|
var executeWatcher = lib('execute_watcher');
|
|
var client = lib('client');
|
|
var indexPattern = '[.marvel-]YYYY.MM.DD';
|
|
lib('setup_es');
|
|
lib('setup_smtp_server');
|
|
|
|
describe('Marvel Watchers', function () {
|
|
describe('File Descriptors', function () {
|
|
|
|
describe('above 80%', function () {
|
|
var response;
|
|
beforeEach(function () {
|
|
this.timeout(5000);
|
|
var fixture = {
|
|
indexPattern: indexPattern,
|
|
type: 'node_stats',
|
|
duration: moment.duration(5, 's'),
|
|
startDate: moment.utc().subtract(5, 'm'),
|
|
data: [
|
|
['node.name', 'process.open_file_descriptors'],
|
|
['node-01', Math.round(65535*0.75)],
|
|
['node-02', Math.round(65535*0.81)],
|
|
['node-03', Math.round(65535*0.93)]
|
|
]
|
|
};
|
|
return executeWatcher('file_descriptors', fixture).then(function (resp) {
|
|
response = resp;
|
|
return resp;
|
|
});
|
|
});
|
|
|
|
it('should meet the script condition', function () {
|
|
expect(response.state).to.be('executed');
|
|
expect(response.execution_result.condition.script.met).to.be(true);
|
|
});
|
|
|
|
it('should send an email with multiple hosts', function () {
|
|
expect(this.mailbox).to.have.length(1);
|
|
var message = this.mailbox[0];
|
|
expect(message.text).to.contain('"node-02" - File Descriptors is at ' + Math.round(65535*0.81) + '.0 ('+ Math.round(((65535*0.81)/65535)*100) + '%)');
|
|
expect(message.text).to.contain('"node-03" - File Descriptors is at ' + Math.round(65535*0.93) + '.0 ('+ Math.round(((65535*0.93)/65535)*100) + '%)');
|
|
});
|
|
|
|
});
|
|
|
|
describe('below 80%', function () {
|
|
var response;
|
|
beforeEach(function () {
|
|
var self = this;
|
|
this.timeout(5000);
|
|
var fixture = {
|
|
indexPattern: indexPattern,
|
|
type: 'node_stats',
|
|
duration: moment.duration(5, 's'),
|
|
startDate: moment.utc().subtract(5, 'm'),
|
|
data: [
|
|
['node.name', 'process.open_file_descriptors'],
|
|
['node-01', Math.round(65535*0.05)],
|
|
['node-02', Math.round(65535*0.30)],
|
|
['node-03', Math.round(65535*0.23)]
|
|
]
|
|
};
|
|
return executeWatcher('file_descriptors', fixture).then(function (resp) {
|
|
response = resp;
|
|
return resp;
|
|
});
|
|
});
|
|
|
|
it('should not send an email', function () {
|
|
expect(response.state).to.be('execution_not_needed');
|
|
expect(response.execution_result.condition.script.met).to.be(false);
|
|
expect(this.mailbox).to.have.length(0);
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
});
|
|
|