We've multiple segregated data systems which support PromQL, each storing metrics for different class of applications, infra, etc.
We would like to explore the possibility of abstracting promql over these systems, such that user can run a query without knowing about the different backends. The options we considered below use something of a brute force approach and won't scale:
- support remote read API in all backends and configure Prometheus to remote read from all of them.
- send PromQL query to all backends and merge the results.
I think a system where there is an external 'router' component which knows where different time series' are stored (some sort of an index table) and uses it to query the right backend would be worth exploring. We can presume for now that the time series are unique across all backends. Do you know of something like this exists in some form, or some literature on this that we could build upon?