Skip to content

Releases: thanos-io/thanos

v0.35.0

02 May 11:02
v0.35.0
d9a0efa
Compare
Choose a tag to compare

v0.35.0 is out now!
We have several amazing features this time, including distributed query execution, receive tenant-label based request splitting, better query analysis, and loads of bugfixes and optimizations!

Thank you to all contributors who have contributed to this release. It wouldn't be possible without you!

Please try it out and let us know if you find any issues! 🚀

Changelog

Fixed

  • #7083 Store Gateway: Fix lazy expanded postings with 0 length failed to be cached.
  • #7080 Receive: race condition in handler Close() when stopped early
  • #7132 Documentation: fix broken helm installation instruction
  • #7134 Store, Compact: Revert the recursive block listing mechanism introduced in #6474 and use the same strategy as in 0.31. Introduce a --block-discovery-strategy flag to control the listing strategy so that a recursive lister can still be used if the tradeoff of slower but cheaper discovery is preferred.
  • #7122 Store Gateway: Fix lazy expanded postings estimate base cardinality using posting group with remove keys.
  • #7166 Receive/MultiTSDB: Do not delete non-uploaded blocks
  • #7179 Query: Fix merging of query analysis
  • #7224 Query-frontend: Add Redis username to the client configuration.
  • #7220 Store Gateway: Fix lazy expanded postings caching partial expanded postings and bug of estimating remove postings with non existent value. Added PromQLSmith based fuzz test to improve correctness.
  • #7225 Compact: Don't halt due to overlapping sources when vertical compaction is enabled
  • #7244 Query: Fix Internal Server Error unknown targetHealth: "unknown" when trying to open the targets page.
  • #7248 Receive: Fix RemoteWriteAsync was sequentially executed causing high latency in the ingestion path.
  • #7271 Query: fixing dedup iterator when working on mixed sample types.
  • #7289 Query Frontend: show warnings from downstream queries.
  • #7308 Store: Batch TSDB Infos for blocks.

Added

  • #7155 Receive: Add tenant globbing support to hashring config
  • #7231 Tracing: added missing sampler types
  • #7194 Downsample: retry objstore related errors
  • #7105 Rule: add flag --query.enable-x-functions to allow usage of extended promql functions (xrate, xincrease, xdelta) in loaded rules
  • #6867 Query UI: Tenant input box added to the Query UI, in order to be able to specify which tenant the query should use.
  • #7186 Query UI: Only show tenant input box when query tenant enforcement is enabled
  • #7175 Query: Add --query.mode=distributed which enables the new distributed mode of the Thanos query engine.
  • #7199 Reloader: Add support for watching and decompressing Prometheus configuration directories
  • #7200 Query: Add --selector.relabel-config and --selector.relabel-config-file flags which allows scoping the Querier to a subset of matched TSDBs.
  • #7233 UI: Showing Block Size Stats
  • #7256 Receive: Split remote-write HTTP requests via tenant labels of series
  • #7269 Query UI: Show peak/total samples in query analysis
  • #7280 *: Adding User-Agent to request logs
  • #7219 Receive: add --remote-write.client-tls-secure and --remote-write.client-tls-skip-verify flags to stop relying on grpc server config to determine grpc client secure/skipVerify.
  • #7297 *: mark as not queryable if status is not ready
  • #7302 Considering the X-Forwarded-For header for the remote address in the logs.
  • #7304 Store: Use loser trees for merging results

Changed

  • #7123 Rule: Change default Alertmanager API version to v2.
  • #7192 Rule: Do not turn off ruler even if resolving fails
  • #7223 Automatic detection of memory limits and configure GOMEMLIMIT to match.
  • #7283 Compact: breaking ⚠️ Replace group with resolution in compact downsample metrics to avoid cardinality explosion with large numbers of groups.
  • #7305 Query|Receiver: Do not log full request on ProxyStore by default.

New Contributors

Full Commit History: v0.34.1...v0.35.0-rc.0

v0.35.0-rc.0

29 Apr 14:12
v0.35.0-rc.0
bcad1e1
Compare
Choose a tag to compare
v0.35.0-rc.0 Pre-release
Pre-release

The first release candidate of v0.35.0 is out!
We have several amazing features this time, including distributed query execution, receive tenant-label based request splitting, better query analysis, and loads of bugfixes and optimizations!

