[SP-pm] Monitoramento e estatísticas

Stanislaw Pusep creaktive at gmail.com
Wed Nov 2 06:38:58 PDT 2011


Fala André!
O sistema distribuido que estou desenvolvendo no momento se baseia
justamente em Gearman, e uso MongoDB (in fact, Log::Dispatch +
Log::Dispatch::MongoDB [1]) para armazenar logs. O meu caso é bastante
específico, os processos interligados pelo Gearman ficam "jogando" um
documento estruturado (relativamente pequeno) um para o outro, e preciso
que, em caso de falha em algum ponto, o log traga o estado do documento
inteiro exatamente naquele ponto. A grande vantagem, para mim, é a natureza
assíncrona do MongoDB, e os seus "capped collections", que rotacionam o log
automagicamente [2].

1. https://metacpan.org/module/Log::Dispatch::MongoDB
2. http://blog.mongodb.org/post/172254834/mongodb-is-fantastic-for-logging

ABS()



2011/11/1 Tiago Peczenyj <tiago.peczenyj em gmail.com>

> Ola
>
> o que vc pode fazer é gravar todos os dados que vc quer em um registro
> inteiro do banco de dados.
>
> depois tenha algo que leia estas linhas e transforme do jeito que vc quer
> em outra database, que vc possa manipular a vontade sem medo de ter varios
> inserts.
>
> isso é basicamente um Data Warehouse. de uma lida nos conceitos.
>
> 2011/11/1 Andre Carneiro <andregarciacarneiro em gmail.com>
>
>> Heil Perl!
>>
>>
>> Pessoal, preciso de um 'norte' para resolver um problema de arquitetura
>> de software. Fiz aqui no meu trabalho um 'log parser' distribuído, que gera
>> alguns dados de estatísticas que eu preciso capturar isso de alguma forma,
>> mas ainda não sei bem como fazer.
>>
>> A arquitetura resumida é o seguinte:
>>
>> - um daemon que, de tempos em tempos, lê arquivos de log e o divide em
>> vários arquivos menores, zipa esses arquivos e move para um outro
>> diretório. Chamo isso de 'dispatcher';
>> - um daemon que lê os arquivo gerados pelo 'dispatchers', e constrói jobs
>> através do módulo Gearman::Client e os envia para um ou mais servidores
>> para que os jobs sejam processados. Chamo isso de 'jobmanager';
>> - Em várias máquinas existem(na verdade 'existirão' :D ) os servidores de
>> 'jobs'(outros daemons ), que recebem as requisições do 'jobmanager' via
>> gearman e inicia o processamento dos logs, de fato, através do módulo
>> Gearman::Worker, de maneira que a resposta não é esperada pelo JobManager.
>>
>>
>> Problema:
>>
>> Preciso gravar os dados utilizados nas estatístifcas, além de outras
>> informações, mas não sei qual seria a melhor forma de fazer isso
>> considerando que vários workers estariam gravando os dados de vários
>> servidores diferentes, e a idéia é não centralizar isso num banco de dados
>> relacional, evitando concorrência, já que o ambiente aqui por enquanto não
>> suporta clusterização de banco de dados. Eu pensei em gravar os dados
>> localmente em cada máquina onde os workers gravaram e enviar esses dados
>> para um monitor central, ou deixar o dado disponível de alguma forma para
>> que o monitor central soubesse a quantidade de dados que está sendo
>> processada e de onde. Não sei se fui claro...
>>
>> Alguém poderia dar uma sugestão, por gentileza?
>>
>>
>> Antecipadamente agradeço!
>>
>>
>>
>> Cheers!
>>
>> --
>> André Garcia Carneiro
>> Analista/Desenvolvedor Perl
>> (11)82907780
>>
>> =begin disclaimer
>>   Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>  SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>> =end disclaimer
>>
>>
>
>
> --
> Tiago B. Peczenyj
> Linux User #405772
>
> http://pacman.blog.br
>
> =begin disclaimer
>   Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>  SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
>
-------------- Pr�xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20111102/83b9443d/attachment.html>


More information about the SaoPaulo-pm mailing list