Prometheus on Raspberry Pi
5pi.de
5pi.de
I'm pretty sure I had similar issues on the original model B and found I was missing specifying which ARM version it was:
export GOARCH="arm"
export GOARM="5"
I don't know if the same is required for the Raspberry Pi 2 nor even which ARM chipset version it is (the same I'm going to assume since Raspbian / Arch / etc still run) but it might be worth checking you have your GOARM environmental variable sethis doesn't solve cross compilation CGO. For that, you need the gcc cross compiler for the raspberry pi. I've tried to build it with CGO enabled like this:
CC=arm-linux-gnueabihf-gcc GOARCH=arm CGO_ENABLED=1 go build -ldflags="-extld=$CC"
But the binary still segfaulted on the raspberry pi. I also tried the cc from https://github.com/raspberrypi... but with the same result.
Thanks for the update though :)
Previous discussion here, with both Prometheus and InfluxDB developers chiming in.
Short version from memory: Prometheus is more efficient for datasets were series have metadata, not so much individual points, since InfluxDB stores metadata per point, but InfluxDB will optimize this case in the next version.
and more precisely related to your question : http://prometheus.io/docs/introduction/comparison/#prometheu...
I am looking to store small time series data (only 100 points), but millions of them. I currently use sqlite. Any other suggestions that I could use?
When you're doing a basic process, reliability >> efficiency.
And sometimes more pieces in your stack just decrease reliability of the entire system. (Admittedly! Rolling your own version of an already well-implemented stack component is not without its peril as well)
What's the transactional activity with that time series you're storing? (i.e. are you writing these individually each millisecond or are you writing in batches every hour)
Go should be faster and more efficient than python/ruby so I'd expect even less RAM/better performance.
SQLite3 these days is good for embedded devices but that's about it IMHO.
I wonder if that could be plugged in to Prometheus without the overhead of HTTP collection...
You might be interested in the https://github.com/prometheus/collectd_exporter as collectd works in a similar way.
For machine monitoring http://www.boxever.com/monitoring-your-machines-with-prometh... covers how to set it up with Prometheus - it's pretty easy to get working.
Prometheus is state-based, not event-based. It only stops by your monitored instances once every couple of seconds and gathers their current state. E.g. for counting events, clients simply expose cumulative counters over their lifetime which they can increment locally in memory, and Prometheus comes by for example every 15 or 30 seconds and stores the current counter state.
The HTTP traffic incurred in this case is not really a problem and you'll usually run into bottlenecks at other places (like storage sample ingestion) before you run into network transfer bottlenecks.