Thank you to all contributors who have contributed to this release. It wouldn't be possible without you!

Please try it out and let us know if you find any issues! 🚀

Changelog

Fixed

  • #7083 Store Gateway: Fix lazy expanded postings with 0 length failed to be cached.
  • #7080 Receive: race condition in handler Close() when stopped early
  • #7132 Documentation: fix broken helm installation instruction
  • #7134 Store, Compact: Revert the recursive block listing mechanism introduced in #6474 and use the same strategy as in 0.31. Introduce a --block-discovery-strategy flag to control the listing strategy so that a recursive lister can still be used if the tradeoff of slower but cheaper discovery is preferred.
  • #7122 Store Gateway: Fix lazy expanded postings estimate base cardinality using posting group with remove keys.
  • #7166 Receive/MultiTSDB: Do not delete non-uploaded blocks
  • #7179 Query: Fix merging of query analysis
  • #7224 Query-frontend: Add Redis username to the client configuration.
  • #7220 Store Gateway: Fix lazy expanded postings caching partial expanded postings and bug of estimating remove postings with non existent value. Added PromQLSmith based fuzz test to improve correctness.
  • #7225 Compact: Don't halt due to overlapping sources when vertical compaction is enabled
  • #7244 Query: Fix Internal Server Error unknown targetHealth: "unknown" when trying to open the targets page.
  • #7248 Receive: Fix RemoteWriteAsync was sequentially executed causing high latency in the ingestion path.
  • #7271 Query: fixing dedup iterator when working on mixed sample types.
  • #7289 Query Frontend: show warnings from downstream queries.
  • #7308 Store: Batch TSDB Infos for blocks.

Added

  • #7155 Receive: Add tenant globbing support to hashring config
  • #7231 Tracing: added missing sampler types
  • #7194 Downsample: retry objstore related errors
  • #7105 Rule: add flag --query.enable-x-functions to allow usage of extended promql functions (xrate, xincrease, xdelta) in loaded rules
  • #6867 Query UI: Tenant input box added to the Query UI, in order to be able to specify which tenant the query should use.
  • #7186 Query UI: Only show tenant input box when query tenant enforcement is enabled
  • #7175 Query: Add --query.mode=distributed which enables the new distributed mode of the Thanos query engine.
  • #7199 Reloader: Add support for watching and decompressing Prometheus configuration directories
  • #7200 Query: Add --selector.relabel-config and --selector.relabel-config-file flags which allows scoping the Querier to a subset of matched TSDBs.
  • #7233 UI: Showing Block Size Stats
  • #7256 Receive: Split remote-write HTTP requests via tenant labels of series
  • #7269 Query UI: Show peak/total samples in query analysis
  • #7280 *: Adding User-Agent to request logs
  • #7219 Receive: add --remote-write.client-tls-secure and --remote-write.client-tls-skip-verify flags to stop relying on grpc server config to determine grpc client secure/skipVerify.
  • #7297 *: mark as not queryable if status is not ready
  • #7302 Considering the X-Forwarded-For header for the remote address in the logs.
  • #7304 Store: Use loser trees for merging results

Changed

  • #7123 Rule: Change default Alertmanager API version to v2.
  • #7192 Rule: Do not turn off ruler even if resolving fails
  • #7223 Automatic detection of memory limits and configure GOMEMLIMIT to match.
  • #7283 Compact: breaking ⚠️ Replace group with resolution in compact downsample metrics to avoid cardinality explosion with large numbers of groups.
  • #7305 Query|Receiver: Do not log full request on ProxyStore by default.

New Contributors

Full Commit History: v0.34.1...v0.35.0-rc.0

v0.34.1

20 Feb 12:00
v0.34.1
4cf1559
Compare
Choose a tag to compare

This patch release includes a fix for CVE-2023-44478, thanks @hanyuting8!

Changelog

Fixed

  • #7078 *: Bump gRPC to 1.57.2

Added

Changed

Removed

Full Changelog: v0.34.0...v0.34.1

v0.34.0

27 Jan 13:06
v0.34.0
18d740f
Compare
Choose a tag to compare

v0.34.0 is out!

