Home Thunder Snarf

Sobre o Thunder Snarf

O Thunder Snarf é um software de relatório web para o Thunder Cache Professional cujo principal objetivo é oferecer uma visão estratégica de como e o quê o Thunder está fazendo Cache, gerando valor agregado no apoio a decisão sobre como melhorar a eficiência geral da aceleração web oferecida pelo Thunder.

O Snarf foi desenvolvido pela FreeBSD Brasil LTDA, parceira estratégica da equipe BM Software no desenvolvimento do Thunder Cache. O desenvolvimento foi financiado por Rodrigo de Oliveira Gomes, empresário e usuário Thunder Cache. Algumas partes do sistema foram baseados nas idéias e planejamentos de Marcos A. Ferreira, a pedido do Sponsor do Projeto (Rodrigo).

Thunder Snarf é Software Livre, licenceado sob os termos da licença GNU/GPL v2.0 (sponsor demanded).

O Thunder Snarf

O Thunder Snarf é composto essencialmente de cinco componentes principais:

  • /usr/local/www/thundersnarf: estrutura do sistema de relatórios web, escritos em php;
  • /usr/local/bin/thundersnarf: wrapper que faz o parsing inicial, validação e rotacionamentos dos arquivos access.log do Thunder Cache, e e evoca o poller para importação dos dados; é projetado para ser executado via crontab;
  • /usr/local/bin/thundersnarf-poll.php: rotina principal, chamada pelo thundersnarf, que faz todo o polling dos dados do access.log e adiciona-os em banco de dados;
  • /usr/local/www/thundersnarf/protected/data/db/pgsql.sql: estrutura de modelagem do banco de dados PostgreSQL do qual o thundersnarf depende;
  • /usr/local/www/thundersnarf/protected/config/thundersnarf.conf: variáveis de configuração da base de dados e do diretório do thunderconf.

O Thunder Snarf foi projetado originalmente para FreeBSD. Pode ser utilizado em Linux, mas algumas particularidades não são compatíveis (como estatísticas de I/O de disco, por exemplo);

O Wrapper

O wrapper (/usr/local/bin/thundersnarf) deve ser evocado por crontab(1) em periodicidades nunca inferiores a 5 minutos; o periodicidade deve ser sempre indicada, em minutos, como argumento a chamada do wrapper. Por exemplo, a cada 5 minutos:

*/5 * * * * root /usr/local/bin/thundersnarf 5

 

Ou a cada hora:

* */1 * * * root /usr/local/bin/thundersnarf 60

O Poller

O poller (/usr/local/bin/thundersnarf-poll) deve ser evocado através do Wrapper, exceto para propiciar a limpeza do banco de dados. Nesse caso o poller pode ser chamado diretamente em linha de comando através do argumento -d. Dessa forma o processo de limpeza removerá do banco todos os dados gravados há mais de _d_ dias. Por exemplo, para limpar o banco mantendo apenas dados dos últimos 60 dias:

 

/usr/local/bin/thundersnarf-poll -d 60

Considerações e Cuidados

O processo de polling apesar de altamente otimizado, é essencialmente um processo de parsing de arquivo de log, o que por si só tem uma natureza de alto consumo de processamento. Dessa forma dependendo da sua carga de acesso ao Thunder Cache pode ser necessário avaliar a melhor periodicidade para o polling.

Alguns ambientes tirarão melhor proveito de uma estratégia de polling mais curta, a cada poucos minutos, garantindo uma janela pequena de tempo onde o access.log é populado e portanto tornando processos de polling mais rápidos (por haver menos dados);

Outros ambientes podem demandar perfis mais longos de pico de acesso, e podem ter menor necessidade de relatório recente, sendo candidatos para um polling único, uma vez por dia, nas madrugadas;

Em todos os casos as seguintes considerações devem ser observadas:

  • Evite ter o diretório de cache (CACHEDIR) do thunder no mesmo disco que o Banco de Dados PostgreSQL ou o access.log;
  • Evite o polling nos momentos em que as consultas aos relatórios (ambiente web) coincidem
  • Tome cuidado com encavalamento: não adianta colocar o polling em períodos curtos se o equipamento não der conta de processar todas as informações em pouco tempo, pois existe o risco de um novo polling ser iniciado sem o anterior completa

Disponibilidade

O Thunder Snarf desde o commit do PR 146875 está disponível através da Coleção de Ports do FreeBSD, e é esse o método principal de instalação (recomendado). No ports, está disponível em:

 

/usr/ports/www/thundersnarf

 

Contribuições

O Snarf é GPLv2.0. Se você fizer uma modificação e quiser que ela seja incorporada formalmente no Thunder Snarf, envie suas mudanças para nós.

Source Code / Download

Além de disponível através do Ports, o Thunder Snarf pode também ser obtido aqui. Se preferir utilizar o Thunder Snarf sem ser através do Ports, o pacote acompanha instruções de instalação manual.

Acompanhe no menu ao lado as instruções de instalação

Créditos

Sponsor: Rodrigo de Oliveira Gomes (NetCom Internet)
Desenvolvimento: FreeBSD Brasil LTDA
Desenvolver Principal: Este endereço de e-mail está protegido contra spambots. Você deve habilitar o JavaScript para visualizá-lo.
Modelagem da DB em PostgreSQL: Este endereço de e-mail está protegido contra spambots. Você deve habilitar o JavaScript para visualizá-lo.
Apoio: BM Software
Framework: Desenvolvido utilizando o Yii Framework (não Wii, ninguém jogou vídeo-game enquanto programava)