Skip to content

Releases: thanos-io/thanos

v0.20.2

21 May 08:52
v0.20.2
79ab6a7
Compare
Choose a tag to compare

Fixed

  • #4208 UI: Fix infinite redirection loop on root (/).

v0.20.1

30 Apr 13:21
v0.20.1
10023e4
Compare
Choose a tag to compare

Fixed

  • #4123 Query: match external labels for exemplars API.

v0.20.0

28 Apr 13:27
v0.20.0
893188a
Compare
Choose a tag to compare

Highlights 🚀 🎉

  • Upgrade Go version to 1.16
  • Upgrade Prometheus & Alertmanager.
  • Query: Added federated exemplars API support.
  • UI: Make the ReactUI the default one.
  • UI: Enable Targets page in Querier UI.
  • UI: Add new codemirror-promql-based expression editor.
  • Query Frontend: Support max_item_size in Query frontend Memcached cache.
  • Tools: Added a flag to support rewrite Prometheus TSDB blocks.

Added

  • #4029 Mixin: Remove dependency on the rule dashboard when generating the compact dashboard
  • #4019 Query: Adds query range histogram.
  • #3846 Query: Added federated exemplars API support.
  • #3350 Query/Sidecar: Added targets API support. You can now configure your Querier to fetch Prometheus targets from leaf Prometheus-es!
  • #3977 Expose exemplars for http_request_duration_seconds histogram if tracing is enabled.
  • #3903 Store: Returning custom gRPC code when reaching series/chunk limits.
  • #3919 Allow to disable automatically setting CORS headers using --web.disable-cors flag in each component that exposes an API.
  • #3840 Tools: Added a flag to support rewrite Prometheus TSDB blocks.
  • #3920 Query Frontend: Support max_item_size in Query frontend Memcached cache.

Fixed

  • #3204 Mixin: Use sidecar's metric timestamp for healthcheck.
  • #3922 *: Fix panic in http logging middleware.
  • #3960 Ruler: Fix deduplication of equal alerts with different labels.
  • #3937 Store: Fix race condition in chunk pool.
  • #4017 Query Frontend: fix downsampling iterator returning duplicate samples.
  • #4041 Logging: fix the HTTP logger.

Changed

  • #3929 Store: Adds the name of the instantiated memcached client to log info.
  • #3827 Upgrade Go version to 1.16
  • #3948 Receiver: Adjust http_request_duration_seconds buckets for low latency requests.
  • #3856 Mixin: breaking ⚠️ Introduce flexible multi-cluster/namespace mode for alerts and dashboards. Removes jobPrefix config option. Removes namespace by default.
  • #3937 Store: Reduce memory usage for range queries.
  • #4045 UI: Enable Targets page in Querier UI.
  • #4062 Flags: Sort flags alphabetically.
  • #4081 UI: Make the ReactUI the default one.
  • #4094 *: Upgrade Prometheus & Alertmanager.

v0.20.0-rc.0

23 Apr 12:12
v0.20.0-rc.0
0dfd107
Compare
Choose a tag to compare
v0.20.0-rc.0 Pre-release
Pre-release

Highlights

  • Upgrade Go version to 1.16
  • Upgrade Prometheus & Alertmanager.
  • Query: Added federated exemplars API support.
  • UI: Make the ReactUI the default one.
  • UI: Enable Targets page in Querier UI.
  • UI: Add new codemirror-promql-based expression editor.
  • Query Frontend: Support max_item_size in Query frontend Memcached cache.
  • Tools: Added a flag to support rewrite Prometheus TSDB blocks.

Added

  • #4029 Mixin: Remove dependency on the rule dashboard when generating the compact dashboard
  • #4019 Query: Adds query range histogram.
  • #3846 Query: Added federated exemplars API support.
  • #3350 Query/Sidecar: Added targets API support. You can now configure your Querier to fetch Prometheus targets from leaf Prometheus-es!
  • #3977 Expose exemplars for http_request_duration_seconds histogram if tracing is enabled.
  • #3903 Store: Returning custom gRPC code when reaching series/chunk limits.
  • #3919 Allow to disable automatically setting CORS headers using --web.disable-cors flag in each component that exposes an API.
  • #3840 Tools: Added a flag to support rewrite Prometheus TSDB blocks.
  • #3920 Query Frontend: Support max_item_size in Query frontend Memcached cache.

Fixed

  • #3204 Mixin: Use sidecar's metric timestamp for healthcheck.
  • #3922 *: Fix panic in http logging middleware.
  • #3960 Ruler: Fix deduplication of equal alerts with different labels.
  • #3937 Store: Fix race condition in chunk pool.
  • #4017 Query Frontend: fix downsampling iterator returning duplicate samples.
  • #4041 Logging: fix the HTTP logger.