Thank you to all contributors who have contributed to this release. It wouldn't be possible without you.

Please take note that the default value of the flag --sync-block-duration has been updated from 3m to 15m!

You can find the changelog with all of the details below. Let's also celebrate all our new contributors!

Changelog

Fixed

  • #7011 Query Frontend: queries with negative offset should check whether it is cacheable or not.
  • #6874 Sidecar: fix labels returned by 'api/v1/series' in presence of conflicting external and inner labels.
  • #7009 Rule: Fix spacing error in URL.
  • #7082 Stores: fix label values edge case when requesting external label values with matchers

Added

  • #6756 Query: Add query.enable-tenancy & query.tenant-label-name options to allow enforcement of tenancy on the query path, by injecting labels into queries (uses prom-label-proxy internally).
  • #6944 Receive: Added a new flag for maximum retention bytes.
  • #6891 Objstore: Bump objstore which adds support for Azure Workload Identity.
  • #6453 Sidecar: Added --reloader.method to support configuration reloads via SIHUP signal.
  • #6925 Store Gateway: Support float native histogram.
  • #6954 Index Cache: Support tracing for fetch APIs.
  • #6943 Ruler: Added keep_firing_for field in alerting rule.
  • #6972 Store Gateway: Apply series limit when streaming series for series actually matched if lazy postings is enabled.
  • #6984 Store Gateway: Added --store.index-header-lazy-download-strategy to specify how to lazily download index headers when lazy mmap is enabled.
  • #6887 Query Frontend: breaking ⚠️ Add tenant label to relevant exported metrics. Note that this change may cause some pre-existing custom dashboard queries to be incorrect due to the added label.
  • #7028 Query|Query Frontend: Add new --query-frontend.enable-x-functions flag to enable experimental extended functions.
  • #6884 Tools: Add upload-block command to upload blocks to object storage.

Changed

  • #6539 Store: breaking ⚠️ Changed --sync-block-duration default 3m to 15m.

Removed

New Contributors

Full Changelog: v0.33.0...v0.34.0-rc.0

v0.34.0-rc.1

23 Jan 18:10
v0.34.0-rc.1
15a60f9
Compare
Choose a tag to compare
v0.34.0-rc.1 Pre-release
Pre-release

v0.34.0-rc.1 is out!

Thank you to all contributors who have contributed to this release. It wouldn't be possible without you.

In addition to the changes from v0.34.0-rc.0 we cherry-picked ceadfbb.

Please take note that the default value of the flag --sync-block-duration has been updated from 3m to 15m!

You can find the changelog with all of the details below. Let's also celebrate all our new contributors!
Please try it out and let us know if you spot any problems! Full-release/next rc will be in 3 days!

Changelog

Fixed

  • #7011 Query Frontend: queries with negative offset should check whether it is cacheable or not.
  • #6874 Sidecar: fix labels returned by 'api/v1/series' in presence of conflicting external and inner labels.
  • #7009 Rule: Fix spacing error in URL.
  • #7082 Stores: fix label values edge case when requesting external label values with matchers

Added

  • #6756 Query: Add query.enable-tenancy & query.tenant-label-name options to allow enforcement of tenancy on the query path, by injecting labels into queries (uses prom-label-proxy internally).
  • #6944 Receive: Added a new flag for maximum retention bytes.
  • #6891 Objstore: Bump objstore which adds support for Azure Workload Identity.
  • #6453 Sidecar: Added --reloader.method to support configuration reloads via SIHUP signal.
  • #6925 Store Gateway: Support float native histogram.
  • #6954 Index Cache: Support tracing for fetch APIs.
  • #6943 Ruler: Added keep_firing_for field in alerting rule.
  • #6972 Store Gateway: Apply series limit when streaming series for series actually matched if lazy postings is enabled.
  • #6984 Store Gateway: Added --store.index-header-lazy-download-strategy to specify how to lazily download index headers when lazy mmap is enabled.
  • #6887 Query Frontend: breaking ⚠️ Add tenant label to relevant exported metrics. Note that this change may cause some pre-existing custom dashboard queries to be incorrect due to the added label.
  • #7028 Query|Query Frontend: Add new --query-frontend.enable-x-functions flag to enable experimental extended functions.
  • #6884 Tools: Add upload-block command to upload blocks to object storage.

