Duct is a modular monitoring agent and event router built on Python asyncio (Python 3.11+). It collects metrics from multiple sources and routes them to multiple outputs — currently Riemann, Elasticsearch, Prometheus, OpenTSDB, and Bosun are supported, and the plugin API makes it straightforward to add more.
pip install ducted
Create a duct.yml configuration file:
interval: 1.0
ttl: 60.0
outputs:
- output: duct.outputs.riemann.RiemannTCP
server: localhost
port: 5555
sources:
- service: cpu
source: duct.sources.linux.basic.CPU
interval: 1.0
warning: { cpu: "> 0.5" }
critical: { cpu: "> 0.8" }
- service: memory
source: duct.sources.linux.basic.Memory
interval: 10.0
- service: load
source: duct.sources.linux.basic.LoadAverage
interval: 10.0Then start Duct:
ductd -c duct.yml
Full documentation is at http://duct.readthedocs.org/