Hey! Sie scheinen aus United States zu kommen, möchten Sie auf die Englisch Webseite wechseln?
Switch to Englisch site
Skip to main content

AQ Project How to Teil 3: Einführung in das DesignSpark Air Quality Dashboard

AQ Dashboard 1

Die Cloud-Plattform bietet eine leistungsstarke Zeitreihendatenbank und Analysefunktionen für das Projekt Luftqualität.

In diesem Artikel werfen wir einen ersten Blick auf die DesignSpark Metrics-Plattform, die zur Datenspeicherung und -visualisierung für das Luftqualitätsprojekt verwendet wird. Die Cloud-Plattform baut auf der Prometheus-Zeitreihendatenbank für die Speicherung sowie Grafana für die Analyse und Visualisierung auf.

Prometheus

Prometheus ist eine Zeitreihendatenbank. Das bedeutet, dass die Daten in einer chronologisch geordneten Reihe von Werten gespeichert werden.

Eine Reihe in Prometheus wird durch eine eindeutige Kombination aus einem metrischen Namen und einer oder mehreren Bezeichnungen identifiziert. So kann es zum Beispiel zwei Reihen mit dem metrischen Namen "Temperatur" geben, von denen eine die Bezeichnung "Innen" und die andere "Außen" trägt. Auf diese Weise können wir vermeiden, dass wir uns global eindeutige Metriknamen wie "indoortemp" und "outdoortemp" ausdenken müssen, aber wir können die Metriken beim Schreiben trotzdem trennen und Abfragen konstruieren, die nur die Daten zurückgeben, an denen wir interessiert sind.

Die Prometheus-Abfragesprache unterstützt nicht nur die Auswahl von Daten anhand eines Metriknamens und einer oder mehrerer Bezeichnungen, sondern auch die Auswahl von Bereichen, Unterabfragen, Funktionen und Operatoren usw. Es wird eine HTTP-Abfrage-API bereitgestellt, obwohl wir die Grafana-Webanwendung für die Visualisierung verwenden werden, die von der nahtlosen Integration mit Prometheus-Datenquellen profitiert.

Schreiben der Daten

Prometheus ist nicht einfach eine passive Datenbank, sondern verwendet ein Pull-Modell und wird normalerweise so konfiguriert, dass Metriken über HTTP abgefragt werden. Dies ist besonders nützlich bei IT-Infrastrukturen, wo es viele bestehende webbasierte Systeme gibt, die abgefragt werden können, um Metriken zu sammeln und diese an einem Ort zu speichern. Oder vielleicht mit proprietären Sensorsystemen, bei denen keine API verfügbar ist und die Firmware nicht geändert werden kann, aber eine Webschnittstelle vorhanden ist, die abgefragt werden kann.

protocol buffers

Fragment from the Protocol Buffers definition for Prometheus remote write.

In unserem Fall ist Prometheus ein gehosteter Dienst und als solcher wäre es nicht praktisch, eine Verbindung über das Internet herzustellen und Metriken von Geräten hinter einer Firewall abzurufen. Prometheus bietet jedoch auch einen Remote-Schreibmechanismus, der wiederum HTTP verwendet, aber diesmal auf dem binären Protokollpufferformat basiert. Beim Air Quality-Projekt wird diese Formatierung von der Air Quality-Geräteanwendung übernommen, die die ESDK-Sensoren ausliest und, wenn ein Prometheus-Endpunkt konfiguriert ist, die Messwerte in serialisierte Nachrichten verpackt, die dann in die Prometheus-Cloud geschrieben werden.

Eine weitere Option ist die Verwendung von Grafana Agent, der im Wesentlichen eine abgespeckte Version von Prometheus ist und so konfiguriert werden kann, dass er Metriken von im LAN gehosteten Anwendungen abgreift und diese dann in eine entfernte Prometheus-Instanz schreibt. Dies ist etwas, das wir uns in einem zukünftigen Artikel ansehen werden. Es könnte nützlich sein, wenn wir Daten von einem Sensor eines Drittanbieters mit einer Weboberfläche sammeln möchten.

