Implementando marcadores de liberação em grafite
Por Allen Fung, Engenheiro Sênior de Software
No ShareThis, usamos o Graphite para o monitoramento de aplicações. Aqui está um gráfico típico do Graphite.
Isto mostra os "eventos por minuto" que uma aplicação tem consumido ao longo do tempo. Como você pode ver, nenhum registro foi consumido por algumas horas na segunda-feira à tarde. Ao combinar os marcadores de lançamento com o gráfico acima, podemos ver que o consumo parou devido a um lançamento ruim. Eis como isto parece.
Ao implementar o marcador de liberação, descobrimos que o nome do marcador não pode ter nenhum valor arbitrário. Ao invés disso, ele precisa ser sufixado com ".count". Isto porque o xFilesFactor para ".count$" é definido como zero por padrão, mas não para outros padrões. Se uma métrica tem um xFilesFactor diferente de zero, os seus valores só são garantidamente visíveis durante as últimas 24 horas. O xFilesFactor pode ser configurado no seguinte arquivo.
/opt/graphite/conf/storage-aggregation.conf.
Aqui está o comando real que usamos no auto-desdobramento para gerar o marcador de liberação.
echo release_marker.$APPLICATION.$HOST.count 1 `date +%s` | nc -w 2 graphite.ops.sharethis.com 2003
O comando acima define o valor da métrica para o número um no momento especificado. Se tentarmos apenas exibir a métrica, não veremos nada, pois seus valores são muito pequenos. Para tornar a métrica visível, precisamos passá-la para a função drawAsInfinite. Isto fará com que cada ponto de dados não zero da métrica seja exibido como uma linha vertical.