I’ve nearly completed my FLOW based SQL report generator. I’m pretty certain the last feature I want to implement is going to be monitoring. Since the program is written in Go and is being launched at 430-UTC every day I want to capture the runtimes as part of system monitoring. I also want to monitor the system that it’s running on.
While I need to add go-metrics I need a place to persist the data. Influxdb is the new meme-time-series data db engine on the block. It’s also written in Go. While grafana is a good dashboard(also Go) the influxdb team has released Chronograf. And finally the influxdb team released Telegraf in order to collect data from the target system… written in Go. (there are a few other’s like statd, collectd; and then there is cadvisor, bosun, graphite, rddtool and maybe a few others)
While Go is also the meme language of choice for most systems programmers these days it’s not the meme that generated interest as I have been using and following it pre-1.0. What makes this a good language is not the language itself it is the toolset and …it’s static linking and cross compiling. The rest is important bug not as much.
For something like this I like the single source monitoring since they all work together; somewhat homogeneously.
And now for the bad stuff. The influxdb team has not produced a trusted and idiomatic docker container. The same goes for the telegraf and chronograf. sigh. Maybe the documentation will catch up but it’s not right now. One of the superior things about Go’s static linked applications is that it means that the docker containers can be as simple as a scratch image. And that is a good place to be.