2015-05-03 30 views
6

Come sottrarre due tempi in Grafana? O aggiungerne due insieme, dividere uno per un altro, ecc ...? Ho trovato vaghi suggerimenti online sull'assunzione di differenze tra gli orari, ma nulla che in realtà mi dica come farlo. Sto usando Grafana v2.0.2 con Influxdb v0.8 e ho giocato con i controlli del grafico abbastanza da scoprire cose come l'operatore difference che posso applicare, ma non ho idea di come usarlo. Ho cercato di trovare la documentazione su questo argomento, ma lo closest I can find è abbastanza silenzioso su questo argomento e sembra anche leggermente aggiornato, poiché l'interfaccia è cambiata da quando sono stati presi quegli screenshot.Operazioni multi-timeseries in Grafana

Grazie!

+0

Con grafite è facile. Non sei sicuro di come farlo con InfluxDB. Il posto dove chiedere è nella mailing list InfluxDB o sul loro canale IRC su freenode – Torkel

+0

Puoi spiegare come farlo con Graphite? Sarebbe utile in quanto potrei essere in grado di mappare i concetti da solo, e vorrei almeno sapere in che forma dovrebbe essere la domanda, se non la risposta. – staticfloat

risposta

6

Questa caratteristica è stata aggiunta come issue 177 of Grafana:

Setup due serie, fare clic sull'icona occhio per nascondere loro e mettere un terzo con la divisione delle precedenti.

grafana - graphite queries

Questo funziona solo in Grafite (mi piacerebbe farlo funzionare sul afflusso male anche)

+0

Eccellente, grazie per lo screenshot! Puoi chiarire un po 'il motivo per cui esiste una differenza tra influxdb e grafite? Le operazioni della serie avvengono all'interno del motore del database? Mi sembra strano, dato che presumevo che le cose sarebbero molto più belle se i client facessero la manipolazione dei dati, ma di nuovo non ho scritto grafana. : P – staticfloat

+0

beh, non ho progettato grafana quindi non posso dirti perché .. forse perché le query vengono inviate direttamente al livello DB? – XFMoulet

5

InfluxDB v0.12 di supporto seguenti operazioni:

operazione aritmetica sull'aggregazione Risultato della funzione:

SELECT 10* MEAN(usage_system) AS avg 
FROM cpu WHERE time > now() - 10s; 

o operazione aritmetica tra campi:

SELECT usage_system + usage_user AS avg 
FROM cpu WHERE time > now() - 10s; 

e, soprattutto, è possibile eseguire l'operazione aritmetica tra risultati funzione di aggregazione:

SELECT MEAN(usage_system) + MEAN(usage_user) AS avg 
FROM cpu 
    WHERE time > now() - 10s 
    GROUP BY host; 

E 'not supported by Grafana GUI editor ancora (ma si può scrivere in modalità manuale).

3

Un'altra possibile soluzione (che ho provato solo con grafite) consiste nell'utilizzare le funzioni sumSeries e scale. Per aggiungere due seriers tempo insieme, fare

sumSeries(first.time.series, second.time.series) 

e per ottenere la differenza fare

sumSeries(first.time.series, scale(second.time.series, -1)) 

Questo deve essere fatto utilizzando l'editor di testo per le metriche.