15-денний retention Prometheus не покриває квартальні звіти. При зростанні кількості сервісів кількість часових рядів перевалює за мільйони, продуктивність запитів падає. Ми впроваджуємо та налаштовуємо Grafana Mimir — масштабоване рішення для зберігання метрик з мультиарендністю та високою доступністю. Воно дозволяє зберігати дані роками, використовуючи об'єктне сховище, і забезпечує швидкий доступ до історичних метрик через Grafana або PromQL. Графіки квартальної звітності, SLA-моніторинг за минулі періоди, тренди — все це вимагає доступу до метрик старших за 30 днів. Mimir вирішує це завдання, забезпечуючи єдине сховище для всіх часових рядів з можливістю швидкої вибірки. При цьому інфраструктура залишається керованою завдяки вбудованим інструментам моніторингу самого Mimir.
Згідно з офіційною документацією Mimir, він підтримує до 1 млн метрик на секунду на один інстанс (Grafana Mimir docs).
Чому Mimir, а не Thanos?
Mimir простіший в експлуатації: він не потребує окремого компонента для Sidecar, а multi-tenant Alertmanager вбудований прямо в ядро. У наших проектах Mimir показує час відповіді на запити в 2-3 рази швидше за Thanos при зберіганні року метрик. Це досягається за рахунок шардованого компактора та оптимізованого Store Gateway.
Як Mimir обробляє збої та забезпечує HA?
Mimir використовує архітектуру з горизонтальним масштабуванням та реплікацією. Ingester реплікує дані в декілька зон, Distributor розподіляє навантаження, а Store Gateway обслуговує запити до довгострокового сховища. При відмові одного з компонентів трафік перенаправляється на здорові інстанси. Вбудований ring hash забезпечує консистентне хешування для мінімального переміщення даних при масштабуванні.
Проблеми, які ми вирішуємо
- Розростання сховища: Prometheus не тримає дані довше 30 днів без втрати продуктивності. Mimir стискає блоки та вивантажує їх у S3, економлячи до 60% витрат на зберігання.
- Мультиарендність: Кожна команда отримує свій тенант з ізольованими метриками, алертами та квотами. Жодного перетину даних.
- Складність операцій: Вбудовані дашборди моніторингу Mimir через міксин
grafana/mimir-mixinпоказують стан усіх компонентів: ingestion rate, WAL replay, compaction bytes.
Як ми це робимо: розгортання Mimir у Kubernetes
Ми використовуємо Helm-чарт grafana/mimir-distributed. Рекомендуємо виділені вузли для ingester та store gateway, щоб уникнути шумних сусідів.
- Підготовка кластера Kubernetes (1.29+) з PersistentVolume та NetworkPolicy для мережевої ізоляції.
- Встановлення Helm-чарту з конфігурацією multi-tenancy та zone-aware реплікацією.
- Налаштування об'єктного сховища (S3, GCS або MinIO) для blocks_storage.
- Конфігурація Ingester, Store Gateway, Compactor з ресурсами під навантаження.
- Створення тенантів через API та завантаження правил алертингу.
- Налаштування remote write від Prometheus або Grafana Agent до Mimir.
- Інтеграція з Grafana та налаштування дашбордів для моніторингу Mimir.
Приклад конфігурації Helm
---
# mimir-values.yaml (ключові секції)
mimir:
structuredConfig:
multitenancy_enabled: true
blocks_storage:
backend: s3
s3:
bucket_name: mimir-production
limits:
compactor_blocks_retention_period: 1y
ingestion_rate: 200000
ingester:
replicas: 6
zoneAwareReplication:
enabled: true
resources:
requests:
cpu: 2
memory: 12Gi
limits:
memory: 16Gi
store_gateway:
replicas: 3
zoneAwareReplication:
enabled: true
persistentVolume:
size: 100Gi
compactor:
replicas: 3
distributor:
replicas: 3
query_frontend:
replicas: 2
Що таке multi-tenancy і як його налаштувати?
Мультиарендність вмикається параметром multitenancy_enabled: true. Кожен тенант ідентифікується заголовком X-Scope-OrgID. Для кожного тенанта можна задати свої ліміти, правила алертингу та recording rules. Адміністратор керує тенантами через API або YAML-конфіг.
# Створення нового тенанта та завантаження конфігу алертингу
curl -X POST http://mimir/api/v1/tenant/register \
-H "Content-Type: application/json" \
-d '{"id":"team-platform","limits":{"ingestion_rate":100000}}'
curl -X POST http://mimir/api/v1/alerts \
-H "X-Scope-OrgID: team-platform" \
--data-binary @alertmanager-config.yaml
---
# alertmanager-config.yaml для тенанта team-platform
route:
receiver: slack-platform
routes:
- match:
severity: critical
receiver: pagerduty-platform
receivers:
- name: slack-platform
slack_configs:
- api_url: "https://hooks.slack.com/services/..."
channel: "#alerts-platform"
- name: pagerduty-platform
pagerduty_configs:
- routing_key: "team_platform_key"
Кожна команда керує своїми правилами незалежно.
Recording rules через Ruler
# Завантаження recording rules для тенанта
curl -X POST http://mimir/api/v1/rules/infrastructure \
-H "X-Scope-OrgID: team-platform" \
--data-binary @rules.yamlПравила зберігаються в object storage, Ruler обчислює їх із заданим інтервалом.
Grafana Agent як легка відправка
Замість повного Prometheus використовуємо Grafana Agent (або Alloy). Він не зберігає дані локально, лише скрейпить і відправляє. Економія пам'яті до 40%.
---
# grafana-agent.yaml
metrics:
global:
scrape_interval: 15s
remote_write:
- url: http://mimir-nginx.monitoring.svc:80/api/v1/push
headers:
X-Scope-OrgID: team-platform
--- Мінімальні вимоги для production-кластера (6 тенантів, 10 млн метрик)
| Компонент | Репліки | CPU | Пам'ять | Сховище |
|---|---|---|---|---|
| Ingester | 6 | 2 | 16 Gi | - |
| Store Gateway | 3 | 4 | 8 Gi | 100 Gi SSD |
| Compactor | 3 | 4 | 8 Gi | - |
| Distributor | 3 | 2 | 4 Gi | - |
| Query Frontend | 2 | 1 | 2 Gi | - |
Порівняння параметрів конфігурації для різних сценаріїв
| Сценарій | Ingestion rate | Retention | Ingester репліки | Store Gateway ресурси |
|---|---|---|---|---|
| Мала команда (1 тенант) | 50 000 | 6 міс | 2 | 1x 8GB RAM, 50GB SSD |
| Середній проект (6 тенантів) | 200 000 | 1 рік | 6 | 3x 8GB RAM, 100GB SSD |
| Enterprise (20+ тенантів) | 1 000 000 | 2 роки | 12 | 6x 16GB RAM, 200GB SSD |
Що входить в роботу
- Аудит поточної інфраструктури моніторингу
- Проектування архітектури Mimir під ваші навантаження
- Розгортання кластера в Kubernetes (Helm, zone-aware, HA)
- Налаштування multi-tenancy, лімітів, retention
- Інтеграція з Grafana та налаштування дашбордів
- Створення runbook та документації
- Навчання команди (2-3 години)
- Підтримка протягом першого місяця після запуску
Наш досвід та гарантії
Ми — команда SRE-інженерів з досвідом у моніторингу на Prometheus та Mimir, реалізували понад 50 проектів з розгортання Mimir у production. Маємо сертифікати Grafana та досвід роботи з кластерами до 50 млн метрик. Гарантуємо SLA на час відгуку при інцидентах.
Терміни: від 3 до 7 днів на повне розгортання, включаючи навчання.
Для обговорення вашого сценарію зв'яжіться з нашими інженерами. Замовте впровадження Mimir — отримайте консультацію спеціаліста.
Для розрахунку ресурсів під ваше навантаження зв'яжіться з нашими інженерами. Замовте впровадження Mimir та отримайте повну документацію.







