#! /usr/local/bin/ruby # Copyright (c) 2006 Frédéric Senault. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. Neither the name of the author or any contributors may be used to # endorse or promote products derived from this software without # specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. class NetGrapher < Grapher def subtitle(id) case id when :tcp "Connexions TCP en cours" when :udp "Connexions UDP" when :tcps "Connexions TCP / s" when :tbl "Tables" end end def index(file) if(file =~ /^(.*)_net$/) then t = $1 t.gsub!(/_/, ' ') yield(file, "Divers réseau, #{t}") end end def register(link) if(link =~ /_net$/) then yield(:tcp) yield(:udp) yield(:tcps) yield(:tbl) end end def graph(link, id, gfx, file) case id when :tcp gfx.adddef('est', file, 'tcp_estab', :AVERAGE, 'Connexions TCP') gfx.addgraph(:LINE, 'est', nil, 'TCP') when :udp f2 = file.gsub(/_net$/, '_udp') gfx.adddef('con', f2, 'udpconn', :AVERAGE, 'Connexions UDP') gfx.addgraph(:LINE, 'con', nil, 'UDP') when :tcps gfx.adddef('act', file, 'tcp_active', :AVERAGE, 'Actives') gfx.adddef('pas', file, 'tcp_passive', :AVERAGE, 'Passives') gfx.adddef('fai', file, 'tcp_fail', :AVERAGE, 'Echecs') gfx.adddef('rst', file, 'tcp_reset', :AVERAGE, 'Resets') gfx.addgraph(:LINE, 'act', nil, 'Actives') gfx.addgraph(:LINE, 'pas', nil, 'Passives') gfx.addgraph(:LINE, 'fai', nil, 'Echecs') gfx.addgraph(:LINE, 'rst', nil, 'Resets') when :tbl gfx.adddef('arp', file, 'arp', :AVERAGE, 'Table ARP') gfx.adddef('rou', file, 'routing', :AVERAGE, 'Table de routage') gfx.addgraph(:LINE, 'arp', nil, 'ARP') gfx.addgraph(:LINE, 'rou', nil, 'Routes') end end end