metrics table contains time series data of events and statistics. (e.g.: CPU load) We spend a lot of cpu resources rolling up the data and trying to maintain decent indexes.
I’m looking into pulling that table out of Postgres and into something like
Graphite, which is more geared towards this type of data and rollup capability. There is a good comparison out there on influxdb, opentsdb, and leveldb. Hundreds of great graphing options exist out there like grafana and cubism.
Question: What will break if metrics is not physically in Postgres?
One problem area I see is reporting. Customers have probably already written custom sql queries that include metric data. But I don’t know the extent of this scenario. If the tables are not in the database, these reports will break.
We currently use capacity and utilization to load our servers to see performance under load. If we move this workload out of the database, or potentially make it non-existent, then we’ll need to find different load testing options. (This is a high class problem, but something that needs to be on our radar)
If a customer has many nodes replicating to a central reporting master, how will this be handled in this scenario. What else does this central node need to perform other than reporting? Do we need a rollup to run a full