v0.30 brings many important fixes & optimizations to compaction, store gateway, receive replication and querying. Make sure to try the new PromQL engine which is more & more efficient every week.
NOTE: Querier's
query.promql-engine
flag enabling the new PromQL engine is now unhidden. We encourage users to use new experimental PromQL engine for efficiency reasons.
Furthermore, we recommend you use Redis as a caching client (if you use store GW or query frontend caching) and Ketama algorithm as receiver hashing algorithm ( --receive.hashrings-algorithm=ketama
- introducing consistent hashing to receiver).
Enjoy & Happy Christmas Holidays! 🎉
Changes
Fixed
- #5716 DNS: Fix miekgdns resolver LookupSRV to work with CNAME records.
- #5844 Query Frontend: Fixes @ modifier time range when splitting queries by interval.
- #5854 Query Frontend:
lookback_delta
param is now handled in query frontend. - #5860 Query: Fixed bug of not showing query warnings in Thanos UI.
- #5856 Store: Fixed handling of debug logging flag.
- #5230 Rule: Stateless ruler support restoring
for
state from query API servers. The query API servers should be able to access the remote write storage. - #5880 Query Frontend: Fixes some edge cases of query sharding analysis.
- #5893 Cache: Fixed redis client not respecting
SetMultiBatchSize
config value. - #5966 Query: Stop relying on non-existent hints for mint and maxt when selecting series for the
api/v1/series
HTTP endpoint. - #5948 Store:
chunks_fetched_duration
wrong calculation. - #5910: Receive: Fixed ketama quorum bug that was could cause success response for failed replication. This also optimize heavily receiver CPU use.
Added
- #5814 Store: Added metric
thanos_bucket_store_postings_size_bytes
that shows the distribution of how many postings (in bytes) were needed for each Series() call in Thanos Store. Useful for determining limits. - #5703 StoreAPI: Added
hash
field to series' chunks. Store gateway and receive implements that field and proxy leverage that for quicker deduplication. - #5801 Store: Added a new flag
--store.grpc.downloaded-bytes-limit
that limits the number of bytes downloaded in each Series/LabelNames/LabelValues call. Usethanos_bucket_store_postings_size_bytes
for determining the limits. - #5836 Receive: Added hidden flag
tsdb.memory-snapshot-on-shutdown
to enable experimental TSDB feature to snapshot on shutdown. This is intended to speed up receiver restart. - #5839 Receive: Added parameter
--tsdb.out-of-order.time-window
to set time window for experimental out-of-order samples ingestion. Disabled by default (set to 0s). Please note if you enable this option and you use compactor, make sure you set the--enable-vertical-compaction
flag, otherwise you might risk compactor halt. - #5889 Query Frontend: Added support for vertical sharding
label_replace
andlabel_join
functions. - #5865 Compact: Retry on sync metas error.
- #5819 Store: Added a few objectives for Store's data summaries (touched/fetched amount and sizes). They are: 50, 95, and 99 quantiles.
- #5837 Store: Added streaming retrival of series from object storage.
- #5940 Objstore: Support for authenticating to Swift using application credentials.
- #5945 Tools: Added new
no-downsample
marker to skip blocks when downsampling viathanos tools bucket mark --marker=no-downsample-mark.json
. This will skip downsampling for blocks with the new marker. - #5977 Tools: Added remove flag on bucket mark command to remove deletion, no-downsample or no-compact markers on the block
Changed
- #5785 Query:
thanos_store_nodes_grpc_connections
now trimmsexternal_labels
label name longer than 1000 character. It also allows customizations in what labels to preserve usingquery.conn-metric.label
flag. - #5542 Mixin: Added query concurrency panel to Querier dashboard.
- #5846 Query Frontend: vertical query sharding supports subqueries.
- #5909 Receive: Compact tenant head after no appends have happened for 1.5
tsdb.max-block-size
. - #5593 Cache: Switched Redis client to Rueidis. Rueidis is faster and provides client-side caching. It is highly recommended to use it so that repeated requests for the same key would not be needed.
- #5896 *: Upgraded Prometheus to v0.40.7 without implementing native histogram support. Querying native histograms will fail with
Error executing query: invalid chunk encoding "<unknown>"
and native histograms in write requests are ignored. - #5838 Mixin: Added data touched type to Store dashboard.
- #5922 Compact: Retry on clean, partial marked errors when possible.
Removed
- #5824 Mixin: Remove noisy
ThanosReceiveTrafficBelowThreshold
alert.
New Contributors
- @rajivharlalka made their first contribution in #5631
- @Atharva-Shinde made their first contribution in #5716
- @clwluvw made their first contribution in #5856
- @VicThomas made their first contribution in #5884
- @karster made their first contribution in #5886
- @sumanpaikdev made their first contribution in #5868
- @abbyssoul made their first contribution in #5893
- @juanrh made their first contribution in #5795
- @hyder made their first contribution in #5928
- @aarnq made their first contribution in #5940
- @4orty made their first contribution in #5953
- @jatinagwal made their first contribution in #5967
- @RohitKochhar made their first contribution in #5945
- @rabenhorst made their first contribution in #5896
- @kama910 made their first contribution in #5981
- @Vishvsalvi made their first contribution in #5979
- @maheshbaliga made their first contribution in #5977
Commits
- CHANGELOG: mark 0.29.0 as in progress by @GiedriusS in #5808
- store: add histogram for postings size by @GiedriusS in #5814
- Store/Receivers: Calculating chunk hashes on stores/receivers by @pedro-stanaka in #5703
- Use pre-calculated hashes by @fpetkovski in #5817
- Short-circuit chunk dedup in proxy by @fpetkovski in #5816
- deps: Updated promql-engine to latest. by @bwplotka in #5821
- Query: Trim very long external labels and add cmd flag to optionally specify metric labels to collect by @utukJ in #5785
- CircleCI: Replace checkout step with custom command by @matej-g in #5829
- store: add downloaded bytes limit by @GiedriusS in #5801
- Mixin: Remove low ingestion rate warning for receiver by @matej-g in #5824
- Mixin: Remove low ingestion rate warning for receiver (fix tests) by @matej-g in #5831
- Fix Typo's in recieve.md by @rajivharlalka in #5631
- add panel Query Concurrency to dashboard mixin. by @raptorsun in #5542
- docs: Added guide for Community Office Hours shepherding. by @bwplotka in #5568
- *: Clean up stale bot config file by @matej-g in #5834
- Receive: Add experimental snapshot on shutdown by @matej-g in #5836
- Feature: Fix miekgdns resolver LookupSRV function to work with CNAME records too by @Atharva-Shinde in #5716
- Update promql engine by @fpetkovski in #5845
- Receive: Add parameter to set out-of-order time window by @matej-g in #5839
- Apply @ modifier start and end in QF split interval middleware by @yeya24 in #5844
- Shard subqueries by @yeya24 in #5846
- Support lookback_delta on query frontend by @yeya24 in #5854
- Receive: Make out-of-order max cap parameter hidden by @matej-g in #5851
- Merge release 0.29 to main by @GiedriusS in #5858
- ui: Added back support for warnings printed in info level. by @bwplotka in #5860
- store: add missing debugLogging set by @clwluvw in #5856
- Added blog space on Thanos website. by @bwplotka in #5873
- Adds medallia blog post by @vanugrah in #5878
- Update 2022-09-08-thanos-at-medallia.md by @VicThomas in #5884
- change Hyperia logo by @karster in #5886
- *:Fix stateless ruler config in quickstart by @matej-g in #5885
- Stateless ruler restores alert state by @yeya24 in #5230
- Update README.md by @sumanpaikdev in #5868
- Fix querysharding labels analysis by @yeya24 in #5880
- *: Fix lint by @matej-g in #5888
- Cache: Fixed redis cache to use multi batch size config value by @abbyssoul in #5893
- compact: retry on sync metas error by @clwluvw in #5865
- Support matrix type response merge for instant query sharding by @yeya24 in #5853
- Support vertical sharding for label_join and label_replace functions by @yeya24 in #5889
- *: Updates Prometheus BusyBox image SHAs by @github-actions in #5898
- Update objstore to latest commit by @phillebaba in #5897
- query:Avoid creating aux slice in removeExactDuplicates by @juanrh in #5795
- Bump loader-utils from 1.4.0 to 1.4.2 in /pkg/ui/react-app by @dependabot in #5900
- querier: Unhide
query.promql-engine
flag; added info in docs. by @bwplotka in #5913 - Compact tenant TSDBs after 3h inactivity by @fpetkovski in #5909
- Store: Add a few objectives for Store's data touched/fetched amount and sizes by @douglascamata in #5819
- *: Quick CHANGELOG fix after #5819 by @douglascamata in #5919
- Store: add data touched by type to the dashboard by @douglascamata in #5838
- Implement lazy retrieval of series from object store. by @fpetkovski in #5837
- compact: retry on cleanPartialMarked errors if possible by @clwluvw in #5922
- Docs: Add mentee selection process by @saswatamcode in #5920
- docs: Updated documentation for OCI Object Storage, added link to blog post by @hyder in #5928
- Bump github.com/prometheus/exporter-toolkit from 0.7.1 to 0.7.3 by @dependabot in #5938
- objstore: Update to latest by @aarnq in #5940
- Added Filip and Saswata to maintainers list after internal vote. by @bwplotka in #5950
- add kakaopay as adoptors by @4orty in #5953
- Fix values for the chunks_fetched_duration metric by @fpetkovski in #5948
- Added bwplotka as community meetings and release shepherd for December. by @bwplotka in #5955
- docs: fix some typos by @daixiang0 in #5958
- *: Document development in WSL2 by @douglascamata in #5927
- Fix mint and maxt for api/v1/series call by @fpetkovski in #5966
- fixed blog list view in website by @jatinagwal in #5967
- Fix ketama quorum by @fpetkovski in #5910
- cortex/transport: print grafana data if exists by @GiedriusS in #5973
- query/endpointset: fix some races by @GiedriusS in #5972
- Added tools bucket marker for no-downsample.json by @RohitKochhar in #5945
- *: Updates Prometheus BusyBox image SHAs by @github-actions in #5975
- Update Prometheus to v0.40.1 by @rabenhorst in #5896
- Bump decode-uri-component from 0.2.0 to 0.2.2 in /pkg/ui/react-app by @dependabot in #5939
- Use
efficientgo/core/testutil
for tests by @saswatamcode in #5933 - Changing store to match debug level by @kama910 in #5981
- Github link to v0.25.2 by @Vishvsalvi in #5979
- mixin(Receive): Fix series/samples written rate by @douglascamata in #5989
- cache: switch to Rueidis client for Redis by @GiedriusS in #5593
- tools: Added remove flag on bucket mark command to remove deletion, no-downsample or no-compact markers on the block by @maheshbaliga in #5977
- compact: remove cancel on SyncMetas errors by @clwluvw in #5923
- Cut v0.30.0-rc.0 by @bwplotka in #5992
Full Changelog: v0.29.0...v0.30.0-rc.0🎉