Metrux - Enviando métricas de sua app Ruby para o InfluxDB de forma simples e prática
Ricardo Tealdi, Desenvolvedor de software, mostra a facilidade e os benefícios em se coletar métricas de uma aplicação Ruby e enviá-las para o InfluxDB utilizando a gem metrux, feita na Locaweb.
2004 • desde 2007 ◦ Usabilidade / Site / Sistemas Centrais (antigo EA) / Revenda / Registro / Integração / alguns outros ◦ Criador do feed-processor / lw-auth-client / metrux • Em setembro estarei mudando para • Formado em Sistemas de Informação • Blog: blog.tealdi.com.br
Identificar gargalos ◦ Entender como está a alocação de recursos ◦ Evita desenvolvimento de melhorias que trazem pouco valor • Dá suporte ao négocio na tomada de decisões • Custo relativamente baixo de implementação CUSTO / BENEFÍCIO
métricas de apps críticas do Leela => InfluxDB ◦ As apps usavam as gems metriks, metriks-leela e advisor ◦ As gems que existiam do InfluxDB não atendiam nosso propósito, pois teríamos que mexer muito no código das apps
dados - influxdb-ruby • Ele tem um bom tratamento de erros e funciona de forma assíncrona, evitando que sua app trave por algum problema no envio dos dados para o influx MAS VOCÊS CRIARAM OUTRO CLIENT PRO INFLUX?
production CPRO123 puma adm 1 production CPRO125 puma reglr 1 production CPRO124 puma reglr 1 COMANDO: METER O metrux adiciona essas tags em todas as escritas
production CPRO123 puma adm 1 production CPRO125 puma reglr 1 production CPRO124 puma reglr 1 COMANDO: METER Cada vez que fizerem um login, gerará uma linha no influx. Para obter o total basta somar todos os pontos
error message1 high 1 RecordNotFound error message2 low 1 ArgumentError error message3 low 1 COMANDO: NOTICE ERROR Nome da classe da exception (como tag)
error message1 high 1 RecordNotFound error message2 low 1 ArgumentError error message3 low 1 COMANDO: NOTICE ERROR Mensagem do erro (como field, pois essa info pode não se repetir)
error message1 high 1 RecordNotFound error message2 low 1 ArgumentError error message3 low 1 COMANDO: NOTICE ERROR Cada erro gerará uma linha no influx. Para obter o total basta somar todos os pontos
- coleta dados do garbage collector • Metrux::Plugins::Yarv - coleta dados da RubyVM • Metrux::Plugins::Process - coleta memória consumida do processo atual PLUGINS BUILT-IN