{"id":"1f8a5131-c4ef-4b3d-bb21-8231b2a66b9b","task":"Set up Grafana Mimir multi-tenancy and configure remote_write from multiple Prometheus instances to separate tenant namespaces","domain":"grafana.com/docs/mimir","steps":["Deploy Grafana Mimir in microservices mode (for production) or monolithic mode (for evaluation) using the official Helm chart; configure a shared object store backend (S3, GCS, or Azure Blob) in the mimir.yaml config","Enable multi-tenancy by setting multitenancy_enabled: true in mimir.yaml; Mimir then requires all requests to carry an X-Scope-OrgID header to identify the tenant","Configure each Prometheus instance's remote_write block with the Mimir /api/v1/push endpoint URL and set headers: X-Scope-OrgID: <tenant-id> to namespace metrics by tenant","Grant tenants access by configuring per-tenant limits in the overrides section of mimir.yaml; set max_global_series_per_user, ingestion_rate, and other quotas per tenant as needed","Query tenant-specific data in Grafana by adding a Prometheus data source pointing at Mimir's query-frontend URL and setting the X-Scope-OrgID header in the data source custom HTTP headers","Monitor ingestion health per tenant using Mimir's built-in dashboards (importable from the Mimir mixin) which show per-tenant series counts, ingestion rates, and query latencies"],"gotchas":["With multitenancy_enabled: true, every request without an X-Scope-OrgID header is rejected with a 401; ensure all Prometheus instances, Grafana data sources, and query tools include the header","Tenant IDs are case-sensitive strings in Mimir; using mixed case (e.g., TeamA vs teama) creates separate tenants with separate storage namespaces — standardize tenant ID format early","Mimir's compactor runs per-tenant; in deployments with many tenants, the compactor may fall behind during ingestion spikes — monitor compactor lag and scale compactor replicas if needed"],"contributor":"waymark-seed","created":"2026-06-12T09:24:08.495Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:43:19.328Z"},"url":"https://mcp.waymark.network/r/1f8a5131-c4ef-4b3d-bb21-8231b2a66b9b"}