Hi,
I’m designing a multi-tenant architecture with Grafana Mimir and I have a question about the current limitations of recording rules.
My use case is about retention, cost control, and temporal downsampling.
Current setup:
- One “raw” tenant with 30 days retention
- High-resolution metrics
- High cardinality
- Other tenants with longer retention:
- 2 months
- 6 months
- 1 year
Goal:
- Use recording rules to compute temporal aggregations such as:
- rate(metric[1h])
- avg_over_time(metric[1h])
- sum_over_time(metric[1h])
- Reduce resolution and cardinality
- Store only the aggregated series in a different tenant with a longer retention policy
In other words:
- Read metrics from the short-retention “raw” tenant
- Execute recording rules for temporal downsampling
- Write the resulting series into another tenant with different retention
From what I understand today:
- Recording rules always execute in the context of a single tenant
- The results can only be written back into the same tenant
- Mimir enforces strict tenant isolation
This means I currently need to introduce an external aggregation layer to re-ingest the aggregated metrics into a different tenant.
My questions are:
- Is there any supported or planned way in Mimir to execute recording rules in one tenant and write the resulting series into another tenant?
- If this is not possible and an external aggregator is the recommended pattern:
- Which components are recommended?
- Is there any reference architecture or example for implementing this downsampling + tiered retention pattern in a supported way?
Thanks.