Microservices mode

Тема дорожной карты · Loki

Режим микросервисов — наиболее масштабируемая топология развёртывания Grafana Loki, при которой каждый компонент — Distributor, Ingester, Querier, Query Frontend, Ruler, Compactor и Index Gateway — работает как отдельный, независимо масштабируемый процесс или Kubernetes Deployment. Конкретный компонент активируется передачей его имени в флаге -target, например loki -target=ingester или loki -target=querier, при использовании единого файла конфигурации loki-config.yaml для всех экземпляров. В режиме микросервисов компоненты взаимодействуют друг с другом по gRPC (для внутренних вызовов) и HTTP (для API push и запросов), координируясь через общее кольцо memberlist или кластер etcd для согласования принадлежности Ingester-ов. Этот режим обеспечивает детальное горизонтальное масштабирование: можно масштабировать Ingester-ы независимо от Querier-ов в зависимости от давления записи или задержки чтения, а также развёртывать каждый уровень с подходящими ресурсами CPU и памяти для его рабочей нагрузки. Режим микросервисов рекомендуется для высоконагруженных установок Grafana Loki, обрабатывающих десятки гигабайт логов в день; как правило, он развёртывается через официальный Helm-чарт с настроенным числом реплик для каждого компонента.

Как это работает

Microservices mode: Loki имеет три deployment режима. Monolithic (один бинарь, проще) — ок для < 100GB/день. Simple Scalable (read/write/backend сервисы в 3 tier-ах) — рекомендуется для большинства prod до TB/день. Microservices (каждый компонент scaled независимо) — для экстремального масштаба + multi-tenancy. Multi-tenancy через X-Scope-OrgID header. Cache (Memcached или Redis) ускоряет chunk + query result retrieval — essential на масштабе. Stateless сервисы + object storage = scale через добавление replicas.

Когда применять

Старт monolithic, переход на simple-scalable когда один бинарь упирается в лимиты, microservices только при нужде в true component-level autoscaling. Memcached / Redis cache — force-multiplier — включайте рано. Для multi-tenancy — design tenant ID propagation + per-tenant rate limits заранее.

Типичные ошибки

Ловушки Microservices mode: прыжок в microservices без нужды (operational complexity); нет caching-слоя (каждый query бьёт object storage); multi-tenancy без tenant rate-limits (один плохой tenant деградирует всех); недопровизион ingester memory (chunks теряются на OOM).

Связанные понятия

Полезные ресурсы

Проверить знания (1)

Загрузка вопросов…