> The lack of a plugin system
We have many ways to plugin to Prometheus across the ecosystem, the textfile collector you're using is one of them.
> You can't run 23 different daemons, each on their own port, to collect stats from things like PostgreSQL stats or RabbitMQ.
There's no fundamental challenge with this approach. If you've got good basic infrastructure, particularly configuration management, the rollout of each should be a small operational task. If it's a major challenge, then your problem probably isn't with the Prometheus architecture.
> it means if we remove a collector, we also have to clean up its .prom files
There's several problems arising from this approach, this is one of them. You can also expect odd artifacts in graphs.
The textfile collector is only intended for machine-level metrics, by putting service level metrics in there you're missing out on a big win of Prometheus by thinking in terms of machines rather than services.
Fighting against the architecture means you're not getting the maximum benefits from Prometheus, this would be easier with exporters and service discovery.
> which themselves need to be monitored
Are you aware that the node exporter exports the mtime of all the textfile collector files? That's there to make monitoring of them easier.
> If anything goes wrong with its database files, it tends to just crash, and the only way out is to wipe the entire database
As far as we're aware, the only way that happens is if you run out of disk space. If you've evidence otherwise please let us know, so we can prioritize accordingly.
> We've experienced at least one version upgrade where they changed the database format and didn't provide any upgrade tools, so people were forced to start their metrics history from scratch. I know that it's pre-1.0, but still, they knew perfectly well that people were running it in production.
We broke backwards compatibility in the storage format once, and there's no plans to do so again. The core developers who were all running it in production didn't see it as worthwhile to write a converter, and noone else stepped up.
> The alert manager was also written from scratch recently, with a whole new config format.
The old alertmanager has always been flagged as very experimental, as it was a functioning PoC. The rewrite was always been on the cards, and this came up regularly.
This is all part of evolving the system to be better for everyone. If we tried to keep perfect backwards compatibility then we couldn't remove warts, bugs and misfeatures. We aren't afraid to deprecate where it makes sense to do so, and have transition plans where practical.
> The lack of packages (Debian/Ubuntu in our case) is also problematic.
There are packages in Debian proper, and nightlies at http://deb.robustperception.io/
> No syslog support is not acceptable in this day and age.
That's in the latest versions.
The high level problem is that there's so many different ways to do logging that we can't sanely support them all. For every X there is someone who thinks it's essential.