Os dados do grafite desaparecem se o período for superior a 30 minutos solicitado

3

Esta é uma instalação relativamente nova do Graphite no CentOS 6.5. Está recebendo métricas via AMQP (RabbitMQ) da Sensu.

Como uma prova de conceito, eu tenho um monitor de média de carga relatando dados para sensu / grafite a cada 60 segundos. Eu posso ver os dados chegando no log ouvinte do grafite.

Se eu selecionar alguns dados para gráficos, só poderei ver os dados se o período estiver dentro dos "últimos 30 minutos". (Então só é visível se eu definir o modo de linha para "linha conectada" porque os pontos desaparecem.)

Se eu definir o período para "Visualizar após 31 minutos", todos os dados desaparecerão do gráfico.

Eu tentei brincar com o storage-schemas.conf, mas não fiz nenhuma alteração significativa nesse comportamento.

Se eu passar mais de 30 minutos, os dados estão sendo jogados fora e filtrados? O que eu verificaria?

Isso é storage-schemas.conf:

[load_averages]
pattern = \.load_avg\.
retentions = 10s:14d,1m:90d
    
por Mojo 01.04.2014 / 21:04

1 resposta

5

Tenho certeza que entendo o que está acontecendo aqui agora.

Como eu suspeitava, isso tem a ver com a taxa de amostragem da métrica e com a taxa de amostragem esperada pelo banco de dados do Whisper.

A chave é o arquivo storage-schemas.conf que especifica a taxa de amostragem a ser armazenada.

Configurei o grafite usando o módulo de fantoches echocat / graphite. Isso configura uma frequência padrão de 1s para os primeiros 30 minutos, 1m para o primeiro 1d e 5m para 2 anos.

A métrica de carga média que eu estava tentando fazer um gráfico tinha um período de amostragem de 1m ou 60s. Assim, o banco de dados sussurro armazenaria 59 nulos e um valor a cada minuto. Ao solicitar mais de 30 minutos, a grafite descartou os dados reais.

Duas coisas precisam acontecer:

Primeiro, altere a taxa de amostragem inicial em storage-schemas.conf (usando puppet) para que as bandejas de armazenamento correspondam à frequência de amostragem.

Em segundo lugar, os arquivos de banco de dados existentes do Whisper devem ser descartados ou redimensionados.

O Whisper tem um utilitário (whisper-resize.py), mas no meu caso eu não tinha dados valiosos para manter. Limpei os arquivos do Whisper DB afetados e os deixei recriar.

    
por 02.04.2014 / 17:14

Tags