NEWS
Test Adapter influxdb 2.0
-
@apollon77
Ja, systemd ist der richtige Weg. -
@stenmic sagte in Test Adapter influxdb 2.0:
Wenn nicht, wir würde dann ein kommendes Update von influx installiert werden?
genauso, nur eben die version anpassen
@Thomas-Braun ich hab es auch manuell, aber das Thema(apt pinning) hatten wir ja schon an anderer Stelle
-
@crunchip
Naja, hier ist ja nix zu pinnen, das Paket läuft so an apt vorbei. Wäre mir zu aufwendig das manuell bei einem Produktivsystem auf Stand zu halten.
Zum Testen kann man es machen. -
@stenmic Ich glaube das müsste im "offiziellen" Influxdb Repo als Paket influxdb2 sein
-
@apollon77 und wie prüfe oder finde ich das?
-
-
@thomas-braun sagte in Test Adapter influxdb 2.0:
apt policy influxdb influxdb2
Ergebnis:
influxdb: Installiert: (keine) Installationskandidat: 1.6.7~rc0-1+b5 Versionstabelle: 1.6.7~rc0-1+b5 500 500 http://ftp.de.debian.org/debian bullseye/main amd64 Packages influxdb2: Installiert: 2.0.8 Installationskandidat: 2.0.8 Versionstabelle: *** 2.0.8 100 100 /var/lib/dpkg/status
-
@stenmic
Das Influx-Repo ist nicht angelegt. -
@feuersturm sagte in Test Adapter influxdb 2.0:
@ilovegym ich hab den test gegen eine influx 2.0 datenbank gemacht der nicht erfolgreich war. Werde später mal den test auch gegen eine 1.x machen.
@apollon77 Der Verbindungstest mit Influx2.0 Datenbank ist bei mir nicht erfolgreich: https://github.com/ioBroker/ioBroker.influxdb/issues/146
-
Nach dem Update des Adapter von V1 auf V2 bringt mit der Adapter folgende Logs uns bleibt gelb:
Error: error authorizing query: iouser not authorized to execute statement 'ALTER RETENTION POLICY autogen ON iobroker DURATION 365d REPLICATION 1 SHARD DURATION 1w DEFAULT', requires admin privilege Applying retention policy (autogen) for iobroker to 31536000 seconds. Shard Duration: 604800 seconds Connected! Influx DB Version used: 1.x Connecting http://localhost:8086 ...
Node.js v12.22.5
Admin 5.1.21
js-controller 3.3.15
InfluxDB 1.8Was sagt mir diese Fehlermeldung?
EDIT: Passwort hatte ich neu eingegeben.
EDIT2: Wenn ich die Verbindung zur DB mit dem admin herstelle, geht's. Aber das kann ja nicht die Lösung sein. Wie bekomme ich den User "iouser" in die Position, mit dem neuen Adapter zusammen zu arbeiten? Bei der 1.9 lief es ja auch. -
@josh Start Skript angepasst? Du bist nicht der erste mit dem 'Fehler', schau im Forum.
-
@thomas-braun Habe kein StartSkript angepasst.
Ich finde das hier. Aber den Pfad gibt es bei mit nicht. Oder bin ich auf dem falschen Weg?
-
@josh
Keine Ahnung...
Da war aber auch noch irgendwas anderes einzustellen. Hab den Thread aber nicht zur Hand. -
@thomas-braun Habe die Datei hier gefunden:
/usr/lib/influxdb/scripts/influxdb.service
Dort habe ich die beiden Zeilen
#ExecStart=/usr/lib/influxdb/scripts/influxd-systemd-start.sh #Type=forking
auskommentiert und den Dienst neu gestartet:
sudo systemctl daemon-reload
Hat aber am Ergebnis nichts geändert. Klappt trotzdem nicht. Noch jemand eine Idee?
EDIT: Ich bin jetzt zurück auf die V1.9.5. Den neuen Adapter bekomme ich nicht zum Rennen.
EDIT2: Habe jetzt noch das gefunden, was mich aber nicht weiter bringt. Gibt wohl keine Lösung. -
Hallo zusammen,
würde den Punkt von Feuersturm gerne nochmal aufgreifen. Ich habe grade den InfluxAdapter von 2.0.0 auf 2.1.1 aktualisiert und "iobroker upgrade self", danach waren alle mein Dashboards ohne Daten und der Query Explorer zeigt die gleiche Meldung kein Mean für Boolean. Ich nutze influxdb 2.0.
Anscheinend hat sich geändert wie die Messungen gespeichert werden, am Beispiel Smartmeter.
Vor dem Update wurde zu dem _measurement in _value der gemessen Wert z.B. 279 gespeichert und zusätzlich gab es Tags ack , from & q. Quasi zu jedem Messwert gab es die 4 Informationen. Ich bekomme meine 279W und könnte jetzt weiter eingrenzen ob z.B. der Wert ack war oder nicht.
Nach dem Update werden vier einzelne Felder zu dem _measurement gespeichert, damit kommt wenn man die abfrage nicht weiter eingrenzt jetzt 4 verschiedene Werte auch ein boolean vom ack zurück. Schlimmer es fehlt die Verknüpfung zwischen den Werten es sind jetzt 4 unabhängige Werte die bis auf den Zeit Stempel nicht korrelieren. Hoffe man kann das auf den folgenden Screenshots nachvollziehen, die gleiche Abfrage direkt auf der Influx GUI man sieht das Chaos nachher.
Vorher:
Nachher:
Wurde das Verhalten mit der neuen Adapter Version oder IOBroker Update geändert und gibt es einen weg zurück? Habe natürlich diesmal kein Backup von IOBroker & DB gemacht, grr.
Unabhängig davon, ich nutzte eine lokale Instanz und den kostenlosen Plan, 30 Tage auf der InfluxCloud, bei letzteren kommt im Log -> HttpError: specifying shard-group duration is not supported -> Vorhaltezeit habe ich auf Unbegrenzt im Adapter eingestellt.
Danke & Gruß
-
@sunny1081 Ja in der 2.1 wurde die Art der Datenspeicherung für die InfluxDB 2 geändert - siehe weiter oben hier im Thread als Beitrag von Excodibur. Daher sollte man wenn man den Adapter vorher hatte alle Daten nochmals löschen.
-
Danke für die schnelle Rückmeldung. War das den so beabsichtigt, man verliert doch den Zusammenhang zwischen den Werten die alle zu einer Messung gehören und jetzt 4 beliebige Werte mit zufällig dem gleichen Zeit Stempel sind?
Ja mit pivot kann man die Werte Übersichtlicher anzeigen aber der Schlüssel ist doch eigentlich die Messung.Ich möchte z.B. in Grafana nur die Werte nutzen die durch Smartmeter geschrieben werden und nicht die durch den InfluxAdapter geschrieben werden wenn man sagt schreibe einfach jede Sekunde den Wert den du grade hast. Bisher hat man einfach den Filter um FROM ergänzt und fertig. Jetzt muss ich erstmal alle Werte über den Zeitstempel joinen und dann wieder filtern.
-
Wir haben hier nichts geändert. Influx kann pro Datenpunkt nur ein Feld (field) speichern - by design, d.h. entweder value, ack, from, oder q. Da wir hier vier Felder nutzen, gibt es auch vier getrennte Tabellen in derInfluxDB.
Siehe auch folgender Auszug aus der Doku: https://docs.influxdata.com/influxdb/v1.8/concepts/glossary/#point
Each point: - has a measurement, a tag set, a field key, a field value, and a timestamp; - is uniquely identified by its series and timestamp.
Dies hat sich auch nicht zwischen Influx 1.x und 2.x geändert, nur hast du es in Influx 1.x nicht gesehen, da die Darstellung mit SQL-Queries vereinfacht wurde und man Influx dann schnell mal eher wie eine relationale Datenbank verwenden konnte, d.h. mehrere Werte pro Measurement gespeichert hat. Intern wurde es aber immer anders abgebildet, halt wie in einer Time-Series DB verteilt auf mehrere Datenpunkte.
Du kannst auch in deiner alten Influx 1.x DB schon Flux-Queries absetzen, die dir deine "echten" Datenunkte dann ebenfalls auf mehreren Tabellen ausgeben, z.B. mit
influx -type=flux -path-prefix /api/v2/query -execute 'from(bucket: "iobroker/global") |> range(start: 2020-08-06T15:00:00.000Z, stop: 2022-08-07T15:39:34.350Z)'
Bei Influx2 gehört InfluxQL nun nicht mehr zum Standard, wobei du wahrscheinlich die gewohnten SQL-Statements noch immer über Compatibility Endpoints absetzen kannst. Ich gehe aber davon aus, dass das irgendwann verschwinden wird.
Bei Flux-Queries ist die pivot Funktion hier zum Zusammenfügen meines Wissens nach der offiziell von Influx vorgesehene Weg um an eine ähnliche Darstellung der Daten zu gelangen. D.h. wir können hier nicht viel mehr machen, als die Empfehlung weiter geben. Der Schlüssel ist immer Messungsname + Zeitstempel (Influx ist eine Time-Series-DB), somit sehe ich hier kein Problem mit Inkonsistenzen.
Was Influx-seitig ginge, ist zu einem Measurement-Datenpunkt neben dem einen Feld "value" noch beliebig viele Tags dran zu hängen und so ack, from und q direkt dort abzubilden. Dann hat man ohne weiteren Query-Aufwand alles in einer Tabelle, allerdings würden bestehende Tabellen aus Influx 1.x nicht nach 2.x migriert und weiter verwendet werden können, da dort nur mit "fields", statt "tags" gearbeitet wird.
-
Danke für die Erläuterung, für mich Bezog sich die Änderung auf die initiale Version 2.0 welche ein Feld + "tags" also einer Serie, gegenüber der aktuellen welche 4 Datenpunkte nutzt. Fange grade erst an mit dem Thema um die Erträge meiner Stecker PV zu messen und bin direkt mit v2 gestartet.
Tags haben den Scharm das sie indiziert sind und sich so schnell auf z.B. ACK filtern lässt ohne alle Werte zu durchscannen evlt. relevant wenn man mal Wochen oder Monate betrachtet. Aber Verstanden es soll damit die Migration von V1 ermöglicht werden.
Bin jetzt erstmal auf NodeRed umgestiegen da mich im Grunde nur der reine Messwert interessiert, evlt. ein Feature für die Zukunft, eine Auswahl was geloggt wird um weniger Daten zu schreiben. Ist ja doch einiges komfortabler eben einen Haken über die GUI setzen und fertig.
Ist es möglich zu konfigurieren das die Retention und / oder Shard duration nicht über den Adapter konfiguriert wird? -> Dadurch lässt sich die InfluxCloud (30 Tage Free Plan) aktuell nicht nutzen -> HttpError: specifying shard-group duration is not supported. Grade um hochfrequent und nicht historisch wichtige Daten zu schreiben eine Super Sache, spart wieder einige GB an schreibzugriffen auf die SD Karte / SSD.
-
@sunny1081 sagte in Test Adapter influxdb 2.0:
Dadurch lässt sich die InfluxCloud (30 Tage Free Plan) aktuell nicht nutzen -> HttpError: specifying shard-group duration is not supported.
Sicher das das blockt? Wenn ich den Code korrekt im Kopf habe dann kommt die Meldung aber es sollte danach trotzdem normal weitergehen und Daten speichern. Wär dann also einfach zu ignorieren