Para de perder tempo com coisas banais que não vão te agregar nada. 2013/8/26 Tiago Peczenyj <[email protected]>: > e? > > > 2013/8/26 Daniel de Oliveira Mantovani <[email protected]> >> >> Tiago, "Easy things should be easy, and hard things should be >> possible" - Larry Wall >> >> 2013/8/26 Tiago Peczenyj <[email protected]>: >> > Depois vcs me pagam uma cerveja e fica tudo sussa. >> > >> > >> > 2013/8/26 Lindolfo Lorn Rodrigues <[email protected]> >> >> >> >> Antes que eu me esqueça: desculpe-me se insultei. >> >> >> >> >> >> 2013/8/26 Lindolfo Lorn Rodrigues <[email protected]> >> >>> >> >>> Não quis insultar, apenas dar outra visão para o problema :) >> >>> >> >>> >> >>> >> >>> 2013/8/26 Tiago Peczenyj <[email protected]> >> >>>> >> >>>> foi mal, agora eu tenho algo como >> >>>> >> >>>> while(1){ >> >>>> # calcula >> >>>> # if passou um minuto envia pro zabbix >> >>>> # if passou um dia reinicia o contador >> >>>> sleep(1); >> >>>> } >> >>>> >> >>>> qualquer sugestão é bem vinda. de repente o zabbix pode continuar com >> >>>> a >> >>>> monitoria e posso usar o StatsD para essas coisas novas, ainda mais >> >>>> se for >> >>>> menos burocratico. >> >>>> >> >>>> >> >>>> 2013/8/26 Stanislaw Pusep <[email protected]> >> >>>>> >> >>>>> Seja qual for o seu objetivo, o código que você postou já está feito >> >>>>> e >> >>>>> funcionando bem, aparenemente. >> >>>>> "Eu mudaria boa parte do que você fez" e "Eu usaria o Statsd para >> >>>>> acumular o valor e exportaria via graphite", seguido de "Eu não >> >>>>> entendi bem >> >>>>> o motivo de ficar rodando a cada segundo então vou chutar" é um >> >>>>> insulto a >> >>>>> sua inteligência, IMHO >> >>>>> >> >>>>> >> >>>>> 2013/8/26 Tiago Peczenyj <[email protected]> >> >>>>>> >> >>>>>> Explain creaktive >> >>>>>> >> >>>>>> >> >>>>>> 2013/8/26 Stanislaw Pusep <[email protected]> >> >>>>>>> >> >>>>>>> Overengineering detected! >> >>>>>>> >> >>>>>>> >> >>>>>>> 2013/8/26 Lindolfo Lorn Rodrigues <[email protected]> >> >>>>>>>> >> >>>>>>>> Eu mudaria boa parte do que você fez. >> >>>>>>>> >> >>>>>>>> Não sei qual problema que você está tentando resolver com isso, >> >>>>>>>> por >> >>>>>>>> isso tudo >> >>>>>>>> isso aqui será uma mega hipotese, se puder dizer qual o problema >> >>>>>>>> está tentando >> >>>>>>>> resolver, seria legal :) >> >>>>>>>> >> >>>>>>>> Eu usaria o Statsd para acumular o valor e exportaria via >> >>>>>>>> graphite. >> >>>>>>>> >> >>>>>>>> Eu não entendi bem o motivo de ficar rodando a cada segundo então >> >>>>>>>> vou chutar: >> >>>>>>>> >> >>>>>>>> Você que capturar ações de usuário/sistema em algum lugar? >> >>>>>>>> >> >>>>>>>> Caso sim, você poderia colocar esse codigo logo depois a ação do >> >>>>>>>> usuário/sistema: >> >>>>>>>> >> >>>>>>>> my $statsd = Etsy::StatsD->new >> >>>>>>>> my $bucket = "pacman.hit_number" >> >>>>>>>> $statsd->increment($bucket); >> >>>>>>>> >> >>>>>>>> O stasd usa UDP, não vai alterar em nada perceptivo na >> >>>>>>>> perfomance, >> >>>>>>>> do seu sistema. >> >>>>>>>> >> >>>>>>>> Mandando o contador acima para o statsd ele irá acumular e mandar >> >>>>>>>> para o graphite, >> >>>>>>>> no graphite com o dado cru você pode criar várias operações de >> >>>>>>>> estatistica >> >>>>>>>> ( mediana, media, percentile..etc ) e gerar graficos. >> >>>>>>>> >> >>>>>>>> >> >>>>>>>> >> >>>>>>>> http://graphite.readthedocs.org/en/0.9.10/functions.html#module-graphite.render.functions >> >>>>>>>> >> >>>>>>>> O Statsd suporta vários backend o mais conhecido/usado deles é o >> >>>>>>>> Graphite: >> >>>>>>>> http://graphite.wikidot.com/screen-shots >> >>>>>>>> >> >>>>>>>> A Etsy tem um post explicando melhor a "metodologia" deles de >> >>>>>>>> medir >> >>>>>>>> tudo: >> >>>>>>>> >> >>>>>>>> >> >>>>>>>> >> >>>>>>>> http://codeascraft.com/2011/02/15/measure-anything-measure-everything/ >> >>>>>>>> https://github.com/etsy/statsd >> >>>>>>>> >> >>>>>>>> PS: O Statsd teve origem no Flickr, e a primeira versão era em >> >>>>>>>> Perl >> >>>>>>>> recentemente eles >> >>>>>>>> liberaram o código fonte: >> >>>>>>>> >> >>>>>>>> https://github.com/iamcal/Flickr-StatsD >> >>>>>>>> >> >>>>>>>> >> >>>>>>>> >> >>>>>>>> 2013/8/26 Stanislaw Pusep <[email protected]> >> >>>>>>>>> >> >>>>>>>>> Use AE::time() no lugar do localtime >> >>>>>>>>> >> >>>>>>>>> понедельник, 26 августа 2013 г. пользователь Tiago Peczenyj >> >>>>>>>>> писал: >> >>>>>>>>> >> >>>>>>>>>> Ola >> >>>>>>>>>> >> >>>>>>>>>> Eu tenho o seguinte caso >> >>>>>>>>>> >> >>>>>>>>>> preciso rodar um certo método a cada segundo, que por sua vez >> >>>>>>>>>> acumula um valor em algum atributo interno do objeto ( total += >> >>>>>>>>>> por exemplo >> >>>>>>>>>> ). >> >>>>>>>>>> >> >>>>>>>>>> a cada minuto quero enviar o valor de total para algum lugar >> >>>>>>>>>> (ex >> >>>>>>>>>> Zabbix). >> >>>>>>>>>> >> >>>>>>>>>> a meia noite eu quero limpar o total para 0. >> >>>>>>>>>> >> >>>>>>>>>> Eu cheguei a algo assim: >> >>>>>>>>>> use AnyEvent; >> >>>>>>>>>> >> >>>>>>>>>> sub loop { >> >>>>>>>>>> my $obj = Foo->new; >> >>>>>>>>>> my $cv = AE::cv; >> >>>>>>>>>> >> >>>>>>>>>> my $seconds_in_a_day = 60 * 60 * 24; >> >>>>>>>>>> my $seconds_to_midnight = $seconds_in_a_day - >> >>>>>>>>>> seconds_from_midnight(); >> >>>>>>>>>> >> >>>>>>>>>> my $loop = AE::timer 0, 1, sub { $obj->run }; >> >>>>>>>>>> >> >>>>>>>>>> my $send = AE::timer 60, 60, sub { $obj->send }; >> >>>>>>>>>> >> >>>>>>>>>> my $clear= AE::timer $seconds_to_midnight, $seconds_in_a_day, >> >>>>>>>>>> sub { $obj->clear }; >> >>>>>>>>>> $cv->recv; >> >>>>>>>>>> } >> >>>>>>>>>> >> >>>>>>>>>> a sub seconds_from_midnight usa localtime pra fazer uma conta >> >>>>>>>>>> marota. >> >>>>>>>>>> >> >>>>>>>>>> A assinatura do AE::timer eh >> >>>>>>>>>> >> >>>>>>>>>> AE::timer $delay, $interval, $callback; >> >>>>>>>>>> >> >>>>>>>>>> No primeiro timer eu tenho o meu main loop, chamando o metodo >> >>>>>>>>>> run. >> >>>>>>>>>> No segundo eu tenho o metodo que envia os dados a cada 60 >> >>>>>>>>>> segundos >> >>>>>>>>>> No terceiro eu calculo quantos segundos faltam para a meia >> >>>>>>>>>> noite e >> >>>>>>>>>> mando repetir a cada 24 horas. >> >>>>>>>>>> >> >>>>>>>>>> hoje eu tenho um loop com um sleep 1 e varios ifs. quero que >> >>>>>>>>>> fique >> >>>>>>>>>> mais legivel e nao utilizo anyEvent em nenhum outro lugar. Nao >> >>>>>>>>>> precisa ser >> >>>>>>>>>> EXATO, portanto um atraso de alguns segundos pode acontecer. >> >>>>>>>>>> >> >>>>>>>>>> Parece bom, mas eu tenho algumas duvidas. >> >>>>>>>>>> >> >>>>>>>>>> 1) esta claro o suficiente? >> >>>>>>>>>> 2) o overhead do AnyEvent parece ser o mesmo do sleep (1) >> >>>>>>>>>> durante >> >>>>>>>>>> o runtime (ignorando quanto tempo demora pra iniciar ou não), >> >>>>>>>>>> certo? >> >>>>>>>>>> 3) para rodar algo "a meia noite" me parece um tanto confuso >> >>>>>>>>>> ainda. não encontrei nenhum helper q me ajude (o AnyEvent::Cron >> >>>>>>>>>> da pau pra >> >>>>>>>>>> mim). sera q nao eh melhor "re-setar" o time watcher para a >> >>>>>>>>>> proxima meia >> >>>>>>>>>> noite? >> >>>>>>>>>> 4) alias tem algo melhor do que ficar brincando com localtime() >> >>>>>>>>>> pra pegar quantos segundos faltam pra proxima meia noite? algo >> >>>>>>>>>> usando >> >>>>>>>>>> DateTime >> >>>>>>>>>> >> >>>>>>>>>> por fim >> >>>>>>>>>> >> >>>>>>>>>> 5) tem algum problema ao usar AE::timer q eu não esteja vendo? >> >>>>>>>>>> Fora os problemas interentes como se eu usar IO Bloqueante eu >> >>>>>>>>>> não vou ter os >> >>>>>>>>>> timers "exatos". >> >>>>>>>>>> >> >>>>>>>>>> Obrigado >> >>>>>>>>>> >> >>>>>>>>>> Tiago >> >>>>>>>>>> >> >>>>>>>>>> -- >> >>>>>>>>>> Tiago B. Peczenyj >> >>>>>>>>>> Linux User #405772 >> >>>>>>>>>> >> >>>>>>>>>> http://about.me/peczenyj >> >>>>>>>>> >> >>>>>>>>> >> >>>>>>>>> =begin disclaimer >> >>>>>>>>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >> >>>>>>>>> SaoPaulo-pm mailing list: [email protected] >> >>>>>>>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >> >>>>>>>>> =end disclaimer >> >>>>>>>>> >> >>>>>>>> >> >>>>>>>> >> >>>>>>>> =begin disclaimer >> >>>>>>>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >> >>>>>>>> SaoPaulo-pm mailing list: [email protected] >> >>>>>>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >> >>>>>>>> =end disclaimer >> >>>>>>>> >> >>>>>>> >> >>>>>>> >> >>>>>>> =begin disclaimer >> >>>>>>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >> >>>>>>> SaoPaulo-pm mailing list: [email protected] >> >>>>>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >> >>>>>>> =end disclaimer >> >>>>>>> >> >>>>>> >> >>>>>> >> >>>>>> >> >>>>>> -- >> >>>>>> Tiago B. Peczenyj >> >>>>>> Linux User #405772 >> >>>>>> >> >>>>>> http://about.me/peczenyj >> >>>>>> >> >>>>>> =begin disclaimer >> >>>>>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >> >>>>>> SaoPaulo-pm mailing list: [email protected] >> >>>>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >> >>>>>> =end disclaimer >> >>>>>> >> >>>>> >> >>>>> >> >>>>> =begin disclaimer >> >>>>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >> >>>>> SaoPaulo-pm mailing list: [email protected] >> >>>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >> >>>>> =end disclaimer >> >>>>> >> >>>> >> >>>> >> >>>> >> >>>> -- >> >>>> Tiago B. Peczenyj >> >>>> Linux User #405772 >> >>>> >> >>>> http://about.me/peczenyj >> >>>> >> >>>> =begin disclaimer >> >>>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >> >>>> SaoPaulo-pm mailing list: [email protected] >> >>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >> >>>> =end disclaimer >> >>>> >> >>> >> >> >> >> >> >> =begin disclaimer >> >> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >> >> SaoPaulo-pm mailing list: [email protected] >> >> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >> >> =end disclaimer >> >> >> > >> > >> > >> > -- >> > Tiago B. Peczenyj >> > Linux User #405772 >> > >> > http://about.me/peczenyj >> > >> > =begin disclaimer >> > Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >> > SaoPaulo-pm mailing list: [email protected] >> > L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >> > =end disclaimer >> > >> >> >> >> -- >> >> -dom >> >> -- >> >> Daniel de Oliveira Mantovani >> Business Analytic Specialist >> Perl Evangelist /Astrophysics hobbyist. >> +55 11 9 8538-9897 >> XOXO >> =begin disclaimer >> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >> SaoPaulo-pm mailing list: [email protected] >> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >> =end disclaimer > > > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://about.me/peczenyj > > =begin disclaimer > Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ > SaoPaulo-pm mailing list: [email protected] > L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> > =end disclaimer >
-- -dom -- Daniel de Oliveira Mantovani Business Analytic Specialist Perl Evangelist /Astrophysics hobbyist. +55 11 9 8538-9897 XOXO =begin disclaimer Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ SaoPaulo-pm mailing list: [email protected] L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> =end disclaimer
