Lightweight, stateless and privacy-first analytics system
- Go 87.6%
- Nix 6%
- JavaScript 4.7%
- HTML 1.7%
Some features from Plausible that I think I'll miss. Here are some of the noteworthy ones: - Configuration via data attributes (api, domain, hash-mode, etc.) - Automatic localhost detection and path exclusions - Hash-based routing for SPA support - Custom referrer support for events - Duplicate pageview detection Signed-off-by: NotAShelf <raf@notashelf.dev> Change-Id: I6d19378404d0cb9920f12e0cdd163a8e6a6a6964 |
||
|---|---|---|
| cmd/watchdog | ||
| contrib/systemd | ||
| internal | ||
| nix | ||
| test | ||
| testdata | ||
| web | ||
| .envrc | ||
| .gitignore | ||
| config.example.yaml | ||
| flake.lock | ||
| flake.nix | ||
| go.mod | ||
| go.sum | ||
| main.go | ||
| README.md | ||
Watchdog
Watchdog is a privacy-preserving web analytics platform similar to Plausible, where data visualisation is deferred to a Prometheus-compatible dashboard such as Grafana. It is designed to be as simple and lightweight as possible, without any additional web components to worry about. You, in turn, get to use your existing monitoring stack to also collect information about your web applications tracked by Watchdog.
Design
- No raw event storage
- No persistent identifiers
- Bounded cardinality by design
- Aggregate at ingestion
- Prometheus-native export
Quick Start
# Build the prıject
$ go build -o watchdog ./cmd/watchdog
# Start the Watchdog daemon with your own config
$ ./watchdog --config config.yaml