Looking at this architecture, I wonder if it would make sense to replace Prometheus itself with something simpler? Normally Prometheus pulls metrics, evaluates rules against them, stores them, and answers queries on them. It looks like in Cortex the latter three functions are handled by other services, and Prometheus is just pulling and forwarding metrics.<p>Also, the article says Cortex "completes" Prometheus. While it does fill many of the gaps, there is still a big one: First-class support for pushing metrics. This seems especially important if you want to offer Prometheus as SaaS. Your customers won't want to run their own Prometheus installs (that's what they pay you for, after all), and asking customers to open their firewalls so that your Prometheus can discover and scrape their infrastructure is probably a non-starter.
Off topic, but Cortex is bad name.<p>There is already an amazingly popular tech usage of Cortex, you almost certainly have one either on your person or feet from you night now.<p>For SEO reasons alone it makes no sense to call your new service by a well known name belonging to someone else.
What's the current state of the art for space-efficient long term Prometheus storage?<p>PromHouse looks very promising: <a href="https://github.com/Percona-Lab/PromHouse" rel="nofollow">https://github.com/Percona-Lab/PromHouse</a>