https://github.com/phrp720/aw-sync-suite
Sync multiple ActivityWatch instances to Prometheus, centralized and visualized with Grafana.
https://github.com/phrp720/aw-sync-suite
activitywatch analytics as-a-service aw-sync-agent aw-sync-center aw-sync-suite cross-platform dashboard monitoring service sync synchronizer
Last synced: 30 days ago
JSON representation
Sync multiple ActivityWatch instances to Prometheus, centralized and visualized with Grafana.
- Host: GitHub
- URL: https://github.com/phrp720/aw-sync-suite
- Owner: phrp720
- License: mit
- Created: 2024-10-14T10:42:01.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2025-01-02T02:38:43.000Z (10 months ago)
- Last Synced: 2025-01-02T02:53:42.150Z (10 months ago)
- Topics: activitywatch, analytics, as-a-service, aw-sync-agent, aw-sync-center, aw-sync-suite, cross-platform, dashboard, monitoring, service, sync, synchronizer
- Language: Go
- Homepage:
- Size: 1.22 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-activitywatch - aw-sync-suite
README
Aw-Sync-Suite
Open-Source Solution for Securely Syncing and Visualizing Multiple ActivityWatch Instances.
If youβve ever wished for a simple, centralized solution to sync and visualize data from multiple instances of ActivityWatch, youβre in the right place.
π For detailed documentation, visit our GitHub Wiki.π Table of Contents
1. [About](#-about)
2. [Features](#-features)
3. [Installation & Usage](#-installation--usage)
4. [Components](#-components)
- [aw-sync-agent](#-aw-sync-agent)
- [aw-sync-suite-plugins](#-aw-sync-suite-plugins)
- [aw-sync-center](#-aw-sync-center)
5. [Architecture](#-architecture)
6. [Requirements](#-requirements)
7. [Contributing](#-contributing)
8. [License](#-license)## π About
**Aw-Sync-Suite** provides an easy-to-deploy solution on syncing data from multiple [ActivityWatch](https://github.com/ActivityWatch/activitywatch) instances to a centralized [Prometheus](https://prometheus.io/) database with easy visualization in [Grafana](https://grafana.com/).The project operates independently of **ActivityWatch** and supports all ActivityWatch versions with a REST API.
### ποΈ Preview
|  |  |
|-----------------------------------------------------------------------------|--------------------------------------------------------------------------------|You can check also the [screenshots](https://github.com/phrp720/aw-sync-suite/tree/master/aw-sync-center/grafana/dashboards/screenshots) for more insights.
## π Features
- π **Centralized Monitoring:** Aggregate data from multiple devices effortlessly.
- π‘οΈ **Data Filtering:** Protect sensitive information by filtering or sanitizing it at the source.
- π **Checkpointing Mechanism:** Smart synchronization with automatic tracking of synced data.
- π **Plugin Mechanism:** Use the pre-built plugins or create your own for custom data processing.
- π **Pre-Built Dashboards:** Use intuitive Grafana dashboards for instant insights.
- βοΈ **Effortless Deployment:** Simple setup for both agent and central components.## π Installation & Usage
Downloads are available on the [releases page](https://github.com/phrp720/aw-sync-suite/releases).
For instructions on how to get started, please see the [guide in the documentation](https://github.com/phrp720/aw-sync-suite/wiki/Installation-Guide).
## π§© Components
### π¦ [aw-sync-agent](https://github.com/phrp720/aw-sync-suite/tree/master/aw-sync-agent)
Runs on each device, retrieves and filters ActivityWatch data, and sends it securely to Prometheus via remote-write.
- **Purpose**: Syncs data from ActivityWatch to Prometheus.
- **Deployment**: Run on each computer you wish to track user activity from.
- **Configuration**: Configurable via the `aw-sync-settings.yaml` file and its [plugins](https://github.com/phrp720/aw-sync-suite-plugins).| Platform Support | Runs as a Service (`-service`) | General Workability |
|------------------|--------------------------------|---------------------|
| **Windows** | β | β |
| **Linux** | β | β |
| **macOS** | β | β |> [!Note]
> - The **aw-sync-agent** is fully operational on **macOS**, but the `-service` feature (which allows the agent to run as a background service) is not yet implemented for macOS.
> - On macOS, you can still manually start and run the agent to sync ActivityWatch data without issues.### π [aw-sync-suite-plugins](https://github.com/phrp720/aw-sync-suite-plugins)
The `aw-sync-suite` supports a range of plugins that allow for custom data processing before pushing the data to Prometheus. You can utilize these plugins to enhance your data synchronization capabilities.
- **Purpose**: Plugins enable pre-processing of ActivityWatch data, allowing for filtering, transformation, and custom handling based on specific requirements(read more on how they work [here](https://github.com/phrp720/aw-sync-suite/wiki/Agent-Plugins)).
- **Integration**: Easily configurable within the `aw-sync-agent` through the `aw-sync-settings.yaml` file and their configuration files.
- **Repository**: For a list of available plugins and their usage, visit the [aw-sync-suite-plugins repository](https://github.com/phrp720/aw-sync-suite-plugins).#### How to Use Plugins
1. **Add the Plugin**: Ensure the desired plugin is available in the `aw-sync-suite-plugins` repository and modify the `aw-sync-settings.yaml` file to include the plugin.
2. **Configure the Plugin**: If the plugin is configurable add the plugin configuration in the `config` folder to configure the plugin settings.
3. **Run the Agent**: Start the `aw-sync-agent`, and it will automatically utilize the configured plugins for data processing.### π¦ [aw-sync-center](https://github.com/phrp720/aw-sync-suite/tree/master/aw-sync-center)
A centralized Prometheus and Grafana setup for aggregating and visualizing data.
- **Purpose**: Centralized cloud setup that includes Prometheus and Grafana for monitoring and visualization.
- **Deployment**: Set up once for centralized control and management.
- **Included Services**: Prometheus, Grafana, and necessary dashboards.
## π ArchitectureSync-Suite contains two available setups: one **without Bearer Token Authentication** and another **with Bearer Token Authentication**.
The latter provides an additional layer of security by securing the Prometheus endpoints with a Bearer token if it is exposed to the internet.
This setup uses a Nginx reverse proxy to secure the Prometheus endpoints.| Without Bearer Token Authentication π | With Bearer Token Authentication π |
|---------------------------------------------|---------------------------------------------------------|
|  |  |## π οΈ Requirements
- Docker and Docker Compose for easy setup of `aw-sync-center`.
- A running instance of ActivityWatch on the computers you want to monitor.## π₯ Contributing
Contributions are welcomed! If you have ideas, improvements, or bug fixes, feel free to open an issue or submit a pull request.## π License
This project is licensed under the **MIT license**.
See [LICENSE](https://github.com/phrp720/aw-sync-suite/blob/master/LICENSE) for more information.