From 874077107e00ae2f65378f4246cae27d244c1bf4 Mon Sep 17 00:00:00 2001 From: DL6ER Date: Wed, 20 Sep 2017 22:09:11 +0200 Subject: [PATCH 1/4] Have API return floats instead of ints for the values that are percentages computed by FTL --- api_FTL.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/api_FTL.php b/api_FTL.php index 55d8a17e..7e259a69 100644 --- a/api_FTL.php +++ b/api_FTL.php @@ -179,11 +179,11 @@ if (isset($_GET['getForwardDestinations']) && $auth) $tmp = explode(" ",$line); if(count($tmp) == 4) { - $forward_dest[$tmp[3]."|".$tmp[2]] = intval($tmp[1]); + $forward_dest[$tmp[3]."|".$tmp[2]] = floatval($tmp[1]); } else { - $forward_dest[$tmp[2]] = intval($tmp[1]); + $forward_dest[$tmp[2]] = floatval($tmp[1]); } } @@ -199,7 +199,7 @@ if (isset($_GET['getQueryTypes']) && $auth) foreach($return as $ret) { $tmp = explode(": ",$ret); - $querytypes[$tmp[0]] = intval($tmp[1]); + $querytypes[$tmp[0]] = floatval($tmp[1]); } $result = array('querytypes' => $querytypes); @@ -257,7 +257,7 @@ if (isset($_GET['overTimeDataForwards']) && $auth) { $tmp = explode(" ",$line); for ($i=0; $i < count($tmp)-1; $i++) { - $over_time[intval($tmp[0])][$i] = intval($tmp[$i+1]); + $over_time[intval($tmp[0])][$i] = floatval($tmp[$i+1]); } } $result = array('over_time' => $over_time); @@ -274,11 +274,11 @@ if (isset($_GET['getForwardDestinationNames']) && $auth) $tmp = explode(" ",$line); if(count($tmp) == 4) { - $forward_dest[$tmp[3]."|".$tmp[2]] = intval($tmp[1]); + $forward_dest[$tmp[3]."|".$tmp[2]] = floatval($tmp[1]); } else { - $forward_dest[$tmp[2]] = intval($tmp[1]); + $forward_dest[$tmp[2]] = floatval($tmp[1]); } } @@ -296,7 +296,7 @@ if (isset($_GET['overTimeDataQueryTypes']) && $auth) { $tmp = explode(" ",$line); for ($i=0; $i < count($tmp)-1; $i++) { - $over_time[intval($tmp[0])][$i] = intval($tmp[$i+1]); + $over_time[intval($tmp[0])][$i] = floatval($tmp[$i+1]); } } $result = array('over_time' => $over_time); From b89c40d63f49250174d8f937c1a4cf19cacba48f Mon Sep 17 00:00:00 2001 From: DL6ER Date: Wed, 20 Sep 2017 22:11:54 +0200 Subject: [PATCH 2/4] Simplify function updateQueryTypesOverTime() as data obtained from API is already normalized Signed-off-by: DL6ER --- scripts/pi-hole/js/index.js | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/scripts/pi-hole/js/index.js b/scripts/pi-hole/js/index.js index 6bbd6296..46be0548 100644 --- a/scripts/pi-hole/js/index.js +++ b/scripts/pi-hole/js/index.js @@ -118,17 +118,9 @@ function updateQueryTypesOverTime() { // New style: Get Unix timestamps d = new Date(1000*h); - var sum = plotdata[j][0] + plotdata[j][1]; - var A = 0, AAAA = 0; - if(sum > 0) - { - A = plotdata[j][0]/sum; - AAAA = plotdata[j][1]/sum; - } - queryTypeChart.data.labels.push(d); - queryTypeChart.data.datasets[0].data.push(A); - queryTypeChart.data.datasets[1].data.push(AAAA); + queryTypeChart.data.datasets[0].data.push(plotdata[j][0]); + queryTypeChart.data.datasets[1].data.push(plotdata[j][1]); } } $("#query-types .overlay").hide(); From e7fc65b684071ea53d506102c662ed71966b28f4 Mon Sep 17 00:00:00 2001 From: DL6ER Date: Wed, 20 Sep 2017 22:15:19 +0200 Subject: [PATCH 3/4] Simplify function updateForwardedOverTime() as data obtained from API is already normalized Signed-off-by: DL6ER --- scripts/pi-hole/js/index.js | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/scripts/pi-hole/js/index.js b/scripts/pi-hole/js/index.js index 46be0548..009d63fb 100644 --- a/scripts/pi-hole/js/index.js +++ b/scripts/pi-hole/js/index.js @@ -119,8 +119,8 @@ function updateQueryTypesOverTime() { d = new Date(1000*h); queryTypeChart.data.labels.push(d); - queryTypeChart.data.datasets[0].data.push(plotdata[j][0]); - queryTypeChart.data.datasets[1].data.push(plotdata[j][1]); + queryTypeChart.data.datasets[0].data.push(1e-2*plotdata[j][0]); + queryTypeChart.data.datasets[1].data.push(1e-2*plotdata[j][1]); } } $("#query-types .overlay").hide(); @@ -235,18 +235,10 @@ function updateForwardedOverTime() { for (j in timestamps) { if (!{}.hasOwnProperty.call(timestamps, j)) continue; - var sum = 0.0; for (key in plotdata[j]) { if (!{}.hasOwnProperty.call(plotdata[j], key)) continue; - sum += plotdata[j][key]; - } - var dd = []; - for (key in plotdata[j]) - { - if (!{}.hasOwnProperty.call(plotdata[j], key)) continue; - var singlepoint = plotdata[j][key]; - forwardDestinationChart.data.datasets[key].data.push(singlepoint/sum); + forwardDestinationChart.data.datasets[key].data.push(1e-2*plotdata[j][key]); } var d = new Date(1000*parseInt(timestamps[j])); From aef4159f44dcb9c2b4400978f195eaca5774e2fb Mon Sep 17 00:00:00 2001 From: DL6ER Date: Wed, 20 Sep 2017 22:28:46 +0200 Subject: [PATCH 4/4] Add tooltips to dognuth charts Signed-off-by: DL6ER --- scripts/pi-hole/js/index.js | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/scripts/pi-hole/js/index.js b/scripts/pi-hole/js/index.js index 009d63fb..e2b0660d 100644 --- a/scripts/pi-hole/js/index.js +++ b/scripts/pi-hole/js/index.js @@ -806,6 +806,19 @@ $(document).ready(function() { display: true, position: "right" }, + tooltips: { + enabled: true, + callbacks: { + title: function(tooltipItem, data) { + return "Query types"; + }, + label: function(tooltipItems, data) { + var dataset = data.datasets[tooltipItems.datasetIndex]; + var label = data.labels[tooltipItems.index]; + return label + ": " + dataset.data[tooltipItems.index].toFixed(1) + "%"; + } + } + }, animation: { duration: 2000 }, @@ -831,6 +844,19 @@ $(document).ready(function() { display: true, position: "right" }, + tooltips: { + enabled: true, + callbacks: { + title: function(tooltipItem, data) { + return "Forward destinations"; + }, + label: function(tooltipItems, data) { + var dataset = data.datasets[tooltipItems.datasetIndex]; + var label = data.labels[tooltipItems.index]; + return label + ": " + dataset.data[tooltipItems.index].toFixed(1) + "%"; + } + } + }, animation: { duration: 2000 },