1<?php 2 3if ($_GET['legend']) { 4 $legend = $_GET['legend']; 5} 6 7$rrd_options = " --alt-autoscale-max -E --start $from --end " . ($to - 150) . " --width $width --height $height "; 8$rrd_options .= \LibreNMS\Config::get('rrdgraph_def_text') . ' -c FONT#' . ltrim(\LibreNMS\Config::get('rrdgraph_def_text_color'), '#'); 9 10if ($height < '99') { 11 $rrd_options .= ' --only-graph'; 12} 13 14$i = 1; 15 16foreach (explode(',', $_GET['id']) as $ifid) { 17 $int = dbFetchRow('SELECT `hostname` FROM `ports` AS I, devices as D WHERE I.port_id = ? AND I.device_id = D.device_id', [$ifid]); 18 $rrd_file = get_port_rrdfile_path($int['hostname'], $ifid); 19 if (Rrd::checkRrdExists($rrd_file)) { 20 if (strstr($inverse, 'a')) { 21 $in = 'OUT'; 22 $out = 'IN'; 23 } else { 24 $in = 'IN'; 25 $out = 'OUT'; 26 } 27 28 $rrd_options .= ' DEF:inoctets' . $i . '=' . $rrd_file . ':' . $in . 'OCTETS:AVERAGE'; 29 $rrd_options .= ' DEF:outoctets' . $i . '=' . $rrd_file . ':' . $out . 'OCTETS:AVERAGE'; 30 $in_thing .= $seperator . 'inoctets' . $i . ',UN,0,' . 'inoctets' . $i . ',IF'; 31 $out_thing .= $seperator . 'outoctets' . $i . ',UN,0,' . 'outoctets' . $i . ',IF'; 32 $pluses .= $plus; 33 $seperator = ','; 34 $plus = ',+'; 35 $i++; 36 } 37}//end foreach 38 39unset($seperator); 40unset($plus); 41 42foreach (explode(',', $_GET['idb']) as $ifid) { 43 $int = dbFetchRow('SELECT `hostname` FROM `ports` AS I, devices as D WHERE I.port_id = ? AND I.device_id = D.device_id', [$ifid]); 44 $rrd_file = get_port_rrdfile_path($int['hostname'], $ifid); 45 if (Rrd::checkRrdExists($rrd_file)) { 46 if (strstr($inverse, 'b')) { 47 $in = 'OUT'; 48 $out = 'IN'; 49 } else { 50 $in = 'IN'; 51 $out = 'OUT'; 52 } 53 54 $rrd_options .= ' DEF:inoctetsb' . $i . '=' . $rrd_file . ':' . $in . 'OCTETS:AVERAGE'; 55 $rrd_options .= ' DEF:outoctetsb' . $i . '=' . $rrd_file . ':' . $out . 'OCTETS:AVERAGE'; 56 $in_thingb .= $seperator . 'inoctetsb' . $i . ',UN,0,' . 'inoctetsb' . $i . ',IF'; 57 $out_thingb .= $seperator . 'outoctetsb' . $i . ',UN,0,' . 'outoctetsb' . $i . ',IF'; 58 $plusesb .= $plus; 59 $seperator = ','; 60 $plus = ',+'; 61 $i++; 62 } 63}//end foreach 64 65unset($seperator); 66unset($plus); 67 68foreach (explode(',', $_GET['idc']) as $ifid) { 69 $int = dbFetchRow('SELECT `hostname` FROM `ports` AS I, devices as D WHERE I.port_id = ? AND I.device_id = D.device_id', [$ifid]); 70 $rrd_file = get_port_rrdfile_path($int['hostname'], $ifid); 71 if (Rrd::checkRrdExists($rrd_file)) { 72 if (strstr($inverse, 'c')) { 73 $in = 'OUT'; 74 $out = 'IN'; 75 } else { 76 $in = 'IN'; 77 $out = 'OUT'; 78 } 79 80 $rrd_options .= ' DEF:inoctetsc' . $i . '=' . $rrd_file . ':' . $in . 'OCTETS:AVERAGE'; 81 $rrd_options .= ' DEF:outoctetsc' . $i . '=' . $rrd_file . ':' . $out . 'OCTETS:AVERAGE'; 82 $in_thingc .= $seperator . 'inoctetsc' . $i . ',UN,0,' . 'inoctetsc' . $i . ',IF'; 83 $out_thingc .= $seperator . 'outoctetsc' . $i . ',UN,0,' . 'outoctetsc' . $i . ',IF'; 84 $plusesc .= $plus; 85 $seperator = ','; 86 $plus = ',+'; 87 $i++; 88 } 89}//end foreach 90 91$rrd_options .= ' CDEF:inoctets=' . $in_thing . $pluses; 92$rrd_options .= ' CDEF:outoctets=' . $out_thing . $pluses; 93$rrd_options .= ' CDEF:inoctetsb=' . $in_thingb . $plusesb; 94$rrd_options .= ' CDEF:outoctetsb=' . $out_thingb . $plusesb; 95$rrd_options .= ' CDEF:inoctetsc=' . $in_thingc . $plusesc; 96$rrd_options .= ' CDEF:outoctetsc=' . $out_thingc . $plusesc; 97$rrd_options .= ' CDEF:doutoctets=outoctets,-1,*'; 98$rrd_options .= ' CDEF:inbits=inoctets,8,*'; 99$rrd_options .= ' CDEF:outbits=outoctets,8,*'; 100$rrd_options .= ' CDEF:doutbits=doutoctets,8,*'; 101$rrd_options .= ' CDEF:doutoctetsb=outoctetsb,-1,*'; 102$rrd_options .= ' CDEF:inbitsb=inoctetsb,8,*'; 103$rrd_options .= ' CDEF:outbitsb=outoctetsb,8,*'; 104$rrd_options .= ' CDEF:doutbitsb=doutoctetsb,8,*'; 105$rrd_options .= ' CDEF:doutoctetsc=outoctetsc,-1,*'; 106$rrd_options .= ' CDEF:inbitsc=inoctetsc,8,*'; 107$rrd_options .= ' CDEF:outbitsc=outoctetsc,8,*'; 108$rrd_options .= ' CDEF:doutbitsc=doutoctetsc,8,*'; 109$rrd_options .= ' CDEF:inbits_tot=inbits,inbitsb,inbitsc,+,+'; 110$rrd_options .= ' CDEF:outbits_tot=outbits,outbitsb,outbitsc,+,+'; 111$rrd_options .= ' CDEF:inbits_stot=inbitsc,inbitsb,+'; 112$rrd_options .= ' CDEF:outbits_stot=outbitsc,outbitsb,+'; 113$rrd_options .= ' CDEF:doutbits_stot=outbits_stot,-1,*'; 114$rrd_options .= ' CDEF:doutbits_tot=outbits_tot,-1,*'; 115$rrd_options .= ' CDEF:nothing=outbits_tot,outbits_tot,-'; 116 117if ($legend == 'no') { 118 $rrd_options .= ' AREA:inbits_tot#cdeb8b:'; 119 $rrd_options .= ' AREA:doutbits_tot#cdeb8b:'; 120 $rrd_options .= ' LINE1.25:inbits_tot#aacc77:'; 121 $rrd_options .= ' LINE1.25:doutbits_tot#aacc88:'; 122 $rrd_options .= ' AREA:inbits_stot#c3d9ff:'; 123 $rrd_options .= ' AREA:doutbits_stot#c3d9ff:'; 124 $rrd_options .= ' LINE1:inbits_stot#b3a9cf:'; 125 $rrd_options .= ' LINE1:doutbits_stot#b3a9cf:'; 126 $rrd_options .= ' AREA:inbitsc#ffcc99:'; 127 $rrd_options .= ' AREA:doutbitsc#ffcc99:'; 128 $rrd_options .= ' LINE1.25:inbitsc#ddaa88'; 129 $rrd_options .= ' LINE1.25:doutbitsc#ddaa88'; 130 $rrd_options .= ' LINE1:inbits#006600:'; 131 $rrd_options .= ' LINE1:doutbits#006600:'; 132 $rrd_options .= ' LINE1:inbitsb#000099:'; 133 $rrd_options .= ' LINE1:doutbitsb#000099:'; 134 $rrd_options .= ' LINE0.5:nothing#555555:'; 135} else { 136 $rrd_options .= " COMMENT:bps\ \ \ \ \ \ \ \ \ \ \ \ Current\ \ \ Average\ \ \ \ \ \ Min\ \ \ \ \ \ Max\\\\n"; 137 $rrd_options .= ' AREA:inbits_tot#cdeb8b:ATM\ \ In\ '; 138 $rrd_options .= ' GPRINT:inbits:LAST:%6.2lf%s'; 139 $rrd_options .= ' GPRINT:inbits:AVERAGE:%6.2lf%s'; 140 $rrd_options .= ' GPRINT:inbits:MIN:%6.2lf%s'; 141 $rrd_options .= ' GPRINT:inbits:MAX:%6.2lf%s\l'; 142 $rrd_options .= ' AREA:doutbits_tot#cdeb8b:'; 143 $rrd_options .= ' COMMENT:\ \ \ \ \ \ \ Out'; 144 $rrd_options .= ' GPRINT:outbits:LAST:%6.2lf%s'; 145 $rrd_options .= ' GPRINT:outbits:AVERAGE:%6.2lf%s'; 146 $rrd_options .= ' GPRINT:outbits:MIN:%6.2lf%s'; 147 $rrd_options .= ' GPRINT:outbits:MAX:%6.2lf%s\l'; 148 $rrd_options .= ' LINE1.25:inbits_tot#aacc77:'; 149 $rrd_options .= ' LINE1.25:doutbits_tot#aacc88:'; 150 $rrd_options .= ' AREA:inbits_stot#c3d9ff:NGN\ \ In\ '; 151 $rrd_options .= ' GPRINT:inbitsb:LAST:%6.2lf%s'; 152 $rrd_options .= ' GPRINT:inbitsb:AVERAGE:%6.2lf%s'; 153 $rrd_options .= ' GPRINT:inbitsb:MIN:%6.2lf%s'; 154 $rrd_options .= ' GPRINT:inbitsb:MAX:%6.2lf%s\l'; 155 $rrd_options .= ' AREA:doutbits_stot#c3d9ff:'; 156 $rrd_options .= ' COMMENT:\ \ \ \ \ \ \ Out'; 157 $rrd_options .= ' GPRINT:outbitsb:LAST:%6.2lf%s'; 158 $rrd_options .= ' GPRINT:outbitsb:AVERAGE:%6.2lf%s'; 159 $rrd_options .= ' GPRINT:outbitsb:MIN:%6.2lf%s'; 160 $rrd_options .= ' GPRINT:outbitsb:MAX:%6.2lf%s\l'; 161 $rrd_options .= ' LINE1:inbits_stot#b3a9cf:'; 162 $rrd_options .= ' LINE1:doutbits_stot#b3a9cf:'; 163 $rrd_options .= ' AREA:inbitsc#ffcc99:Wave\ In\ '; 164 $rrd_options .= ' GPRINT:inbitsc:LAST:%6.2lf%s'; 165 $rrd_options .= ' GPRINT:inbitsc:AVERAGE:%6.2lf%s'; 166 $rrd_options .= ' GPRINT:inbitsc:MIN:%6.2lf%s'; 167 $rrd_options .= ' GPRINT:inbitsc:MAX:%6.2lf%s\l'; 168 $rrd_options .= ' AREA:doutbitsc#ffcc99:'; 169 $rrd_options .= ' COMMENT:\ \ \ \ \ \ \ Out'; 170 $rrd_options .= ' GPRINT:outbitsc:LAST:%6.2lf%s'; 171 $rrd_options .= ' GPRINT:outbitsc:AVERAGE:%6.2lf%s'; 172 $rrd_options .= ' GPRINT:outbitsc:MIN:%6.2lf%s'; 173 $rrd_options .= ' GPRINT:outbitsc:MAX:%6.2lf%s\l'; 174 $rrd_options .= ' LINE1.25:inbitsc#ddaa88'; 175 $rrd_options .= ' LINE1.25:doutbitsc#ddaa88'; 176 $rrd_options .= ' LINE1:inbits#006600:'; 177 $rrd_options .= ' LINE1:doutbits#006600:'; 178 $rrd_options .= ' LINE1:inbitsb#000099:'; 179 $rrd_options .= ' LINE1:doutbitsb#000099:'; 180 $rrd_options .= ' LINE0.5:nothing#555555:'; 181 182 $rrd_options .= ' COMMENT:Total\ \ In\ '; 183 $rrd_options .= ' GPRINT:inbits_tot:LAST:%6.2lf%s'; 184 $rrd_options .= ' GPRINT:inbits_tot:AVERAGE:%6.2lf%s'; 185 $rrd_options .= ' GPRINT:inbits_tot:MIN:%6.2lf%s'; 186 $rrd_options .= ' GPRINT:inbits_tot:MAX:%6.2lf%s\l'; 187 $rrd_options .= ' COMMENT:\ \ \ \ \ \ \ Out'; 188 $rrd_options .= ' GPRINT:outbits_tot:LAST:%6.2lf%s'; 189 $rrd_options .= ' GPRINT:outbits_tot:AVERAGE:%6.2lf%s'; 190 $rrd_options .= ' GPRINT:outbits_tot:MIN:%6.2lf%s'; 191 $rrd_options .= ' GPRINT:outbits_tot:MAX:%6.2lf%s\l'; 192}//end if 193 194if ($width <= '300') { 195 $rrd_options .= ' --font LEGEND:7:' . \LibreNMS\Config::get('mono_font') . ' --font AXIS:6:' . \LibreNMS\Config::get('mono_font') . ' --font-render-mode normal'; 196} 197