2017-07-24 3 views
0

Ich arbeite tatsächlich mit Collectd und Influxdb, um Daten in Grafana grafisch darzustellen.Wie unterscheidet man Zeichenketten in Collected?

Die Daten, die ich in Python erhalte, werden in einer CSV-Datei gespeichert, daher verwende ich das tail_csv-Plugin in collectd, um Daten aus dieser .csv-Datei zu erhalten.

Alles ist in Ordnung und die Daten werden an Influxdb gesendet, aber ich möchte Daten von verschiedenen Geräten unterscheiden.

Zum Beispiel habe ich dies:

Data from device 1 in csv format: 0,0,0,0,0 
            0,0,0,0,0 

Data from device 2 in csv format: 0,0,0,0,0 
            0,0,0,0,0 

In the final csv file will be next: 0,0,0,0,0 
            0,0,0,0,0 
            0,0,0,0,0 
            0,0,0,0,0 

Collectd nicht String-Typ haben, so kann ich nicht eine String-Spalte zu wissen, hinzufügen, wo die Daten des aus. Wie kann ich es lösen?

Meine möglichen Lösungen: Keine String-Spalte, aber ja eine int-Spalte zu verwenden, und jedes int mit einem Gerät verknüpfen, aber die möglichen Geräte sind dynamisch, so dass ich es nicht mag. Ich denke auch darüber nach, einen tail_csv-Plugin-Code pro Gerät zu schreiben. Wenn also ein neues Gerät entdeckt wird, wird ein neuer Plugin-Code geschrieben, um eine neue .csv-Datei pro Gerät zu lesen, aber es ist sehr schwer.

Bitte beraten!

Antwort

0

Collectd unterstützt Datenpfade der Form:

host/plugin-instance/type-instance 

Zur Vereinfachung:

a/b-c/TYPE-d 

oder

a/b/TYPE-c 

so können Sie frei wählen, a, b, c und d .

Ich bin nicht sicher, wie Ihre Pfade basierend auf den bereitgestellten Informationen aussehen. Sie könnten "b" im letzten Beispiel verwenden, um den Gerätenamen zu bezeichnen.

Alternativ benennen Sie den Eintrag etwas wie a/b/TYPE-_whatever_DEVICE_NUM und verwenden Sie eines von Graphites aliasSub(), um die Geräte auszuwählen und separat anzuzeigen, wenn Sie das möchten.

Verwandte Themen