Changed

  • #3929 Store: Adds the name of the instantiated memcached client to log info.
  • #3827 Upgrade Go version to 1.16
  • #3948 Receiver: Adjust http_request_duration_seconds buckets for low latency requests.
  • #3856 Mixin: breaking ⚠️ Introduce flexible multi-cluster/namespace mode for alerts and dashboards. Removes jobPrefix config option. Removes namespace by default.
  • #3937 Store: Reduce memory usage for range queries.
  • #4045 UI: Enable Targets page in Querier UI.
  • #4062 Flags: Sort flags alphabetically.
  • #4081 UI: Make the ReactUI the default one.
  • #4094 *: Upgrade Prometheus & Alertmanager.

v0.19.0

31 Mar 14:33
Compare
Choose a tag to compare

Added

  • #3700 Compact/Web: Make old bucket viewer UI work with vanilla Prometheus blocks.
  • #3657 *: It's now possible to configure HTTP transport options for S3 client.
  • #3752 Compact/Store: Added --block-meta-fetch-concurrency allowing to configure number of go routines for block metadata synchronization.
  • #3723 Query Frontend: Added --query-range.request-downsampled flag enabling additional queries for downsampled data in case of empty or incomplete response to range request.
  • #3579 Cache: Added inmemory cache for caching bucket.
  • #3792 Receiver: Added --tsdb.allow-overlapping-blocks flag to allow overlapping tsdb blocks and enable vertical compaction.
  • #3740 Query: Added --query.default-step flag to set default step. Useful when your tenant scrape interval is stable and far from default UI's 1s.
  • #3686 Query/Sidecar: Added metric metadata API support. You can now configure you Querier to fetch Prometheus metrics metadata from leaf Prometheus-es!
  • #3031 Compact/Sidecar/Receive/Rule: Added --hash-func. If some function has been specified, writers calculate hashes using that function of each file in a block before uploading them. If those hashes exist in the meta.json file then Compact does not download the files if they already exist on disk and with the same hash. This also means that the data directory passed to Thanos Compact is only cleared once at boot or if everything succeeds. So, if you, for example, use persistent volumes on k8s and your Thanos Compact crashes or fails to make an iteration properly then the last downloaded files are not wiped from the disk. The directories that were created the last time are only wiped again after a successful iteration or if the previously picked up blocks have disappeared.

Fixed

  • #3705 Store: Fix race condition leading to failing queries or possibly incorrect query results.
  • #3661 Compact: Deletion-mark.json is deleted as the last one, which could in theory lead to potential store gateway load or query error for such in-deletion block.
  • #3760 Store: Fix panic caused by a race condition happening on concurrent index-header reader usage and unload, when --store.enable-index-header-lazy-reader is enabled.
  • #3759 Store: Fix panic caused by a race condition happening on concurrent index-header lazy load and unload, when --store.enable-index-header-lazy-reader is enabled.
  • #3773 Compact: Fixed compaction planner size check, making sure we don't create too large blocks.
  • #3814 Store: Decreased memory utilisation while fetching block's chunks.
  • #3815 Receive: Improve handling of empty time series from clients
  • #3795 s3: A truncated "get object" response is reported as error.
  • #3899 Receive: Correct the inference of client gRPC configuration.
  • #3943 Receive: Fixed memory regression introduced in v0.17.0.
  • #3960 Query: Fixed deduplication of equal alerts with different labels.

Changed

  • #3804 Ruler, Receive, Querier: Updated Prometheus dependency. TSDB characteristics might have changed.

v0.19.0-rc.2

24 Mar 19:17
5620c09
Compare
Choose a tag to compare
v0.19.0-rc.2 Pre-release
Pre-release

Added

  • #3700 Compact/Web: Make old bucket viewer UI work with vanilla Prometheus blocks.
  • #3657 *: It's now possible to configure HTTP transport options for S3 client.
  • #3752 Compact/Store: Added --block-meta-fetch-concurrency allowing to configure number of go routines for block metadata synchronization.
  • #3723 Query Frontend: Added --query-range.request-downsampled flag enabling additional queries for downsampled data in case of empty or incomplete response to range request.
  • #3579 Cache: Added inmemory cache for caching bucket.
  • #3792 Receiver: Added --tsdb.allow-overlapping-blocks flag to allow overlapping tsdb blocks and enable vertical compaction.
  • #3740 Query: Added --query.default-step flag to set default step. Useful when your tenant scrape interval is stable and far from default UI's 1s.
  • #3686 Query/Sidecar: Added metric metadata API support. You can now configure you Querier to fetch Prometheus metrics metadata from leaf Prometheus-es!
  • #3031 Compact/Sidecar/Receive/Rule: Added --hash-func. If some function has been specified, writers calculate hashes using that function of each file in a block before uploading them. If those hashes exist in the meta.json file then Compact does not download the files if they already exist on disk and with the same hash. This also means that the data directory passed to Thanos Compact is only cleared once at boot or if everything succeeds. So, if you, for example, use persistent volumes on k8s and your Thanos Compact crashes or fails to make an iteration properly then the last downloaded files are not wiped from the disk. The directories that were created the last time are only wiped again after a successful iteration or if the previously picked up blocks have disappeared.

