class_pf.inc 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240
  1. <?php
  2. // $Id: class_pf.inc,v 1.4 2002/11/29 10:45:46 dijkstra Exp $
  3. require_once("class_graph.inc");
  4. class PF_Graph extends Graph {
  5. function PF_Graph() {
  6. // get all the sensible defaults from our parent class
  7. $this->init();
  8. }
  9. function execute($url) {
  10. $this->url2options($url);
  11. // and add a few private things
  12. $this->shortcut = array_merge($this->shortcut, array(
  13. "pf" => array(
  14. "brief" => array(
  15. "dsdefinition" => array(
  16. "DEF:A=".$this->get("rrdfile").":bytes:AVERAGE "),
  17. "graphdefinition" => array(
  18. 'COMMENT:" min avg max last\n"',
  19. "AREA:A#00FF00:'bytes'",
  20. "GPRINT:A:MIN:'%6.2lf %sBps'",
  21. "GPRINT:A:AVERAGE:'%6.2lf %sBps'",
  22. "GPRINT:A:MAX:'%6.2lf %sBps'",
  23. "GPRINT:A:LAST:'%6.2lf %sBps'")),
  24. "all" => array(
  25. "dsdefinition" => array(
  26. "DEF:A=".$this->get("rrdfile").":bytes_v4_in:AVERAGE ",
  27. "DEF:B=".$this->get("rrdfile").":bytes_v4_out:AVERAGE ",
  28. "DEF:C=".$this->get("rrdfile").":bytes_v6_in:AVERAGE ",
  29. "DEF:D=".$this->get("rrdfile").":bytes_v6_out:AVERAGE ",
  30. "DEF:E=".$this->get("rrdfile").":packets_v4_in_pass:AVERAGE ",
  31. "DEF:F=".$this->get("rrdfile").":packets_v4_in_drop:AVERAGE ",
  32. "DEF:G=".$this->get("rrdfile").":packets_v4_out_pass:AVERAGE ",
  33. "DEF:H=".$this->get("rrdfile").":packets_v4_out_drop:AVERAGE ",
  34. "DEF:J=".$this->get("rrdfile").":packets_v6_in_pass:AVERAGE ",
  35. "DEF:K=".$this->get("rrdfile").":packets_v6_in_drop:AVERAGE ",
  36. "DEF:L=".$this->get("rrdfile").":packets_v6_out_pass:AVERAGE ",
  37. "DEF:M=".$this->get("rrdfile").":packets_v6_out_drop:AVERAGE ",
  38. "DEF:N=".$this->get("rrdfile").":states_entries:MAX ",
  39. "DEF:O=".$this->get("rrdfile").":states_searches:AVERAGE ",
  40. "DEF:P=".$this->get("rrdfile").":states_inserts:AVERAGE ",
  41. "DEF:Q=".$this->get("rrdfile").":states_removals:AVERAGE ",
  42. "DEF:R=".$this->get("rrdfile").":counters_match:AVERAGE ",
  43. "DEF:S=".$this->get("rrdfile").":counters_badoffset:AVERAGE ",
  44. "DEF:T=".$this->get("rrdfile").":counters_fragment:AVERAGE ",
  45. "DEF:U=".$this->get("rrdfile").":counters_short:AVERAGE ",
  46. "DEF:V=".$this->get("rrdfile").":counters_normalize:AVERAGE ",
  47. "DEF:W=".$this->get("rrdfile").":counters_memory:AVERAGE "),
  48. "graphdefinition" => array(
  49. 'COMMENT:" min avg max last\n"',
  50. 'LINE1:A#000000:"bytes_v4_in"',
  51. "GPRINT:A:MIN:' %4.2lf %sBps'",
  52. "GPRINT:A:AVERAGE:'%4.2lf %sBps'",
  53. "GPRINT:A:MAX:'%4.2lf %sBps'",
  54. 'GPRINT:A:LAST:"%4.2lf %sBps\n"',
  55. 'LINE1:B#0B0B0B:"bytes_v4_out"',
  56. "GPRINT:B:MIN:' %4.2lf %sBps'",
  57. "GPRINT:B:AVERAGE:'%4.2lf %sBps'",
  58. "GPRINT:B:MAX:'%4.2lf %sBps'",
  59. 'GPRINT:B:LAST:"%4.2lf %sBps\n"',
  60. 'LINE1:C#161616:"bytes_v6_in"',
  61. "GPRINT:C:MIN:' %4.2lf %sBps'",
  62. "GPRINT:C:AVERAGE:'%4.2lf %sBps'",
  63. "GPRINT:C:MAX:'%4.2lf %sBps'",
  64. 'GPRINT:C:LAST:"%4.2lf %sBps\n"',
  65. 'LINE1:D#212121:"bytes_v6_out"',
  66. "GPRINT:D:MIN:' %4.2lf %sBps'",
  67. "GPRINT:D:AVERAGE:'%4.2lf %sBps'",
  68. "GPRINT:D:MAX:'%4.2lf %sBps'",
  69. 'GPRINT:D:LAST:"%4.2lf %sBps\n"',
  70. 'LINE1:E#2C2C2C:"packets_v4_in_pass"',
  71. "GPRINT:E:MIN:' %4.2lf '",
  72. "GPRINT:E:AVERAGE:'%4.2lf '",
  73. "GPRINT:E:MAX:'%4.2lf '",
  74. 'GPRINT:E:LAST:"%4.2lf\n"',
  75. 'LINE1:F#373737:"packets_v4_in_drop"',
  76. "GPRINT:F:MIN:' %4.2lf '",
  77. "GPRINT:F:AVERAGE:'%4.2lf '",
  78. "GPRINT:F:MAX:'%4.2lf '",
  79. 'GPRINT:F:LAST:"%4.2lf\n"',
  80. 'LINE1:G#424242:"packets_v4_out_pass"',
  81. "GPRINT:G:MIN:'%4.2lf '",
  82. "GPRINT:G:AVERAGE:'%4.2lf '",
  83. "GPRINT:G:MAX:'%4.2lf '",
  84. 'GPRINT:G:LAST:"%4.2lf\n"',
  85. 'LINE1:H#4D4D4D:"packets_v4_out_drop"',
  86. "GPRINT:H:MIN:'%4.2lf '",
  87. "GPRINT:H:AVERAGE:'%4.2lf '",
  88. "GPRINT:H:MAX:'%4.2lf '",
  89. 'GPRINT:H:LAST:"%4.2lf\n"',
  90. 'LINE1:J#585858:"packets_v6_in_pass"',
  91. "GPRINT:J:MIN:' %4.2lf '",
  92. "GPRINT:J:AVERAGE:'%4.2lf '",
  93. "GPRINT:J:MAX:'%4.2lf '",
  94. 'GPRINT:J:LAST:"%4.2lf\n"',
  95. 'LINE1:K#636363:"packets_v6_in_drop"',
  96. "GPRINT:K:MIN:' %4.2lf '",
  97. "GPRINT:K:AVERAGE:'%4.2lf '",
  98. "GPRINT:K:MAX:'%4.2lf '",
  99. 'GPRINT:K:LAST:"%4.2lf\n"',
  100. 'LINE1:L#6E6E6E:"packets_v6_out_pass"',
  101. "GPRINT:L:MIN:'%4.2lf '",
  102. "GPRINT:L:AVERAGE:'%4.2lf '",
  103. "GPRINT:L:MAX:'%4.2lf '",
  104. 'GPRINT:L:LAST:"%4.2lf\n"',
  105. 'LINE1:M#797979:"packets_v6_out_drop"',
  106. "GPRINT:M:MIN:'%4.2lf '",
  107. "GPRINT:M:AVERAGE:'%4.2lf '",
  108. "GPRINT:M:MAX:'%4.2lf '",
  109. 'GPRINT:M:LAST:"%4.2lf\n"',
  110. 'LINE1:N#848484:"states_entries"',
  111. "GPRINT:N:MIN:' %4.2lf '",
  112. "GPRINT:N:AVERAGE:'%4.2lf '",
  113. "GPRINT:N:MAX:'%4.2lf '",
  114. 'GPRINT:N:LAST:"%4.2lf\n"',
  115. 'LINE1:O#8F8F8F:"states_searches"',
  116. "GPRINT:O:MIN:' %4.2lf '",
  117. "GPRINT:O:AVERAGE:'%4.2lf '",
  118. "GPRINT:O:MAX:'%4.2lf '",
  119. 'GPRINT:O:LAST:"%4.2lf\n"',
  120. 'LINE1:P#9A9A9A:"states_inserts"',
  121. "GPRINT:P:MIN:' %4.2lf '",
  122. "GPRINT:P:AVERAGE:'%4.2lf '",
  123. "GPRINT:P:MAX:'%4.2lf '",
  124. 'GPRINT:P:LAST:"%4.2lf\n"',
  125. 'LINE1:Q#A5A5A5:"states_removals"',
  126. "GPRINT:Q:MIN:' %4.2lf '",
  127. "GPRINT:Q:AVERAGE:'%4.2lf '",
  128. "GPRINT:Q:MAX:'%4.2lf '",
  129. 'GPRINT:Q:LAST:"%4.2lf\n"',
  130. 'LINE1:R#B0B0B0:"counters_match"',
  131. "GPRINT:R:MIN:' %4.2lf '",
  132. "GPRINT:R:AVERAGE:'%4.2lf '",
  133. "GPRINT:R:MAX:'%4.2lf '",
  134. 'GPRINT:R:LAST:"%4.2lf\n"',
  135. 'LINE1:S#BBBBBB:"counters_badoffset"',
  136. "GPRINT:S:MIN:' %4.2lf '",
  137. "GPRINT:S:AVERAGE:'%4.2lf '",
  138. "GPRINT:S:MAX:'%4.2lf '",
  139. 'GPRINT:S:LAST:"%4.2lf\n"',
  140. 'LINE1:T#C6C6C6:"counters_fragment"',
  141. "GPRINT:T:MIN:' %4.2lf '",
  142. "GPRINT:T:AVERAGE:'%4.2lf '",
  143. "GPRINT:T:MAX:'%4.2lf '",
  144. 'GPRINT:T:LAST:"%4.2lf\n"',
  145. 'LINE1:U#D1D1D1:"counters_short"',
  146. "GPRINT:U:MIN:' %4.2lf '",
  147. "GPRINT:U:AVERAGE:'%4.2lf '",
  148. "GPRINT:U:MAX:'%4.2lf '",
  149. 'GPRINT:U:LAST:"%4.2lf\n"',
  150. 'LINE1:V#DCDCDC:"counters_normalize"',
  151. "GPRINT:V:MIN:' %4.2lf '",
  152. "GPRINT:V:AVERAGE:'%4.2lf '",
  153. "GPRINT:V:MAX:'%4.2lf '",
  154. 'GPRINT:V:LAST:"%4.2lf\n"',
  155. 'LINE1:W#E7E7E7:"counters_memory"',
  156. "GPRINT:W:MIN:' %4.2lf '",
  157. "GPRINT:W:AVERAGE:'%4.2lf '",
  158. "GPRINT:W:MAX:'%4.2lf '",
  159. 'GPRINT:W:LAST:"%4.2lf\n"')),
  160. "state" => array(
  161. "dsdefinition" => array(
  162. "DEF:N=".$this->get("rrdfile").":states_entries:MAX ",
  163. "DEF:O=".$this->get("rrdfile").":states_searches:AVERAGE ",
  164. "DEF:P=".$this->get("rrdfile").":states_inserts:AVERAGE ",
  165. "DEF:Q=".$this->get("rrdfile").":states_removals:AVERAGE ",
  166. "CDEF:NQ=0,Q,- "),
  167. "graphdefinition" => array(
  168. 'COMMENT:" min avg max last\n"',
  169. 'AREA:N#00FF00:"states_entries"',
  170. "GPRINT:N:MIN:'%4.2lf'",
  171. "GPRINT:N:AVERAGE:'%4.2lf'",
  172. "GPRINT:N:MAX:'%4.2lf'",
  173. 'GPRINT:N:LAST:"%4.2lf\n"',
  174. 'LINE1:P#0000FF:"states_inserts "',
  175. "GPRINT:P:MIN:'%4.2lf'",
  176. "GPRINT:P:AVERAGE:'%4.2lf'",
  177. "GPRINT:P:MAX:'%4.2lf'",
  178. 'GPRINT:P:LAST:"%4.2lf\n"',
  179. 'LINE1:NQ#FF0000:"states_removals"',
  180. "GPRINT:Q:MIN:'%4.2lf'",
  181. "GPRINT:Q:AVERAGE:'%4.2lf'",
  182. "GPRINT:Q:MAX:'%4.2lf'",
  183. 'GPRINT:Q:LAST:"%4.2lf\n"')),
  184. "performance" => array(
  185. "dsdefinition" => array(
  186. 'COMMENT:" min avg max last\n"',
  187. "DEF:O=".$this->get("rrdfile").":states_searches:AVERAGE ",
  188. "DEF:R=".$this->get("rrdfile").":counters_match:AVERAGE ",
  189. "DEF:S=".$this->get("rrdfile").":counters_badoffset:AVERAGE ",
  190. "DEF:T=".$this->get("rrdfile").":counters_fragment:AVERAGE ",
  191. "DEF:U=".$this->get("rrdfile").":counters_short:AVERAGE ",
  192. "DEF:V=".$this->get("rrdfile").":counters_normalize:AVERAGE ",
  193. "DEF:W=".$this->get("rrdfile").":counters_memory:AVERAGE "),
  194. "graphdefinition" => array(
  195. 'LINE1:O#FFD900:"states_searches "',
  196. "GPRINT:O:MIN:'%4.2lf'",
  197. "GPRINT:O:AVERAGE:'%4.2lf'",
  198. "GPRINT:O:MAX:'%4.2lf'",
  199. 'GPRINT:O:LAST:"%4.2lf\n"',
  200. 'LINE1:R#FD6724:"counters_match "',
  201. "GPRINT:R:MIN:'%4.2lf'",
  202. "GPRINT:R:AVERAGE:'%4.2lf'",
  203. "GPRINT:R:MAX:'%4.2lf'",
  204. 'GPRINT:R:LAST:"%4.2lf\n"',
  205. 'LINE1:S#E61800:"counters_badoffset"',
  206. "GPRINT:S:MIN:'%4.2lf'",
  207. "GPRINT:S:AVERAGE:'%4.2lf'",
  208. "GPRINT:S:MAX:'%4.2lf'",
  209. 'GPRINT:S:LAST:"%4.2lf\n"',
  210. 'LINE1:T#AB2934:"counters_fragment "',
  211. "GPRINT:T:MIN:'%4.2lf'",
  212. "GPRINT:T:AVERAGE:'%4.2lf'",
  213. "GPRINT:T:MAX:'%4.2lf'",
  214. 'GPRINT:T:LAST:"%4.2lf\n"',
  215. 'LINE1:U#B2888B:"counters_short "',
  216. "GPRINT:U:MIN:'%4.2lf'",
  217. "GPRINT:U:AVERAGE:'%4.2lf'",
  218. "GPRINT:U:MAX:'%4.2lf'",
  219. 'GPRINT:U:LAST:"%4.2lf\n"',
  220. 'LINE1:V#CC91BA:"counters_normalize"',
  221. "GPRINT:V:MIN:'%4.2lf'",
  222. "GPRINT:V:AVERAGE:'%4.2lf'",
  223. "GPRINT:V:MAX:'%4.2lf'",
  224. 'GPRINT:V:LAST:"%4.2lf\n"',
  225. 'LINE1:W#6A2990:"counters_memory "',
  226. "GPRINT:W:MIN:'%4.2lf'",
  227. "GPRINT:W:AVERAGE:'%4.2lf'",
  228. "GPRINT:W:MAX:'%4.2lf'",
  229. "GPRINT:W:LAST:'%4.2lf\n'")))));
  230. $this->graphsettings["rawcmdline"] .=" -v 'pf'";
  231. $this->graphdefaults = array_merge($this->graphdefaults,
  232. $this->shortcut["pf"]["state"]);
  233. $this->url2options($url);
  234. }
  235. }
  236. ?>