We need to introduce the ability to support multitenancy through index names. The way this is roughly expected to happen is certain indexers in a cluster will be responsible for dedicated indexes, which will be determined by the preprocessor. When an indexer creates a snapshot, it will mark which indexes are contained within that snapshot. As a query is received snapshots will be filtered to only return those matching a snapshot.
If multiple indexes, wildcard, or glob-based index names are received the query layer will resolve these to exact index matches when forwarding to index/cache layer.
pre-processor > indexer(s)
index-foo (indexers 1-10)
index-bar (indexer 11)
index-baz (indexer 11)
grafana > query > cache/indexer
Query will look at inbound requested index(s), then filter to
snapshots that are known to have that data. Cache/indexer
will also then filter to the exact requested indexes.
We need to introduce the ability to support multitenancy through index names. The way this is roughly expected to happen is certain indexers in a cluster will be responsible for dedicated indexes, which will be determined by the preprocessor. When an indexer creates a snapshot, it will mark which indexes are contained within that snapshot. As a query is received snapshots will be filtered to only return those matching a snapshot.
If multiple indexes, wildcard, or glob-based index names are received the query layer will resolve these to exact index matches when forwarding to index/cache layer.