Fixed

  • #3705 Store: Fix race condition leading to failing queries or possibly incorrect query results.
  • #3661 Compact: Deletion-mark.json is deleted as the last one, which could in theory lead to potential store gateway load or query error for such in-deletion block.
  • #3760 Store: Fix panic caused by a race condition happening on concurrent index-header reader usage and unload, when --store.enable-index-header-lazy-reader is enabled.
  • #3759 Store: Fix panic caused by a race condition happening on concurrent index-header lazy load and unload, when --store.enable-index-header-lazy-reader is enabled.
  • #3773 Compact: Fixed compaction planner size check, making sure we don't create too large blocks.
  • #3814 Store: Decreased memory utilisation while fetching block's chunks.
  • #3815 Receive: Improve handling of empty time series from clients
  • #3795 s3: A truncated "get object" response is reported as error.
  • #3899 Receive: Correct the inference of client gRPC configuration.
  • #3943: Receive: Fixed memory regression introduced in v0.17.0.

Changed

  • #3804 Ruler, Receive, Querier: Updated Prometheus dependency. TSDB characteristics might have changed.

v0.19.0-rc.1

09 Mar 16:42
05280c9
Compare
Choose a tag to compare
v0.19.0-rc.1 Pre-release
Pre-release

Added

  • #3700 Compact/Web: Make old bucket viewer UI work with vanilla Prometheus blocks.
  • #3657 *: It's now possible to configure HTTP transport options for S3 client.
  • #3752 Compact/Store: Added --block-meta-fetch-concurrency allowing to configure number of go routines for block metadata synchronization.
  • #2641 Query Frontend: Added --query-range.request-downsampled flag enabling additional queries for downsampled data in case of empty or incomplete response to range request.
  • #3579 Cache: Added inmemory cache for caching bucket.
  • #3792 Receiver: Added --tsdb.allow-overlapping-blocks flag to allow overlapping tsdb blocks and enable vertical compaction.
  • #3740 Query: Added --query.default-step flag to set default step. Useful when your tenant scrape interval is stable and far from default UI's 1s.
  • #3686 Query,Sidecar: Added metric metadata API support. You can now configure you Querier to fetch Prometheus metrics metadata from leaf Prometheus-es!
  • #3031 Compact/Sidecar/Receive/Rule: Added --hash-func. If some function has been specified, writers calculate hashes using that function of each file in a block before uploading them. If those hashes exist in the meta.json file then Compact does not download the files if they already exist on disk and with the same hash. This also means that the data directory passed to Thanos Compact is only cleared once at boot or if everything succeeds. So, if you, for example, use persistent volumes on k8s and your Thanos Compact crashes or fails to make an iteration properly then the last downloaded files are not wiped from the disk. The directories that were created the last time are only wiped again after a successful iteration or if the previously picked up blocks have disappeared.

Fixed

  • #3705 Store: Fix race condition leading to failing queries or possibly incorrect query results.
  • #3661 Compact: Deletion-mark.json is deleted as the last one, which could in theory lead to potential store gateway load or query error for such in-deletion block.
  • #3760 Store: Fix panic caused by a race condition happening on concurrent index-header reader usage and unload, when --store.enable-index-header-lazy-reader is enabled.
  • #3759 Store: Fix panic caused by a race condition happening on concurrent index-header lazy load and unload, when --store.enable-index-header-lazy-reader is enabled.
  • #3773 Compact: Fixed compaction planner size check, making sure we don't create too large blocks.
  • #3814 Store: Decreased memory utilisation while fetching block's chunks.
  • #3815 Receive: Improve handling of empty time series from clients
  • #3795 s3: A truncated "get object" response is reported as error.

Changed

  • #3804 Ruler, Receive, Querier: Updated Prometheus dependency. TSDB characteristics might have changed.

v0.19.0-rc.0

02 Mar 12:58
139ae3f
Compare
Choose a tag to compare
v0.19.0-rc.0 Pre-release
Pre-release
v0.19.0-rc.0

v0.18.0

01 Feb 19:35
v0.18.0
60d45a0
Compare
Choose a tag to compare

Highlights

  • Several big optimizations speeding up query performance were introduced!
  • A new command was added, thanos tools bucket rewrite, enabling the deletion of series from given block.
  • The Query Frontend now supports proxying requests to the labels and series API endpoints.
  • thanos tools bucket replicate can now copy particular blocks by ID.
  • The number of series touched by the Store component when servicing a Series call can now be limited using a CLI flag.

