This week we finshed our functional specification. We thought that we would have it finished last week but some diagrams took us longer than we expected and we found that some of the phrasing in the requirements needed to be clarifed and changed. We worked hard on it and it looks like it will be a very good representation on what we envision for our project.
We also experimented with wifi speed tests that we created last week. We have made it more robust for now by switching to a new module with different servers. We will plan to implement our own rather than using modules but this was a good way to get metrics into our graphs to visualise how everything will be comming together.
Before we were just using a bash command called netcat to pass our metrics very unreliably to graphite but this week we created a python exporter to pass them more reliably. We plan to upgrade this as we go but it is a very clean script using sockets to pass metrics using udp protocol to keep in like with our non-functional requirement of not useing too much bandwidth through the network it is monitoring.
This week has been very much catching up on what was started last week. We hope to flesh out a class for daemons by next week that all of our metric collectors will inherit from so they can all run at the same time on the node logging what they find and waiting for the metric exporter to send them off. We found this a better aproach than one script calling lots of modules. We feel then if one daemon stops working it will not affect any other. We can also easly turn on and off certain aspects of the monitoring easily be it for debugging or the metric does not make sense in a certain context.