A modular, RedisTimeSeries-native observability agent.
Designed for developers, tinkerers, and infrastructure teams who want full control over metrics collection, without the bloat.
rtcollector is a lightweight, plugin-based agent for collecting system and application metrics, and pushing them to RedisTimeSeries.
It works like Telegraf, but is designed specifically for the Redis Stack ecosystem.
Think of it as your Redis-native observability layer: simple, fast, hackable.
Because most modern observability agents:
- Are too bloated or overkill for smaller projects or edge deployments
- Assume you're using Prometheus, InfluxDB, or Elastic
- Lack good support for RedisTimeSeries as a first-class output
- Why not?
rtcollector was born out of the need for:
✅ Something modular
✅ Configurable with a YAML file
✅ Built with RedisStack in mind
✅ Small enough to embed anywhere (VMs, Docker, homelabs, edge devices)
- ⏱️ Collect metrics at configurable intervals
- 📦 Modular input plugins (Linux CPU, Mem, Disk, etc.)
- 🚀 Push metrics to RedisTimeSeries (via TS.ADD)
- ⚙️ Fully YAML-configurable. No code changes needed to enable/disable plugins
- 📚 Built with Python and easy to extend
- 💻 Support for MacOS and Linux
- 🏷️ Label-based key creation with per-host and per-core tags
- 🐞 Debug logging and one-shot execution support
- 🐳 Docker metrics via container stats and engine info
- 🕒 Per-plugin timing with slow detection and warning indicators
linux_cpu | ✅ | per-core and total CPU usage |
linux_mem | ✅ | free/used/available RAM |
linux_disk | ✅ | disk usage by mount |
linux_net | ✅ | bytes in/out, packet errors |
linux_io | ✅ | read/write bytes and ops |
macos_cpu | ✅ | per-core and total CPU usage |
macos_mem | ✅ | memory usage via vm_stat |
macos_disk | ✅ | disk usage via df |
macos_io | ✅ | I/O stats via iostat |
macos_net | ✅ | net stats via netstat |
docker_stats | ✅ | container CPU, memory, and network stats; Docker Swarm toggle via config; added logging improvements and plugin execution duration tracking |
mysql | 🧪 | basic server stats via SHOW STATUS |
postgres | 🧪 | connections, xact commits |
redis | 🧪 | INFO command + optional latency info |
redistimeseries | ✅ Default and most stable output; supports automatic key creation with retention policies and labels; supports dynamic hostname tagging and duplicate policy handling |
(Planned) stdout | for testing/debugging locally |
(Planned) clickhouse | push metrics to cold storage / analytics engine |
(Planned) mqtt / http_post | to integrate with IoT or alerting systems |
- Plugin-based architecture
- YAML-based config loader
- Add default input suite (system, docker, databases)
- Add CLI (rtcollector run --config config.yaml)
- Debug and once mode
- macOS support
- Docker Support
- Add plugin schema validation + logging
- RedisJSON/RediSearch support for logs
- Redis Streams support for realtime events
- Grafana dashboard templates for RedisTimeSeries
- DevOps engineers running Redis Stack
- Homelab enthusiasts
- IoT builders using RedisTimeSeries
- Anyone who wants a custom, no-bloat collector for metrics
This project is just getting started, contributions, ideas, and PRs are more than welcome!
To get started:
- Fork this repo
- Clone your fork
- Create a branch (git checkout -b my-feature)
- Commit your changes (git commit -am 'Add feature')
- Push to the branch (git push origin my-feature)
- Open a pull request
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).
You are free to use, modify, and distribute this code , as long as you open source any changes and make your source code available if you deploy a modified version as a network service.