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:
Zane C. Bowers-Hadley 2023-01-24 11:20:18 -06:00 committed by GitHub
parent c2b0a6ed80
commit 98c033e84f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
47 changed files with 4369 additions and 0 deletions

View File

@ -47,6 +47,7 @@ class StringHelpers
{
$replacements = [
'bind' => 'BIND',
'cape' => 'CAPEv2',
'dbm' => 'dBm',
'dhcp-stats' => 'DHCP Stats',
'entropy' => 'Random entropy',

View File

@ -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.

View 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';

View File

@ -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';

View 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-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';

View 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';

View 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';

View 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';

View 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';

View File

@ -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';

View 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-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';

View 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';

View 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';

View 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';

View 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';

View File

@ -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';

View 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-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';

View 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';

View File

@ -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';

View 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-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';

View 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';

View 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';

View 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';

View 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';

View 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';

View 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';

View 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';

View File

@ -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';

View File

@ -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';

View 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-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';

View 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';

View File

@ -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';

View File

@ -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';

View 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-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';

View File

@ -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';

View File

@ -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';

View 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-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';

View File

@ -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';

View File

@ -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';

View 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-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';

View 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';

View 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);

View File

@ -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',

View 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>';
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long