Hello all!

I know the list is mostly idle/shutting down, but I'm following the recommendation on github (HACKING) to discuss new potentially disruptive changes on the mailing list. If I get no replies I will open a ticket on github.


We're using smokeping to do some automated network parameter measurements to check on the perceived service quality we offer our end customers. We're using remote probes/slaves to do measurements from different points in the network and aggregating the data on the master. I've also created some plugins in the past few years, so we want to stick with smokeping for the measurements.

However, the web GUI is not really suitable for large scale data analysis. It's ok for historical analysis only. So, I'm planning on making a few (hopefully small) changes to smokeping to add support to write the measurements in an influxdb database, in addition to storing them as RRD. I hope to be able to push the changes (once they're working) to the main Smokeping branch. Having data in influxdb allows easier automated analysis (e.g. using an sql-like language to get the latest measurements for a destination from all the slaves, without having to parse the RRD files). It also opens up the possibility to have views exposed in Grafana and other more modern data visualization tools.

Here's what I'm planning:

1. Allow the addition of custom configuration options to the config file so that those options can be mapped to influxdb tags (so that they are easily searchable in influxdb). For instance, something like this:

+ Hosts_in_region_A

menu = Hosts in region A

title = Hosts in region A

++ client1

host = 192.168.1.1

probe = fping

influx_download = 100Mbps

influx_upload = 10Mbps

influx_service_type = FTTB


For now, when I try to add configuration options that are not defined, I get the error:

ERROR: /opt/smokeping/bin/../etc/config, line 144: unknown variable 'influx_download'

I'm guessing I need to bypass or extend the parser so that such errors are ignored, or become warnings. Or, better yet, if I stick with the prefix influx_ I can make it accept any influx_ parameter, but complain on other typos (which is useful). I'll need to do some reading on the Grammar module...

2. Add a new config section that defines connectivity to influxdb (URL, user, password)

3. Add a hook inside update_rrds() to intercept the data before being written to the RRD (before or after the call to RRDs::update). Push the raw data to influxdb (either inline for efficiency, or with a new function call for readability).

I'm not 100% certain that the update_rrds() from Smokeping.pm gets called for slave updates as well, or there is an equivalent in the CGI interface. I'm guessing it's the same, but I will do some tests when I get there.


So - what are your thoughts on this? Are there better/easier ways of doing it?

Thanks!

_______________________________________________
smokeping-users mailing list
[email protected]
https://lists.oetiker.ch/cgi-bin/listinfo/smokeping-users

Reply via email to