diff --git a/src/warden-server/contrib/wardenweb/graph_HostnameServiceTypeActivityUniqSource.php b/src/warden-server/contrib/wardenweb/graph_HostnameServiceTypeActivityUniqSource.php new file mode 100644 index 0000000000000000000000000000000000000000..b63f433c54708acb29d20c09ac3090677d483558 --- /dev/null +++ b/src/warden-server/contrib/wardenweb/graph_HostnameServiceTypeActivityUniqSource.php @@ -0,0 +1,56 @@ +<? +include("db.php"); + + +if(!isset($_GET['per'])){$_GET['per']="hour";} +switch( $_GET['per']) { + case "hour": + $agg = 1; + break; + case "day": + $agg = 24; + break; + case "month": + $agg = 24*30; // -30.5 ? + break; +} + +#sqli todo +#selector +if(!IsSet($_GET['where'])) { + $where="detected>from_unixtime(0)"; +} else { + $where = base64_decode($_GET['where']); +} + + +#seznam sloupcu ve vysledku, todo dyn, coz je ovsem seznam sledovanych velicin +$cols=array(); +$i=0; +$cols["count"]=$i++; +$count_cols=count($cols); + + + + +#select data +$data=array(); +#casova posloupnost +# premapuju podle staticky alokovanych sloupcu, posilam to rovnou do grafu +$q = "SELECT unix_timestamp(detected)-(unix_timestamp(detected)%(3600*$agg)) as t, count(distinct source) as count FROM events WHERE $where GROUP BY t;"; +#var_dump($q); +$res = mysql_query($q, $db); +while ($tmp = mysql_fetch_assoc($res)) { + #var_dump($tmp); + $d=array_fill(0, $count_cols, 0); + $d[ $cols[ "count" ] ] = (int)$tmp["count"]; + array_unshift($d, (int)$tmp["t"]); + array_push($data, $d); +} + + +#print json_encode($d); +print json_encode(array("cols"=>array_keys($cols), "data"=>$data)); + +?> + diff --git a/src/warden-server/contrib/wardenweb/graph_HostnameServiceTypeActivityUniqSource_html.php b/src/warden-server/contrib/wardenweb/graph_HostnameServiceTypeActivityUniqSource_html.php new file mode 100644 index 0000000000000000000000000000000000000000..efcbe4c0324174cc693d7265902b9feff80be4bc --- /dev/null +++ b/src/warden-server/contrib/wardenweb/graph_HostnameServiceTypeActivityUniqSource_html.php @@ -0,0 +1,57 @@ +<? if(!isset($_GET['per'])){$_GET['per']="day";} ?> +<html> + <head> + <script type="text/javascript" language="javascript" src="datatables/media/js/jquery.js"></script> + <script type="text/javascript" src="https://www.google.com/jsapi"></script> + <script type="text/javascript"> + google.load("visualization", "1", {packages:["corechart"]}); + google.setOnLoadCallback(fetchData); + + function fetchData() { + <? #TODO: fuj + if(!isSet($_GET['where'])) { ?> + $.getJSON('graph_HostnameServiceTypeActivityUniqSource.php?per=<? print $_GET['per'];?>', drawChart); + <? } else { ?> + $.getJSON('graph_HostnameServiceTypeActivityUniqSource.php?per=<? print $_GET['per'];?>&where=<?print $_GET['where'];?>', drawChart); + <? } ?> + } + + function drawChart(sdata) { + //console.log(sdata); + var data = new google.visualization.DataTable(); + data.addColumn('datetime', 'Date'); + //console.log(sdata.cols); + for (var i = 0; i < sdata.cols.length; i++) { + data.addColumn('number', sdata.cols[i]); + } + + sdatalen=sdata.data.length; + if(sdatalen > 1000) { + alert("Too many rows:"+sdatalen); + sdatalen=1000; + } + + for (var i = 0; i < sdatalen; i++) { + //for (var i = 0; i < 10; i++) { + sdata.data[i][0] = new Date(sdata.data[i][0]*1000); + //console.log(sdata.data[i]); + data.addRow(sdata.data[i]); + } + var options = { + vAxis: { logScale: true, title: "count distinct source" }, + interpolateNulls: true, + ___colors:['#008000','#ff0000','#FFA500','#FA8072','#AFEEEE','#00A5C6','#DEBDDE','#000000'], + chartArea: {'width': '80%', 'height': '85%'}, + pointSize: 5 + }; + + var chart = new google.visualization.LineChart(document.getElementById('chart_div')); + chart.draw(data, options); + } + </script> + </head> + <body> + <div id="chart_div" style="width: 100%; height: 100%;"></div> + </body> +</html> + diff --git a/src/warden-server/contrib/wardenweb/show_HostnameServiceTypeActivity.php b/src/warden-server/contrib/wardenweb/show_HostnameServiceTypeActivity.php index e20a9de70ca1f630075e2430498fee3b3ff81b0a..7f8956fed9aa681ed41d6c6ed70709a392ef94d1 100644 --- a/src/warden-server/contrib/wardenweb/show_HostnameServiceTypeActivity.php +++ b/src/warden-server/contrib/wardenweb/show_HostnameServiceTypeActivity.php @@ -153,6 +153,18 @@ if( IsSet($_POST["btnSubmit"]) and !empty($where)) { ?> </td> +</tr><tr> + +<td></td> + +<td width=50%> +<? + if( IsSet($_POST["btnSubmit"]) and !empty($where)) { + print("<iframe src=\"graph_HostnameServiceTypeActivityUniqSource_html.php?per=day&where=".base64_encode($where)."\" style=\"width:100%; height:500\"></iframe>"); + } +?> +</td> + </tr>