Collecting Netlab Usage Data
It would be great to know how people use netlab; currently, we can only guess as we get little feedback and zero hard data.
We could start collecting usage data locally and kindly ask users to share it if they feel so inclined. The usage data would be collected in the ~/.netlab/usage.yml
file, containing sets of counters for modules, devices, providers, and plugins.
Each set of counters would be a dictionary; the keys would be individual objects, and the values would be composite counters – dictionaries containing:
count – the number of times the object has been used
max – the maximum number of objects in a lab topology
avg – the average number of objects used in a lab topology (using exponential decay)
update – the last time the counter has been updated
Finally, we would need a number of timestamps:
start – the first time the usage file was updated
upload – the last time the usage file was uploaded
The user could inspect the usage data with netlab usage show, reset it with netlab usage reset, and upload it with netlab usage upload.
While it’s relatively easy to implement the data collection part, the infrastructure supporting the uploads remains a mystery.
Option A - separate GitHub project netlab_usage
One option is to use GitHub for collecting usage data: Using a separate repo, Netlab would push and commit the usage file to a location under that repo. Security wise, this would require an access token with limited write permissions (hence the separate repo - not sure if we could restrict access well enough within 1 repo)