technik:yanic_meshviewer

Yanic & Meshviewer

Wir betreiben fuer unsere Karte eine Yanic-Installation auf ffs03. Wir benutzen als Datenbank fuer Yanic influxdb und als Karte meshviewer.

Yanic sammelt in unserem Netz die respondd-Daten von allen Nodes ein. Sie werden dann in folgenden Formaten zur Verfuegung gestellt:

  • in der influxdb fuer Statistiken im Grafana und auf der Karte
  • fuer die Karte (Meshviewer) als JSON
  • die rohen eingesammelten Daten als so genannte raw.json (nur mit Authentifizierung)
    • fuer den FFS-Monitor
    • fuer das Konvertierskript auf yanic
URL Zweck generiert von
https://map.freifunk-stuttgart.de/data/nodelist.json nodelist fuer ffapi yanic, output nodes.output.nodelist
https://map.freifunk-stuttgart.de/data/meshviewer.json Daten fuer meshviewer yanic, output nodes.output.meshviewer-ffrgb
https://map.freifunk-stuttgart.de/data/nodelist.json Details fuer freifunk-karte.de yanic, output nodes.output.nodelist
https://map.freifunk-stuttgart.de/data/nodes.geojson ? yanic, output nodes.output.geojson
https://map.freifunk-stuttgart.de/data/raw.json Restricted, monitore yanic, output nodes.output.raw
https://map.freifunk-stuttgart.de/json/FreifunkStuttgart-api.json API respondd-alfred-converter, update_apifile.py
https://map.freifunk-stuttgart.de/json/nodes.json appmap, unklar? respondd-alfred-converter, update_appmap.py
https://map.freifunk-stuttgart.de/nodelist/ Nodelist respondd-alfred-converter, nodes-list.py

Aus historischen Gruenden™ gibt es auf yanic ein Konvertierskript carbon.py, das die raw.json von Yanic aus dem Dateisystem liest und in collectd-Format konvertiert. Collectd wird dann wiederrum per Prometheus gescraped.

Ja, das muesste mal™ jemand aufraeumen.

  1. apt install npm
  2. git clone https://github.com/ffsh/meshviewer.git
    cd meshviewer
    npm install
    ./node_modules/.bin/yarn
    ./node_modules/.bin/yarn run gulp
  3. dann landet eine Application unter build

Eine Buildumgebung fuer Meshviewer liegt auf ffs-yanic01 unter /opt/meshviewer. Die erzeugten Dateien aus dem Build-Verzeichnuss muessen nach /var/www/html/meshviewer kopiert werden.

In der meshviewer Config haben wir fuer das Segment und die PLZ benutzerdefinierte Felder hinterlegt. Die interessanten Codezeilen sind:

      {
        'name': 'node.segment',
        'value': function(d) {
                var seg = null
                d.addresses.forEach(function(addr) {
                        if (addr.startsWith("fd21:b4dc")) {
                                addr_split = addr.split(":")
                                if (addr_split.length > 2) {
                                        seg = addr_split[2].replace("4b", "")
                                }
                        }
                })
                if (!seg) {
                        return "?"
                }
                return seg
        }
      },
      {
        'name': 'node.zip',
        'value': function(d) {
                if (d.custom_fields && d.custom_fields.zip) {
                        return d.custom_fields.zip
                }
                return "?"
        }
      },
  • technik/yanic_meshviewer.txt
  • Zuletzt geändert: vor 5 Wochen
  • von nrb