Plum is a real-time web server access log analyser. It allows the user to access the statistics using a clean and simple web dashboard. The backend responsible for analyzing the log files has been written in Go while the frontend has been written in Vue.
Plum can track a single log file in order to produce live data as well as load any number of past log files in order to present historical data points. Both predefined and custom log file formats are supported. The parsing itself has been implemented using a simple lexer in order to guarantee better performance and reliability than the alternatives such as regular expressions. The program can track complex statistics presenting hits and visits over time, traffic to specific sub pages, traffic from specific referrals, error rates, number of transferred bytes per resource, and others.