You are on page 1of 18

(function() {

'use strict';

NodeConfigController.$inject = ['$scope', '$http'];

function NodeConfigController($scope, $http) {


// fetch list of hosts for which thresholds have been defined & threshold
groups
$scope.page.group = 'Configure';
$scope.page.title = 'Alerts';
$scope.page.nests = [
{
name : 'rules',
class: 'active'
}, {
name : 'aws-web',
class: 'active'
}
];
$scope.pane = {
active: 0
};

// fetch AlertRules (groupnames)


$http.post('/api/v1/thresh/group/fetchnames', "", [])
.success(function(data, status, headers, config){
$scope.AlertRules = data;
$scope.CurrAlrtRule = $scope.AlertRules[0];
})
.error(function(data, status, headers, config){
console.log("error");
});
// function to fetch thresholds from cerebro and set locally
$scope.fetchAlertRule = function(rule) {
console.log("current limitform:", $scope.LimitForms);
$scope.CurrAlrtRule = rule;
// now fetch limit forms from cerebro
var body = JSON.stringify({groupname: $scope.CurrAlrtRule});
$http.post('/api/v1/thresh/group/fetch', body)
.success(function(data, status, headers, config) {
// set limit forms to the data returned
$scope.LimitForms = data.TypeWiseThreshVals;
console.log("newlimitform:", $scope.LimitForms);
//$scope.LimitForms.core.cpus.enabled = true;
//$scope.LimitForms.core.cpus.silenced = false;
})
.error(function(data, status, headers, config) {
console.log("error");
});
};
$scope.tempVar = false;
// function to send the updated limitforms/thresholds to cerebro
$scope.saveAlertRule = function(rule) {
console.log("saving this limitform:", $scope.LimitForms);
var body = JSON.stringify({groupname: $scope.CurrAlrtRule, threshmap:
$scope.LimitForms});
$http.post('/api/v1/thresh/group/new', body)
.success(function(data, status, headers, config) {
console.log("thresholds sent successfully to cerebro");

})
.error(function(data, status, headers, config) {
console.log("error");
});
};

/*$scope.AlertRules = [
{
name : 'general',
detail : 'default alert rules',
id : 'some-uuid',
isGroup: true
}, {
name : 'web-servers',
detail: 'apache/nginx',
id : 'some-uuid2'

}
];*/
$scope.panes = [
{
title: 'Core'
}, {
title: 'Database'
}, {
title: 'Cache'
}, {
title: 'Services'
}, {
title: 'Security'
}, {
title: 'BigData'
}
];

$scope.isPanelActive = function(num) {
if(num == $scope.pane.active) {
return true;
} else {
return false;
}
};

$scope.setPanelActive = function(num) {
$scope.pane.active = num;
};

$scope.configName = 'sng-web1';
$scope.statsName = ['Core', 'SQL', 'NoSQL', 'Cache', 'LoadBalancer'];
$scope.activeStatsName = 'Core';
$scope.activeTabTmpl = 'app/modules/metric/node/tabs/core.html';

$scope.LimitForms = {
core: {
cpus : {
Cpu_Util : {
Limit: 80, // cpu usage limit in %
Upper: true
Enabled: true
},
//TODO: percore limit
Core_Util : {
Limit: 80,
Upper: true
Enabled: true
},
//perCoreEnabled: false, // trigger alert on load average limt
cross
Idle : {
Limit: 32,
Upper: true
Enabled: true
},
//lavgEnabled : true,
Iowait : {
Limit : 32,
Enabled: true
},
Nice : {
Limit : 32,
Enabled: true
},
System : {
Limit : 32,
Enabled: true
},
User : {
Limit : 32,
Enabled: true
},
GrpEnabled : {
Limit: 0,
Upper: true
Enabled: true
}
//enabled : true,
//silenced : false
},
mem : {
Swp_UsedPercent: {
Limit: 99,
Upper: true
Enabled: true
},
UsedPercent: {
Limit: 99,
Upper: true
Enabled: true
},
GrpEnabled : {
Limit: 0,
Upper: true
Enabled: true
}
/*mainLimit : 80, // % usage limit for main
mainEnabled: true,
swapLimit : 50, // % usage limit for swap
swapEnabled: false,
virtLimit : 60, // % usage limit for virt
virtEnabled: false,*/
//enabled : true,
//silenced : false // if silence then, limit violation will
recorded but not trigger
alert,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
},
disk: {
UsedPercent: {
Limit: 75,
Upper: true
Enabled: true
},
ReadBytes_PerSec: {
Limit: 75,
Upper: true
Enabled: true
},
ReadCount_PerSec: {
Limit: 75,
Upper: true
Enabled: true
},
WriteBytes_PerSec: {
Limit: 75,
Upper: true
Enabled: true
},
WriteCount_PerSec: {
Limit: 75,
Upper: true
Enabled: true
},
GrpEnabled : {
Limit: 0,
Upper: true
Enabled: true
}
/*usageLimit : 80,
usageEnabled : true,
IOLimit : 1000,
IOEnabled : false,
readIopsLimit : 1000,
readIopsEnabled : false,
wrtieIopsLimit : 500,
wrtieIopsEnabled: false,
ioWaitLimit : 320, // max io wait time limt in ms in
ioWaitEnabled : false, // max io wait time limt in ms in*/
//enabled : true,
//silenced : false
},
ntwk : {
BytesRecvPerSec: {
Limit: 75,
Upper: true
Enabled: true
},
BytesSentPerSec: {
Limit: 75,
Upper: true
Enabled: true
},
DropinPerSec: {
Limit: 75,
Upper: true
Enabled: true
},
DropoutPerSec: {
Limit: 75,
Upper: true
Enabled: true
},
ErrinPerSec: {
Limit: 75,
Upper: true
Enabled: true
},
ErroutPerSec: {
Limit: 75,
Upper: true
Enabled: true
},
PacketsRecvPerSec: {
Limit: 75,
Upper: true
Enabled: true
},
PacketsSentPerSec: {
Limit: 75,
Upper: true
Enabled: true
},
GrpEnabled : {
Limit: 0,
Upper: true
Enabled: true
}

/*perNIC : false,
cardDown : true, // alert in case a card goes down,
upLimit : 64,
upLimitEnabled : false,
downLimit : 128,
downLimitEnabled: false,
ErrRate : 20, // error per second while recieving
ErrEnabled : false, // error per second while sending
dropRate : 20, // drop per second while recieving
dropEnabled : false, // drop per second while sending*/
//enabled : true,
//silenced : false
}
},
db: {
mysql : {
threads_running: {
Limit: 100,
Upper: true
Enabled: true
},
threads_created_persec: {
Limit: 75,
Upper: true
Enabled: true
},
threads_connected: {
Limit: 75,
Upper: true
Enabled: true
},
table_locks_waited_persec: {
Limit: 75,
Upper: true
Enabled: true
},
slow_queries_persec: {
Limit: 75,
Upper: true
Enabled: true
},
queries_persec: {
Limit: 75,
Upper: true
Enabled: true
},
opened_files_persec: {
Limit: 75,
Upper: true
Enabled: true
},
open_tables: {
Limit: 75,
Upper: true
Enabled: true
},
open_streams : {
Limit: 100000,
Upper: true
Enabled: true
},
open_files: {
Limit: 100000,
Upper: true
Enabled: true
},
GrpEnabled: {
Limit: 0,
Upper: true
Enabled: true
}
},
postgresql : {
blk_read_time_persec: {
Limit: 100,
Upper: true
Enabled: true
},
blk_write_time_persec: {
Limit: 75,
Upper: true
Enabled: true
},
blks_hit_persec: {
Limit: 75,
Upper: true
Enabled: true
},
blks_read_persec: {
Limit: 75,
Upper: true
Enabled: true
},
conflicts_persec: {
Limit: 75,
Upper: true
Enabled: true
},
deadlocks_persec: {
Limit: 75,
Upper: true
Enabled: true
},
numbackends: {
Limit: 75,
Upper: true
Enabled: true
},
temp_bytes_persec: {
Limit: 75,
Upper: true
Enabled: true
},
temp_files_persec : {
Limit: 100000,
Upper: true
Enabled: true
},
tup_deleted_persec: {
Limit: 100000,
Upper: true
Enabled: true
},
tup_fetched_persec: {
Limit: 100000,
Upper: true
Enabled: true
},
tup_inserted_persec: {
Limit: 100000,
Upper: true
Enabled: true
},
tup_returned_persec: {
Limit: 100000,
Upper: true
Enabled: true
},
tup_updated_persec: {
Limit: 100000,
Upper: true
Enabled: true
},
xact_commit_persec: {
Limit: 100000,
Upper: true
Enabled: true
},
xact_rollback_persec: {
Limit: 100000,
Upper: true
Enabled: true
},
GrpEnabled: {
Limit: 0,
Upper: true
Enabled: true
}
},
mongodb: {
inserts_per_sec : {
Limit: 100,
Upper: true
Enabled: true
},
queries_per_sec : {
Limit: 100,
Upper: true
Enabled: true
},
updates_per_sec : {
Limit: 100,
Upper: true
Enabled: true
},
deletes_per_sec : {
Limit: 100,
Upper: true
Enabled: true
},
getmores_per_sec : {
Limit: 100,
Upper: true
Enabled: true
},
commands_per_sec : {
Limit: 100,
Upper: true
Enabled: true
},
flushes_per_sec : {
Limit: 100,
Upper: true
Enabled: true
},
vsize_megabytes : {
Limit: 100,
Upper: true
Enabled: true
},
resident_megabytes : {
Limit: 100,
Upper: true
Enabled: true
},
queued_reads : {
Limit: 100,
Upper: true
Enabled: true
},
queued_writes : {
Limit: 100,
Upper: true
Enabled: true
},
active_reads : {
Limit: 100,
Upper: true
Enabled: true
},
active_writes : {
Limit: 100,
Upper: true
Enabled: true
},
net_in_bytes : {
Limit: 100,
Upper: true
Enabled: true
},
net_out_bytes : {
Limit: 100,
Upper: true
Enabled: true
},
open_connections : {
Limit: 100,
Upper: true
Enabled: true
},
repl_inserts_per_sec : {
Limit: 100,
Upper: true
Enabled: true
},
repl_queries_per_sec : {
Limit: 100,
Upper: true
Enabled: true
},
repl_updates_per_sec : {
Limit: 100,
Upper: true
Enabled: true
},
repl_deletes_per_sec : {
Limit: 100,
Upper: true
Enabled: true
},
repl_getmores_per_sec : {
Limit: 100,
Upper: true
Enabled: true
},
repl_commands_per_sec : {
Limit: 100,
Upper: true
Enabled: true
},
member_status : {
Limit: 100,
Upper: true
Enabled: true
},
mapped_megabytes : {
Limit: 100,
Upper: true
Enabled: true
},
non_mapped_megabytes : {
Limit: 100,
Upper: true
Enabled: true
},
page_faults_per_sec : {
Limit: 100,
Upper: true
Enabled: true
},
percent_cache_dirty : {
Limit: 100,
Upper: true
Enabled: true
},
percent_cache_used : {
Limit: 100,
Upper: true
Enabled: true
},
GrpEnabled: {
Limit: 0,
Upper: true
Enabled: true
}
},
rethinkdb: {
active_clients : {
Limit: 100,
Upper: true
Enabled: true
},
clients : {
Limit: 100,
Upper: true
Enabled: true
},
queries_per_sec : {
Limit: 100,
Upper: true
Enabled: true
},
read_docs_per_sec : {
Limit: 100,
Upper: true
Enabled: true
},
total_queries : {
Limit: 100,
Upper: true
Enabled: true
},
total_reads : {
Limit: 100,
Upper: true
Enabled: true
},
total_writes : {
Limit: 100,
Upper: true
Enabled: true
},
written_docs_per_sec : {
Limit: 100,
Upper: true
Enabled: true
},
GrpEnabled: {
Limit: 0,
Upper: true
Enabled: true
}
}
},
cache: {
redis : {
connected_clients : {
Limit: 100,
Upper: true
Enabled: true
},
connected_slaves : {
Limit: 100,
Upper: true
Enabled: true
},
evicted_keys_persec : {
Limit: 100,
Upper: true
Enabled: true
},
expired_keys_persec : {
Limit: 100,
Upper: true
Enabled: true
},
instantaneous_input_kbps : {
Limit: 100,
Upper: true
Enabled: true
},
instantaneous_ops_persec : {
Limit: 100,
Upper: true
Enabled: true
},
instantaneous_output_kbps : {
Limit: 100,
Upper: true
Enabled: true
},
keyspace_hits_persec : {
Limit: 100,
Upper: true
Enabled: true
},
keyspace_misses_persec : {
Limit: 100,
Upper: true
Enabled: true
},
latest_fork_usec : {
Limit: 100,
Upper: true
Enabled: true
},
master_repl_offset : {
Limit: 100,
Upper: true
Enabled: true
},
mem_fragmentation_ratio : {
Limit: 100,
Upper: true
Enabled: true
},
miss_ratio : {
Limit: 100,
Upper: true
Enabled: true
},
miss_ratio_persec : {
Limit: 100,
Upper: true
Enabled: true
},
pubsub_channels : {
Limit: 100,
Upper: true
Enabled: true
},
pubsub_patterns : {
Limit: 100,
Upper: true
Enabled: true
},
rdb_changes_since_last_save : {
Limit: 100,
Upper: true
Enabled: true
},
repl_backlog_active : {
Limit: 100,
Upper: true
Enabled: true
},
repl_backlog_histlen : {
Limit: 100,
Upper: true
Enabled: true
},
repl_backlog_size : {
Limit: 100,
Upper: true
Enabled: true
},
sync_full : {
Limit: 100,
Upper: true
Enabled: true
},
sync_partial_err : {
Limit: 100,
Upper: true
Enabled: true
},
sync_partial_ok : {
Limit: 100,
Upper: true
Enabled: true
},
total_connections_received : {
Limit: 100,
Upper: true
Enabled: true
},
uptime_in_seconds : {
Limit: 100,
Upper: true
Enabled: true
},
used_cpu_sys : {
Limit: 100,
Upper: true
Enabled: true
},
used_cpu_sys_children : {
Limit: 100,
Upper: true
Enabled: true
},
used_cpu_user : {
Limit: 100,
Upper: true
Enabled: true
},
used_cpu_user_children : {
Limit: 100,
Upper: true
Enabled: true
},
used_memory : {
Limit: 100,
Upper: true
Enabled: true
},
used_memory_lua : {
Limit: 100,
Upper: true
Enabled: true
},
used_memory_peak : {
Limit: 100,
Upper: true
Enabled: true
},
used_memory_rss : {
Limit: 100,
Upper: true
Enabled: true
},
GrpEnabled: {
Limit: 0,
Upper: true
Enabled: true
}
},
memcached : {
bytes : {
Limit: 100,
Upper: true
Enabled: true
},
bytes_read_persec : {
Limit: 100,
Upper: true
Enabled: true
},
bytes_written_persec : {
Limit: 100,
Upper: true
Enabled: true
},
cas_hits_persec : {
Limit: 100,
Upper: true
Enabled: true
},
cas_misses_persec : {
Limit: 100,
Upper: true
Enabled: true
},
conn_yields_rate : {
Limit: 100,
Upper: true
Enabled: true
},
connection_structures : {
Limit: 100,
Upper: true
Enabled: true
},
curr_connections : {
Limit: 100,
Upper: true
Enabled: true
},
curr_items : {
Limit: 100,
Upper: true
Enabled: true
},
decr_hits_persec : {
Limit: 100,
Upper: true
Enabled: true
},
decr_misses_persec : {
Limit: 100,
Upper: true
Enabled: true
},
delete_hits_persec : {
Limit: 100,
Upper: true
Enabled: true
},
delete_misses_persec : {
Limit: 100,
Upper: true
Enabled: true
},
evictions_rate : {
Limit: 100,
Upper: true
Enabled: true
},
get_hits_persec : {
Limit: 100,
Upper: true
Enabled: true
},
get_misses_persec : {
Limit: 100,
Upper: true
Enabled: true
},
incr_hits_persec : {
Limit: 100,
Upper: true
Enabled: true
},
incr_misses_persec : {
Limit: 100,
Upper: true
Enabled: true
},
limit_maxbytes : {
Limit: 100,
Upper: true
Enabled: true
},
miss_ratio_persec : {
Limit: 100,
Upper: true
Enabled: true
},
threads : {
Limit: 100,
Upper: true
Enabled: true
},
total_connections : {
Limit: 100,
Upper: true
Enabled: true
},
total_items : {
Limit: 100,
Upper: true
Enabled: true
},
GrpEnabled: {
Limit: 0,
Upper: true
Enabled: true
}
},
aerospike : {
client_connections : {
Limit: 100,
Upper: true
Enabled: true
},
cluster_integrity : {
Limit: 100,
Upper: true
Enabled: true
},
cluster_size : {
Limit: 100,
Upper: true
Enabled: true
},
data_used_bytes_memory : {
Limit: 100,
Upper: true
Enabled: true
},
index_used_bytes_memory : {
Limit: 100,
Upper: true
Enabled: true
},
info_queue : {
Limit: 100,
Upper: true
Enabled: true
},
objects : {
Limit: 100,
Upper: true
Enabled: true
},
ongoing_write_reqs : {
Limit: 100,
Upper: true
Enabled: true
},
queue : {
Limit: 100,
Upper: true
Enabled: true
},
record_locks : {
Limit: 100,
Upper: true
Enabled: true
},
scans_active : {
Limit: 100,
Upper: true
Enabled: true
},
sindex_used_bytes_memory : {
Limit: 100,
Upper: true
Enabled: true
},
system_swapping : {
Limit: 100,
Upper: true
Enabled: true
},
total_bytes_disk : {
Limit: 100,
Upper: true
Enabled: true
},
total_bytes_memory : {
Limit: 100,
Upper: true
Enabled: true
},
used_bytes_disk : {
Limit: 100,
Upper: true
Enabled: true
},
used_bytes_memory : {
Limit: 100,
Upper: true
Enabled: true
},
waiting_transactions : {
Limit: 100,
Upper: true
Enabled: true
},
transactions_persec : {
Limit: 100,
Upper: true
Enabled: true
},
GrpEnabled: {
Limit: 0,
Upper: true
Enabled: true
}
}

}
};
}
angular.module('atApp.nodeconfig').controller('NodeConfigController',
NodeConfigController);

})();

You might also like