Karte ausgerollt aber funktioniert nicht


#21

Gibt es bestimmt… Kenne das node-stats Script nicht im Detail und es wird Grad auch neu gebaut.

Wenn ihr das in eurer Community speichern wollt könnt ihr das natürlich tun und musst dafür das Script anpassen. Bei uns hat man sich jedoch aus besagten Gründen darauf geeinigt diese Daten, die eine Profilierung eines Nutzers ermöglichen, nicht per Default zu speichern.


#22

Wenn du hier anstatt des False ein True hinschreibst, erfasst er alles für alle Knoten:

Wie bereits erwähnt, schreibe ich gerade eine Version, die sich die Daten vom Hopglass-Server holt, um die Anzahl der respondd-Pakete nicht unnötig in die Höhe zu treiben.

Ich nehme deinen Wunsch dort mal auf und mache das adv-node-stats konfigurierbar.


Erweiterte Knotenstatistik erfassen
#23

wenn dem so ist, finde ich gut. Vor allem es würde dann ja nicht anlasslos gespeichert (und die Anzeige einfach nur verhindert, sondern gar nicht.)

Die Frage bleibt: wo trägt man sich dort ein.
Gibt es da wieder uci-Einträge im Router die dann den Eintrag dort periodenweise aktivieren/auslösen?
Oder geht das nur mit spezial-Rechten in eurem System?

Gruß


#24

Das war der ursprüngliche Plan. Hatte hier auch mal begonnen. Damals hatte ich das mit der Modularität von respondd aber noch nicht verstanden, sodass es Konflikte mit Abhängigkeiten gegeben hätte. Jetzt habe ich es (einigermaßen) verstanden aber noch keine Zeit dazu gefunden.

Daher muss man sich hier eintragen, damit die adv-node-stats erfasst werden. Wir haben aber letztens beschlossen, dass zukünftig by-default auch die Statistiken von Knoten, die den branch experimental oder beta gewählt haben, erfasst werden.


#25

Da ich mich dort nicht eintragen kann, trägst du mir bitte mal
f4f26dd79ad0 ein?

Danke :slight_smile:


#26

Das bitte vorher öffentlich per Post auf Website mit ausreichender Frist bekanntgeben. :slight_smile:


#27

wie wird es denn bei denen sein, die stable nutzen?

Gibt es da zukünftig die Wahl zwischen Statistik und keine stats?


#28

Du kannst für das Repo node-stats einen Pull Request stellen.

Ändert sich nix.

Wäre schön. Wäre möglich. Mach einen Vorschlag.


Ja, wir haben beim letzten vorletzen Mal beschlossen, dass wir das so machen wollen. Und da wir schon so lange darüber diskutieren mussten, haben wir gar nicht mehr daran gedacht uns darum Gedanken zu machen. Daher wissen wir nicht, welche Form der Bekanntmachung angemessen wäre.


#29

Weißt du wo diese Änderung gemacht wurde? Wäre nett, wenn @descilla mir das schreiben könnte.


#30

Hier mal ein diff von unserem Kartenserver… Aber ohne Garantie…

