You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
*[CHANGE] Update HA tracker documentation to use memberlist as the default KV store instead of consul/etcd. Consul and etcd are now marked as deprecated for the HA tracker as of Mimir 3.0. #13002
159
160
*[ENHANCEMENT] Add migration guide for HA tracker from Consul or etcd to memberlist. #13011
160
161
*[ENHANCEMENT] Improve the MimirIngesterReachingSeriesLimit runbook. #12356
161
162
*[ENHANCEMENT] Improve the description of how to limit the number of buckets in native histograms. #12797
Copy file name to clipboardExpand all lines: docs/sources/helm-charts/mimir-distributed/run-production-environment-with-helm/configure-helm-ha-deduplication/index.md
title: Configure high-availability deduplication with the Mimir distributed Helm chart
11
9
weight: 70
12
10
---
13
11
14
-
# Configuring Grafana Mimir-Distributed Helm Chart for high-availability deduplication with Consul
12
+
# Configure high-availability deduplication with the Mimir distributed Helm chart
15
13
16
-
Grafana Mimir can deduplicate data from a high-availability (HA) Prometheus setup. You can configure
17
-
the deduplication by using the Grafana Mimir helm chart deployment that uses external Consul. For more information, see [Configure high availability](https://grafana.com/docs/mimir/<MIMIR_VERSION>/configure/configure-high-availability-deduplication/).
14
+
Grafana Mimir can deduplicate data from a high-availability (HA) Prometheus setup. Starting from Mimir 3.0, the HA tracker uses `memberlist` by default, which requires no external dependencies. For more information, see [Configure high availability](https://grafana.com/docs/mimir/<MIMIR_VERSION>/configure/configure-high-availability-deduplication/).
15
+
16
+
{{< admonition type="note" >}}
17
+
Prior to Mimir 3.0, the HA tracker required an external key-value store such as Consul or etcd. These backends are now deprecated. If you're currently using Consul or etcd for the HA tracker, refer to the migration guide.
18
+
{{< /admonition >}}
18
19
19
20
## Before you begin
20
21
21
22
You need to have a Grafana Mimir installed via the mimir-distributed Helm chart.
22
23
23
24
For conceptual information about how Mimir deduplicates incoming HA samples, refer to [Configure high availability](https://grafana.com/docs/mimir/<MIMIR_VERSION>/configure/configure-high-availability-deduplication/).
24
25
25
-
You also need to configure HA for Prometheus or Grafana Agent. Lastly, you need a key-value store such as Consul KV.
26
+
You also need to configure HA for Prometheus or Grafana Alloy.
## Configure Prometheus or Grafana Agent to send HA external labels
30
+
## Configure Prometheus or Grafana Alloy to send HA external labels
30
31
31
-
Configure the Prometheus or Grafana Agent HA setup by setting the labels named `cluster` and `__replica__`,
32
+
Configure the Prometheus or Grafana Alloy HA setup by setting the labels named `cluster` and `__replica__`,
32
33
which are the default labels for a HA setup in Grafana Mimir. If you want to change the HA labels,
33
-
make sure to change them in Mimir as well. This ensures that the configurations of Grafana Mimir, Prometheus, and Grafana Agent all match each other. Otherwise, HA deduplication will not work.
34
+
make sure to change them in Mimir as well. This ensures that the configurations of Grafana Mimir, Prometheus, and Grafana Alloy all match each other. Otherwise, HA deduplication will not work.
34
35
35
-
- The value of the `cluster` label must be same across replica that belong to the same cluster.
36
-
- The value of the `__replica__` label must be unique across different replica within the same cluster.
36
+
- The value of the `cluster` label must be same across replicas that belong to the same cluster.
37
+
- The value of the `__replica__` label must be unique across replicas within the same cluster.
37
38
38
39
```yaml
39
40
global:
@@ -42,15 +43,9 @@ global:
42
43
cluster: my-prometheus
43
44
```
44
45
45
-
Reload or restart Prometheus or Grafana Agent after you update the configuration.
46
-
47
-
> **Note:** [Configure high availability](https://grafana.com/docs/mimir/<MIMIR_VERSION>/configure/configure-high-availability-deduplication/).
48
-
> document contains the same information on Prometheus setup for HA dedup.
49
-
50
-
## Install Consul using Helm
46
+
Reload or restart Prometheus or Grafana Alloy after you update the configuration.
51
47
52
-
To get and install Consul on Kubernetes, use the [Consul helm chart](https://github.com/hashicorp/consul-k8s/tree/main/charts/consul).
53
-
Make a note of the Consul endpoint, because you will need it later to configure Mimir.
48
+
> **Note:** [Configure high availability](https://grafana.com/docs/mimir/<MIMIR_VERSION>/configure/configure-high-availability-deduplication/) contains the same information on Prometheus setup for HA deduplication.
2. Upgrade the Mimir's helm release using the following command:
76
+
{{< admonition type="note" >}}
77
+
If memberlist is already configured for other Mimir components (such as the hash ring), the HA tracker will automatically use that configuration. In most Helm deployments, memberlist is already configured, so no additional configuration is needed.
78
+
{{< /admonition >}}
79
+
80
+
2. Upgrade the Mimir Helm release using the following command:
- Promote a certain set of OTel resource attributes to labels
109
109
-`-distributor.otel-promote-resource-attributes`
110
-
- Add experimental `memberlist` key-value store for ha_tracker. Note that this feature is `experimental`, as the upper limits of propagation times have not yet been validated. Additionally, cleanup operations have not yet been implemented for the memberlist entries.
111
-
-`-distributor.ha-tracker.kvstore.store`
112
110
- Allow keeping OpenTelemetry `service.instance.id`, `service.name` and `service.namespace` resource attributes in `target_info` on top of converting them to the `instance` and `job` labels.
- Enable conversion of OTel explicit bucket histograms into native histograms with custom buckets.
@@ -312,5 +310,6 @@ The following features or configuration parameters are currently deprecated and
312
310
- Rule group configuration file
313
311
-`evaluation_delay` field: use `query_offset` instead
314
312
- The `-store-gateway.sharding-ring.auto-forget-enabled` is deprecated and will be removed in a future release. Set the `-store-gateway.sharding-ring.auto-forget-unhealthy-periods` flag to 0 to disable the auto-forget feature. Deprecated since Mimir 2.17.
315
-
- etcd is deprecated as an option for backend storage for the HA tracker since Mimir 2.17.
313
+
- Consul and etcd are deprecated as backend storage options for the HA tracker as of Mimir 3.0.
314
+
- Use `memberlist` instead. Refer to the migration guide for instructions on migrating from Consul or etcd to `memberlist` for the HA tracker.
316
315
- The `-distributor.otel-start-time-quiet-zero` parameter no longer has any effect and will be removed in a future release. Deprecated since Mimir 2.18.
Copy file name to clipboardExpand all lines: docs/sources/mimir/configure/configure-high-availability-deduplication.md
+21-7Lines changed: 21 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -106,16 +106,20 @@ Alternatively, you can enable the HA tracker only on a per-tenant basis, keeping
106
106
#### Configure the HA tracker KV store
107
107
108
108
The HA tracker requires a key-value (KV) store to coordinate which replica is currently elected.
109
-
In [Grafana Mimir versions 2.17](https://github.com/grafana/mimir/releases/tag/mimir-2.17.0) and later, use `memberlist` as the KV store backend for the HA tracker. The `consul` and `etcd` backends are deprecated.
109
+
Starting from Mimir 3.0, `memberlist` is the recommended and default KV store backend for the HA tracker.
110
+
111
+
{{< admonition type="note" >}}
112
+
The `consul` and `etcd` backends are deprecated as of Mimir 3.0. If you're currently using `consul` or `etcd` for the HA tracker, refer to the migration guide for instructions on migrating to `memberlist`.
113
+
{{< /admonition >}}
110
114
111
115
To migrate from Consul or etcd to memberlist without downtime, see [Migrate HA tracker from Consul or etcd to memberlist](migrate-ha-tracker-to-memberlist/).
112
116
113
117
The following CLI flags (and their respective YAML configuration options) are available for configuring the HA tracker KV store:
114
118
115
-
-`-distributor.ha-tracker.store`: The backend storage to use, which is `memberlist`. The `consul` and `etcd` backends are deprecated.
116
-
-`-memberlist.*`: The memberlist client configuration. It's common and used by other Mimir components as well.
117
-
-[deprecated]`-distributor.ha-tracker.consul.*`: The Consul client configuration. Only use this if you have defined `consul` as your backend storage.
118
-
-[deprecated]`-distributor.ha-tracker.etcd.*`: The etcd client configuration. Only use this if you have defined `etcd` as your backend storage.
119
+
-`-distributor.ha-tracker.store`: Backend storage to use (default: `memberlist`).
120
+
-`-memberlist.*`: Memberlist client configuration. This is shared by multiple components.
121
+
122
+
The memberlist configuration is typically shared across multiple Mimir components (distributors, ingesters, etc.), so if you already have memberlist configured for hash ring synchronization, no additional configuration is required for the HA tracker.
119
123
120
124
#### Configure expected label names for each Prometheus cluster and replica
121
125
@@ -138,12 +142,22 @@ The following configuration example snippet enables the HA tracker for all tenan
138
142
```yaml
139
143
limits:
140
144
accept_ha_samples: true
145
+
141
146
distributor:
142
147
ha_tracker:
143
148
enable_ha_tracker: true
144
149
kvstore:
145
-
[store: <string> | default = "consul"]
146
-
[consul | etcd: <config>]
150
+
store: memberlist
151
+
152
+
memberlist:
153
+
# Memberlist configuration (typically shared with other components)
154
+
join_members:
155
+
- <IP_OR_DNS:PORT>
156
+
- <IP_OR_DNS:PORT>
147
157
```
148
158
159
+
{{< admonition type="note" >}}
160
+
If memberlist is already configured for other Mimir components, such as the hash ring, the HA tracker automatically uses that configuration. In most deployments, you don't need any additional memberlist configuration.
161
+
{{< /admonition >}}
162
+
149
163
For more information, see [distributor](../configuration-parameters/#distributor). The HA tracker flags are prefixed with `-distributor.ha-tracker.*`.
Copy file name to clipboardExpand all lines: docs/sources/mimir/manage/mimir-runbooks/_index.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1244,14 +1244,14 @@ When using Memberlist as KV store for hash rings, all read and update operations
1244
1244
How it **works**:
1245
1245
1246
1246
- Consul is typically used to store the hash ring state.
1247
-
- Etcd is typically used to store by the HA tracker (distributor) to deduplicate samples.
1247
+
- Memberlist (default since Mimir 3.0) or etcd/Consul (deprecated) are used by the HA tracker (distributor) to deduplicate samples.
1248
1248
- If an instance is failing operations on the **hash ring**, either the instance can't update the heartbeat in the ring or is failing to receive ring updates.
1249
1249
- If an instance is failing operations on the **HA tracker** backend, either the instance can't update the authoritative replica or is failing to receive updates.
1250
1250
1251
1251
How to **investigate**:
1252
1252
1253
-
- Ensure Consul/Etcd is up and running.
1254
-
- Investigate the logs of the affected instance to find the specific error occurring when talking to Consul/Etcd.
1253
+
- Ensure the KV store backend (Consul, etcd, or memberlist) is up and running.
1254
+
- Investigate the logs of the affected instance to find the specific error occurring when talking to the KV store backend.
Copy file name to clipboardExpand all lines: docs/sources/mimir/manage/secure/securing-communications-with-tls.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -143,8 +143,8 @@ The following Grafana Mimir components support TLS for inter-communication, whic
143
143
- Distributor gRPC client used to forward series matching a configured set to a dedicated remote endpoint: `-distributor.forwarding.grpc-client.*`
144
144
- Alertmanager gRPC client used to connect to other Alertmanager instances: `-alertmanager.alertmanager-client.*`
145
145
- gRPC client used by distributors, queriers, and rulers to connect to ingesters: `-ingester.client.*`
146
-
- etcd client used by all Mimir components to connect to etcd, which is required only if you're running the hash ring or HA tracker on the etcd backend: `-<prefix>.etcd.*`
147
-
- Memberlist client used by all Mimir components to gossip the hash ring, which is required only if you're running the hash ring on memberlist: `-memberlist.`
146
+
- etcd client used by all Mimir components to connect to etcd (deprecated for HA tracker as of Mimir 3.0; use memberlist instead): `-<prefix>.etcd.*`
147
+
- Memberlist client used by all Mimir components to gossip the hash ring and HA tracker: `-memberlist.`
148
148
- Memcached client used by all Mimir components: `-blocks-storage.bucket-store.chunks-cache.memcached.*`, `-blocks-storage.bucket-store.index-cache.memcached.*`, `-blocks-storage.bucket-store.metadata-cache.memcached.*`, `-query-frontend.results-cache.memcached.*`, `-ruler-storage.cache.memcached.*`
149
149
150
150
Each of the components listed above support the following TLS configuration options, which are shown with their corresponding flag suffixes:
0 commit comments