Statsd, Graphite e gráficos

4

Eu configurei Graphite e statsd e ambos estão funcionando bem. Eu estou usando o example-client.py de grafite / exemplos para medir valores de carga e está OK.
Comecei a fazer testes com o statsd e, a princípio, parecia ok porque gerava alguns gráficos, mas agora não parece muito bem.

Primeiro, este é meu storage-schema.conf :

priority = 100
pattern = .*
retentions = 1m:395d

Estou usando este comando para enviar dados para o statsd:

echo 'ssh.invalid_users:1|c'| nc -w 1 -u localhost 8126

ele é executado, eu clico em Atualizar Gráfico na interface da Web Graphite, ele gera uma linha, clica novamente em Update e a linha desaparece. Como this1 e this2
Se eu executar o comando anterior 5 vezes, a linha do gráfico chegará a 2 e, na verdade, ele será salvo. Novamente executando o mesmo comando duas vezes, a linha do gráfico atinge 2 e desaparece.
Eu não consigo encontrar o que eu desconfigurou.

O uso pretendido é este:

tail -n 0 -f /var/log/auth.log|grep --line-buffered "Invalid user" | while read line; do echo "ssh.invalid_users:1|c" | nc -w 1 -u localhost 8126; done

EDITAR:
Em um novo sistema eu reinstalei usando as versões mais recentes de grafite, carbono, nodejs, statsd e está agindo da mesma forma.
Enquanto segue /opt/graphite/storage/log/carbon-cache/carbon-cache-a/query.log eu recebo:
cache query for "stats_counts.ssh.invalid_users" returned 0 values
cache query for "stats.ssh.invalid_users" returned 0 values sempre que pressiono update no webapp. Notei que ele irá dizer aleatoriamente returned 1 values ao desenhar as linhas, mas irá reverter para returned 0 values e as linhas desaparecerão.

    
por w00t 01.10.2012 / 17:18

1 resposta

5

O problema é a retenção do esquema de armazenamento:
retentions = 1m:395d - que é extraído do wiki de grafite link

Eu tive que usar retentions = 10:2160,60:10080,600:262974 ou algo similar. Isso leva em consideração valores salvos a cada 10 segundos.

Além disso, embora eu tenha reiniciado o grafite depois de alterar o storage-schema.conf, tive que usar um nome de métrica diferente porque o anterior manteria o mesmo comportamento / retenção (e eu posso reproduzir isso). Então, em vez de echo 'ssh.invalid_users:1|c' , tive que usar echo 'ssh.invalid_userstest2:1|c' .

    
por 08.10.2012 / 11:59