Show HN: Minimalytics – a standalone minimal analytics app built on SQLite
This project came from requirements to track certain very frequent events. I found that the cost to do it on a regular analytics product was much more than i was willing to pay. Secondly, I also wanted to use as few resources as possible. So I thought it may be a good idea to create something that may be useful for myself (and hopefully others).
I have been able to track a great number of events with this using ~20 MB of storage and memory which is incredible. I have been really impressed by golang as a language and as an ecosystem and would love to work more in this language going forward.
Some Highlights: 1. No dependencies 2. CLI based management 3. Web based UI (and the server to serve it) included in the program. 4. 20 MB install size. 5. 20 MB memory use while running. 6. Minimal storage requirements because it aggregates events.
This can be a great fit for anyone who wants to have a lightweight minimal analytics for internal events.
I am looking forward to your comments and feedback.
I rolled out a similar project a few months ago using Django + SQLite.
https://github.com/HermanMartinus/bearlytics
No db on the receiver and log-based storage on the senders (using standard log rotation to manage size). A systemd service to write to logs, another to read the last value and push to remote if it has changed. Bash all around.
Other than absolutely 0 maintenance required, and just a $5 droplet, the thing I like the most is the dashboard. It just looks like a spreadsheet. A row for each server, a column for each metric. Click on a cell to view charts for that metric. If metrics are failing health checks cell goes orange, or red if critical. Otherwise it's all gray.
So I can have the dashboard open on a screen and just glance at it and know if something is off. I haven't seen anyone else providing such a dashboard, maybe you can give it a go:)
A lot of the SQLite code & modeling looks similar to how I'd approach this.
I was wondering about the need for React in this arrangement. I feel like you could do this with even fewer vendors and less memory (on the client).
I am thinking about switching to HTMX to further reduce size, simplify and improve performance.
A little sad since I wanted to try it out