Unabhängig davon, ob Sie die aq-device-Anwendung oder den Grafana-Agenten verwenden, benötigen Sie für die Nutzung des Remote-Schreibmechanismus die ID der entfernten Prometheus-Instanz sowie einen API-Schlüssel.

Grafana

Grafana ist eine leistungsstarke Analyse- und Visualisierungs-Webanwendung, deren Open-Source-Version im Laufe der Jahre in verschiedenen Projekten eingesetzt wurde, die in Artikeln auf DesignSpark behandelt wurden. Die gehostete Version, die als Teil von DesignSpark Metrics bereitgestellt wird, ist jedoch ein vollständig verwalteter Service, was bedeutet, dass sie häufig aktualisiert und gesichert wird, neben anderen Vorteilen.

grafana visualisation

Oben sehen wir eine sehr einfache Grafana-Visualisierung mit Liniendiagrammen für die Temperatur-, Feuchte-, TVOC- und CO2-Datenreihen, die von der ESDK-Hardware an drei verschiedenen Standorten erzeugt wurden.

grafana configuration editing

Wenn wir die Konfiguration für das Temperaturdiagramm bearbeiten, können wir sehen, dass eine Prometheus-Datenquelle verwendet wird und die erste aufgezeichnete Reihe (A) die Temperatur ist, bei der der Friendlyname='abackhome' ist. Die zweite Reihe (B) hingegen wählt die Temperatur mit friendlyname='milnetowers', und auch die dritte Reihe (C) hat einen eindeutigen friendlyname.

grafana metrics editor

Glücklicherweise müssen wir keine Liste mit allen Metrik- und Labelnamen führen, da Grafana einen Metrik-Browser bietet, den wir aktivieren und dann per Mausklick eine Abfrage erstellen können.

grafana visualisation 2

Natürlich lassen sich die Daten auf viel interessantere Weise als nur mit Liniendiagrammen darstellen. Zum Beispiel mit großen statistischen Werten + Sparklines, wie oben gezeigt. Auf der rechten Seite sehen Sie einige der anderen Visualisierungsoptionen, die zur Verfügung stehen.

Luftqualität Projekt

Datenmodell

Die folgenden zusätzlichen Prometheus-Etiketten werden im Rahmen des Projekts Luftqualität verwendet:

  • hwid. Hardware Seriennummer
  • geohash. Ein bequem formatierter Breiten- und Längengrad
  • sensor. Sensortyp und Hardwareversion

Diehwid wird verwendet, um die ESDK hardware aeindeutig zu identifizieren und somit Namenskollisionen zu vermeiden, die andernfalls auftreten könnten, wenn wir uns allein auf einen vom Benutzer konfiguriertenfriendlyname verlassen würden. Ein geohash is ist einfach eine bequeme Art der Codierung von Breiten- und Längengraden. Der Standort des Geräts ist wichtig für die Gruppierung von Daten nach Gebieten, z. B. für die Erstellung von Luftqualitäts-"Wärmekarten". Die Kenntnis des verwendeten  sensor könnte für die Interpretation der Ergebnisse wichtig sein, und es könnte sogar sein, dass die Genauigkeit durch die Kombination von Daten mehrerer Sensoren und die Anwendung von Korrekturen weiter verbessert werden kann.

Datenschutz
Die DesignSpark Metrics Plattform wird genutzt, um Dashboards für den privaten Gebrauch zu hosten, neben öffentlichen Dashboards für Ingenieur-Aktivismus-Initiativen wie das Luftqualitätsprojekt. Bei letzterem werden die Details darüber, welche Daten gespeichert werden, wie sie verarbeitet werden und wer Zugang dazu hat, als Teil des Anmeldeprozesses für die Beteiligung an einem öffentlichen Dashboard klargestellt.

Andrew Back

Open source (hardware and software!) advocate, Treasurer and Director of the Free and Open Source Silicon Foundation, organiser of Wuthering Bytes technology festival and founder of the Open Source Hardware User Group.