Added

  • #3380 Mixin: Add block deletion panels for compactor dashboards.
  • #3568 Store: Optimized inject label stage of index lookup.
  • #3566 StoreAPI: Support label matchers in labels API.
  • #3531 Store: Optimized common cases for time selecting smaller amount of series by avoiding looking up symbols.
  • #3469 StoreAPI: Added hints field to LabelNamesRequest and LabelValuesRequest. Hints are an opaque data structure that can be used to carry additional information from the store and its content is implementation-specific.
  • #3421 Tools: Added thanos tools bucket rewrite command allowing to delete series from given block.
  • #3509 Store: Added a CLI flag to limit the number of series that are touched.
  • #3444 Query Frontend: Make POST request to downstream URL for labels and series API endpoints.
  • #3388 Tools: Bucket replicator now can specify block IDs to copy.
  • #3385 Tools: Bucket prints extra statistics for block index with debug log-level.
  • #3121 Receive: Added --receive.hashrings alternative to receive.hashrings-file flag (lower priority). The flag expects the literal hashring configuration in JSON format.

Fixed

  • #3567 Mixin: Reintroduce thanos_objstore_bucket_operation_failures_total alert.
  • #3527 Query Frontend: Fix query_range behavior when start/end times are the same
  • #3560 Query Frontend: Allow separate label cache
  • #3672 Rule: Prevent crashing due to no such host error when using dnssrv+ or dnssrvnoa+.
  • #3461 Compact, Shipper, Store: Fixed panic when no external labels are set in block metadata.

Changed

  • #3496 S3: Respect SignatureV2 flag for all credential providers.
  • #2732 Swift: Switched to a new library ncw/swift providing large objects support.
    By default, segments will be uploaded to the same container directory segments/ if the file is bigger than 1GB.
    To change the defaults see the docs.
  • #3626 Shipper: Failed upload of meta.json file doesn't cause block cleanup anymore. This has a potential to generate corrupted blocks under specific conditions. Partial block is left in bucket for later cleanup.

v0.18.0-rc.0

06 Jan 17:37
v0.18.0-rc.0
0dde3ec
Compare
Choose a tag to compare
v0.18.0-rc.0 Pre-release
Pre-release

Highlights

  • Several big optimizations speeding up query performance were introduced!
  • A new command was added, thanos tools bucket rewrite, enabling the deletion of series from given block.
  • The Query Frontend now supports proxying requests to the labels and series API endpoints.
  • thanos tools bucket replicate can now copy particular blocks by ID.
  • The number of series touched by the Store component when servicing a Series call can now be limited using a CLI flag.

Added

  • #3380 Mixin: Add block deletion panels for compactor dashboards.
  • #3568 Store: Optimized inject label stage of index lookup.
  • #3566 StoreAPI: Support label matchers in labels API.
  • #3531 Store: Optimized common cases for time selecting smaller amount of series by avoiding looking up symbols.
  • #3469 StoreAPI: Added hints field to LabelNamesRequest and LabelValuesRequest. Hints are an opaque data structure that can be used to carry additional information from the store and its content is implementation-specific.
  • #3421 Tools: Added thanos tools bucket rewrite command allowing to delete series from given block.
  • #3509 Store: Added a CLI flag to limit the number of series that are touched.
  • #3444 Query Frontend: Make POST request to downstream URL for labels and series API endpoints.
  • #3388 Tools: Bucket replicator now can specify block IDs to copy.
  • #3385 Tools: Bucket prints extra statistics for block index with debug log-level.
  • #3121 Receive: Added --receive.hashrings alternative to receive.hashrings-file flag (lower priority). The flag expects the literal hashring configuration in JSON format.

Fixed

  • #3567 Mixin: Reintroduce thanos_objstore_bucket_operation_failures_total alert.
  • #3527 Query Frontend: Fix query_range behavior when start/end times are the same
  • #3560 Query Frontend: Allow separate label cache
  • #3672 Rule: Prevent crashing due to no such host error when using dnssrv+ or dnssrvnoa+.
  • #3461 Compact, Shipper, Store: Fixed panic when no external labels are set in block metadata.

Changed

  • #3496 S3: Respect SignatureV2 flag for all credential providers.
  • #2732 Swift: Switched to a new library ncw/swift providing large objects support.
    By default, segments will be uploaded to the same container directory segments/ if the file is bigger than 1GB.
    To change the defaults see the docs.
  • #3626 Shipper: Failed upload of meta.json file doesn't cause block cleanup anymore. This has a potential to generate corrupted blocks under specific conditions. Partial block is left in bucket for later cleanup.