Pages

Saturday, November 25, 2006

SuperKaramba: Monitorando o Tráfego Rede

Considere que deseja monitorar no mesmo gráfico o tráfego de upload e download da rede. É preciso fazer algumas considerações antes de começar a montar esse tema. Algumas dessas considerações são perguntas, usualmente, fazem parte das configurações de um tema baixado da net.

Primeiro, considere que para distinguir o upload do download cada um terá uma cor diferente. Por isso, usaremos a configuração color onde for necessário. Agora precisamos determinar a interface. Se é ppp (para discada e ASDL, exemplo: ppp0) ou eth (para conexões de rede, exemplo: eth0). Nesse tema consideraremos que a interface é ppp0. Outra pergunta que fica é: qual é a faixa de valores dos downloads ? Nesse tema, configuraremos para um limite máximo de tráfego de 300 KiB/s, não sei se é algo muito comum ou representativo da realidade diversa da internet, mas como é muito fácil adaptar isso eu vou considerar esse valor. O ideal é que seja projetado como um pouco maior do que o volume máximo do tráfego usual que quer monitorar.

Sendo assim, considere o arquivo de tema definido abaixo.
karamba x=160 y=350 w=200 h=60 interval=1000
image x=0 y=5 path="icons/network2.png"

# Imagens de escala
image x=55 y=8 path="icons/bg_rede.png"
image x=55 y=18 path="icons/bg_rede.png"

# Gráficos da Rede
graph x=55 y=8 w=88 h=27 color=182,240,182 sensor=network device="ppp0" format="%in" max=300 interval=300

graph x=55 y=8 w=88 h=29 color=240,140,140 sensor=network format="%out" device="ppp0" max=300 interval=300

#Legenda de cores
text x=195 y=34 color=182,240,182 value="-- down"
text x=195 y=41 color=240,140,140 value="-- up"
Partindo direto para a parte onde temos um gráfico, temos os seguinte bloco de linhas:
# Gráficos da Rede
graph x=55 y=8 w=88 h=27 color=182,240,182 sensor=network device="ppp0" format="%in" max=300 interval=300

graph x=55 y=8 w=88 h=29 color=240,140,140 sensor=network format="%out" device="ppp0" max=300 interval=300
A linha começa indicando que se trata de um gráfico de linha com o comando graph, logo depois vem o posicionamento relativo x, y, que já foi extensamente discutido aqui. Depois a duas informações novas que caracteriza o gráfico, são sua largura, w e sua altura, h, essas informações são importantes para definir a área de exposição do gráfico. Em seguida usamos uma distinção de cor entre as duas linhas, no caso é um tipo de cor salmão para o upload e um verde para o download, use as de sua preferência. Depois desse ponto, a explicação se torna particular para esse caso, primeiramente definimos o tipo de sensor, pode ser qualquer um dos disponíveis, mas no caso, usamos o network o sensor network precisa de duas informações, o dispositivo de conexão e o tipo de tráfego monitorado, no caso, indicamos o dispositivo, device, ppp0 e o tipo %in ou %out, eu intencionalmente posicionei os dois em posição contrária, somente para mostrar que ordem não interfere no resultado. depois, voltamos a definições do objeto graph, definindo a escala máxima. Eu implicitamente escolhi o KiB/s, portanto, max é igual a 300, por fim, definimos a taxa de aquisição. Para o monitoramente de rede, pode ser pequena.

Note uma pequena diferença no valor de h, isso permitirá visualisar as duas linhas, mesmo quando os valores forem iguais (no caso, isso nomalmente só ocorre no zero).

É muito conveniente definir uma legenda. Assim não precisará lembrar ou advinhar o que cada linha representa. Fazemos isso escrevendo com a cor utilizada em cada linha. É apenas um simples texto que tem como único charme uma cor diferente para cada linha.
#Legenda de cores
text x=195 y=34 color=182,240,182 value="-- down"
text x=195 y=41 color=240,140,140 value="-- up"
Por fim, é interessante, apesar de desnecessário, definir uma imagem de fundo para representar uma escala. Eu não sou bom em Design e sofri muito quando fiz isso a muito tempo atrás. Mas no fundo são apenas uma imagem transparente que colocada duas vezes faz a área de exposição ficar dividida em três regiões. No nosso caso, isso combina direitinho porque 300 dividido por 3 é exatamente 100. Pode imaginar o que aconteceria se a escala fosse até 200, não? Ficaria muito difícil ter uma idéia do valor ao olhar a figura. Eu diria que o ideal seria usar uma imagem com uma escala préviamente definida, mas isso dificultaria muito na generalidade. As linhas que definem o fundo do gráfico são:
# Imagens de escala
image x=55 y=8 path="icons/bg_rede.png"
image x=55 y=18 path="icons/bg_rede.png"
A imagem bg_rede.png está disponível aqui.

Só para constar, caso não queira gráficos e prefira texto, pode usar as linhas abaixo. Só não tente adicionar essas linhas no tema acima, elas não combinam muito com o tema apresentado. Elas deveriam ser utilizadas em outro local/tema.
# Velocidade da rede, em formato numérico
text x=192 y=8 sensor=network device="ppp0" format="%in KiB/s" interval=300
text x=192 y=18 sensor=network device="ppp0" format="%out KiB/s" interval=300
Bem, com isso terminamos os estudos de gráficos e com esse estudo chegamos quase no fim da série de artigos. Faltam apenas quatro. O próximo ensinará a construir regiões de cliques, depois eu farei considerações adicionais sobre, para explicar o que eu não falarei e como continuar sozinho, e por fim eu farei uma conclusão do estudo. Para fechar o quarto e último tópico será na verdade o primeiro e conterá um índice com links para todos os tópicos, isso deve facilitar muito a vida de todo mundo.

Technorati Tags:

No comments:

Post a Comment