Changed

  • #6539 Store: breaking ⚠️ Changed --sync-block-duration default 3m to 15m.

Removed

New Contributors

Full Changelog: v0.33.0...v0.34.0-rc.0

v0.34.0-rc.0

15 Jan 07:55
v0.34.0-rc.0
6fb3ca1
Compare
Choose a tag to compare
v0.34.0-rc.0 Pre-release
Pre-release

v0.34.0-rc.0 is out!

Thank you to all contributors who have contributed to this release. It wouldn't be possible without you.

Please take note that the default value of the flag --sync-block-duration has been updated from 3m to 15m!

You can find the changelog with all of the details below. Let's also celebrate all our new contributors!
Please try it out and let us know if you spot any problems! Full-release/next rc will be in 3 days!

Changelog

Fixed

  • #7011 Query Frontend: queries with negative offset should check whether it is cacheable or not.
  • #6874 Sidecar: fix labels returned by 'api/v1/series' in presence of conflicting external and inner labels.
  • #7009 Rule: Fix spacing error in URL.

Added

  • #6756 Query: Add query.enable-tenancy & query.tenant-label-name options to allow enforcement of tenancy on the query path, by injecting labels into queries (uses prom-label-proxy internally).
  • #6944 Receive: Added a new flag for maximum retention bytes.
  • #6891 Objstore: Bump objstore which adds support for Azure Workload Identity.
  • #6453 Sidecar: Added --reloader.method to support configuration reloads via SIHUP signal.
  • #6925 Store Gateway: Support float native histogram.
  • #6954 Index Cache: Support tracing for fetch APIs.
  • #6943 Ruler: Added keep_firing_for field in alerting rule.
  • #6972 Store Gateway: Apply series limit when streaming series for series actually matched if lazy postings is enabled.
  • #6984 Store Gateway: Added --store.index-header-lazy-download-strategy to specify how to lazily download index headers when lazy mmap is enabled.
  • #6887 Query Frontend: breaking ⚠️ Add tenant label to relevant exported metrics. Note that this change may cause some pre-existing custom dashboard queries to be incorrect due to the added label.
  • #7028 Query|Query Frontend: Add new --query-frontend.enable-x-functions flag to enable experimental extended functions.
  • #6884 Tools: Add upload-block command to upload blocks to object storage.

Changed

  • #6539 Store: breaking ⚠️ Changed --sync-block-duration default 3m to 15m.

Removed

New Contributors

Full Changelog: v0.33.0...v0.34.0-rc.0

v0.33.0

18 Dec 09:27
v0.33.0
0f025f1
Compare
Choose a tag to compare

v0.33.0 is out!
Thank you to all contributors who have contributed to this release. It wouldn't be possible without you.

Do take note of some of the breaking metric changes in the querier and store around tenancy.

You can find the changelog with all of the details below. Let's also celebrate all our new contributors!
Please try it out and let us know if you spot any problems!

Changelog

Fixed

  • #6817 Store Gateway: fix matchersToPostingGroups label values variable got shadowed bug.

Added

  • #6891 Objstore: Bump objstore which adds support for Azure Workload Identity.
  • #6605 Query Frontend: Support vertical sharding binary expression with metric name when no matching labels specified.
  • #6308 Ruler: Support configuration flag that allows customizing template for alert message.
  • #6760 Query Frontend: Added TLS support in --query-frontend.downstream-tripper-config and --query-frontend.downstream-tripper-config-file
  • #6749 Store Gateway: Added thanos_store_index_cache_fetch_duration_seconds histogram for tracking latency of fetching data from index cache.
  • #6690 Store: breaking ⚠️ Add tenant label to relevant exported metrics. Note that this change may cause some pre-existing dashboard queries to be incorrect due to the added label.
  • #6530 / #6690 Query: Add command line arguments for configuring tenants and forward tenant information to Store Gateway.
  • #6765 Index Cache: Add enabled_items to index cache config to selectively cache configured items. Available item types are Postings, Series and ExpandedPostings.
  • #6773 Index Cache: Add ttl to control the ttl to store items in remote index caches like memcached and redis.
  • #6794 Query: breaking ⚠️ Add tenant label to relevant exported metrics. Note that this change may cause some pre-existing custom dashboard queries to be incorrect due to the added label.

