Developer Network

Documentação

Saiba todas as features que te ajudarão a produzir sistemas mais rapidamente.

Armazenamento, monitoração e análise de métricas de performance

Projeto open-source da Locaweb para métricas e performance de datacenter

Leela [talvez o nome soe um pouco estranho a princípio] é m projeto opensource desenvolvido pela Locaweb que mazena todas as métricas de performance do sso datacenter. Apesar do título, ele não é um sistema de nitoração. Ele simplesmente armazena métricas, permite consultar dos históricos para, por exemplo, gerar gráficos, monitorar as métricas em tempo real.

O projeto apresenta muitos desafios técnicos interessantes que serão resentados em posts subsequentes. Porém, este foca nas ternativas, projetos similares e o motivo o qual nos levou a senvolver o Leela.

Motivação

Para a tarefa específica de coletar e armazenar métricas de rformance existem muitas opções. Provavelmente entre as mais pulares, seguramente podemos citar:

E elas funcionam muito bem para o qual se propõem, entretanto, são mpletamente centradas em um agente de monitoração que, de alguma rma, coleta a métrica e a envia para o servidor. Torna-se uma refa difícil por exemplo [no sentido que requererá algum esforço desenvolvimento], coletar e agregar informações mo tempo de resposta de uma mesma página em múltiplos servidores.

Para responder a estes problemas novas ideias surgiram e com elas vos sistemas. Neste segundo momento, surgem ferramentas como statsd da sy, riemann e href="http://graphite.rtfd.org/">graphite [1].

Estas ferramentas mudam completamente a forma como se pensava em nitoração, visto que, sob um ponto de vista superficial, elas rnecem uma API [ao invés de um agente] para coleta [= statsd] uma I para processamento [= riemann] e outra para gráficos [= aphite]. Com elas, é possível coletar e enviar métricas, em alta solução, dentro de uma aplicação e monitorar omalias em tempo real com a abilidade de tomar ação imediata seado nos valores recebidos. Usando o aphite, dashboards muito sofisticados podem ser nstruídos muito facilmente.

Certamente há muitos outros sistemas similares, mas o objetivo não é aurir a lista de possibilidades mas sim introduzir algumas ideias sistemas.

Bem, e onde o Leela se encaixa nessa história toda? Embora a leta/monitoração estejam melhor resolvidas nestes novos sistemas, armazenamento ainda é um problema, nenhuma delas o resolve de rma eficiente. O único projeto que se propõe a tal coisa, nessa ssa pequena lista é o Graphite, que pelo fato de usar RRDs [e mais centemente seu próprio formato de armazenamento, Whisper] mitaria consideravelmente a quantidade de métricas que nseguíríamos gerenciar.

Daí veio a motivação para o Leela: agregar as funcionalidades destas ês ferramentas e resolver o problema de armazenamento. No nosso so, precisamos monitorar um datacenter inteiro, com algumas zenas senão centenas de métricas por máquina.

Leela na Locaweb

O Leela se tornou o sistema oficial para coleta de métricas de rformance na Locaweb. Atualmente, todo plugin de monitoração do gios que coleta métricas de performance envia dados para o ela. Algumas aplicações estão começando a se integrar com ele para letar métricas específicas, como por exemplo, quantas vezes uma rta operação foi executada em um determinado site pelos nossos uários.

Essas métricas armazenadas são usadas para apresentar gráficos para ientes [como uso de cpu e memória] e também internamente ra análise de comportamento de certas aplicações. Sistemas ternos, como Cloud, fazem uso da interface xmpp para tificar clientes quando o limite de cpu ou memória atinge certo limite ou retorna ao estado original.

Atualmente este sistema lida com cerca de 30.000 escritas por gundo, em certos momentos atingindo picos de mais de .000 escritas por segundo. A tendencia é aumentar ainda is este número, visto que acabamos de adicionar suporte nativo collectd.

O Leela é um sistema novo, ainda há muito o que ser plementado. Embora todo o ciclo esteja implementado [escrita, itura e monitoração], funcionalidades importantes como um shboard ainda não estão prontas. Entretanto, é um sistema que já tá em produção há algum tempo e vem se tornado extremamente portante dentro da Locaweb, no sentido que muitas outras licações dependem dele para seu funcionamento.

O código é opensource e disponível no github. A documentação da nova rsão bem como a nova versão [com suporte ao collectd] serão blicadas nas próximas semanas. Para mais informações:

Conclusão

Este post foi uma pequena introdução sobre o Leela, inaugurando uma série na qual pretendemos focar no design, decisões de arquitetura,  desafios e problemas envolvidos em desenvolver um sistema distribuído de grande porte.

Além disso, para que não haja dúvida, entenda que cada sistema mencionado neste post atende e resolve uma necessidade específica, e, dependendo do problema, um ou outro será mais adequado; não há como comparar absolutamente qual é melhor. E que em termos gerais, essa “segunda geração” de sistemas fornece muitas vantagens interessantes para aplicações e sistemas modernos.

Embora ainda muito recente, o Leela claramente já se tornou peça chave na infraestrutura da Locaweb e muita coisa interessante está sendo implementada. Mas isso já é assunto para um próximo post.


1. Não necessariamente nesta ordem. Graphite: 04/2008; Statsd: 12/2012; Riemann: 02/2012;