summaryrefslogtreecommitdiffstats
path: root/src/etc/inc/rrd.inc
diff options
context:
space:
mode:
Diffstat (limited to 'src/etc/inc/rrd.inc')
-rw-r--r--src/etc/inc/rrd.inc93
1 files changed, 49 insertions, 44 deletions
diff --git a/src/etc/inc/rrd.inc b/src/etc/inc/rrd.inc
index 1459c93..d80c6d4 100644
--- a/src/etc/inc/rrd.inc
+++ b/src/etc/inc/rrd.inc
@@ -50,7 +50,7 @@ function dump_rrd_to_xml($rrddatabase, $xmldumpfile) {
function restore_rrd() {
global $g, $config;
- $rrddbpath = "/var/db/rrd/";
+ $rrddbpath = "{$g['vardb_path']}/rrd/";
$rrdtool = "/usr/bin/nice -n20 /usr/local/bin/rrdtool";
$rrdrestore = "";
@@ -211,7 +211,7 @@ function enable_rrd_graphing() {
echo gettext("Generating RRD graphs...");
}
- $rrddbpath = "/var/db/rrd/";
+ $rrddbpath = "{$g['vardb_path']}/rrd/";
$rrdgraphpath = "/usr/local/www/rrd";
$traffic = "-traffic.rrd";
@@ -278,7 +278,7 @@ function enable_rrd_graphing() {
$captiveportalvalid = $rrdcaptiveportalinterval * 2;
$ntpdvalid = $rrdntpdinterval * 2;
$dhcpdvalid = $rrddhcpdinterval * 2;
-
+
/* Assume 2*10GigE for now */
$downstream = 2500000000;
$upstream = 2500000000;
@@ -323,11 +323,11 @@ function enable_rrd_graphing() {
}
if (platform_booting()) {
- if (!is_dir("{$g['vardb_path']}/rrd")) {
- mkdir("{$g['vardb_path']}/rrd", 0775);
+ if (!is_dir($rrddbpath)) {
+ mkdir($rrddbpath, 0775);
}
- @chown("{$g['vardb_path']}/rrd", "nobody");
+ @chown($rrddbpath, "nobody");
}
/* process all real and pseudo interfaces */
@@ -915,11 +915,11 @@ function enable_rrd_graphing() {
}
/* End NTP statistics */
-
+
/* Start dhcpd statistics */
if (is_array($config['dhcpd'])) {
foreach ($config['dhcpd'] as $dhcpif => $dhcpifconf) {
- if (isset($config['dhcpd'][$dhcpif]['statsgraph'])) {
+ if (isset($config['dhcpd'][$dhcpif]['statsgraph'])) {
if (!file_exists("$rrddbpath$dhcpif$dhcpd")) {
$rrdcreate = "$rrdtool create $rrddbpath$dhcpif$dhcpd --step $rrddhcpdinterval ";
$rrdcreate .= "DS:leases:GAUGE:$dhcpdvalid:0:100000 ";
@@ -950,12 +950,52 @@ function enable_rrd_graphing() {
$rrdupdatesh .= "# polling leases for dhcp \n";
$rrdupdatesh .= "DHCP=`${php} -q ${dhcpd_gather} '${dhcpif}'`\n";
$rrdupdatesh .= "$rrdtool update $rrddbpath$dhcpif$dhcpd \${DHCP}\n";
-
+
}
}
}
/* END dhcpd statistics */
+ /* Start gateway quality */
+ $rrdupdatesh .= <<<EOD
+
+# Gateway quality graphs
+for sock in {$g['varrun_path']}/dpinger_*.sock; do
+ if [ ! -S "\$sock" ]; then
+ continue
+ fi
+ loss=\$(/usr/bin/nc -U \$sock | awk '{ print \$3 }')
+ delay=\$(/usr/bin/nc -U \$sock | awk '{ print \$1 }')
+
+ if echo "\$loss" | grep -Eqv '^[0-9]+\$'; then
+ loss="U"
+ fi
+ if echo "\$delay" | grep -Eqv '^[0-9]+\$'; then
+ delay="U"
+ else
+ # Convert delay to millisecond
+ delay=\$(echo "scale=7; \$delay / 1000 / 1000" | /usr/bin/bc)
+ fi
+
+ gw=\$(echo \$sock | sed 's,^.*dpinger_,,; s,\.sock,,')
+ if [ ! -f {$rrddbpath}\$gw-quality.rrd ]; then
+ {$rrdtool} create {$rrddbpath}\$gw-quality.rrd --step 60 \\
+ DS:loss:GAUGE:120:0:100 \\
+ DS:delay:GAUGE:120:0:100000 \\
+ RRA:AVERAGE:0.5:1:1200 \\
+ RRA:AVERAGE:0.5:5:720 \\
+ RRA:AVERAGE:0.5:60:1860 \\
+ RRA:AVERAGE:0.5:1440:2284
+
+ {$rrdtool} update {$rrddbpath}\$gw-quality.rrd -t loss:delay N:U:U
+ fi
+
+ {$rrdtool} update {$rrddbpath}\$gw-quality.rrd -t loss:delay N:\$loss:\$delay
+done
+
+EOD;
+ /* End gateway quality */
+
$rrdupdatesh .= "sleep 60\n";
$rrdupdatesh .= "done\n";
log_error(gettext("Creating rrd update script"));
@@ -989,41 +1029,6 @@ function enable_rrd_graphing() {
}
-# Create gateway quality RRD with settings suitable for pfSense graph set.
-function create_gateway_quality_rrd($rrd_file) {
- global $g;
-
- $rrdinterval = 60;
- $valid = $rrdinterval * 2;
- $rrdtool = "/usr/bin/nice -n20 /usr/local/bin/rrdtool";
-
- /* GATEWAY QUALITY, set up the rrd file */
- if (!file_exists("$rrd_file")) {
- $rrdcreate = "$rrdtool create $rrd_file --step $rrdinterval ";
- $rrdcreate .= "DS:loss:GAUGE:$valid:0:100 ";
- $rrdcreate .= "DS:delay:GAUGE:$valid:0:100000 ";
- $rrdcreate .= "RRA:AVERAGE:0.5:1:1200 ";
- $rrdcreate .= "RRA:AVERAGE:0.5:5:720 ";
- $rrdcreate .= "RRA:AVERAGE:0.5:60:1860 ";
- $rrdcreate .= "RRA:AVERAGE:0.5:1440:2284 ";
-
- create_new_rrd($rrdcreate);
- unset($rrdcreate);
- }
-
- /* enter UNKNOWN values in the RRD so it knows we rebooted. */
- if (platform_booting()) {
- if (!is_dir("{$g['vardb_path']}/rrd")) {
- mkdir("{$g['vardb_path']}/rrd", 0775);
- }
-
- @chown("{$g['vardb_path']}/rrd", "nobody");
-
- mwexec("$rrdtool update $rrd_file N:U:U");
- }
- unset($rrdtool, $rrdinterval, $valid, $rrd_file);
-}
-
function kill_traffic_collector() {
global $g;
OpenPOWER on IntegriCloud