This week we have to get in gear fast to be ready for when the tidal wave of assignments come at us at the end of the year. So far we have a lot a research in the past week and we want to put that to good use while it is still fresh in our minds. We are going to start (and hopfully finish) our funtional spec this week. We need to have a clear idea of what we are doing and how we are doing it so that we are not wasting weeks.
The functional specificiation will out line what we have to do and a rough idea of how we are going to design it. We need to think of how things are going to go together and and thinking what we want the end product to be. We need functional requirments but also think about non functional requirements, things like the acuracy of the metrics and how fast we can get them from node to graph for them to be relevent. We also don’t want too many metrics flying to the server that it hinders that network unusable because of the monitoring. These are things that we have to think about and figure out how we are roughly going to accomplish it.
As part of the functional spec we also have to come up with user interface mock ups. At this moment we don’t really anticipate much of a user interface other than grafana and a command line interface for configuring, but that may change. To demonstrate this interface we have installed grafana this week on a local machine with graphite for a backend. These are fully operational and collecting test metrics. We can also make alerts for these test metrics. We chose graphite as our database because we felt it was very easy to integrate with grafana and it was lightweight unlike prometheus. We couldn’t see many downsides so decided it would be a good choice.
We have also created a speed test, test script to test the wireless speed connection of an access point. This is not very reliable and also uses a module called pyspeedtest. We hope to write this ourselves but as a test script it is fine. We find it breaks quite a bit and think it is down to some of the servers used by pyspeedtest rate limiting the script, so we may have to investigate that a little more.