InfluxDBLogger: Perl Ausdrücke für measurement Attribut

Begonnen von haxtibal, 27 Dezember 2020, 23:54:50

Vorheriges Thema - Nächstes Thema

haxtibal

Hallo Forum, Hallo Tim sofern Du mitliest,

vielen Dank für das InfluxDBLogger Modul. Es funktioniert hier bestens und eröffnet ungeahnte Möglichkeiten.

Eine kleine Anregung: In InfluxDBLogger_GetTagSet wertest Du Perl Ausdrücke im tags Attribut aus. Könntest Du das selbe für das measurement Attribut in InfluxDBLogger_GetMeasurement einbauen? Ich möchte viele Readings unterschiedlicher Devices nach etwas aufwändigeren Regeln in verschiedene InfluxDB Measurements einsortieren (in der Hoffnung den InfluxDB Schema Design Best Practices Rechnung zu tragen). Im Moment habe ich dazu InfluxDBLogger_GetMeasurement derart lokal gepatched
      my $measurement =  AttrVal($name, "measurement", $reading);
+     $measurement =~ s/\{(.*)\}/eval($1) /ei;
      $measurement =~ s/\$DEVICE/$device/ei;
      $measurement =~ s/\$READINGNAME/$reading/ei;

Dann die Abbildung von (Device,Reading) auf Measurement in einer Funktion in 99_InfluxUtils.pm implementiert, und folgendes konfiguriert:
attr influxdb measurement { InfluxDbUtils_measurement($device, $reading) }

Funktioniert einwandfrei, ich würde nur gerne den lokalen Patch loswerden.

Viele Grüße
Tobias

timmib

Hi, sorry den Post grade erst gefunden. Ich schaue mir das am WE an.

timmib

Hallo,

vielen Dank für Deinen Vorschlag. Ich werde es übernehmen und die Doku anpassen.

Viele Grüße

Tim

timmib

So, habe es jetzt commited. Ich habe den Code ein wenig angepasst. Es werden die Ersetzungen nur gemacht, wenn das Attribut gesetzt war und nicht immer.

Doku ist auch angepasst mit Beispiel.

Nochmal viele Dank.