in reply to simple server implementation suggestions?
You have threads and processes: use them. One process does not have to do all this.
Therefore, your overall chore breaks down into several independent tasks, which for that matter could be launched from the Unix/Linux command-line by a simple shell-script using the '&' background-jobs inherent to its shell.
Also carefully consider exactly when the program will need to collect its data and exactly when it will need to offer its results. For instance, if you have one process(es) that sleeps, then wakes up, checks a log-file for new stats, writes them to a file and goes back to sleep ... an ordinary HTTP-server process could build a web-page output that summarizes the current results.
Keep this very simple. "There is more than one way to do it." Look for several. Put down your coding-pen until the very last moment, if indeed you have to pick it up at all. Existing tools, like tail, might do the job nicely.