mirror of
https://github.com/librenms/librenms.git
synced 2024-09-21 10:28:13 +00:00
CAPEv2 support (#14801)
* re-add it * add cape app page * add initial cape graphs * now work for the general page * more udpates * add cape pending * add pending and cleanup for if there are no packages(likely cuckoo, so don't add extra items) * rework the lack of packages a bit more * more cuckoo related cleanupgiot * fix cape error logging * minor cleanups * add a new graph and use it with cape... also lots of cape cleanups * misc cape updates * add percentile values for stats * add fix for weekly * don't display 1 day average if under 17 hours * zero timeslots of packages not used for this time slot * add avg stat graphs for cape * now use the average graphs and update the app page * add a new graph * add CAPEv2 docs * add tests data * lots of style cleanup * another tweak for the test data * fix misc style issues * add cape to apps page * add nicecase for cape * case fix * json fix for test data * add a missing stat * some more test data tweaking * more misc test updates * more test tweaking * more test work... * more test data work * add what is hopefully the final test tweak
This commit is contained in:
parent
c2b0a6ed80
commit
98c033e84f
@ -47,6 +47,7 @@ class StringHelpers
|
||||
{
|
||||
$replacements = [
|
||||
'bind' => 'BIND',
|
||||
'cape' => 'CAPEv2',
|
||||
'dbm' => 'dBm',
|
||||
'dhcp-stats' => 'DHCP Stats',
|
||||
'entropy' => 'Random entropy',
|
||||
|
@ -432,6 +432,34 @@ extend certificate /etc/snmp/certificate.py
|
||||
|
||||
The application should be auto-discovered as described at the top of the page. If it is not, please follow the steps set out under `SNMP Extend` heading top of page.
|
||||
|
||||
## CAPEv2
|
||||
|
||||
1. Copy the shell script to the desired host.
|
||||
```
|
||||
wget https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/cape -O /etc/snmp/cape
|
||||
```
|
||||
|
||||
2. Make the script executable
|
||||
```
|
||||
chmod +x /etc/snmp/cape
|
||||
```
|
||||
|
||||
3. Edit your snmpd.conf file (usually /etc/snmp/snmpd.conf) and add:
|
||||
```
|
||||
extend cape /etc/snmp/cape
|
||||
```
|
||||
|
||||
4. Install the required packages.
|
||||
```
|
||||
apt-get install libfile-readbackwards-perl libjson-perl libconfig-tiny-perl libdbi-perl libfile-slurp-perl libstatistics-lite-perl
|
||||
```
|
||||
|
||||
5. Restart snmpd on your host
|
||||
|
||||
The application should be auto-discovered as described at the top of
|
||||
the page. If it is not, please follow the steps set out under `SNMP
|
||||
Extend` heading top of page.
|
||||
|
||||
## C.H.I.P
|
||||
|
||||
C.H.I.P. is a $9 R8 based tiny computer ideal for small projects.
|
||||
|
70
includes/html/graphs/application/cape_anti_issues.inc.php
Normal file
70
includes/html/graphs/application/cape_anti_issues.inc.php
Normal file
@ -0,0 +1,70 @@
|
||||
<?php
|
||||
|
||||
$name = 'cape';
|
||||
$app_id = $app['app_id'];
|
||||
$unit_text = 'Anti Issues Per Run';
|
||||
$colours = 'psychedelic';
|
||||
$dostack = 0;
|
||||
$printtotal = 1;
|
||||
$addarea = 0;
|
||||
$transparency = 15;
|
||||
$float_precision = 3;
|
||||
|
||||
if (isset($vars['stddev'])) {
|
||||
if ($vars['stddev'] != 'on' and $vars['stddev'] != 'off') {
|
||||
$vars['stddev'] = 'off';
|
||||
}
|
||||
} else {
|
||||
$vars['stddev'] = 'off';
|
||||
}
|
||||
|
||||
if (isset($vars['package'])) {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-anti_issues___-___', $vars['package']]);
|
||||
} else {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'anti_issues']);
|
||||
}
|
||||
|
||||
$rrd_list = [];
|
||||
if (Rrd::checkRrdExists($rrd_filename)) {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Min',
|
||||
'ds' => 's0anti_issues',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Max',
|
||||
'ds' => 's1anti_issues',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Mean',
|
||||
'ds' => 's3anti_issues',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Median',
|
||||
'ds' => 's4anti_issues',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Mode',
|
||||
'ds' => 's5anti_issues',
|
||||
];
|
||||
if ($vars['stddev'] == on) {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'StdDev',
|
||||
'ds' => 's7anti_issues',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'StdDevP',
|
||||
'ds' => 's9anti_issues',
|
||||
];
|
||||
}
|
||||
} else {
|
||||
d_echo('RRD "' . $rrd_filename . '" not found');
|
||||
}
|
||||
|
||||
require 'includes/html/graphs/generic_multi_line.inc.php';
|
@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
$name = 'cape';
|
||||
$app_id = $app['app_id'];
|
||||
$unit_text = 'Anti Issues Per Run';
|
||||
$colours = 'psychedelic';
|
||||
$dostack = 0;
|
||||
$printtotal = 1;
|
||||
$addarea = 0;
|
||||
$transparency = 15;
|
||||
$float_precision = 3;
|
||||
|
||||
if (isset($vars['package'])) {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-anti_issues___-___', $vars['package']]);
|
||||
} else {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'anti_issues']);
|
||||
}
|
||||
|
||||
$rrd_list = [];
|
||||
if (Rrd::checkRrdExists($rrd_filename)) {
|
||||
$filename = $rrd_filename;
|
||||
$descr = 'Average';
|
||||
$ds = 's3anti_issues';
|
||||
} else {
|
||||
d_echo('RRD "' . $rrd_filename . '" not found');
|
||||
}
|
||||
|
||||
require 'includes/html/graphs/generic_stats.inc.php';
|
@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
$name = 'cape';
|
||||
$app_id = $app['app_id'];
|
||||
$unit_text = 'Anti Issues Per Run';
|
||||
$colours = 'psychedelic';
|
||||
$dostack = 0;
|
||||
$printtotal = 1;
|
||||
$addarea = 0;
|
||||
$transparency = 15;
|
||||
$float_precision = 3;
|
||||
|
||||
$packages = Rrd::getRrdApplicationArrays($device, $app['app_id'], 'cape', 'pkg-anti_issues___-___');
|
||||
|
||||
$rrd_list = [];
|
||||
$packages_int = 0;
|
||||
foreach ($packages as $index => $package) {
|
||||
$label = preg_filter('/^pkg\-anti\_issues\_\_\_\-\_\_\_\-/', '', $package);
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], $package]);
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => $label,
|
||||
'ds' => 'anti_issues',
|
||||
];
|
||||
|
||||
$packages_int++;
|
||||
}
|
||||
|
||||
if (sizeof($rrd_list)) {
|
||||
d_echo('No relevant package RRDs found');
|
||||
}
|
||||
|
||||
require 'includes/html/graphs/generic_multi_line.inc.php';
|
70
includes/html/graphs/application/cape_api_calls.inc.php
Normal file
70
includes/html/graphs/application/cape_api_calls.inc.php
Normal file
@ -0,0 +1,70 @@
|
||||
<?php
|
||||
|
||||
$name = 'cape';
|
||||
$app_id = $app['app_id'];
|
||||
$unit_text = 'API Calls Per Run';
|
||||
$colours = 'psychedelic';
|
||||
$dostack = 0;
|
||||
$printtotal = 1;
|
||||
$addarea = 0;
|
||||
$transparency = 15;
|
||||
$float_precision = 3;
|
||||
|
||||
if (isset($vars['stddev'])) {
|
||||
if ($vars['stddev'] != 'on' and $vars['stddev'] != 'off') {
|
||||
$vars['stddev'] = 'off';
|
||||
}
|
||||
} else {
|
||||
$vars['stddev'] = 'off';
|
||||
}
|
||||
|
||||
if (isset($vars['package'])) {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-api_calls___-___', $vars['package']]);
|
||||
} else {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'api_calls']);
|
||||
}
|
||||
|
||||
$rrd_list = [];
|
||||
if (Rrd::checkRrdExists($rrd_filename)) {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Min',
|
||||
'ds' => 's0api_calls',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Max',
|
||||
'ds' => 's1api_calls',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Mean',
|
||||
'ds' => 's3api_calls',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Median',
|
||||
'ds' => 's4api_calls',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Mode',
|
||||
'ds' => 's5api_calls',
|
||||
];
|
||||
if ($vars['stddev'] == 'on') {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'StdDev',
|
||||
'ds' => 's7api_calls',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'StdDevP',
|
||||
'ds' => 's9api_calls',
|
||||
];
|
||||
}
|
||||
} else {
|
||||
d_echo('RRD "' . $rrd_filename . '" not found');
|
||||
}
|
||||
|
||||
require 'includes/html/graphs/generic_multi_line.inc.php';
|
36
includes/html/graphs/application/cape_api_calls_avg.inc.php
Normal file
36
includes/html/graphs/application/cape_api_calls_avg.inc.php
Normal file
@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
$name = 'cape';
|
||||
$app_id = $app['app_id'];
|
||||
$unit_text = 'API Calls Per Run';
|
||||
$colours = 'psychedelic';
|
||||
$dostack = 0;
|
||||
$printtotal = 1;
|
||||
$addarea = 0;
|
||||
$transparency = 15;
|
||||
$float_precision = 3;
|
||||
|
||||
if (isset($vars['stddev'])) {
|
||||
if ($vars['stddev'] != 'on' and $vars['stddev'] != 'off') {
|
||||
$vars['stddev'] = 'off';
|
||||
}
|
||||
} else {
|
||||
$vars['stddev'] = 'off';
|
||||
}
|
||||
|
||||
if (isset($vars['package'])) {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-api_calls___-___', $vars['package']]);
|
||||
} else {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'api_calls']);
|
||||
}
|
||||
|
||||
$rrd_list = [];
|
||||
if (Rrd::checkRrdExists($rrd_filename)) {
|
||||
$filename = $rrd_filename;
|
||||
$descr = 'Average';
|
||||
$ds = 's3api_calls';
|
||||
} else {
|
||||
d_echo('RRD "' . $rrd_filename . '" not found');
|
||||
}
|
||||
|
||||
require 'includes/html/graphs/generic_stats.inc.php';
|
33
includes/html/graphs/application/cape_api_calls_pkg.inc.php
Normal file
33
includes/html/graphs/application/cape_api_calls_pkg.inc.php
Normal file
@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
$name = 'cape';
|
||||
$app_id = $app['app_id'];
|
||||
$unit_text = 'Anti Issues Per Run';
|
||||
$colours = 'psychedelic';
|
||||
$dostack = 0;
|
||||
$printtotal = 1;
|
||||
$addarea = 0;
|
||||
$transparency = 15;
|
||||
$float_precision = 3;
|
||||
|
||||
$packages = Rrd::getRrdApplicationArrays($device, $app['app_id'], 'cape', 'pkg-api_calls___-___');
|
||||
|
||||
$rrd_list = [];
|
||||
$packages_int = 0;
|
||||
foreach ($packages as $index => $package) {
|
||||
$label = preg_filter('/^pkg\-api\_calls\_\_\_\-\_\_\_\-/', '', $package);
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], $package]);
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => $label,
|
||||
'ds' => 'api_calls',
|
||||
];
|
||||
|
||||
$packages_int++;
|
||||
}
|
||||
|
||||
if (sizeof($rrd_list)) {
|
||||
d_echo('No relevant package RRDs found');
|
||||
}
|
||||
|
||||
require 'includes/html/graphs/generic_multi_line.inc.php';
|
70
includes/html/graphs/application/cape_crash_issues.inc.php
Normal file
70
includes/html/graphs/application/cape_crash_issues.inc.php
Normal file
@ -0,0 +1,70 @@
|
||||
<?php
|
||||
|
||||
$name = 'cape';
|
||||
$app_id = $app['app_id'];
|
||||
$unit_text = 'Crash Issues Per Run';
|
||||
$colours = 'psychedelic';
|
||||
$dostack = 0;
|
||||
$printtotal = 1;
|
||||
$addarea = 0;
|
||||
$transparency = 15;
|
||||
$float_precision = 3;
|
||||
|
||||
if (isset($vars['stddev'])) {
|
||||
if ($vars['stddev'] != 'on' and $vars['stddev'] != 'off') {
|
||||
$vars['stddev'] = 'off';
|
||||
}
|
||||
} else {
|
||||
$vars['stddev'] = 'off';
|
||||
}
|
||||
|
||||
if (isset($vars['package'])) {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-crash_issues___-___', $vars['package']]);
|
||||
} else {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'crash_issues']);
|
||||
}
|
||||
|
||||
$rrd_list = [];
|
||||
if (Rrd::checkRrdExists($rrd_filename)) {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Min',
|
||||
'ds' => 's0crash_issues',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Max',
|
||||
'ds' => 's1crash_issues',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Mean',
|
||||
'ds' => 's3crash_issues',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Median',
|
||||
'ds' => 's4crash_issues',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Mode',
|
||||
'ds' => 's5crash_issues',
|
||||
];
|
||||
if ($vars['stddev'] == 'on') {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'StdDev',
|
||||
'ds' => 's7crash_issues',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'StdDevP',
|
||||
'ds' => 's9crash_issues',
|
||||
];
|
||||
}
|
||||
} else {
|
||||
d_echo('RRD "' . $rrd_filename . '" not found');
|
||||
}
|
||||
|
||||
require 'includes/html/graphs/generic_multi_line.inc.php';
|
@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
$name = 'cape';
|
||||
$app_id = $app['app_id'];
|
||||
$unit_text = 'Crash Issues Per Run';
|
||||
$colours = 'psychedelic';
|
||||
$dostack = 0;
|
||||
$printtotal = 1;
|
||||
$addarea = 0;
|
||||
$transparency = 15;
|
||||
$float_precision = 3;
|
||||
|
||||
if (isset($vars['stddev'])) {
|
||||
if ($vars['stddev'] != 'on' and $vars['stddev'] != 'off') {
|
||||
$vars['stddev'] = 'off';
|
||||
}
|
||||
} else {
|
||||
$vars['stddev'] = 'off';
|
||||
}
|
||||
|
||||
if (isset($vars['package'])) {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-crash_issues___-___', $vars['package']]);
|
||||
} else {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'crash_issues']);
|
||||
}
|
||||
|
||||
$rrd_list = [];
|
||||
if (Rrd::checkRrdExists($rrd_filename)) {
|
||||
$filename = $rrd_filename;
|
||||
$descr = 'Average';
|
||||
$ds = 's3crash_issues';
|
||||
} else {
|
||||
d_echo('RRD "' . $rrd_filename . '" not found');
|
||||
}
|
||||
|
||||
require 'includes/html/graphs/generic_stats.inc.php';
|
@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
$name = 'cape';
|
||||
$app_id = $app['app_id'];
|
||||
$unit_text = 'Anti Issues Per Run';
|
||||
$colours = 'psychedelic';
|
||||
$dostack = 0;
|
||||
$printtotal = 1;
|
||||
$addarea = 0;
|
||||
$transparency = 15;
|
||||
$float_precision = 3;
|
||||
|
||||
$packages = Rrd::getRrdApplicationArrays($device, $app['app_id'], 'cape', 'pkg-crash_issues___-___');
|
||||
|
||||
$rrd_list = [];
|
||||
$packages_int = 0;
|
||||
foreach ($packages as $index => $package) {
|
||||
$label = preg_filter('/^pkg\-crash\_issues\_\_\_\-\_\_\_\-/', '', $package);
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], $package]);
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => $label,
|
||||
'ds' => 'crash_issues',
|
||||
];
|
||||
|
||||
$packages_int++;
|
||||
}
|
||||
|
||||
if (sizeof($rrd_list)) {
|
||||
d_echo('No relevant package RRDs found');
|
||||
}
|
||||
|
||||
require 'includes/html/graphs/generic_multi_line.inc.php';
|
70
includes/html/graphs/application/cape_domains.inc.php
Normal file
70
includes/html/graphs/application/cape_domains.inc.php
Normal file
@ -0,0 +1,70 @@
|
||||
<?php
|
||||
|
||||
$name = 'cape';
|
||||
$app_id = $app['app_id'];
|
||||
$unit_text = 'Domains Per Run';
|
||||
$colours = 'psychedelic';
|
||||
$dostack = 0;
|
||||
$printtotal = 1;
|
||||
$addarea = 0;
|
||||
$transparency = 15;
|
||||
$float_precision = 3;
|
||||
|
||||
if (isset($vars['stddev'])) {
|
||||
if ($vars['stddev'] != 'on' and $vars['stddev'] != 'off') {
|
||||
$vars['stddev'] = 'off';
|
||||
}
|
||||
} else {
|
||||
$vars['stddev'] = 'off';
|
||||
}
|
||||
|
||||
if (isset($vars['package'])) {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-domains___-___', $vars['package']]);
|
||||
} else {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'domains']);
|
||||
}
|
||||
|
||||
$rrd_list = [];
|
||||
if (Rrd::checkRrdExists($rrd_filename)) {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Min',
|
||||
'ds' => 's0domains',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Max',
|
||||
'ds' => 's1domains',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Mean',
|
||||
'ds' => 's3domains',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Median',
|
||||
'ds' => 's4domains',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Mode',
|
||||
'ds' => 's5domains',
|
||||
];
|
||||
if ($vars['stddev'] == 'on') {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'StdDev',
|
||||
'ds' => 's7domains',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'StdDevP',
|
||||
'ds' => 's9domains',
|
||||
];
|
||||
}
|
||||
} else {
|
||||
d_echo('RRD "' . $rrd_filename . '" not found');
|
||||
}
|
||||
|
||||
require 'includes/html/graphs/generic_multi_line.inc.php';
|
36
includes/html/graphs/application/cape_domains_avg.inc.php
Normal file
36
includes/html/graphs/application/cape_domains_avg.inc.php
Normal file
@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
$name = 'cape';
|
||||
$app_id = $app['app_id'];
|
||||
$unit_text = 'Domains Per Run';
|
||||
$colours = 'psychedelic';
|
||||
$dostack = 0;
|
||||
$printtotal = 1;
|
||||
$addarea = 0;
|
||||
$transparency = 15;
|
||||
$float_precision = 3;
|
||||
|
||||
if (isset($vars['stddev'])) {
|
||||
if ($vars['stddev'] != 'on' and $vars['stddev'] != 'off') {
|
||||
$vars['stddev'] = 'off';
|
||||
}
|
||||
} else {
|
||||
$vars['stddev'] = 'off';
|
||||
}
|
||||
|
||||
if (isset($vars['package'])) {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-domains___-___', $vars['package']]);
|
||||
} else {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'domains']);
|
||||
}
|
||||
|
||||
$rrd_list = [];
|
||||
if (Rrd::checkRrdExists($rrd_filename)) {
|
||||
$filename = $rrd_filename;
|
||||
$descr = 'Average';
|
||||
$ds = 's3domains';
|
||||
} else {
|
||||
d_echo('RRD "' . $rrd_filename . '" not found');
|
||||
}
|
||||
|
||||
require 'includes/html/graphs/generic_stats.inc.php';
|
33
includes/html/graphs/application/cape_domains_pkg.inc.php
Normal file
33
includes/html/graphs/application/cape_domains_pkg.inc.php
Normal file
@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
$name = 'cape';
|
||||
$app_id = $app['app_id'];
|
||||
$unit_text = 'Anti Issues Per Run';
|
||||
$colours = 'psychedelic';
|
||||
$dostack = 0;
|
||||
$printtotal = 1;
|
||||
$addarea = 0;
|
||||
$transparency = 15;
|
||||
$float_precision = 3;
|
||||
|
||||
$packages = Rrd::getRrdApplicationArrays($device, $app['app_id'], 'cape', 'pkg-domains___-___');
|
||||
|
||||
$rrd_list = [];
|
||||
$packages_int = 0;
|
||||
foreach ($packages as $index => $package) {
|
||||
$label = preg_filter('/^pkg\-domains\_\_\_\-\_\_\_\-/', '', $package);
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], $package]);
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => $label,
|
||||
'ds' => 'domains',
|
||||
];
|
||||
|
||||
$packages_int++;
|
||||
}
|
||||
|
||||
if (sizeof($rrd_list)) {
|
||||
d_echo('No relevant package RRDs found');
|
||||
}
|
||||
|
||||
require 'includes/html/graphs/generic_multi_line.inc.php';
|
70
includes/html/graphs/application/cape_dropped_files.inc.php
Normal file
70
includes/html/graphs/application/cape_dropped_files.inc.php
Normal file
@ -0,0 +1,70 @@
|
||||
<?php
|
||||
|
||||
$name = 'cape';
|
||||
$app_id = $app['app_id'];
|
||||
$unit_text = 'Dropped Files Per Run';
|
||||
$colours = 'psychedelic';
|
||||
$dostack = 0;
|
||||
$printtotal = 1;
|
||||
$addarea = 0;
|
||||
$transparency = 15;
|
||||
$float_precision = 3;
|
||||
|
||||
if (isset($vars['stddev'])) {
|
||||
if ($vars['stddev'] != 'on' and $vars['stddev'] != 'off') {
|
||||
$vars['stddev'] = 'off';
|
||||
}
|
||||
} else {
|
||||
$vars['stddev'] = 'off';
|
||||
}
|
||||
|
||||
if (isset($vars['package'])) {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-dropped_files___-___', $vars['package']]);
|
||||
} else {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'dropped_files']);
|
||||
}
|
||||
|
||||
$rrd_list = [];
|
||||
if (Rrd::checkRrdExists($rrd_filename)) {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Min',
|
||||
'ds' => 's0dropped_files',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Max',
|
||||
'ds' => 's1dropped_files',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Mean',
|
||||
'ds' => 's3dropped_files',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Median',
|
||||
'ds' => 's4dropped_files',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Mode',
|
||||
'ds' => 's5dropped_files',
|
||||
];
|
||||
if ($vars['stddev'] == 'on') {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'StdDev',
|
||||
'ds' => 's7dropped_files',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'StdDevP',
|
||||
'ds' => 's9dropped_files',
|
||||
];
|
||||
}
|
||||
} else {
|
||||
d_echo('RRD "' . $rrd_filename . '" not found');
|
||||
}
|
||||
|
||||
require 'includes/html/graphs/generic_multi_line.inc.php';
|
@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
$name = 'cape';
|
||||
$app_id = $app['app_id'];
|
||||
$unit_text = 'Dropped Files Per Run';
|
||||
$colours = 'psychedelic';
|
||||
$dostack = 0;
|
||||
$printtotal = 1;
|
||||
$addarea = 0;
|
||||
$transparency = 15;
|
||||
$float_precision = 3;
|
||||
|
||||
if (isset($vars['stddev'])) {
|
||||
if ($vars['stddev'] != 'on' and $vars['stddev'] != 'off') {
|
||||
$vars['stddev'] = 'off';
|
||||
}
|
||||
} else {
|
||||
$vars['stddev'] = 'off';
|
||||
}
|
||||
|
||||
if (isset($vars['package'])) {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-dropped_files___-___', $vars['package']]);
|
||||
} else {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'dropped_files']);
|
||||
}
|
||||
|
||||
$rrd_list = [];
|
||||
if (Rrd::checkRrdExists($rrd_filename)) {
|
||||
$filename = $rrd_filename;
|
||||
$descr = 'Average';
|
||||
$ds = 's3dropped_files';
|
||||
} else {
|
||||
d_echo('RRD "' . $rrd_filename . '" not found');
|
||||
}
|
||||
|
||||
require 'includes/html/graphs/generic_stats.inc.php';
|
@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
$name = 'cape';
|
||||
$app_id = $app['app_id'];
|
||||
$unit_text = 'Anti Issues Per Run';
|
||||
$colours = 'psychedelic';
|
||||
$dostack = 0;
|
||||
$printtotal = 1;
|
||||
$addarea = 0;
|
||||
$transparency = 15;
|
||||
$float_precision = 3;
|
||||
|
||||
$packages = Rrd::getRrdApplicationArrays($device, $app['app_id'], 'cape', 'pkg-dropped_files___-___');
|
||||
|
||||
$rrd_list = [];
|
||||
$packages_int = 0;
|
||||
foreach ($packages as $index => $package) {
|
||||
$label = preg_filter('/^pkg\-dropped\_files\_\_\_\-\_\_\_\-/', '', $package);
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], $package]);
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => $label,
|
||||
'ds' => 'dropped_files',
|
||||
];
|
||||
|
||||
$packages_int++;
|
||||
}
|
||||
|
||||
if (sizeof($rrd_list)) {
|
||||
d_echo('No relevant package RRDs found');
|
||||
}
|
||||
|
||||
require 'includes/html/graphs/generic_multi_line.inc.php';
|
70
includes/html/graphs/application/cape_files_written.inc.php
Normal file
70
includes/html/graphs/application/cape_files_written.inc.php
Normal file
@ -0,0 +1,70 @@
|
||||
<?php
|
||||
|
||||
$name = 'cape';
|
||||
$app_id = $app['app_id'];
|
||||
$unit_text = 'Files Written Per Run';
|
||||
$colours = 'psychedelic';
|
||||
$dostack = 0;
|
||||
$printtotal = 1;
|
||||
$addarea = 0;
|
||||
$transparency = 15;
|
||||
$float_precision = 3;
|
||||
|
||||
if (isset($vars['stddev'])) {
|
||||
if ($vars['stddev'] != 'on' and $vars['stddev'] != 'off') {
|
||||
$vars['stddev'] = 'off';
|
||||
}
|
||||
} else {
|
||||
$vars['stddev'] = 'off';
|
||||
}
|
||||
|
||||
if (isset($vars['package'])) {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-files_written___-___', $vars['package']]);
|
||||
} else {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'files_written']);
|
||||
}
|
||||
|
||||
$rrd_list = [];
|
||||
if (Rrd::checkRrdExists($rrd_filename)) {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Min',
|
||||
'ds' => 's0files_written',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Max',
|
||||
'ds' => 's1files_written',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Mean',
|
||||
'ds' => 's3files_written',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Median',
|
||||
'ds' => 's4files_written',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Mode',
|
||||
'ds' => 's5files_written',
|
||||
];
|
||||
if ($vars['stdset'] == 'on') {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'StdDev',
|
||||
'ds' => 's7files_written',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'StdDevP',
|
||||
'ds' => 's9files_written',
|
||||
];
|
||||
}
|
||||
} else {
|
||||
d_echo('RRD "' . $rrd_filename . '" not found');
|
||||
}
|
||||
|
||||
require 'includes/html/graphs/generic_multi_line.inc.php';
|
@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
$name = 'cape';
|
||||
$app_id = $app['app_id'];
|
||||
$unit_text = 'Files Written Per Run';
|
||||
$colours = 'psychedelic';
|
||||
$dostack = 0;
|
||||
$printtotal = 1;
|
||||
$addarea = 0;
|
||||
$transparency = 15;
|
||||
$float_precision = 3;
|
||||
|
||||
if (isset($vars['stddev'])) {
|
||||
if ($vars['stddev'] != 'on' and $vars['stddev'] != 'off') {
|
||||
$vars['stddev'] = 'off';
|
||||
}
|
||||
} else {
|
||||
$vars['stddev'] = 'off';
|
||||
}
|
||||
|
||||
if (isset($vars['package'])) {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-files_written___-___', $vars['package']]);
|
||||
} else {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'files_written']);
|
||||
}
|
||||
|
||||
$rrd_list = [];
|
||||
if (Rrd::checkRrdExists($rrd_filename)) {
|
||||
$filename = $rrd_filename;
|
||||
$descr = 'Average';
|
||||
$ds = 's3files_written';
|
||||
} else {
|
||||
d_echo('RRD "' . $rrd_filename . '" not found');
|
||||
}
|
||||
|
||||
require 'includes/html/graphs/generic_stats.inc.php';
|
@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
$name = 'cape';
|
||||
$app_id = $app['app_id'];
|
||||
$unit_text = 'Anti Issues Per Run';
|
||||
$colours = 'psychedelic';
|
||||
$dostack = 0;
|
||||
$printtotal = 1;
|
||||
$addarea = 0;
|
||||
$transparency = 15;
|
||||
$float_precision = 3;
|
||||
|
||||
$packages = Rrd::getRrdApplicationArrays($device, $app['app_id'], 'cape', 'pkg-files_written___-___');
|
||||
|
||||
$rrd_list = [];
|
||||
$packages_int = 0;
|
||||
foreach ($packages as $index => $package) {
|
||||
$label = preg_filter('/^pkg\-files\_written\_\_\_\-\_\_\_\-/', '', $package);
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], $package]);
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => $label,
|
||||
'ds' => 'files_written',
|
||||
];
|
||||
|
||||
$packages_int++;
|
||||
}
|
||||
|
||||
if (sizeof($rrd_list)) {
|
||||
d_echo('No relevant package RRDs found');
|
||||
}
|
||||
|
||||
require 'includes/html/graphs/generic_multi_line.inc.php';
|
46
includes/html/graphs/application/cape_lines.inc.php
Normal file
46
includes/html/graphs/application/cape_lines.inc.php
Normal file
@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
$name = 'cape';
|
||||
$app_id = $app['app_id'];
|
||||
$unit_text = 'Lines';
|
||||
$colours = 'psychedelic';
|
||||
$dostack = 0;
|
||||
$printtotal = 1;
|
||||
$addarea = 0;
|
||||
$transparency = 15;
|
||||
$float_precision = 3;
|
||||
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id']]);
|
||||
|
||||
$rrd_list = [];
|
||||
if (Rrd::checkRrdExists($rrd_filename)) {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'debug',
|
||||
'ds' => 'debug',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'info',
|
||||
'ds' => 'info',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'warning',
|
||||
'ds' => 'warning',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'error',
|
||||
'ds' => 'error',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'critical',
|
||||
'ds' => 'critical',
|
||||
];
|
||||
} else {
|
||||
d_echo('RRD "' . $rrd_filename . '" not found');
|
||||
}
|
||||
|
||||
require 'includes/html/graphs/generic_multi_line.inc.php';
|
70
includes/html/graphs/application/cape_malscore.inc.php
Normal file
70
includes/html/graphs/application/cape_malscore.inc.php
Normal file
@ -0,0 +1,70 @@
|
||||
<?php
|
||||
|
||||
$name = 'cape';
|
||||
$app_id = $app['app_id'];
|
||||
$unit_text = 'Malscore Per Run';
|
||||
$colours = 'psychedelic';
|
||||
$dostack = 0;
|
||||
$printtotal = 1;
|
||||
$addarea = 0;
|
||||
$transparency = 15;
|
||||
$float_precision = 3;
|
||||
|
||||
if (isset($vars['stddev'])) {
|
||||
if ($vars['stddev'] != 'on' and $vars['stddev'] != 'off') {
|
||||
$vars['stddev'] = 'off';
|
||||
}
|
||||
} else {
|
||||
$vars['stddev'] = 'off';
|
||||
}
|
||||
|
||||
if (isset($vars['package'])) {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-malscore___-___', $vars['package']]);
|
||||
} else {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'malscore']);
|
||||
}
|
||||
|
||||
$rrd_list = [];
|
||||
if (Rrd::checkRrdExists($rrd_filename)) {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Min',
|
||||
'ds' => 's0malscore',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Max',
|
||||
'ds' => 's1malscore',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Mean',
|
||||
'ds' => 's3malscore',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Median',
|
||||
'ds' => 's4malscore',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Mode',
|
||||
'ds' => 's5malscore',
|
||||
];
|
||||
if ($vars['stddev'] == on) {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'StdDev',
|
||||
'ds' => 's7malscore',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'StdDevP',
|
||||
'ds' => 's9malscore',
|
||||
];
|
||||
}
|
||||
} else {
|
||||
d_echo('RRD "' . $rrd_filename . '" not found');
|
||||
}
|
||||
|
||||
require 'includes/html/graphs/generic_multi_line.inc.php';
|
27
includes/html/graphs/application/cape_malscore_stats.inc.php
Normal file
27
includes/html/graphs/application/cape_malscore_stats.inc.php
Normal file
@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
$name = 'cape';
|
||||
$app_id = $app['app_id'];
|
||||
$unit_text = 'Malscore Per Run';
|
||||
$colours = 'psychedelic';
|
||||
$dostack = 0;
|
||||
$printtotal = 1;
|
||||
$addarea = 0;
|
||||
$transparency = 15;
|
||||
$float_precision = 3;
|
||||
|
||||
if (isset($vars['package'])) {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-malscore___-___', $vars['package']]);
|
||||
} else {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'malscore']);
|
||||
}
|
||||
|
||||
if (Rrd::checkRrdExists($rrd_filename)) {
|
||||
$filename = $rrd_filename;
|
||||
$descr = 'Mean';
|
||||
$ds = 's3malscore';
|
||||
} else {
|
||||
d_echo('RRD "' . $rrd_filename . '" not found');
|
||||
}
|
||||
|
||||
require 'includes/html/graphs/generic_stats.inc.php';
|
23
includes/html/graphs/application/cape_pending.inc.php
Normal file
23
includes/html/graphs/application/cape_pending.inc.php
Normal file
@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
$name = 'cape';
|
||||
$app_id = $app['app_id'];
|
||||
$unit_text = 'Run Count';
|
||||
$colours = 'psychedelic';
|
||||
$dostack = 0;
|
||||
$printtotal = 1;
|
||||
$addarea = 0;
|
||||
$transparency = 15;
|
||||
$float_precision = 3;
|
||||
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id']]);
|
||||
|
||||
if (Rrd::checkRrdExists($rrd_filename)) {
|
||||
$filename = $rrd_filename;
|
||||
$descr = 'pending';
|
||||
$ds = 'pending';
|
||||
} else {
|
||||
d_echo('RRD "' . $rrd_filename . '" not found');
|
||||
}
|
||||
|
||||
require 'includes/html/graphs/generic_stats.inc.php';
|
96
includes/html/graphs/application/cape_pkg_stats.inc.php
Normal file
96
includes/html/graphs/application/cape_pkg_stats.inc.php
Normal file
@ -0,0 +1,96 @@
|
||||
<?php
|
||||
|
||||
$name = 'cape';
|
||||
$app_id = $app['app_id'];
|
||||
$unit_text = 'Count';
|
||||
$colours = 'psychedelic';
|
||||
$dostack = 0;
|
||||
$printtotal = 1;
|
||||
$addarea = 0;
|
||||
$transparency = 15;
|
||||
$float_precision = 3;
|
||||
|
||||
$rrd_filename_anti_issues = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-anti_issues___-___', $vars['package']]);
|
||||
$rrd_filename_api_calls = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-api_calls___-___', $vars['package']]);
|
||||
$rrd_filename_domains = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-domains___-___', $vars['package']]);
|
||||
$rrd_filename_crash_issues = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-crash_issues___-___', $vars['package']]);
|
||||
$rrd_filename_dropped_files = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-dropped_files___-___', $vars['package']]);
|
||||
$rrd_filename_files_written = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-files_written___-___', $vars['package']]);
|
||||
$rrd_filename_reg_keys_mod = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-reg_keys_mod___-___', $vars['package']]);
|
||||
$rrd_filename_running_processes = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-running_processes___-___', $vars['package']]);
|
||||
$rrd_filename_signatures_alert = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-signatures_alert___-___', $vars['package']]);
|
||||
$rrd_filename_signatures_total = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-signatures_total___-___', $vars['package']]);
|
||||
|
||||
$rrd_list = [];
|
||||
if (Rrd::checkRrdExists($rrd_filename_dropped_files)) {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename_dropped_files,
|
||||
'descr' => 'dropped_files',
|
||||
'ds' => 'dropped_files',
|
||||
];
|
||||
}
|
||||
if (Rrd::checkRrdExists($rrd_filename_running_processes)) {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename_running_processes,
|
||||
'descr' => 'running_processes',
|
||||
'ds' => 'running_processes',
|
||||
];
|
||||
}
|
||||
if (Rrd::checkRrdExists($rrd_filename_api_calls)) {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename_api_calls,
|
||||
'descr' => 'api_calls',
|
||||
'ds' => 'api_calls',
|
||||
];
|
||||
}
|
||||
if (Rrd::checkRrdExists($rrd_filename_domains)) {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename_domains,
|
||||
'descr' => 'domains',
|
||||
'ds' => 'domains',
|
||||
];
|
||||
}
|
||||
if (Rrd::checkRrdExists($rrd_filename_signatures_total)) {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename_signatures_total,
|
||||
'descr' => 'signatures_total',
|
||||
'ds' => 'signatures_total',
|
||||
];
|
||||
}
|
||||
if (Rrd::checkRrdExists($rrd_filename_signatures_alert)) {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename_signatures_alert,
|
||||
'descr' => 'signatures_alert',
|
||||
'ds' => 'signatures_alert',
|
||||
];
|
||||
}
|
||||
if (Rrd::checkRrdExists($rrd_filename_files_written)) {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename_files_written,
|
||||
'descr' => 'files_written',
|
||||
'ds' => 'files_written',
|
||||
];
|
||||
}
|
||||
if (Rrd::checkRrdExists($rrd_filename_reg_keys_mod)) {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename_reg_keys_mod,
|
||||
'descr' => 'reg_keys_mod',
|
||||
'ds' => 'reg_keys_mod',
|
||||
];
|
||||
}
|
||||
if (Rrd::checkRrdExists($rrd_filename_crash_issues)) {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename_crash_issues,
|
||||
'descr' => 'crash_issues',
|
||||
'ds' => 'crash_issues',
|
||||
];
|
||||
}
|
||||
if (Rrd::checkRrdExists($rrd_filename_anti_issues)) {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename_anti_issues,
|
||||
'descr' => 'anti_issues',
|
||||
'ds' => 'anti_issues',
|
||||
];
|
||||
}
|
||||
|
||||
require 'includes/html/graphs/generic_multi_line.inc.php';
|
23
includes/html/graphs/application/cape_pkg_tasks.inc.php
Normal file
23
includes/html/graphs/application/cape_pkg_tasks.inc.php
Normal file
@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
$name = 'cape';
|
||||
$app_id = $app['app_id'];
|
||||
$unit_text = 'Count';
|
||||
$colours = 'psychedelic';
|
||||
$dostack = 0;
|
||||
$printtotal = 1;
|
||||
$addarea = 0;
|
||||
$transparency = 15;
|
||||
$float_precision = 3;
|
||||
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg___-___', $vars['package']]);
|
||||
|
||||
if (Rrd::checkRrdExists($rrd_filename)) {
|
||||
$filename = $rrd_filename;
|
||||
$descr = 'Tasks';
|
||||
$ds = 'tasks';
|
||||
} else {
|
||||
d_echo('RRD "' . $rrd_filename . '" not found');
|
||||
}
|
||||
|
||||
require 'includes/html/graphs/generic_stats.inc.php';
|
35
includes/html/graphs/application/cape_pkg_tasks_all.inc.php
Normal file
35
includes/html/graphs/application/cape_pkg_tasks_all.inc.php
Normal file
@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
$name = 'cape';
|
||||
$app_id = $app['app_id'];
|
||||
$unit_text = 'Count';
|
||||
$colours = 'psychedelic';
|
||||
$dostack = 0;
|
||||
$printtotal = 1;
|
||||
$addarea = 0;
|
||||
$transparency = 15;
|
||||
$float_precision = 3;
|
||||
|
||||
$packages = Rrd::getRrdApplicationArrays($device, $app['app_id'], 'cape', 'pkg___-___');
|
||||
|
||||
$rrd_list = [];
|
||||
$packages_int = 0;
|
||||
foreach ($packages as $index => $package) {
|
||||
$label = preg_filter('/^pkg\_\_\_\-\_\_\_\-/', '', $package);
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], $package]);
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => $label,
|
||||
'ds' => 'tasks',
|
||||
];
|
||||
|
||||
$packages_int++;
|
||||
}
|
||||
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg___-___', $vars['package']]);
|
||||
|
||||
if (sizeof($rrd_list)) {
|
||||
d_echo('No relevant package RRDs found');
|
||||
}
|
||||
|
||||
require 'includes/html/graphs/generic_multi_line.inc.php';
|
@ -0,0 +1,70 @@
|
||||
<?php
|
||||
|
||||
$name = 'cape';
|
||||
$app_id = $app['app_id'];
|
||||
$unit_text = 'Reg Keys Modded Per Run';
|
||||
$colours = 'psychedelic';
|
||||
$dostack = 0;
|
||||
$printtotal = 1;
|
||||
$addarea = 0;
|
||||
$transparency = 15;
|
||||
$float_precision = 3;
|
||||
|
||||
if (isset($vars['stddev'])) {
|
||||
if ($vars['stddev'] != 'on' and $vars['stddev'] != 'off') {
|
||||
$vars['stddev'] = 'off';
|
||||
}
|
||||
} else {
|
||||
$vars['stddev'] = 'off';
|
||||
}
|
||||
|
||||
if (isset($vars['package'])) {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-reg_keys_mod___-___', $vars['package']]);
|
||||
} else {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'reg_keys_mod']);
|
||||
}
|
||||
|
||||
$rrd_list = [];
|
||||
if (Rrd::checkRrdExists($rrd_filename)) {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Min',
|
||||
'ds' => 's0regkeysmod',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Max',
|
||||
'ds' => 's1regkeysmod',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Mean',
|
||||
'ds' => 's3regkeysmod',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Median',
|
||||
'ds' => 's4regkeysmod',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Mode',
|
||||
'ds' => 's5regkeysmod',
|
||||
];
|
||||
if ($vars['stddev'] == 'on') {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'StdDev',
|
||||
'ds' => 's7regkeysmod',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'StdDevP',
|
||||
'ds' => 's9regkeysmod',
|
||||
];
|
||||
}
|
||||
} else {
|
||||
d_echo('RRD "' . $rrd_filename . '" not found');
|
||||
}
|
||||
|
||||
require 'includes/html/graphs/generic_multi_line.inc.php';
|
@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
$name = 'cape';
|
||||
$app_id = $app['app_id'];
|
||||
$unit_text = 'Reg Keys Modded Per Run';
|
||||
$colours = 'psychedelic';
|
||||
$dostack = 0;
|
||||
$printtotal = 1;
|
||||
$addarea = 0;
|
||||
$transparency = 15;
|
||||
$float_precision = 3;
|
||||
|
||||
if (isset($vars['stddev'])) {
|
||||
if ($vars['stddev'] != 'on' and $vars['stddev'] != 'off') {
|
||||
$vars['stddev'] = 'off';
|
||||
}
|
||||
} else {
|
||||
$vars['stddev'] = 'off';
|
||||
}
|
||||
|
||||
if (isset($vars['package'])) {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-reg_keys_mod___-___', $vars['package']]);
|
||||
} else {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'reg_keys_mod']);
|
||||
}
|
||||
|
||||
$rrd_list = [];
|
||||
if (Rrd::checkRrdExists($rrd_filename)) {
|
||||
$filename = $rrd_filename;
|
||||
$descr = 'Average';
|
||||
$ds = 's3regkeysmod';
|
||||
} else {
|
||||
d_echo('RRD "' . $rrd_filename . '" not found');
|
||||
}
|
||||
|
||||
require 'includes/html/graphs/generic_stats.inc.php';
|
@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
$name = 'cape';
|
||||
$app_id = $app['app_id'];
|
||||
$unit_text = 'Anti Issues Per Run';
|
||||
$colours = 'psychedelic';
|
||||
$dostack = 0;
|
||||
$printtotal = 1;
|
||||
$addarea = 0;
|
||||
$transparency = 15;
|
||||
$float_precision = 3;
|
||||
|
||||
$packages = Rrd::getRrdApplicationArrays($device, $app['app_id'], 'cape', 'pkg-reg_keys_mod___-___');
|
||||
|
||||
$rrd_list = [];
|
||||
$packages_int = 0;
|
||||
foreach ($packages as $index => $package) {
|
||||
$label = preg_filter('/^pkg\-reg\_keys\_mod\_\_\_\-\_\_\_\-/', '', $package);
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], $package]);
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => $label,
|
||||
'ds' => 'reg_keys_mod',
|
||||
];
|
||||
|
||||
$packages_int++;
|
||||
}
|
||||
|
||||
if (sizeof($rrd_list)) {
|
||||
d_echo('No relevant package RRDs found');
|
||||
}
|
||||
|
||||
require 'includes/html/graphs/generic_multi_line.inc.php';
|
109
includes/html/graphs/application/cape_run_stats.inc.php
Normal file
109
includes/html/graphs/application/cape_run_stats.inc.php
Normal file
@ -0,0 +1,109 @@
|
||||
<?php
|
||||
|
||||
$name = 'cape';
|
||||
$app_id = $app['app_id'];
|
||||
$unit_text = 'Run Count';
|
||||
$colours = 'psychedelic';
|
||||
$dostack = 0;
|
||||
$printtotal = 1;
|
||||
$addarea = 0;
|
||||
$transparency = 15;
|
||||
$float_precision = 3;
|
||||
|
||||
if (isset($vars['package'])) {
|
||||
$rrd_filename_anti_issues = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-anti_issues___-___', $vars['package']]);
|
||||
$rrd_filename_api_calls = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-api_calls___-___', $vars['package']]);
|
||||
$rrd_filename_domains = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-domains___-___', $vars['package']]);
|
||||
$rrd_filename_crash_issues = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-crash_issues___-___', $vars['package']]);
|
||||
$rrd_filename_dropped_files = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-dropped_files___-___', $vars['package']]);
|
||||
$rrd_filename_files_written = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-files_written___-___', $vars['package']]);
|
||||
$rrd_filename_reg_keys_mod = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-reg_keys_mod___-___', $vars['package']]);
|
||||
$rrd_filename_running_processes = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-running_processes___-___', $vars['package']]);
|
||||
$rrd_filename_signatures_alert = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-signatures_alert___-___', $vars['package']]);
|
||||
$rrd_filename_signatures_total = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-signatures_total___-___', $vars['package']]);
|
||||
} else {
|
||||
$rrd_filename_anti_issues = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'anti_issues']);
|
||||
$rrd_filename_api_calls = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'api_calls']);
|
||||
$rrd_filename_domains = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'domains']);
|
||||
$rrd_filename_crash_issues = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'crash_issues']);
|
||||
$rrd_filename_dropped_files = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'dropped_files']);
|
||||
$rrd_filename_files_written = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'files_written']);
|
||||
$rrd_filename_signatures_total = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'signatures_total']);
|
||||
$rrd_filename_reg_keys_mod = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'reg_keys_mod']);
|
||||
$rrd_filename_running_processes = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'running_processes']);
|
||||
$rrd_filename_signatures_alert = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'signatures_alert']);
|
||||
}
|
||||
|
||||
$rrd_list = [];
|
||||
if (Rrd::checkRrdExists($rrd_filename_anti_issues)) {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename_anti_issues,
|
||||
'descr' => 'anti_issues',
|
||||
'ds' => 'anti_issues',
|
||||
];
|
||||
}
|
||||
if (Rrd::checkRrdExists($rrd_filename_api_calls)) {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename_api_calls,
|
||||
'descr' => 'api_calls',
|
||||
'ds' => 'api_calls',
|
||||
];
|
||||
}
|
||||
if (Rrd::checkRrdExists($rrd_filename_domains)) {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename_domains,
|
||||
'descr' => 'domains',
|
||||
'ds' => 'domains',
|
||||
];
|
||||
}
|
||||
if (Rrd::checkRrdExists($rrd_filename_crash_issues)) {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename_crash_issues,
|
||||
'descr' => 'crash_issues',
|
||||
'ds' => 'crash_issues',
|
||||
];
|
||||
}
|
||||
if (Rrd::checkRrdExists($rrd_filename_dropped_files)) {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename_dropped_files,
|
||||
'descr' => 'dropped_files',
|
||||
'ds' => 'dropped_files',
|
||||
];
|
||||
}
|
||||
if (Rrd::checkRrdExists($rrd_filename_files_written)) {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename_files_written,
|
||||
'descr' => 'files_written',
|
||||
'ds' => 'files_written',
|
||||
];
|
||||
}
|
||||
if (Rrd::checkRrdExists($rrd_filename_reg_keys_mod)) {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename_reg_keys_mod,
|
||||
'descr' => 'reg_keys_mod',
|
||||
'ds' => 'reg_keys_mod',
|
||||
];
|
||||
}
|
||||
if (Rrd::checkRrdExists($rrd_filename_running_processes)) {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename_running_processes,
|
||||
'descr' => 'running_processes',
|
||||
'ds' => 'running_processes',
|
||||
];
|
||||
}
|
||||
if (Rrd::checkRrdExists($rrd_filename_signatures_alert)) {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename_signatures_alert,
|
||||
'descr' => 'signatures_alert',
|
||||
'ds' => 'signatures_alert',
|
||||
];
|
||||
}
|
||||
if (Rrd::checkRrdExists($rrd_filename_signatures_total)) {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename_signatures_total,
|
||||
'descr' => 'signatures_total',
|
||||
'ds' => 'signatures_total',
|
||||
];
|
||||
}
|
||||
|
||||
require 'includes/html/graphs/generic_multi_line.inc.php';
|
@ -0,0 +1,60 @@
|
||||
<?php
|
||||
|
||||
$name = 'cape';
|
||||
$app_id = $app['app_id'];
|
||||
$unit_text = 'Running Procs Per Run';
|
||||
$colours = 'psychedelic';
|
||||
$dostack = 0;
|
||||
$printtotal = 1;
|
||||
$addarea = 0;
|
||||
$transparency = 15;
|
||||
$float_precision = 3;
|
||||
|
||||
if (isset($vars['package'])) {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-running_processes___-___', $vars['package']]);
|
||||
} else {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'running_processes']);
|
||||
}
|
||||
|
||||
$rrd_list = [];
|
||||
if (Rrd::checkRrdExists($rrd_filename)) {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Min',
|
||||
'ds' => 's0running_processes',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Max',
|
||||
'ds' => 's1running_processes',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Mean',
|
||||
'ds' => 's3running_processes',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Median',
|
||||
'ds' => 's4running_processes',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Mode',
|
||||
'ds' => 's5running_processes',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'StdDev',
|
||||
'ds' => 's7running_processes',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'StdDevP',
|
||||
'ds' => 's9running_processes',
|
||||
];
|
||||
} else {
|
||||
d_echo('RRD "' . $rrd_filename . '" not found');
|
||||
}
|
||||
|
||||
require 'includes/html/graphs/generic_multi_line.inc.php';
|
@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
$name = 'cape';
|
||||
$app_id = $app['app_id'];
|
||||
$unit_text = 'Running Procs Per Run';
|
||||
$colours = 'psychedelic';
|
||||
$dostack = 0;
|
||||
$printtotal = 1;
|
||||
$addarea = 0;
|
||||
$transparency = 15;
|
||||
$float_precision = 3;
|
||||
|
||||
if (isset($vars['package'])) {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-running_processes___-___', $vars['package']]);
|
||||
} else {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'running_processes']);
|
||||
}
|
||||
|
||||
$rrd_list = [];
|
||||
if (Rrd::checkRrdExists($rrd_filename)) {
|
||||
$filename = $rrd_filename;
|
||||
$descr = 'Average';
|
||||
$ds = 's3running_processes';
|
||||
} else {
|
||||
d_echo('RRD "' . $rrd_filename . '" not found');
|
||||
}
|
||||
|
||||
require 'includes/html/graphs/generic_stats.inc.php';
|
@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
$name = 'cape';
|
||||
$app_id = $app['app_id'];
|
||||
$unit_text = 'Anti Issues Per Run';
|
||||
$colours = 'psychedelic';
|
||||
$dostack = 0;
|
||||
$printtotal = 1;
|
||||
$addarea = 0;
|
||||
$transparency = 15;
|
||||
$float_precision = 3;
|
||||
|
||||
$packages = Rrd::getRrdApplicationArrays($device, $app['app_id'], 'cape', 'pkg-running_processes___-___');
|
||||
|
||||
$rrd_list = [];
|
||||
$packages_int = 0;
|
||||
foreach ($packages as $index => $package) {
|
||||
$label = preg_filter('/^pkg\-running\_processes\_\_\_\-\_\_\_\-/', '', $package);
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], $package]);
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => $label,
|
||||
'ds' => 'running_processes',
|
||||
];
|
||||
|
||||
$packages_int++;
|
||||
}
|
||||
|
||||
if (sizeof($rrd_list)) {
|
||||
d_echo('No relevant package RRDs found');
|
||||
}
|
||||
|
||||
require 'includes/html/graphs/generic_multi_line.inc.php';
|
@ -0,0 +1,70 @@
|
||||
<?php
|
||||
|
||||
$name = 'cape';
|
||||
$app_id = $app['app_id'];
|
||||
$unit_text = 'Signatures Alert Per Run';
|
||||
$colours = 'psychedelic';
|
||||
$dostack = 0;
|
||||
$printtotal = 1;
|
||||
$addarea = 0;
|
||||
$transparency = 15;
|
||||
$float_precision = 3;
|
||||
|
||||
if (isset($vars['stddev'])) {
|
||||
if ($vars['stddev'] != 'on' and $vars['stddev'] != 'off') {
|
||||
$vars['stddev'] = 'off';
|
||||
}
|
||||
} else {
|
||||
$vars['stddev'] = 'off';
|
||||
}
|
||||
|
||||
if (isset($vars['package'])) {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-signatures_alert___-___', $vars['package']]);
|
||||
} else {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'signatures_alert']);
|
||||
}
|
||||
|
||||
$rrd_list = [];
|
||||
if (Rrd::checkRrdExists($rrd_filename)) {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Min',
|
||||
'ds' => 's0signatures_alert',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Max',
|
||||
'ds' => 's1signatures_alert',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Mean',
|
||||
'ds' => 's3signatures_alert',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Median',
|
||||
'ds' => 's4signatures_alert',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Mode',
|
||||
'ds' => 's5signatures_alert',
|
||||
];
|
||||
if ($vars['stddev'] == 'on') {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'StdDev',
|
||||
'ds' => 's7signatures_alert',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'StdDevP',
|
||||
'ds' => 's9signatures_alert',
|
||||
];
|
||||
}
|
||||
} else {
|
||||
d_echo('RRD "' . $rrd_filename . '" not found');
|
||||
}
|
||||
|
||||
require 'includes/html/graphs/generic_multi_line.inc.php';
|
@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
$name = 'cape';
|
||||
$app_id = $app['app_id'];
|
||||
$unit_text = 'Signatures Alert Per Run';
|
||||
$colours = 'psychedelic';
|
||||
$dostack = 0;
|
||||
$printtotal = 1;
|
||||
$addarea = 0;
|
||||
$transparency = 15;
|
||||
$float_precision = 3;
|
||||
|
||||
if (isset($vars['stddev'])) {
|
||||
if ($vars['stddev'] != 'on' and $vars['stddev'] != 'off') {
|
||||
$vars['stddev'] = 'off';
|
||||
}
|
||||
} else {
|
||||
$vars['stddev'] = 'off';
|
||||
}
|
||||
|
||||
if (isset($vars['package'])) {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-signatures_alert___-___', $vars['package']]);
|
||||
} else {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'signatures_alert']);
|
||||
}
|
||||
|
||||
$rrd_list = [];
|
||||
if (Rrd::checkRrdExists($rrd_filename)) {
|
||||
$filename = $rrd_filename;
|
||||
$descr = 'Average';
|
||||
$ds = 's3signatures_alert';
|
||||
} else {
|
||||
d_echo('RRD "' . $rrd_filename . '" not found');
|
||||
}
|
||||
|
||||
require 'includes/html/graphs/generic_stats.inc.php';
|
@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
$name = 'cape';
|
||||
$app_id = $app['app_id'];
|
||||
$unit_text = 'Anti Issues Per Run';
|
||||
$colours = 'psychedelic';
|
||||
$dostack = 0;
|
||||
$printtotal = 1;
|
||||
$addarea = 0;
|
||||
$transparency = 15;
|
||||
$float_precision = 3;
|
||||
|
||||
$packages = Rrd::getRrdApplicationArrays($device, $app['app_id'], 'cape', 'pkg-signatures_alert___-___');
|
||||
|
||||
$rrd_list = [];
|
||||
$packages_int = 0;
|
||||
foreach ($packages as $index => $package) {
|
||||
$label = preg_filter('/^pkg\-signatures\_alert\_\_\_\-\_\_\_\-/', '', $package);
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], $package]);
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => $label,
|
||||
'ds' => 'signatures_alert',
|
||||
];
|
||||
|
||||
$packages_int++;
|
||||
}
|
||||
|
||||
if (sizeof($rrd_list)) {
|
||||
d_echo('No relevant package RRDs found');
|
||||
}
|
||||
|
||||
require 'includes/html/graphs/generic_multi_line.inc.php';
|
@ -0,0 +1,70 @@
|
||||
<?php
|
||||
|
||||
$name = 'cape';
|
||||
$app_id = $app['app_id'];
|
||||
$unit_text = 'Signatures Total Per Run';
|
||||
$colours = 'psychedelic';
|
||||
$dostack = 0;
|
||||
$printtotal = 1;
|
||||
$addarea = 0;
|
||||
$transparency = 15;
|
||||
$float_precision = 3;
|
||||
|
||||
if (isset($vars['stddev'])) {
|
||||
if ($vars['stddev'] != 'on' and $vars['stddev'] != 'off') {
|
||||
$vars['stddev'] = 'off';
|
||||
}
|
||||
} else {
|
||||
$vars['stddev'] = 'off';
|
||||
}
|
||||
|
||||
if (isset($vars['package'])) {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-signatures_total___-___', $vars['package']]);
|
||||
} else {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'signatures_total']);
|
||||
}
|
||||
|
||||
$rrd_list = [];
|
||||
if (Rrd::checkRrdExists($rrd_filename)) {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Min',
|
||||
'ds' => 's0signatures_total',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Max',
|
||||
'ds' => 's1signatures_total',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Mean',
|
||||
'ds' => 's3signatures_total',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Median',
|
||||
'ds' => 's4signatures_total',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'Mode',
|
||||
'ds' => 's5signatures_total',
|
||||
];
|
||||
if ($vars['stddev'] == 'on') {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'StdDev',
|
||||
'ds' => 's7signatures_total',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'StdDevP',
|
||||
'ds' => 's9signatures_total',
|
||||
];
|
||||
}
|
||||
} else {
|
||||
d_echo('RRD "' . $rrd_filename . '" not found');
|
||||
}
|
||||
|
||||
require 'includes/html/graphs/generic_multi_line.inc.php';
|
@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
$name = 'cape';
|
||||
$app_id = $app['app_id'];
|
||||
$unit_text = 'Signatures Total Per Run';
|
||||
$colours = 'psychedelic';
|
||||
$dostack = 0;
|
||||
$printtotal = 1;
|
||||
$addarea = 0;
|
||||
$transparency = 15;
|
||||
$float_precision = 3;
|
||||
|
||||
if (isset($vars['stddev'])) {
|
||||
if ($vars['stddev'] != 'on' and $vars['stddev'] != 'off') {
|
||||
$vars['stddev'] = 'off';
|
||||
}
|
||||
} else {
|
||||
$vars['stddev'] = 'off';
|
||||
}
|
||||
|
||||
if (isset($vars['package'])) {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'pkg-signatures_total___-___', $vars['package']]);
|
||||
} else {
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], 'signatures_total']);
|
||||
}
|
||||
|
||||
$rrd_list = [];
|
||||
if (Rrd::checkRrdExists($rrd_filename)) {
|
||||
$filename = $rrd_filename;
|
||||
$descr = 'Average';
|
||||
$ds = 's3signatures_total';
|
||||
} else {
|
||||
d_echo('RRD "' . $rrd_filename . '" not found');
|
||||
}
|
||||
|
||||
require 'includes/html/graphs/generic_stats.inc.php';
|
@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
$name = 'cape';
|
||||
$app_id = $app['app_id'];
|
||||
$unit_text = 'Anti Issues Per Run';
|
||||
$colours = 'psychedelic';
|
||||
$dostack = 0;
|
||||
$printtotal = 1;
|
||||
$addarea = 0;
|
||||
$transparency = 15;
|
||||
$float_precision = 3;
|
||||
|
||||
$packages = Rrd::getRrdApplicationArrays($device, $app['app_id'], 'cape', 'pkg-signatures_total___-___');
|
||||
|
||||
$rrd_list = [];
|
||||
$packages_int = 0;
|
||||
foreach ($packages as $index => $package) {
|
||||
$label = preg_filter('/^pkg\-signatures\_total\_\_\_\-\_\_\_\-/', '', $package);
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id'], $package]);
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => $label,
|
||||
'ds' => 'signatures_total',
|
||||
];
|
||||
|
||||
$packages_int++;
|
||||
}
|
||||
|
||||
if (sizeof($rrd_list)) {
|
||||
d_echo('No relevant package RRDs found');
|
||||
}
|
||||
|
||||
require 'includes/html/graphs/generic_multi_line.inc.php';
|
71
includes/html/graphs/application/cape_status.inc.php
Normal file
71
includes/html/graphs/application/cape_status.inc.php
Normal file
@ -0,0 +1,71 @@
|
||||
<?php
|
||||
|
||||
$name = 'cape';
|
||||
$app_id = $app['app_id'];
|
||||
$unit_text = 'Run Count';
|
||||
$colours = 'psychedelic';
|
||||
$dostack = 0;
|
||||
$printtotal = 1;
|
||||
$addarea = 0;
|
||||
$transparency = 15;
|
||||
$float_precision = 3;
|
||||
|
||||
$rrd_filename = Rrd::name($device['hostname'], ['app', $name, $app['app_id']]);
|
||||
|
||||
$rrd_list = [];
|
||||
if (Rrd::checkRrdExists($rrd_filename)) {
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'banned',
|
||||
'ds' => 'banned',
|
||||
];
|
||||
// $rrd_list[] = [
|
||||
// 'filename' => $rrd_filename,
|
||||
// 'descr' => 'pending',
|
||||
// 'ds' => 'pending',
|
||||
// ];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'running',
|
||||
'ds' => 'running',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'completed',
|
||||
'ds' => 'completed',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'distributed',
|
||||
'ds' => 'distributed',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'reported',
|
||||
'ds' => 'reported',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'recovered',
|
||||
'ds' => 'recovered',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'failed_analysis',
|
||||
'ds' => 'failed_analysis',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'failed_processing',
|
||||
'ds' => 'failed_processing',
|
||||
];
|
||||
$rrd_list[] = [
|
||||
'filename' => $rrd_filename,
|
||||
'descr' => 'failed_reporting',
|
||||
'ds' => 'failed_reporting',
|
||||
];
|
||||
} else {
|
||||
d_echo('RRD "' . $rrd_filename . '" not found');
|
||||
}
|
||||
|
||||
require 'includes/html/graphs/generic_multi_line.inc.php';
|
148
includes/html/graphs/generic_stats.inc.php
Normal file
148
includes/html/graphs/generic_stats.inc.php
Normal file
@ -0,0 +1,148 @@
|
||||
<?php
|
||||
/*
|
||||
* This program is free software: you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation, either version 3 of the License, or (at your
|
||||
* option) any later version. Please see LICENSE.txt at the top level of
|
||||
* the source code distribution for details.
|
||||
*
|
||||
* @package LibreNMS
|
||||
* @subpackage graphs
|
||||
* @link https://www.librenms.org
|
||||
* @copyright 2017 LibreNMS
|
||||
* @author LibreNMS Contributors
|
||||
*/
|
||||
|
||||
require 'includes/html/graphs/common.inc.php';
|
||||
|
||||
$stacked = generate_stacked_graphs();
|
||||
|
||||
if (! isset($descr_len)) {
|
||||
$descr_len = 12;
|
||||
}
|
||||
|
||||
if ($nototal) {
|
||||
$descr_len += '2';
|
||||
$unitlen += '2';
|
||||
}
|
||||
|
||||
$rrd_options .= " COMMENT:'" . \LibreNMS\Data\Store\Rrd::fixedSafeDescr($unit_text, $descr_len) . " Now Min Max Avg\l'";
|
||||
|
||||
$i = 0;
|
||||
$iter = 0;
|
||||
|
||||
if (! isset($colour)) {
|
||||
if (! \LibreNMS\Config::get("graph_colours.$colours.$iter")) {
|
||||
$iter = 0;
|
||||
}
|
||||
$colour = \LibreNMS\Config::get("graph_colours.$colours.$iter");
|
||||
$iter++;
|
||||
}
|
||||
|
||||
if (! isset($colour25th)) {
|
||||
if (! \LibreNMS\Config::get("graph_colours.$colours.$iter")) {
|
||||
$iter = 0;
|
||||
}
|
||||
$colour25th = \LibreNMS\Config::get("graph_colours.$colours.$iter");
|
||||
$iter++;
|
||||
}
|
||||
|
||||
if (! isset($colour50th)) {
|
||||
if (! \LibreNMS\Config::get("graph_colours.$colours.$iter")) {
|
||||
$iter = 0;
|
||||
}
|
||||
$colour50th = \LibreNMS\Config::get("graph_colours.$colours.$iter");
|
||||
$iter++;
|
||||
$iter++;
|
||||
}
|
||||
|
||||
if (! isset($colour75th)) {
|
||||
if (! \LibreNMS\Config::get("graph_colours.$colours.$iter")) {
|
||||
$iter = 0;
|
||||
}
|
||||
$colour75th = \LibreNMS\Config::get("graph_colours.$colours.$iter");
|
||||
$iter++;
|
||||
}
|
||||
|
||||
if (! isset($colour1h)) {
|
||||
if (! \LibreNMS\Config::get("graph_colours.$colours.$iter")) {
|
||||
$iter = 0;
|
||||
}
|
||||
$colour1h = \LibreNMS\Config::get("graph_colours.$colours.$iter");
|
||||
$iter++;
|
||||
}
|
||||
|
||||
if (! isset($colour1d)) {
|
||||
if (! \LibreNMS\Config::get("graph_colours.$colours.$iter")) {
|
||||
$iter = 0;
|
||||
}
|
||||
$colour1d = \LibreNMS\Config::get("graph_colours.$colours.$iter");
|
||||
$iter++;
|
||||
}
|
||||
|
||||
if (! isset($colour1w)) {
|
||||
if (! \LibreNMS\Config::get("graph_colours.$colours.$iter")) {
|
||||
$iter = 0;
|
||||
}
|
||||
$colour1w = \LibreNMS\Config::get("graph_colours.$colours.$iter");
|
||||
$iter++;
|
||||
}
|
||||
|
||||
$descr = \LibreNMS\Data\Store\Rrd::fixedSafeDescr($descr, $descr_len);
|
||||
$descr_1h = \LibreNMS\Data\Store\Rrd::fixedSafeDescr('1 hour avg', $descr_len);
|
||||
$descr_1d = \LibreNMS\Data\Store\Rrd::fixedSafeDescr('1 day avg', $descr_len);
|
||||
$descr_1w = \LibreNMS\Data\Store\Rrd::fixedSafeDescr('1 week avg', $descr_len);
|
||||
|
||||
$id = 'ds' . $i;
|
||||
|
||||
$rrd_options .= ' DEF:' . $id . "=$filename:$ds:AVERAGE";
|
||||
$rrd_options .= ' DEF:' . $id . "1h=$filename:$ds:AVERAGE:step=3600";
|
||||
$rrd_options .= ' DEF:' . $id . "1d=$filename:$ds:AVERAGE:step=86400";
|
||||
$rrd_options .= ' VDEF:' . $id . '50th=' . $id . ',50,PERCENTNAN';
|
||||
$rrd_options .= ' VDEF:' . $id . '25th=' . $id . ',25,PERCENTNAN';
|
||||
$rrd_options .= ' VDEF:' . $id . '75th=' . $id . ',75,PERCENTNAN';
|
||||
|
||||
// weekly breaks and causes issues if it is less than 8 days
|
||||
$time_diff = $vars['to'] - $vars['from'];
|
||||
if ($time_diff >= 691200) {
|
||||
$rrd_options .= ' DEF:' . $id . "1w=$filename:$ds:AVERAGE:step=604800";
|
||||
}
|
||||
|
||||
// displays nan if less than 17 hours
|
||||
if ($time_diff >= 61200) {
|
||||
$rrd_options .= ' DEF:' . $id . "1d=$filename:$ds:AVERAGE:step=86400";
|
||||
}
|
||||
|
||||
$rrd_optionsb .= ' LINE1.25:' . $id . '#' . $colour . ":'$descr'";
|
||||
$rrd_optionsb .= ' GPRINT:' . $id . ':LAST:%5.' . $float_precision . 'lf%s' . $units . ' GPRINT:' . $id . ':MIN:%5.' . $float_precision . 'lf%s' . $units;
|
||||
$rrd_optionsb .= ' GPRINT:' . $id . ':MAX:%5.' . $float_precision . 'lf%s' . $units . ' GPRINT:' . $id . ":AVERAGE:'%5." . $float_precision . "lf%s$units\\n'";
|
||||
|
||||
$rrd_optionsb .= ' LINE1.25:' . $id . '1h#' . $colour1h . ":'$descr_1h'";
|
||||
$rrd_optionsb .= ' GPRINT:' . $id . '1h:LAST:%5.' . $float_precision . 'lf%s' . $units . ' GPRINT:' . $id . '1h:MIN:%5.' . $float_precision . 'lf%s' . $units;
|
||||
$rrd_optionsb .= ' GPRINT:' . $id . '1h:MAX:%5.' . $float_precision . 'lf%s' . $units . ' GPRINT:' . $id . "1h:AVERAGE:'%5." . $float_precision . "lf%s$units\\n'";
|
||||
|
||||
if ($time_diff >= 61200) {
|
||||
$rrd_optionsb .= ' LINE1.25:' . $id . '1d#' . $colour1d . ":'$descr_1d'";
|
||||
$rrd_optionsb .= ' GPRINT:' . $id . '1d:LAST:%5.' . $float_precision . 'lf%s' . $units . ' GPRINT:' . $id . '1d:MIN:%5.' . $float_precision . 'lf%s' . $units;
|
||||
$rrd_optionsb .= ' GPRINT:' . $id . '1d:MAX:%5.' . $float_precision . 'lf%s' . $units . ' GPRINT:' . $id . "1d:AVERAGE:'%5." . $float_precision . "lf%s$units\\n'";
|
||||
}
|
||||
|
||||
if ($time_diff >= 691200) {
|
||||
$rrd_optionsb .= ' LINE1.25:' . $id . '1w#' . $colour1w . ":'$descr_1w'";
|
||||
$rrd_optionsb .= ' GPRINT:' . $id . '1w:LAST:%5.' . $float_precision . 'lf%s' . $units . ' GPRINT:' . $id . '1w:MIN:%5.' . $float_precision . 'lf%s' . $units;
|
||||
$rrd_optionsb .= ' GPRINT:' . $id . '1w:MAX:%5.' . $float_precision . 'lf%s' . $units . ' GPRINT:' . $id . "1w:AVERAGE:'%5." . $float_precision . "lf%s$units\\n'";
|
||||
}
|
||||
|
||||
$rrd_optionsb .= ' HRULE:' . $id . '25th#' . $colour25th . ':25th_Percentile';
|
||||
$rrd_optionsb .= ' GPRINT:' . $id . '25th:%' . $float_precision . 'lf%s\n';
|
||||
|
||||
$rrd_optionsb .= ' HRULE:' . $id . '50th#' . $colour50th . ':50th_Percentile';
|
||||
$rrd_optionsb .= ' GPRINT:' . $id . '50th:%' . $float_precision . 'lf%s\n';
|
||||
|
||||
$rrd_optionsb .= ' HRULE:' . $id . '75th#' . $colour75th . ':75th_Percentile';
|
||||
$rrd_optionsb .= ' GPRINT:' . $id . '75th:%' . $float_precision . 'lf%s\n';
|
||||
|
||||
$rrd_options .= $rrd_optionsb;
|
||||
$rrd_options .= ' HRULE:0#555555';
|
||||
|
||||
unset($stacked);
|
@ -399,6 +399,14 @@ $graphs['chronyd'] = [
|
||||
'frequency',
|
||||
'root',
|
||||
];
|
||||
$graphs['cape'] = [
|
||||
'status',
|
||||
'pending',
|
||||
'run_stats',
|
||||
'lines',
|
||||
'malscore_stats',
|
||||
'pkg_tasks_all',
|
||||
];
|
||||
$graphs['sagan'] = [
|
||||
'after',
|
||||
'bytes_ignored',
|
||||
|
223
includes/html/pages/device/apps/cape.inc.php
Normal file
223
includes/html/pages/device/apps/cape.inc.php
Normal file
@ -0,0 +1,223 @@
|
||||
<?php
|
||||
|
||||
$packages = Rrd::getRrdApplicationArrays($device, $app['app_id'], 'cape', 'pkg___-___');
|
||||
|
||||
foreach ($packages as $index => $value) {
|
||||
$packages[$index] = preg_replace('/^pkg___-___-/', '', $value);
|
||||
}
|
||||
|
||||
$vars_to_check = [
|
||||
'stddev',
|
||||
'bytimeslot',
|
||||
'bypkg',
|
||||
'statsavg',
|
||||
];
|
||||
foreach ($vars_to_check as $index => $value) {
|
||||
if (isset($vars[$value])) {
|
||||
if ($vars[$value] != 'on' and $vars[$value] != 'off') {
|
||||
$vars[$value] = 'off';
|
||||
}
|
||||
} else {
|
||||
$vars[$value] = 'off';
|
||||
}
|
||||
}
|
||||
|
||||
if (sizeof($packages) > 0) {
|
||||
print_optionbar_start();
|
||||
|
||||
if (isset($vars['package'])) {
|
||||
echo generate_link('General', $link_array, ['app'=>'cape', 'stddev'=>$vars['stddev'], 'bypkg'=>$vars['bypkg'], 'bytimeslot'=>$vars['bytimeslot'], 'statsavg'=>$vars['statsavg']]);
|
||||
} else {
|
||||
$label = '<span class="pagemenu-selected">General</span>';
|
||||
echo generate_link($label, $link_array, ['app'=>'cape', 'stddev'=>$vars['stddev'], 'bypkg'=>$vars['bypkg'], 'bytimeslot'=>$vars['bytimeslot'], 'statsavg'=>$vars['statsavg']]);
|
||||
}
|
||||
|
||||
echo ' | <b>Packages:</b> ';
|
||||
$packages_int = 0;
|
||||
while (isset($packages[$packages_int])) {
|
||||
$package = $packages[$packages_int];
|
||||
$label = $package;
|
||||
|
||||
if ($vars['package'] == $package) {
|
||||
$label = '<span class="pagemenu-selected">' . $package . '</span>';
|
||||
}
|
||||
|
||||
$packages_int++;
|
||||
|
||||
$append = '';
|
||||
if (isset($packages[$packages_int])) {
|
||||
$append = ', ';
|
||||
}
|
||||
|
||||
echo generate_link($label, $link_array, ['app'=>'cape', 'stddev'=>$vars['stddev'], 'bypkg'=>$vars['bypkg'], 'bytimeslot'=>$vars['bytimeslot'], 'package'=>$package, 'statsavg'=>$vars['statsavg']]) . $append;
|
||||
}
|
||||
|
||||
echo "<br>\n";
|
||||
|
||||
echo '<b>Run Stats Averages:</b> ';
|
||||
if ($vars['statsavg'] == 'on') {
|
||||
$label = '<span class="pagemenu-selected">On</span>';
|
||||
echo generate_link($label, $link_array, ['app'=>'cape', 'bytimeslot'=>$vars['bytimeslot'], 'bypkg'=>$vars['bypkg'], 'stddev'=>$vars['stddev'], 'package'=>$vars['package'], 'statsavg'=>'on']) . ', ' .
|
||||
generate_link('Off', $link_array, ['app'=>'cape', 'bytimeslot'=>$vars['bytimeslot'], 'bypkg'=>$vars['bypkg'], 'stddev'=>$vars['stddev'], 'package'=>$vars['package'], 'statsavg'=>'off']);
|
||||
} else {
|
||||
$label = '<span class="pagemenu-selected">Off</span>';
|
||||
echo generate_link('On', $link_array, ['app'=>'cape', 'bytimeslot'=>$vars['bytimeslot'], 'bypkg'=>$vars['bypkg'], 'stddev'=>$vars['stddev'], 'package'=>$vars['package'], 'statsavg'=>'on']) . ', ' .
|
||||
generate_link($label, $link_array, ['app'=>'cape', 'bytimeslot'=>$vars['bytimeslot'], 'bypkg'=>$vars['bypkg'], 'stddev'=>$vars['stddev'], 'package'=>$vars['package'], 'statsavg'=>'off']);
|
||||
}
|
||||
|
||||
echo ' | ';
|
||||
|
||||
echo '<b>By Time Slot:</b> ';
|
||||
if ($vars['bytimeslot'] == 'on') {
|
||||
$label = '<span class="pagemenu-selected">On</span>';
|
||||
echo generate_link($label, $link_array, ['app'=>'cape', 'bytimeslot'=>'on', 'bypkg'=>$vars['bypkg'], 'stddev'=>$vars['stddev'], 'package'=>$vars['package'], 'statsavg'=>$vars['statsavg']]) . ', ' .
|
||||
generate_link('Off', $link_array, ['app'=>'cape', 'bytimeslot'=>'off', 'bypkg'=>$vars['bypkg'], 'stddev'=>$vars['stddev'], 'package'=>$vars['package'], 'statsavg'=>$vars['statsavg']]);
|
||||
} else {
|
||||
$label = '<span class="pagemenu-selected">Off</span>';
|
||||
echo generate_link('On', $link_array, ['app'=>'cape', 'bytimeslot'=>'on', 'bypkg'=>$vars['bypkg'], 'stddev'=>$vars['stddev'], 'package'=>$vars['package'], 'statsavg'=>$vars['statsavg']]) . ', ' .
|
||||
generate_link($label, $link_array, ['app'=>'cape', 'bytimeslot'=>'off', 'bypkg'=>$vars['bypkg'], 'stddev'=>$vars['stddev'], 'package'=>$vars['package'], 'statsavg'=>$vars['statsavg']]);
|
||||
}
|
||||
|
||||
if (! isset($vars['package'])) {
|
||||
echo ' | ';
|
||||
echo '<b>By Package:</b> ';
|
||||
if ($vars['bypkg'] == 'on') {
|
||||
$label = '<span class="pagemenu-selected">On</span>';
|
||||
echo generate_link($label, $link_array, ['app'=>'cape', 'bypkg'=>'on', 'bytimeslot'=>$vars['bytimeslot'], 'stddev'=>$vars['stddev'], 'package'=>$vars['package'], 'statsavg'=>$vars['statsavg']]) . ', ' .
|
||||
generate_link('Off', $link_array, ['app'=>'cape', 'bypkg'=>'off', 'bytimeslot'=>$vars['bytimeslot'], 'stddev'=>$vars['stddev'], 'package'=>$vars['package'], 'statsavg'=>$vars['statsavg']]);
|
||||
} else {
|
||||
$label = '<span class="pagemenu-selected">Off</span>';
|
||||
echo generate_link('On', $link_array, ['app'=>'cape', 'bypkg'=>'on', 'bytimeslot'=>$vars['bytimeslot'], 'stddev'=>$vars['stddev'], 'package'=>$vars['package'], 'statsavg'=>$vars['statsavg']]) . ', ' .
|
||||
generate_link($label, $link_array, ['app'=>'cape', 'bypkg'=>'off', 'bytimeslot'=>$vars['bytimeslot'], 'stddev'=>$vars['stddev'], 'package'=>$vars['package'], 'statsavg'=>$vars['statsavg']]);
|
||||
}
|
||||
}
|
||||
|
||||
echo ' | ';
|
||||
|
||||
echo '<b>Standard Deviation:</b> ';
|
||||
if ($vars['stddev'] == 'on') {
|
||||
$label = '<span class="pagemenu-selected">On</span>';
|
||||
echo generate_link($label, $link_array, ['app'=>'cape', 'stddev'=>'on', 'bypkg'=>$vars['bypkg'], 'bytimeslot'=>$vars['bytimeslot'], 'package'=>$vars['package'], 'statsavg'=>$vars['statsavg']]) . ', ' .
|
||||
generate_link('Off', $link_array, ['app'=>'cape', 'stddev'=>'off', 'bypkg'=>$vars['bypkg'], 'bytimeslot'=>$vars['bytimeslot'], 'package'=>$vars['package'], 'statsavg'=>$vars['statsavg']]);
|
||||
} else {
|
||||
$label = '<span class="pagemenu-selected">Off</span>';
|
||||
echo generate_link('On', $link_array, ['app'=>'cape', 'stddev'=>'on', 'bypkg'=>$vars['bypkg'], 'bytimeslot'=>$vars['bytimeslot'], 'package'=>$vars['package'], 'statsavg'=>$vars['statsavg']]) . ', ' .
|
||||
generate_link($label, $link_array, ['app'=>'cape', 'stddev'=>'off', 'bypkg'=>$vars['bypkg'], 'bytimeslot'=>$vars['bytimeslot'], 'package'=>$vars['package'], 'statsavg'=>$vars['statsavg']]);
|
||||
}
|
||||
print_optionbar_end();
|
||||
}
|
||||
|
||||
if (isset($vars['package'])) {
|
||||
$graphs = [
|
||||
'cape_pkg_tasks' => 'Package Tasks',
|
||||
'cape_run_stats' => 'Run Stats',
|
||||
'cape_malscore_stats' => 'Malscore Averages',
|
||||
];
|
||||
if ($vars['bytimeslot'] == 'on') {
|
||||
$graphs['cape_malscore'] = 'Malscore Stats During Time Slot';
|
||||
$graphs['cape_anti_issues'] = 'Anti Issues Per Run Stats During Time Slot';
|
||||
$graphs['cape_api_calls'] = 'API Calls Per Run Stats During Time Slot';
|
||||
$graphs['cape_crash_issues'] = 'Crash Issues Per Run Stats During Time Slot';
|
||||
$graphs['cape_domains'] = 'Domains Per Run Stats During Time Slot';
|
||||
$graphs['cape_dropped_files'] = 'Dropped Files Per Run Stats During Time Slot';
|
||||
$graphs['cape_files_written'] = 'Files Written Per Run Stats During Time Slot';
|
||||
$graphs['cape_registry_keys_modified'] = 'Registry Keys Modified Per Run Stats During Time Slot';
|
||||
$graphs['cape_running_processes'] = 'Running Processes Per Run Stats During Time Slot';
|
||||
$graphs['cape_signatures_alert'] = 'Signatures Alert Per Run Stats During Time Slot';
|
||||
$graphs['cape_signatures_total'] = 'Signatures Total Per Run Stats During Time Slot';
|
||||
}
|
||||
if ($vars['statsavg'] == 'on') {
|
||||
$graphs['cape_anti_issues_avg'] = 'Anti Issues Per Run Average';
|
||||
$graphs['cape_api_calls_avg'] = 'API Calls Per Run Stats Average';
|
||||
$graphs['cape_crash_issues_avg'] = 'Crash Issues Per Run Average';
|
||||
$graphs['cape_domains_avg'] = 'Domains Per Run Stats Average';
|
||||
$graphs['cape_dropped_files_avg'] = 'Dropped Files Per Run Average';
|
||||
$graphs['cape_files_written_avg'] = 'Files Written Per Run Average';
|
||||
$graphs['cape_registry_keys_modified_avg'] = 'Registry Keys Modified Per Run Average';
|
||||
$graphs['cape_running_processes_avg'] = 'Running Processes Per Run Average';
|
||||
$graphs['cape_signatures_alert_avg'] = 'Signatures Alert Per Run Average';
|
||||
$graphs['cape_signatures_total_avg'] = 'Signatures Total Per Run Average';
|
||||
}
|
||||
} else {
|
||||
if (sizeof($packages) > 0) {
|
||||
$graphs = [
|
||||
'cape_status' => 'Run Statuses',
|
||||
'cape_pending' => 'Pending',
|
||||
'cape_lines' => 'Log Lines',
|
||||
'cape_run_stats' => 'Run Stats',
|
||||
'cape_malscore_stats' => 'Malscore Averages',
|
||||
'cape_pkg_tasks_all' => 'Package Tasks',
|
||||
];
|
||||
|
||||
if ($vars['bypkg'] == 'on') {
|
||||
$graphs['cape_anti_issues_pkg'] = 'Anti Issues Per Run Stats During Time Slot By Package';
|
||||
$graphs['cape_api_calls_pkg'] = 'API Calls Per Run Stats During Time Slot By Package';
|
||||
$graphs['cape_crash_issues_pkg'] = 'Crash Issues Per Run Stats During Time Slot By Package';
|
||||
$graphs['cape_domains_pkg'] = 'Domains Per Run Stats During Time Slot By Package';
|
||||
$graphs['cape_signatures_total_pkg'] = 'Signatures Total Per Run Stats During Time Slot By Package';
|
||||
$graphs['cape_signatures_alert_pkg'] = 'Signatures Alert Per Run Stats During Time Slot By Package';
|
||||
$graphs['cape_running_processes_pkg'] = 'Running Processes Per Run Stats During Time Slot By Package';
|
||||
$graphs['cape_registry_keys_modified_pkg'] = 'Registry Keys Modified Per Run Stats During Time Slot By Package';
|
||||
$graphs['cape_files_written_pkg'] = 'Files Written Per Run Stats During Time Slot By Package';
|
||||
}
|
||||
|
||||
if ($vars['statsavg'] == 'on') {
|
||||
$graphs['cape_anti_issues_avg'] = 'Anti Issues Per Run Average';
|
||||
$graphs['cape_api_calls_avg'] = 'API Calls Per Run Stats Average';
|
||||
$graphs['cape_crash_issues_avg'] = 'Crash Issues Per Run Average';
|
||||
$graphs['cape_domains_avg'] = 'Domains Per Run Stats Average';
|
||||
$graphs['cape_dropped_files_avg'] = 'Dropped Files Per Run Average';
|
||||
$graphs['cape_files_written_avg'] = 'Files Written Per Run Average';
|
||||
$graphs['cape_registry_keys_modified_avg'] = 'Registry Keys Modified Per Run Average';
|
||||
$graphs['cape_running_processes_avg'] = 'Running Processes Per Run Average';
|
||||
$graphs['cape_signatures_alert_avg'] = 'Signatures Alert Per Run Average';
|
||||
$graphs['cape_signatures_total_avg'] = 'Signatures Total Per Run Average';
|
||||
}
|
||||
|
||||
if ($vars['bytimeslot'] == 'on') {
|
||||
$graphs['cape_malscore'] = 'Malscore Stats During Time Slot';
|
||||
$graphs['cape_anti_issues'] = 'Anti Issues Per Run Stats During Time Slot';
|
||||
$graphs['cape_api_calls'] = 'API Calls Per Run Stats During Time Slot';
|
||||
$graphs['cape_crash_issues'] = 'Crash Issues Per Run Stats During Time Slot';
|
||||
$graphs['cape_domains'] = 'Domains Per Run Stats During Time Slot';
|
||||
$graphs['cape_dropped_files'] = 'Dropped Files Per Run Stats During Time Slot';
|
||||
$graphs['cape_files_written'] = 'Files Written Per Run Stats During Time Slot';
|
||||
$graphs['cape_registry_keys_modified'] = 'Registry Keys Modified Per Run Stats During Time Slot';
|
||||
$graphs['cape_running_processes'] = 'Running Processes Per Run Stats During Time Slot';
|
||||
$graphs['cape_signatures_alert'] = 'Signatures Alert Per Run Stats During Time Slot';
|
||||
$graphs['cape_signatures_total'] = 'Signatures Total Per Run Stats During Time Slot';
|
||||
}
|
||||
} else {
|
||||
$graphs = [
|
||||
'cape_status' => 'Run Statuses',
|
||||
'cape_lines' => 'Log Lines',
|
||||
'cape_pending' => 'Pending',
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($graphs as $key => $text) {
|
||||
$graph_type = $key;
|
||||
$graph_array['height'] = '100';
|
||||
$graph_array['width'] = '215';
|
||||
$graph_array['to'] = time();
|
||||
$graph_array['id'] = $app['app_id'];
|
||||
$graph_array['type'] = 'application_' . $key;
|
||||
|
||||
if (isset($vars['package'])) {
|
||||
$graph_array['package'] = $vars['package'];
|
||||
}
|
||||
|
||||
$graph_array['stddev'] = $vars['stddev'];
|
||||
|
||||
echo '<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">' . $text . '</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="row">';
|
||||
include 'includes/html/print-graphrow.inc.php';
|
||||
echo '</div>';
|
||||
echo '</div>';
|
||||
echo '</div>';
|
||||
}
|
1023
includes/polling/applications/cape.inc.php
Normal file
1023
includes/polling/applications/cape.inc.php
Normal file
File diff suppressed because it is too large
Load Diff
1064
tests/data/linux_cape-v1.json
Normal file
1064
tests/data/linux_cape-v1.json
Normal file
File diff suppressed because it is too large
Load Diff
10
tests/snmpsim/linux_cape-v1.snmprec
Normal file
10
tests/snmpsim/linux_cape-v1.snmprec
Normal file
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user