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
Copy file name to clipboardExpand all lines: CHANGELOG.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -24,6 +24,7 @@ We use *breaking :warning:* to mark changes that are not backward compatible (re
24
24
-[#7353](https://github.com/thanos-io/thanos/pull/7353)[#8045](https://github.com/thanos-io/thanos/pull/8045) Receiver/StoreGateway: Add `--matcher-cache-size` option to enable caching for regex matchers in series calls.
25
25
-[#8017](https://github.com/thanos-io/thanos/pull/8017) Store Gateway: Use native histogram for binary reader load and download duration and fixed download duration metric. #8017
26
26
-[#8131](https://github.com/thanos-io/thanos/pull/8131) Store Gateway: Optimize regex matchers for .* and .+. #8131
27
+
-[#7808](https://github.com/thanos-io/thanos/pull/7808) Query: Support chain deduplication algorithm.
deduplicationFunc:=cmd.Flag("deduplication.func", "Experimental. Deduplication algorithm for merging overlapping series. "+
103
+
"Possible values are: \"penalty\", \"chain\". If no value is specified, penalty based deduplication algorithm will be used. "+
104
+
"When set to chain, the default compact deduplication merger is used, which performs 1:1 deduplication for samples. At least one replica label has to be set via --query.replica-label flag.").
queryReplicaLabels:=cmd.Flag("query.replica-label", "Labels to treat as a replica indicator along which data is deduplicated. Still you will be able to query without deduplication using 'dedup=false' parameter. Data includes time series, recording rules, and alerting rules. Flag may be specified multiple times as well as a comma separated list of labels.").
102
108
Strings()
103
109
queryPartitionLabels:=cmd.Flag("query.partition-label", "Labels that partition the leaf queriers. This is used to scope down the labelsets of leaf queriers when using the distributed query mode. If set, these labels must form a partition of the leaf queriers. Partition labels must not intersect with replica labels. Every TSDB of a leaf querier must have these labels. This is useful when there are multiple external labels that are irrelevant for the partition as it allows the distributed engine to ignore them for some optimizations. If this is empty then all labels are used as partition labels.").Strings()
Copy file name to clipboardExpand all lines: docs/components/query.md
+19Lines changed: 19 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -103,6 +103,15 @@ thanos query \
103
103
104
104
This logic can also be controlled via parameter on QueryAPI. More details below.
105
105
106
+
### Deduplication Algorithms
107
+
108
+
Thanos Querier supports different algorithms for deduplicating overlapping series. You can choose the deduplication algorithm using the `--deduplication.func` flag. The available options are:
109
+
110
+
*`penalty` (default): This is the default deduplication algorithm used by Thanos. It fills gaps only after a certain penalty window. This helps avoid flapping between replicas due to minor differences or delays.
111
+
*`chain`: This algorithm performs 1:1 deduplication for samples. It merges all available data points from the replicas without applying any penalty. This is useful in deployments based on receivers, where each replica is populated by the same data. In such cases, using the penalty algorithm may cause gaps even when data is available in other replicas.
112
+
113
+
Note that deduplication of HA groups is not supported by the `chain` algorithm.
114
+
106
115
## Thanos PromQL Engine (experimental)
107
116
108
117
By default, Thanos querier comes with standard Prometheus PromQL engine. However, when `--query.promql-engine=thanos` is specified, Thanos will use [experimental Thanos PromQL engine](http://github.com/thanos-community/promql-engine) which is a drop-in, efficient implementation of PromQL engine with query planner and optimizers.
@@ -297,6 +306,16 @@ Flags:
297
306
--auto-gomemlimit.ratio=0.9
298
307
The ratio of reserved GOMEMLIMIT memory to the
299
308
detected maximum container or system memory.
309
+
--deduplication.func=penalty
310
+
Experimental. Deduplication algorithm for
311
+
merging overlapping series. Possible values
312
+
are: "penalty", "chain". If no value is
313
+
specified, penalty based deduplication
314
+
algorithm will be used. When set to chain, the
315
+
default compact deduplication merger is used,
316
+
which performs 1:1 deduplication for samples.
317
+
At least one replica label has to be set via
318
+
--query.replica-label flag.
300
319
--enable-auto-gomemlimit Enable go runtime to automatically limit memory
301
320
consumption.
302
321
--endpoint=<endpoint> ... (Deprecated): Addresses of statically
0 commit comments