Releases: thanos-io/thanos
Releases · thanos-io/thanos
v0.20.2
v0.20.1
v0.20.0
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. Removesnamespace
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
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. Removesnamespace
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
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 themeta.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
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 themeta.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
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 themeta.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
v0.19.0-rc.0
v0.18.0
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
andseries
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 toLabelNamesRequest
andLabelValuesRequest
. 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 toreceive.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 usingdnssrv+
ordnssrvnoa+
. - #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 directorysegments/
if the file is bigger than1GB
.
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
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
andseries
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 toLabelNamesRequest
andLabelValuesRequest
. 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 toreceive.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 usingdnssrv+
ordnssrvnoa+
. - #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 directorysegments/
if the file is bigger than1GB
.
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.