2015-05-03 30 views
6

Wie subtrahiere ich zwei Zeitreihen in Grafana? Oder füge zwei zusammen, teile eins nach dem anderen, etc ...? Ich habe online vage Hinweise gefunden, wie man Unterschiede zwischen Zeitreihen machen kann, aber nichts, was mir sagt, wie ich das machen soll. Ich benutze Grafana v2.0.2 mit Influxdb v0.8 und habe mit der Grafik-Steuerung herum genug herumgespielt, um Dinge wie den difference Operator zu finden, den ich anwenden kann, aber ich habe keine Ahnung, wie man es benutzt. Ich habe versucht, Dokumentation zu diesem Thema zu finden, aber die closest I can find ist ziemlich still zu diesem Thema und sieht auch etwas veraltet aus, da sich die Schnittstelle seit der Erstellung dieser Screenshots geändert hat.Multi-Zeitreihen Operationen in Grafana

Danke!

+0

Mit Graphit ist dies einfach. Nicht sicher, wie es mit InfluxDB geht. Der Ort, um zu fragen, ist in der InfluxDB Mailing-Liste oder auf ihrem IRC-Kanal auf Freenode – Torkel

+0

Könnten Sie erklären, wie es mit Graphit zu tun? Das wäre nützlich, da ich vielleicht die Konzepte selbst abbilden könnte, und ich würde zumindest wissen, in welcher Form die Frage sein sollte, wenn nicht die Antwort. – staticfloat

Antwort

6

Diese Funktion wurde als issue 177 of Grafana hinzugefügt:

Setup-zwei-Serie, das Augensymbol klicken, um sie zu verstecken und eine dritte mit der Teilung der den vorhergehenden setzen.

grafana - graphite queries

Dies funktioniert nur in Graphit (Ich möchte es schlecht auch auf Zustrom arbeiten)

+0

Ausgezeichnet, danke für den Screenshot! Kannst du ein wenig erklären, warum es einen Unterschied zwischen influxdb und Graphit gibt? Erfolgen die Serienvorgänge in der Datenbank-Engine? Das kommt mir seltsam vor, da ich davon ausgehe, dass die Dinge viel besser skalieren würden, wenn die Kunden die Daten manipulieren würden, aber dann habe ich auch nicht grafana geschrieben. : P – staticfloat

+0

gut, ich habe nicht grafana entworfen, so kann ich dir nicht sagen, warum ... vielleicht, weil Abfragen direkt an die DB-Schicht gesendet werden? – XFMoulet

5

InfluxDB v0.12 Unterstützung folgende Operationen:

Rechenoperation auf der Aggregation Funktionsergebnis:

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

oder arithmetische Operation zwischen Felder:

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

und vor allem können Sie arithmetische Operation zwischen Aggregationsfunktion Ergebnissen führen:

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

Es ist not supported by Grafana GUI editor noch (aber man kann es schreiben im manuellen Modus).

3

Eine andere mögliche Lösung (die ich nur mit Graphit versucht habe) ist die Verwendung der und scale Funktionen. So fügen Sie zwei Mal seriers zusammen, tun

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

und bekommen den Unterschied machen

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

Dies muss mit dem Texteditor für Metriken erfolgen.