[Freifunk Franken] Nodewatcher

delphiN lists at wunschik.net
So Jan 27 16:20:24 CET 2013


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Am 27.01.2013 13:56, schrieb Christian Berger:
> Das nennt sich cross-compilieren. Das geht, da hab ich keine
> Erfahrung damit. Dafr braucht man aber genau das gleiche Setup wie
> zum Erstellen von Firmwares. Sprich, wer eine Firmware bauen kann,
> kann auch das machen.

Sprich wer keine Firmware bauen kann kann auch das nicht :-(

> Ich hab mir da mal ein paar Gedanken gemacht.
> 
> Der Nodewatcher holt sich ja aus verschiedenen Quellen
> verschiedene Daten. Diese werden alle in ein XML-artiges Format
> umgewandelt.

Als erstes wrde ich mal von XML weg gehn - das sind ja schlie￟lich
nicht mehr die 90er Jahre :-)
JSON ist deutlich leichtgewichtiger und k￶nnen ganz ohne parsen direkt
in Web-Applikationen angebunden werden.
Um auch bestehende Apps zu untersttzen k￶nnte man ja erstmal beides
parallel untersttzen und einen Parameter definieren einfhren, der
das Ausgabeformat definiert.

> Ich vermute, dass da das Problem ist, dass das Shellskript das
> relativ unoptimiert macht. Die Menge des freien Speichers wird
> beispielsweise so bestimmt: memory_free=`cat /proc/meminfo | grep
> 'MemFree' | awk '{ print $2 }'` Da werden 4 Prozesse gestartet nur
> um eine Zahl zu bekommen. An anderen Stellen scheint es noch
> schlimmer zu sein.

Ich denke auch, das hier die gr￶￟ten Probleme liegen.
Man sollte sicherlich die Dateien nur einmal ￶ffnen und dann direkt in
C alle ben￶tigten Werte heraus-parsen statt dieser Kette von Aufrufen
durchzufhren.

Auch das Auslesen der Interfacedaten (Zeile 122-152 im Skript) k￶nnte
sicherlich durch ein eigenes Mini-Tool erfolgen.

Auch gibt es hier und da un￶tige Aufrufe, die man sicherlich
auskommentieren k￶nnte.

Detailierte Router-Infos wie z.B. "Kernelversion", "Idletime" oder
"Memory" sind fr die normale Netmonitor Anwendung eigentlich gar
nicht so wichtig. Hier wrde es evtl. reichen diese sehr speziellen
Daten nur noch alle 30-60 Minuten auszulesen und vielleicht sogar in
eine eigene Datei zu schreiben. Denkbar ist sogar, das man die Daten
tats¦chlich erst auslie￟t, wenn sie von irgend-einem Client auch
angefordert werden.

> Zur Originatorliste wrde ich vorschlagen, einfach batctl so
> umzubauen, dass es die Daten auch gleich im richtigen Format
> bergibt. So muss man das nicht umst¦ndlich parsen. Da batctl und
> nodewatcher ja doch gemeinsam verwendet werden, w¦re eine
> zus¦tzliche Option "Ausgabe in XML" sicherlich sinnvoll. Das wrde
> die Gesamtmenge an Code reduzieren, und jeder h¦tte was davon.

Auch hier hast du sicherlich Recht. Auch hier k￶nnte man etwas
einsparen. Ich bin mir aber nicht sicher, ob die B.A.T.M.A.N.
Entwickler fr solche Monitoring-Aufgaben Ihr Tool aufblasen wollen.
Wir k￶nnen uns das ja mal anschauen:
http://downloads.open-mesh.org/batman/stable/sources/batctl/

> Am Ende h¦tte man dann noch ein kompaktes Shellskript welches
> wenige kleine Programme (vielleicht 2-5) aufruft und ihre Ausgabe
> in die Datei schreibt. Dieses k￶nnte dann auch von anderen
> Communities auf ihre Zwecke angepasst werden. Die haben dann
> vielleicht kein Batman sondern olsr, und rufen dann halt nicht
> batctl sondern was anderes auf.

Gute Idee. Die Daten kommen als verschiedensten Quellen und es macht
sicherlich nicht viel Sinn dafr auch noch ein eigenes Tool zu
schreiben. Das nodewatcher Skript w¦re dann aber deutlich
leichtgewichtiger!

Mich wrde brigens noch interessieren, welcher HTTP-Server eigentlich
die erstelle Datei ausliefert. Im Skript steht nur "small local httpd".

delphiN


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.17 (MingW32)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBAgAGBQJRBUW2AAoJEF9Yb/5A4V6RWD8IALhEIXsHQozJtffkNOS5ZhJm
N0dGs4v6/LnV7/k812UNC0ksDNdyGa5vhWGWymkGMshhnc1kbEDVuT06dAVQev4O
JGWbKFtoqNteQ7JEY5XjlHn16JUmooj3RfFXvH2DKCS5c/6F/HR1ibreYg/j/PmZ
uS4wq087yqyZXEOi/muXt3DQM4UieKzBsr7bzH52NuaylWrsMRIv+hSGwaGrymDW
n9a0oUuNXfuvI9gcU6bckUcUcexvtGMW2et5/G/zfB8NrC4gQAKGOQ4wb/NYBvV6
ijjEIEz7Qz65R3yeDpgkWJc4ReN8/+3iHMS9d9ZM387vn52VkpgwOTCmUfjLK2s=
=mjEc
-----END PGP SIGNATURE-----



Mehr Informationen über die Mailingliste franken