Changed

  • #6698 Receive: Change write log level from warn to info.
  • #6753 mixin(Rule): breaking ⚠️ Fixed the mixin rules with duplicate names and updated the promtool version from v0.37.0 to v0.47.0
  • #6772 *: Bump prometheus to v0.47.2-0.20231006112807-a5a4eab679cc
  • #6794 Receive: the exported HTTP metrics now uses the specified default tenant for requests where no tenants are found.

Removed

  • #6686 Remove deprecated --log.request.decision flag. We now use --request.logging-config to set logging decisions.

New Contributors

Full Changelog: v0.32.5...v0.33.0

v0.33.0-rc.0

28 Nov 12:17
v0.33.0-rc.0
d69430d
Compare
Choose a tag to compare
v0.33.0-rc.0 Pre-release
Pre-release

v0.33.0-rc.0 is out!
Thank you to all contributors who have contributed to this release. It wouldn't be possible without you.

Do take note of some of the breaking metric changes in the querier and store around tenancy.

You can find the changelog with all of the details below. Let's also celebrate all our new contributors!
Please try it out and let us know if you spot any problems! Full-release/next rc will be in 3 days!

Changelog

Fixed

  • #6817 Store Gateway: fix matchersToPostingGroups label values variable got shadowed bug.

Added

  • #6891 Objstore: Bump objstore which adds support for Azure Workload Identity.
  • #6605 Query Frontend: Support vertical sharding binary expression with metric name when no matching labels specified.
  • #6308 Ruler: Support configuration flag that allows customizing template for alert message.
  • #6760 Query Frontend: Added TLS support in --query-frontend.downstream-tripper-config and --query-frontend.downstream-tripper-config-file
  • #6749 Store Gateway: Added thanos_store_index_cache_fetch_duration_seconds histogram for tracking latency of fetching data from index cache.
  • #6690 Store: breaking ⚠️ Add tenant label to relevant exported metrics. Note that this change may cause some pre-existing dashboard queries to be incorrect due to the added label.
  • #6530 / #6690 Query: Add command line arguments for configuring tenants and forward tenant information to Store Gateway.
  • #6765 Index Cache: Add enabled_items to index cache config to selectively cache configured items. Available item types are Postings, Series and ExpandedPostings.
  • #6773 Index Cache: Add ttl to control the ttl to store items in remote index caches like memcached and redis.
  • #6794 Query: breaking ⚠️ Add tenant label to relevant exported metrics. Note that this change may cause some pre-existing custom dashboard queries to be incorrect due to the added label.

Changed

  • #6698 Receive: Change write log level from warn to info.
  • #6753 mixin(Rule): breaking ⚠️ Fixed the mixin rules with duplicate names and updated the promtool version from v0.37.0 to v0.47.0
  • #6772 *: Bump prometheus to v0.47.2-0.20231006112807-a5a4eab679cc
  • #6794 Receive: the exported HTTP metrics now uses the specified default tenant for requests where no tenants are found.

Removed

  • #6686 Remove deprecated --log.request.decision flag. We now use --request.logging-config to set logging decisions.

New Contributors

Full Changelog: v0.32.5...v0.33.0-rc.0

v0.32.5

19 Oct 04:31
v0.32.5
750e8a9
Compare
Choose a tag to compare

This patch release brings a fix for Receive, for a bug that allowed the head series limiter to be run without explicitly setting it. It also brings a fix for Store GW, for a bug that caused /api/v1/labels to not filter external labels.

Alongside this, we also build with Go 1.21.3 and golang.org/x/net v0.17 in this release to address Go CVE.
Please try it out and let us know if you spot any problems! Enjoy! 🎉

Changes

Fixed

  • #6615 #6805: Build with Go 1.21 and bump golang.org/x/net to v0.17 for addressing Go CVE.
  • #6802 Receive: head series limiter should not run if no head series limit is set.
  • #6816 Store: fix prometheus store label values matches for external labels.

v0.32.4

02 Oct 08:02
v0.32.4
fcd5683
Compare
Choose a tag to compare

This patch release updates our object storage library to address a few issues that were introduced earlier.
Please try it out and let us know if you spot any problems! Enjoy! 🎉

Changes

Fixed