Hosted Monitoring: Evaluating InfluxDB Cloud and Grafana Cloud
pqvst.com
pqvst.com
Some of it was wasted effort ( Cheonograf is still useless compared to Grafana, who thought it's a good idea to compete with it?), some was poor luck, some was decisions that backfired ( like removing clustering from the free version). Some of it was everyone deciding pull is better than push ( i disagree in most cases, but see the point).
Telegraf still remains a very solid collecting agent and IMHO the best in class. With everyone (from the SaaS monitoring vendors ) moving to OpenTelemetry i think that in some time it'll fall behind as well.
I'm not sure OpenTelemtry is a replacement for actual designed metrics though. Its great for getting info about the state of an instance of something. but thats only half the picture. Building meaningful alerts of just raw telemetry is hard.
Our Graphite hosting is also best in class and this makes me happy to see the good feedback!
PS: I work on Grafana Cloud Prometheus.
I really like grafana, personally I'd probably host it myself even now. (At all previous companies I did.) Its well contained and even with alerting its simple to set up and sync state (assuming you are using a hosted database, which can be expensive)
Where my opinion gets controversial: I dislike Prometheus, and I really don't like influx. I much prefer graphite.
Influx has higher temporal resolution, and an SQL interface (its the SQL interface I don't like)
Prometheus has a pull model, which I can see the appeal of, but I don't really like. But it deals with ephemeral metrics much better (however you need a gateway to cache the metrics, as they might not get pulled in time.)
The issue is that graphite's interface is much better for discovering and filtering/transforming your data. I'm not the worlds greatest SQL person, so I can't do that much complex stuff, I also don't know how to do maths in SQL well. With graphite I don't need to worry, all the functions are there in menu, derivative? yes, all the averaging? mostDeviant? yes.
Graphite made making graphs quick and easy, I don't think I can say the same for influx or prometheus. I know that all sorts of non technical people can use graphite/grafana. I'm less convinced that they can use Prometheus or influx as well without training.
SQL was too limited, that's why they did Flux, their new query language. It's weird and has a learning curve, but powerful.
I don't doubt that, but teaching it to business analysts, product owners and the like is a real headache.
I'm sure I would grow to love it, but then it would require me to make dashboards for other people. Getting them to make them themselves is living the dream
Grafana Cloud seems to mostly advertise the pull model, whereas we were really looking for a push model. I'm glad I figured out how to get that to work with Graphite, since Grafana Cloud offers both Prometheus and Graphite.
Now given that Grafana Cloud's free-tier covers our needs I'm glad we no longer have to maintain a self-hosted version (and we're definitely getting better performance now).
I'm a devop/sre/pe/sysadmin so I have a motivation to keep metrics in my firm grasp. Given the price point and performance, for small organizations it'd be madness to Not get grafana cloud to host it.
That's such an antiquated statement at this point. Prometheus might have been pull-only in a distant past, but the remote write protocol has been alive and well for a long time now, and it works amazingly well, at surprising scale.
Also: It's not just higher temporal resolution, it's having an actual time-series database vs a metrics database. With InfluxDB (and all other event-based databases) I can go in after the fact and just plot the CPU load for one specific host, or a group of hosts, or plot the HTTP requests that took longer than 200ms, hit a specific endpoint and finished with a specific HTTP status code. If you don't keep the raw measurements you always have to make decisions about which groups you aggregate down to ahead of time. Just something to keep in mind.
As a time series database however it is rather painful.
You can't have InfluxDB only. It comes integrated with the complete ecosystem. For example, it exposes an app/web server by default which you can't disable.
Flux DSL is decent but so was SQL and I already knew SQL.
Shipping a database does not appear to be topping their priority list and it's kind of irritating. A year into the InfluxDB 2 release you weren't able to delete data. Now you can, but you can't be sure when that's going to actually happen. And there's no way of monitoring/managing currently running queries. Add to that its massive memory consumption and you're left wondering what other database solution would get away with this.
For personal projects I have since moved to IoTDB