diff --git a/lib/map.js b/lib/map.js
index d270be5..79005ec 100644
--- a/lib/map.js
+++ b/lib/map.js
@@ -338,6 +338,7 @@ define(["map/clientlayer", "map/labelslayer",

       map.on("baselayerchange", function(e) {
         map.options.maxZoom = e.layer.options.maxZoom
+        map.options.maxNativeZoom = e.layer.options.maxNativeZoom
         clientLayer.options.maxZoom = map.options.maxZoom
         labelsLayer.options.maxZoom = map.options.maxZoom
         if (map.getZoom() > map.options.maxZoom) map.setZoom(map.options.maxZoom)
@@ -360,7 +361,7 @@ define(["map/clientlayer", "map/labelslayer",
       }

       function setView(bounds) {
-        map.fitBounds(bounds, {paddingTopLeft: [sidebar(), 0]})
+        map.fitBounds(bounds, {paddingTopLeft: [sidebar(), 0], maxZoom: 19})
       }

       function resetZoom() {
@@ -369,6 +370,7 @@ define(["map/clientlayer", "map/labelslayer",
       }

       function goto(m) {
+        console.log(m)
         var bounds

         if ("getBounds" in m)
@@ -490,8 +492,8 @@ define(["map/clientlayer", "map/labelslayer",
           }, router))

         groupOffline = L.featureGroup(markersOffline).addTo(map)
-        groupLost = L.featureGroup(markersLost).addTo(map)
         groupOnline = L.featureGroup(markersOnline).addTo(map)
+        groupLost = L.featureGroup(markersLost).addTo(map)
         groupNew = L.featureGroup(markersNew).addTo(map)

         var rtreeOnlineAll = rbush(9)
@@ -499,10 +501,10 @@ define(["map/clientlayer", "map/labelslayer",
         rtreeOnlineAll.load(data.nodes.all.filter(online).filter(has_location).map(mapRTree))

         clientLayer.setData(rtreeOnlineAll)
-        labelsLayer.setData({offline: nodesOffline.filter(has_location),
-                             lost: data.nodes.lost.filter(has_location),
-                             online: nodesOnline.filter(has_location),
-                             new: data.nodes.new.filter(has_location)
+        labelsLayer.setData({online: nodesOnline.filter(has_location),
+                             offline: nodesOffline.filter(has_location),
+                             new: data.nodes.new.filter(has_location),
+                             lost: data.nodes.lost.filter(has_location)
                             })

         updateView(true)


#31

Danke, aber das hilft mir nicht wirklich weiter.
Gibt es die komplette geänderte Datei auf github?


#32

Ich melde mich heute Nachmittag noch mal. Derzeit gibt es nur eine Änderung direkt auf dem Server, das ist aber nur ein dreckiger, temporärer fix, bis ich Zeit finde mich darum zu kümmern. #daddyindistress


#33

Ich habe jetzt mal versucht alle Karten-Änderungen ins git zu bringen:

Hilft dir das weiter?


#34

Danke! Ich habe mal nur die lib/map.js getauscht und in der config.json “maxGotoZoom”: 14 eingetragen.
Scheint keine Auswirkungen zu haben. Was sind denn gültige Werte für die Zoomstufen?
Und gibt es noch weitere Dateien, die angepasst werden müssen? Habe die jüngste Änderung nur in der map.js gefunden. Möchte das Playbook ungern deployen, weil beim ersten Deployment einiges schief gelaufen ist und ich händisch fixen musste.

Btw: ich möchte gerne aufhören, unsere Statistikdaten bei euch abzuladen. Für die hübschen Bilder bräuchte ich einen Grafana-Server, wenn ich das richtig sehe. Habt ihr dafür auch schon ein Playbook oder muss ich den händisch aufsetzen?

Und an welcher Stelle finde ich auf dem Kartenserver, wohin die Statistikdaten übermittelt werden?

Fragen über Fragen…


#35

Die Kartenapplikation basiert auf grunt. Damit die Änderungen übernommen werden, musst du das Projekt einmal neu “bauen” lassen.

Dazu ins Kartenverzeichnis /opt/hopglass/client wechseln und den Befehl node_modules/.bin/grunt ausführen. Danach ist es wichtig den Cache zu leeren, um sicher zu gehen, dass die neue JS Datei und vor Allem auch die neue config.json vom Server geladen werden.


#36

Ach ja, Grunt. Jetzt geht es, danke!


#37

Hi, leider haben wir für Grafana noch kein Playbook, es läuft noch in der “alten” Welt. Zum Abkippen der Daten brauchst du ja den Graphite (dafür haben wir ein Playbook). Grafana ist “nur” ein Frontend. Du kannst auch direkt die Bilder von Graphite verwenden, haben wir früher auch gemacht. Ist aber nicht so schön.

Grafana lässt sich aber auch recht leicht installieren:

apt-get install grafana. Unter /etc/grafana/... gibt es dann ne config-Datei. Aber da musst du eigentlich nur die Zugriffsrestriktionen einstellen, den Rest stellt man dann direkt über das Webinterface ein.

Du kannst auch gerne eine Ansible-Rolle dafür erstellen und dann ein Pull-Request auf unser Repo erstellen. Wir wären dir sehr dankbar. Wir werden, zumindest in naher Zukunft, leider nicht dazu kommen (zu viele andere Baustellen).


#38

Der Reverse Proxy vom nginx der /data/ auf 127.0.0.1:4000 umleiten soll funktioniert nicht.

Der hopglass-server Läuft auch…

http://karte.freifunk-lippe.de:4000/nodes.json

Eine neu Generierung der Kartendaten gibt es nicht da diese on-the-fly generiert werden wenn sie jemand anfordert.


#39

Dankeschön!