I started putting together this small docker-compose stack so I could easily play and start experimenting with Grafana. And you know how these things go: I outgrew the built in sqlite backend, so I moved it to an external Postgres conainer, which I then decided needed an external container backed volume so I could safely persist and move data across lab machines, then it became a matter of what data sources I wanted to experiment with and what data I wanted/could send to the TSDB of choice, and so on.
So, while this is definitely rough around the edges, understand that this is mainly for me. But, if you find it useful, be my guest and fork it and make it your own. Or if you are feeling collaborative, go ahead and contribute and help me extend it and plug in more back ends (Prometheus, InfluxDB, OpenTSDB) or point me to better, sleeker, slimmer metric collection agents.
Currently, the project is comprised of the following products:
- StatD falls on the metric aggregation / collector category
- Cool, little system metric emmitter for StatsD, written in C++
- Docker 1.13 (tested on Docker 1.13.1)
- Docker Compose 1.14 (tested on Docker Compose 1.14.0)
- Linux Kernel 4.x (tested on Fedora 26 w/4.11.10)
If you happen to be on any of the most recent 4.x Linux Kernels, you should be able to just check out this repo and start the stack by running
cd bin && ./start-demo.sh
Stopping the stack is as simple as
If you find problems, have any suggestions, discover mistakes or typos or, whatever, feel free to open a pull request and / or open an issue. I won't bite --that's what my dogs are for!
In the future
- I'd like to add a Docker Swarm equivalent (Stack)
- I'd like to add support for session data to be stored on MemcacheD (more Dockers!)
- I'd like to ship more backend data sources & test emitters for each
- Include better, templated dashboards to demo Grafana and the underlying TSDBs