2011-08-17 7 views
14

Invio un messaggio ogni volta che un utente si connette al mio sito.accumulo di valore in grafite

Con questo formato:

"user_login 1 13xxxxxxx" (key value timestamp) 

Il mio problema è Graphite dammi un grafico con solo una linea con il valore "1", ogni minuto. Invio un numero casuale di messaggi ogni minuto (tra 6 e 60), ma penso che Graphite limiti al primo (o ultimo?) Messaggio, per visualizzare un valore.

Come fare per avere una somma di ogni messaggio, ogni minuto?

risposta

3

uso sumSeries target = sumSeries (graphite.counterName) o riassumere la funzione se si desidera sommare più di più di un minuto

7

Potreste essere interessati a correre statsd o statsite sul server di grafite. Quel software aggregherà tutte le statistiche per un periodo di tempo configurabile e scriverà il risultato in grafite.

Dai un'occhiata a github.com/etsy/statsd (in node.js) e github.com/kiip/statsite (clone python). Le statistiche di Etsy contengono alcuni esempi di codice su come usarlo.

+0

Questo è quello che ho finito per fare. È un po 'fastidioso avere un altro servizio in esecuzione, ma è un piccolo servizio. –

+1

E ho effettivamente utilizzato la versione C (più recente) dello statuto: https://github.com/armon/statsite. L'unica cosa fastidiosa era che dovevo cambiare il file "sink" predefinito per eliminare "statsite.counts". prefisso che lo statsite prepari prima di qualsiasi statistica lo invii per impostazione predefinita. –

1

Utilizzare lo cumulative function sulla serie.

Per default, quando un grafico viene disegnato, e la larghezza del grafico in pixel è minore del numero di datapoints da graficamente, medie grafite il valore di ogni pixel. La funzione cumulativa() modifica la funzione di consolidamento per sommare dalla media.

11

Si potrebbe anche provare il servizio di aggregazione di carbonio in modo che le metriche vengano aggregate quando vengono raccolte anziché nell'interfaccia utente Graphite. Vedere http://graphite.readthedocs.org/en/latest/config-carbon.html#aggregation-rules-conf per la configurazione della regola di aggregazione. Si noti che è necessario inviare le metriche alla porta del servizio di aggregazione del carbonio in esecuzione in una porta diversa rispetto alla normale porta del collettore di carbone.

3

Jari è corretto, carbone-aggregatore è stato scritto appositamente per questo.

assicurarsi di utilizzare una funzione somma di aggregazione-rules.conf, come questa:

bpu.<cluster>.<account>.<metric>_sum (1) = sum bpu.<cluster>.<account>.<metric>_sum 
1

per impostazione predefinita, la grafite memorizza solo lo ultimo valore inviato per qualsiasi metrica in entrata nella granularità di conservazione minima (non valore medio). se si desidera ottenere aggregati, la soluzione comune è utilizzare statsd.

tuttavia, è anche possibile utilizzare il carbone-aggregatore. tanto per essere sicuro che si sta inviando le metriche alla porta della linea aggregatore, quindi aggiornare l'aggregazione-rules.conf con una regola come questa:

user_login (10) = sum user_login$ 

nota: questo presuppone che il periodo di conservazione minimo è ancora 10 secondi (il default) si può confermare che, cercando in deposito-schemas.conf

per una spiegazione più, vedi: Why use statsd when graphite's Carbon aggregator can do the same job?

Problemi correlati