Matomo is a comprehensive Web analytics platform that aims at replacing Google Analytics (and/or similar solutions).
Ballcone, however, aims to fill the niche between ‘static’ access log parsers like GoAccess and bigger systems like Matomo or Open Web Analytics. It does not require putting a JavaScript snippet to the website and, at the same time, is very simple to deploy. Just connect it with the nginx syslog logger and see the data updating in (near) real-time.
Also, Ballcone is based on embedded columnar storage, MonetDBLite, which allows fast analytical queries for plotting charts and dashboards.
I have been using it for a few personal projects since March and I am glad to share it!
Of course, the world is not limited to just nginx. As soon as the Web server allows sending access logs via the syslog protocol, Ballcone should handle it well. Well, nginx is my usual choice, so I focused on supporting it first. As far as I know, haproxy allows it, too, but I have not tried it yet.
An embedded database is used intentionally. Not just because I like them, but because I am inspired by the services like Cockpit (https://cockpit-project.org/) that provides a Web console to the server on SSH login.
Scaling is an excellent question. My preliminary tests showed that MonetDBLite handled approximately 500–700 inserts per second on a small Linux virtual machine with HDD. Larger scales require specialized solutions like ClickHouse or Vertica. Just in case, Ballcone supports gathering data from multiple remote hosts.
4 comments
[ 2.9 ms ] story [ 21.4 ms ] threadBallcone, however, aims to fill the niche between ‘static’ access log parsers like GoAccess and bigger systems like Matomo or Open Web Analytics. It does not require putting a JavaScript snippet to the website and, at the same time, is very simple to deploy. Just connect it with the nginx syslog logger and see the data updating in (near) real-time.
Also, Ballcone is based on embedded columnar storage, MonetDBLite, which allows fast analytical queries for plotting charts and dashboards.
I have been using it for a few personal projects since March and I am glad to share it!
Also as it uses an embedded dB does that mean it can’t be scaled to multiple servers (unless you send all the access log data to multiple Servers)?
An embedded database is used intentionally. Not just because I like them, but because I am inspired by the services like Cockpit (https://cockpit-project.org/) that provides a Web console to the server on SSH login.
Scaling is an excellent question. My preliminary tests showed that MonetDBLite handled approximately 500–700 inserts per second on a small Linux virtual machine with HDD. Larger scales require specialized solutions like ClickHouse or Vertica. Just in case, Ballcone supports gathering data from multiple remote hosts.