diff --git a/docs/sources/get-started/deployment-modes.md b/docs/sources/get-started/deployment-modes.md index 80d48231a9c1..beccbcded0fe 100644 --- a/docs/sources/get-started/deployment-modes.md +++ b/docs/sources/get-started/deployment-modes.md @@ -31,16 +31,19 @@ The simple scalable deployment mode can scale up to a few TBs of logs per day, h The three execution paths in simple scalable mode are each activated by appending the following arguments to Loki on startup: - `-target=write` - The write target is stateful and is controlled by a Kubernetes StatefulSet. It contains the following components: --- Distributor --- Ingester + * Distributor + * Ingester - `-target=read` - The read target is stateless and can be run as a Kubernetes Deployment that can be scaled automatically (Note that in the official helm chart it is currently deployed as a stateful set). It contains the following components: --- Query front end --- Queriers + * Query Frontend + * Querier - `-target=backend` - The backend target is stateful, and is controlled by a Kubernetes StatefulSet. Contains the following components: --- Compactor --- Index gateways --- Query scheduler --- Ruler + - Compactor + - Index Gateway + - Query Scheduler + - Ruler + - Bloom Planner (experimental) + - Bloom Builder (experimental) + - Bloom Gateway (experimental) The simple scalable deployment mode requires a reverse proxy to be deployed in front of Loki, to direct client API requests to either the read or write nodes. The Loki Helm chart includes a default reverse proxy configuration, using Nginx. @@ -59,19 +62,20 @@ You can configure high availability by running two Loki instances using `memberl Query parallelization is limited by the number of instances and the setting `max_query_parallelism` which is defined in the `loki.yaml` file. ## Microservices mode -The microservices deployment mode runs components of Loki as distinct processes. Each process is invoked specifying its `target`: -For release 2.9 the components are: +The microservices deployment mode runs components of Loki as distinct processes. Each process is invoked specifying its `target`. +For release 3.2 the components are: -- Cache Generation Loader +- Bloom Builder (experimental) +- Bloom Gateway (experimental) +- Bloom Planner (experimental) - Compactor - Distributor -- Index-gateway +- Index Gateway - Ingester -- Ingester-Querier - Overrides Exporter - Querier -- Query-frontend -- Query-scheduler +- Query Frontend +- Query Scheduler - Ruler - Table Manager (deprecated) @@ -79,7 +83,7 @@ For release 2.9 the components are: You can see the complete list of targets for your version of Loki by running Loki with the flag `-list-targets`, for example: ```bash -docker run docker.io/grafana/loki:2.9.2 -config.file=/etc/loki/local-config.yaml -list-targets +docker run docker.io/grafana/loki:3.2.1 -config.file=/etc/loki/local-config.yaml -list-targets ``` {{% /admonition %}} diff --git a/pkg/loki/loki.go b/pkg/loki/loki.go index f59218307e7d..fddf28705184 100644 --- a/pkg/loki/loki.go +++ b/pkg/loki/loki.go @@ -680,7 +680,7 @@ func (t *Loki) setupModuleManager() error { mm.RegisterModule(Store, t.initStore, modules.UserInvisibleModule) mm.RegisterModule(Querier, t.initQuerier) mm.RegisterModule(Ingester, t.initIngester) - mm.RegisterModule(IngesterQuerier, t.initIngesterQuerier) + mm.RegisterModule(IngesterQuerier, t.initIngesterQuerier, modules.UserInvisibleModule) mm.RegisterModule(IngesterGRPCInterceptors, t.initIngesterGRPCInterceptors, modules.UserInvisibleModule) mm.RegisterModule(QueryFrontendTripperware, t.initQueryFrontendMiddleware, modules.UserInvisibleModule) mm.RegisterModule(QueryFrontend, t.initQueryFrontend) @@ -698,8 +698,8 @@ func (t *Loki) setupModuleManager() error { mm.RegisterModule(BloomGateway, t.initBloomGateway) mm.RegisterModule(QueryScheduler, t.initQueryScheduler) mm.RegisterModule(QuerySchedulerRing, t.initQuerySchedulerRing, modules.UserInvisibleModule) - mm.RegisterModule(Analytics, t.initAnalytics) - mm.RegisterModule(CacheGenerationLoader, t.initCacheGenerationLoader) + mm.RegisterModule(Analytics, t.initAnalytics, modules.UserInvisibleModule) + mm.RegisterModule(CacheGenerationLoader, t.initCacheGenerationLoader, modules.UserInvisibleModule) mm.RegisterModule(PatternRingClient, t.initPatternRingClient, modules.UserInvisibleModule) mm.RegisterModule(PatternIngesterTee, t.initPatternIngesterTee, modules.UserInvisibleModule) mm.RegisterModule(PatternIngester, t.initPatternIngester)