Okay, Grafana/InfluxDB nutze ich sowieso.
Ich nutze allerdings die Version 2.0 (OSS und Cloud) von InfluxDB, die in wesentlichen Teilen neu geschrieben und nun mit ‘Flux’ eine wesentlich leistungsfähigere Query Language hat. Ich würde daher gerne den InfluxDB Connector auf den neuen Java Client umschreiben (https://github.com/influxdata/influxdb-client-java).
Dieser unterstützt jedoch nur Verbindungen zu InfluxDB-Datenbanken der Versionen 1.8+ und 2.0+. Das sind die aktuellen Versionen aus den 1.x und 2.x Branches, ab denen die Flux QL an Bord ist. Bislang nutze ich Telegraf als konvertierenden Mittelsmann, der Write Requests im Influx v1 Format entgegen nimmt und dann in zwei InfluxDB v2 Datenbanken schreibt. Der Telegraf-Influx-Listener ist aber “write only”, dass heisst er unterstützt keine lesenden Queries. Die aber möchte ich jetzt aus der Edge Instanz nutzen.
Dieses Provisorium würde ich deshalb gerne durch den neue geschriebenen Connector ablösen. Meine Frage: soll ich den neuen Client ergänzend oder ersetzend in die Codebase einbringen? Oder die Komplexität gehen eine einzige Connectorklasse zu haben, die unter der Haube zwei unterschiedliche Client Libraries integriert (fände ich unnötig komplex und eher schwierig zu maintainen, weil komplex zu testen).
Ergänzend hätte den Vorteil, dass man nicht gezwungen wird alte InfluxDB Stände auf mindestens 1.8 upzudaten, aber den Nachteil dass es verwirren könnte zwei Clients für das gleiche zu haben. Hier bitte ich um einen Ratschlag, welchen Weg ich wählen soll.