Inspired by ActivityWatch and as part of my research, I developed an ActivityWatch Data Synchronizer, aimed at addressing the need for centralized monitoring and visualization of user activity data from multiple devices (currently available only for computers).
This project offers a centralized solution for syncing and visualizing data from multiple ActivityWatch instances. It integrates with ActivityWatch’s REST API, aggregates the data, and pushes it via the remote-write API to a Prometheus database, providing insights through Grafana dashboards.
The project consists of two main components:
- Agent: A lightweight agent that runs on devices to securely collect, filter, and push ActivityWatch data to Prometheus. It can run as a standalone, service or docker-image.
- Central: A centralized Prometheus + Grafana setup for aggregating and visualizing user activity data.
Key features include:
- Secure syncing and visualization of multiple ActivityWatch instances.
- Centralized monitoring for multiple devices.
- Data filtering for enhanced privacy and control.
- Categorization of data.
- Pre-built Grafana dashboards based on the ActivityWatch UI.
- Support for multiple hosts for a single user, allowing data to be organized by host.
- Visualization options in the dashboard enable the selection of one or more criteria, including User, Host, and Category, to customize insights according to specific needs.
A preview of the Grafana dashboard, showcasing how users’ activity data is visualized can be found here and here.
I would be honored if you could take a look at the project and share any feedback or suggestions.
While ActivityWatch Sync excels as a decentralized solution, I hope this project can serve as just a complementary addition for those who seek a centralized way to manage and visualize data across multiple ActivityWatch instances.
Thank you for your time, and I hope you find this project helpful!