Releases: cortexproject/cortex
Cortex 1.3.0
This Cortex release features 125 contributions from 37 different authors. It's yet another great milestone we have reached thanks to the amazing support from our community ❤️ Thanks!
Highlights:
- The blocks storage is getting closer to production readiness. In this release we've done several fixes and improvements. In particular, you should be aware of:
- Some CLI flags and YAML config options have been renamed
- The store-gateway service is now mandatory when running the blocks storage
- Introduced support for a live cluster migration from chunks to blocks (and rollback)
- Introduced support to flush blocks on-demand from ingesters
 
- The ruler and alertmanager got several improvements, including but not limited to:
- The ruler now runs in the single binary when Cortex gets started with -target=all
- Introduced new config options to fine-tune the ruler
- Introduced support to load locally stored rules (eg. loaded via Kubernetes config map)
- Multiple alertmanager URLs can now be specified in the ruler; each URL is treated as a separate alertmanager group
- Alertmanager configuration can be persisted to object storage via API
 
- The ruler now runs in the single binary when Cortex gets started with 
- Other changes worth to note:
- Added optional snappycompression support to internal gRPC connections
- Starting from this release we're going to publish .rpmand.debpackages too
 
- Added optional 
Please refer to the full changelog for full list of changes and improvements.
Changelog
- [CHANGE] Replace the metric cortex_alertmanager_configswithcortex_alertmanager_config_invalidexposed by Alertmanager. #2960
- [CHANGE] Experimental Delete Series: Change target flag for purger from data-purgertopurger. #2777
- [CHANGE] Experimental blocks storage: The max concurrent queries against the long-term storage, configured via -experimental.blocks-storage.bucket-store.max-concurrent, is now a limit shared across all tenants and not a per-tenant limit anymore. The default value has changed from20to100and the following new metrics have been added: #2797- cortex_bucket_stores_gate_queries_concurrent_max
- cortex_bucket_stores_gate_queries_in_flight
- cortex_bucket_stores_gate_duration_seconds
 
- [CHANGE] Metric cortex_ingester_flush_reasonshas been renamed tocortex_ingester_flushing_enqueued_series_total, and new metriccortex_ingester_flushing_dequeued_series_totalwithoutcomelabel (superset of reason) has been added. #2802 #2818 #2998
- [CHANGE] Experimental Delete Series: Metric cortex_purger_oldest_pending_delete_request_age_secondswould track age of delete requests since they are over their cancellation period instead of their creation time. #2806
- [CHANGE] Experimental blocks storage: the store-gateway service is required in a Cortex cluster running with the experimental blocks storage. Removed the -experimental.tsdb.store-gateway-enabledCLI flag andstore_gateway_enabledYAML config option. The store-gateway is now always enabled when the storage engine isblocks. #2822
- [CHANGE] Experimental blocks storage: removed support for -experimental.blocks-storage.bucket-store.max-sample-countflag because the implementation was flawed. To limit the number of samples/chunks processed by a single query you can set-store.query-chunk-limit, which is now supported by the blocks storage too. #2852
- [CHANGE] Ingester: Chunks flushed via /flush stay in memory until retention period is reached. This affects cortex_ingester_memory_chunksmetric. #2778
- [CHANGE] Querier: the error message returned when the query time range exceeds -store.max-query-lengthhas changed frominvalid query, length > limit (X > Y)tothe query time range exceeds the limit (query length: X, limit: Y). #2826
- [CHANGE] Add componentlabel to metrics exposed by chunk, delete and index store clients. #2774
- [CHANGE] Querier: when -querier.query-ingesters-withinis configured, the time range of the query sent to ingesters is now manipulated to ensure the query start time is not older than 'now - query-ingesters-within'. #2904
- [CHANGE] KV: The rolelabel which was a label ofmultiKV store client only has been added to metrics of every KV store client. If KV store client is notmulti, then the value ofrolelabel isprimary. #2837
- [CHANGE] Added the enginelabel to the metrics exposed by the Prometheus query engine, to distinguish betweenrulerandqueriermetrics. #2854
- [CHANGE] Added ruler to the single binary when started with -target=all(default). #2854
- [CHANGE] Experimental blocks storage: compact head when opening TSDB. This should only affect ingester startup after it was unable to compact head in previous run. #2870
- [CHANGE] Metric cortex_overrides_last_reload_successfulhas been renamed tocortex_runtime_config_last_reload_successful. #2874
- [CHANGE] HipChat support has been removed from the alertmanager (because removed from the Prometheus upstream too). #2902
- [CHANGE] Add constant label nameto metriccortex_cache_request_duration_seconds. #2903
- [CHANGE] Add userlabel to metriccortex_query_frontend_queue_length. #2939
- [CHANGE] Experimental blocks storage: cleaned up the config and renamed "TSDB" to "blocks storage". #2937
- The storage engine setting value has been changed from tsdbtoblocks; this affects-store.engineCLI flag and its respective YAML option.
- The root level YAML config has changed from tsdbtoblocks_storage
- The prefix of all CLI flags has changed from -experimental.tsdb.to-experimental.blocks-storage.
- The following settings have been grouped under tsdbproperty in the YAML config and their CLI flags changed:- -experimental.tsdb.dirchanged to- -experimental.blocks-storage.tsdb.dir
- -experimental.tsdb.block-ranges-periodchanged to- -experimental.blocks-storage.tsdb.block-ranges-period
- -experimental.tsdb.retention-periodchanged to- -experimental.blocks-storage.tsdb.retention-period
- -experimental.tsdb.ship-intervalchanged to- -experimental.blocks-storage.tsdb.ship-interval
- -experimental.tsdb.ship-concurrencychanged to- -experimental.blocks-storage.tsdb.ship-concurrency
- -experimental.tsdb.max-tsdb-opening-concurrency-on-startupchanged to- -experimental.blocks-storage.tsdb.max-tsdb-opening-concurrency-on-startup
- -experimental.tsdb.head-compaction-intervalchanged to- -experimental.blocks-storage.tsdb.head-compaction-interval
- -experimental.tsdb.head-compaction-concurrencychanged to- -experimental.blocks-storage.tsdb.head-compaction-concurrency
- -experimental.tsdb.head-compaction-idle-timeoutchanged to- -experimental.blocks-storage.tsdb.head-compaction-idle-timeout
- -experimental.tsdb.stripe-sizechanged to- -experimental.blocks-storage.tsdb.stripe-size
- -experimental.tsdb.wal-compression-enabledchanged to- -experimental.blocks-storage.tsdb.wal-compression-enabled
- -experimental.tsdb.flush-blocks-on-shutdownchanged to- -experimental.blocks-storage.tsdb.flush-blocks-on-shutdown
 
 
- The storage engine setting value has been changed from 
- [CHANGE] Flags -bigtable.grpc-use-gzip-compression,-ingester.client.grpc-use-gzip-compression,-querier.frontend-client.grpc-use-gzip-compressionare now deprecated. #2940
- [CHANGE] Limit errors reported by ingester during query-time now return HTTP status code 422. #2941
- [FEATURE] Introduced ruler.for-outage-tolerance, Max time to tolerate outage for restoring "for" state of alert. #2783
- [FEATURE] Introduced ruler.for-grace-period, Minimum duration between alert and restored "for" state. This is maintained only for alerts with configured "for" time greater than grace period. #2783
- [FEATURE] Introduced ruler.resend-delay, Minimum amount of time to wait before resending an alert to Alertmanager. #2783
- [FEATURE] Ruler: added localfilesystem support to store rules (read-only). #2854
- [ENHANCEMENT] Upgraded Docker base images to alpine:3.12. #2862
- [ENHANCEMENT] Experimental: Querier can now optionally query secondary store. This is specified by using -querier.second-store-engineoption, with valueschunksorblocks. Standard configuration options for this store are used. Additionally, this querying can be configured to happen only for queries that need data older than-querier.use-second-store-before-time. Default value of zero will always query secondary store. #2747
- [ENHANCEMENT] Query-tee: increased the cortex_querytee_request_duration_secondsmetric buckets granularity. #2799
- [ENHANCEMENT] Query-tee: fail to start if the configured -backend.preferredis unknown. #2799
- [ENHANCEMENT] Ruler: Added the following metrics: #2786
- cortex_prometheus_notifications_latency_seconds
- cortex_prometheus_notifications_errors_total
- cortex_prometheus_notifications_sent_total
- cortex_prometheus_notifications_dropped_total
- cortex_prometheus_notifications_queue_length
- cortex_prometheus_notifications_queue_capacity
- cortex_prometheus_notifications_alertmanagers_discovered
 
- [ENHANCEMENT] The behavior of the /readywas changed for the query frontend to indicate when it was ready to accept queries. This is intended for use by a read path load balancer that would want to wait for the frontend to have attached queriers before including it in the backend. #2733
- [ENHANCEMENT] Experimental Delete Series: Add support for deletion of chunks for remaining stores. #2801
- [ENHANCEMENT] Add -modulescommand line flag to list possible values for-target. Also, log warning if given target is internal component. #2752
- [ENHANCEMENT] Added -ingester.flush-on-shutdown-with-wal-enabledoption to enable chunks flushing even when WAL is enabled. #2780
- [ENHANCEMENT] Query-tee: Support for custom API prefix by using -server.path-prefixoption. #2814
- [ENHANCEMENT] Query-tee: Forwar...
Cortex 1.3.0-rc.2
This is the third release candidate for Cortex 1.3.0, including a bug fix:
- [BUGFIX] Querier: query /series from ingesters regardless the -querier.query-ingesters-withinsetting. #3035
Cortex 1.3.0-rc.1
This is the second release candidate for Cortex 1.3.0, including a bug fix and an improvement:
Cortex 1.3.0-rc.0
This Cortex release features 125 contributions from 37 different authors. It's yet another great milestone we have reached thanks to the amazing support from our community ❤️ Thanks!
Highlights:
- The blocks storage is getting closer to production readiness. In this release we've done several fixes and improvements. In particular, you should be aware of:
- Some CLI flags and YAML config options have been renamed
- The store-gateway service is now mandatory when running the blocks storage
- Introduced support for a live cluster migration from chunks to blocks (and rollback)
- Introduced support to flush blocks on-demand from ingesters
 
- The ruler and alertmanager got several improvements, including but not limited to:
- The ruler now runs in the single binary when Cortex gets started with -target=all
- Introduced new config options to fine-tune the ruler
- Introduced support to load locally stored rules (eg. loaded via Kubernetes config map)
- Multiple alertmanager URLs can now be specified in the ruler; each URL is treated as a separate alertmanager group
- Alertmanager configuration can be persisted to object storage via API
 
- The ruler now runs in the single binary when Cortex gets started with 
- Other changes worth to note:
- Added optional snappycompression support to internal gRPC connections
- Starting from this release we're going to publish .rpmand.debpackages too
 
- Added optional 
Please refer to the full changelog for full list of changes and improvements.
Changelog
- [CHANGE] Replace the metric cortex_alertmanager_configswithcortex_alertmanager_config_invalidexposed by Alertmanager. #2960
- [CHANGE] Experimental Delete Series: Change target flag for purger from data-purgertopurger. #2777
- [CHANGE] Experimental blocks storage: The max concurrent queries against the long-term storage, configured via -experimental.blocks-storage.bucket-store.max-concurrent, is now a limit shared across all tenants and not a per-tenant limit anymore. The default value has changed from20to100and the following new metrics have been added: #2797- cortex_bucket_stores_gate_queries_concurrent_max
- cortex_bucket_stores_gate_queries_in_flight
- cortex_bucket_stores_gate_duration_seconds
 
- [CHANGE] Metric cortex_ingester_flush_reasonshas been renamed tocortex_ingester_flushing_enqueued_series_total, and new metriccortex_ingester_flushing_dequeued_series_totalwithoutcomelabel (superset of reason) has been added. #2802, #2818
- [CHANGE] Experimental Delete Series: Metric cortex_purger_oldest_pending_delete_request_age_secondswould track age of delete requests since they are over their cancellation period instead of their creation time. #2806
- [CHANGE] Experimental blocks storage: the store-gateway service is required in a Cortex cluster running with the experimental blocks storage. Removed the -experimental.tsdb.store-gateway-enabledCLI flag andstore_gateway_enabledYAML config option. The store-gateway is now always enabled when the storage engine isblocks. #2822
- [CHANGE] Experimental blocks storage: removed support for -experimental.blocks-storage.bucket-store.max-sample-countflag because the implementation was flawed. To limit the number of samples/chunks processed by a single query you can set-store.query-chunk-limit, which is now supported by the blocks storage too. #2852
- [CHANGE] Ingester: Chunks flushed via /flush stay in memory until retention period is reached. This affects cortex_ingester_memory_chunksmetric. #2778
- [CHANGE] Querier: the error message returned when the query time range exceeds -store.max-query-lengthhas changed frominvalid query, length > limit (X > Y)tothe query time range exceeds the limit (query length: X, limit: Y). #2826
- [CHANGE] Add componentlabel to metrics exposed by chunk, delete and index store clients. #2774
- [CHANGE] Querier: when -querier.query-ingesters-withinis configured, the time range of the query sent to ingesters is now manipulated to ensure the query start time is not older than 'now - query-ingesters-within'. #2904
- [CHANGE] KV: The rolelabel which was a label ofmultiKV store client only has been added to metrics of every KV store client. If KV store client is notmulti, then the value ofrolelabel isprimary. #2837
- [CHANGE] Added the enginelabel to the metrics exposed by the Prometheus query engine, to distinguish betweenrulerandqueriermetrics. #2854
- [CHANGE] Added ruler to the single binary when started with -target=all(default). #2854
- [CHANGE] Experimental blocks storage: compact head when opening TSDB. This should only affect ingester startup after it was unable to compact head in previous run. #2870
- [CHANGE] Metric cortex_overrides_last_reload_successfulhas been renamed tocortex_runtime_config_last_reload_successful. #2874
- [CHANGE] HipChat support has been removed from the alertmanager (because removed from the Prometheus upstream too). #2902
- [CHANGE] Add constant label nameto metriccortex_cache_request_duration_seconds. #2903
- [CHANGE] Add userlabel to metriccortex_query_frontend_queue_length. #2939
- [CHANGE] Experimental blocks storage: cleaned up the config and renamed "TSDB" to "blocks storage". #2937
- The storage engine setting value has been changed from tsdbtoblocks; this affects-store.engineCLI flag and its respective YAML option.
- The root level YAML config has changed from tsdbtoblocks_storage
- The prefix of all CLI flags has changed from -experimental.tsdb.to-experimental.blocks-storage.
- The following settings have been grouped under tsdbproperty in the YAML config and their CLI flags changed:- -experimental.tsdb.dirchanged to- -experimental.blocks-storage.tsdb.dir
- -experimental.tsdb.block-ranges-periodchanged to- -experimental.blocks-storage.tsdb.block-ranges-period
- -experimental.tsdb.retention-periodchanged to- -experimental.blocks-storage.tsdb.retention-period
- -experimental.tsdb.ship-intervalchanged to- -experimental.blocks-storage.tsdb.ship-interval
- -experimental.tsdb.ship-concurrencychanged to- -experimental.blocks-storage.tsdb.ship-concurrency
- -experimental.tsdb.max-tsdb-opening-concurrency-on-startupchanged to- -experimental.blocks-storage.tsdb.max-tsdb-opening-concurrency-on-startup
- -experimental.tsdb.head-compaction-intervalchanged to- -experimental.blocks-storage.tsdb.head-compaction-interval
- -experimental.tsdb.head-compaction-concurrencychanged to- -experimental.blocks-storage.tsdb.head-compaction-concurrency
- -experimental.tsdb.head-compaction-idle-timeoutchanged to- -experimental.blocks-storage.tsdb.head-compaction-idle-timeout
- -experimental.tsdb.stripe-sizechanged to- -experimental.blocks-storage.tsdb.stripe-size
- -experimental.tsdb.wal-compression-enabledchanged to- -experimental.blocks-storage.tsdb.wal-compression-enabled
- -experimental.tsdb.flush-blocks-on-shutdownchanged to- -experimental.blocks-storage.tsdb.flush-blocks-on-shutdown
 
 
- The storage engine setting value has been changed from 
- [CHANGE] Flags -bigtable.grpc-use-gzip-compression,-ingester.client.grpc-use-gzip-compression,-querier.frontend-client.grpc-use-gzip-compressionare now deprecated. #2940
- [CHANGE] Limit errors reported by ingester during query-time now return HTTP status code 422. #2941
- [FEATURE] Introduced ruler.for-outage-tolerance, Max time to tolerate outage for restoring "for" state of alert. #2783
- [FEATURE] Introduced ruler.for-grace-period, Minimum duration between alert and restored "for" state. This is maintained only for alerts with configured "for" time greater than grace period. #2783
- [FEATURE] Introduced ruler.resend-delay, Minimum amount of time to wait before resending an alert to Alertmanager. #2783
- [FEATURE] Ruler: added localfilesystem support to store rules (read-only). #2854
- [ENHANCEMENT] Upgraded Docker base images to alpine:3.12. #2862
- [ENHANCEMENT] Experimental: Querier can now optionally query secondary store. This is specified by using -querier.second-store-engineoption, with valueschunksorblocks. Standard configuration options for this store are used. Additionally, this querying can be configured to happen only for queries that need data older than-querier.use-second-store-before-time. Default value of zero will always query secondary store. #2747
- [ENHANCEMENT] Query-tee: increased the cortex_querytee_request_duration_secondsmetric buckets granularity. #2799
- [ENHANCEMENT] Query-tee: fail to start if the configured -backend.preferredis unknown. #2799
- [ENHANCEMENT] Ruler: Added the following metrics: #2786
- cortex_prometheus_notifications_latency_seconds
- cortex_prometheus_notifications_errors_total
- cortex_prometheus_notifications_sent_total
- cortex_prometheus_notifications_dropped_total
- cortex_prometheus_notifications_queue_length
- cortex_prometheus_notifications_queue_capacity
- cortex_prometheus_notifications_alertmanagers_discovered
 
- [ENHANCEMENT] The behavior of the /readywas changed for the query frontend to indicate when it was ready to accept queries. This is intended for use by a read path load balancer that would want to wait for the frontend to have attached queriers before including it in the backend. #2733
- [ENHANCEMENT] Experimental Delete Series: Add support for deletion of chunks for remaining stores. #2801
- [ENHANCEMENT] Add -modulescommand line flag to list possible values for-target. Also, log warning if given target is internal component. #2752
- [ENHANCEMENT] Added -ingester.flush-on-shutdown-with-wal-enabledoption to enable chunks flushing even when WAL is enabled. #2780
- [ENHANCEMENT] Query-tee: Support for custom API prefix by using -server.path-prefixoption. #2814
- [ENHANCEMENT] Query-tee: Forward `X-...
Cortex 1.2.0
This release has a number of bug-fixes and enhancements, particularly:
- Memberlist KV client is no longer considered experimental. #2725
- 3rd-party index and chunk stores using gRPC client/server plugin mechanism (experimental) #2220
- Using an invalid flag no longer causes printing of all available flags. #2691 (my favourite change!)
Many thanks to all contributors.
Detailed list of changes:
- [CHANGE] Metric cortex_kv_request_duration_secondsnow includesnamelabel to denote which client is being used as well as thebackendlabel to denote the KV backend implementation in use. #2648
- [CHANGE] Experimental Ruler: Rule groups persisted to object storage using the experimental API have an updated object key encoding to better handle special characters. Rule groups previously-stored using object storage must be renamed to the new format. #2646
- [CHANGE] Query Frontend now uses Round Robin to choose a tenant queue to service next. #2553
- [CHANGE] -promql.lookback-deltais now deprecated and has been replaced by-querier.lookback-deltaalong withlookback_deltaentry underquerierin the config file.-promql.lookback-deltawill be removed in v1.4.0. #2604
- [CHANGE] Experimental TSDB: removed -experimental.tsdb.bucket-store.binary-index-header-enabledflag. Now the binary index-header is always enabled.
- [CHANGE] Experimental TSDB: Renamed index-cache metrics to use original metric names from Thanos, as Cortex is not aggregating them in any way: #2627
- cortex_<service>_blocks_index_cache_items_evicted_total=>- thanos_store_index_cache_items_evicted_total{name="index-cache"}
- cortex_<service>_blocks_index_cache_items_added_total=>- thanos_store_index_cache_items_added_total{name="index-cache"}
- cortex_<service>_blocks_index_cache_requests_total=>- thanos_store_index_cache_requests_total{name="index-cache"}
- cortex_<service>_blocks_index_cache_items_overflowed_total=>- thanos_store_index_cache_items_overflowed_total{name="index-cache"}
- cortex_<service>_blocks_index_cache_hits_total=>- thanos_store_index_cache_hits_total{name="index-cache"}
- cortex_<service>_blocks_index_cache_items=>- thanos_store_index_cache_items{name="index-cache"}
- cortex_<service>_blocks_index_cache_items_size_bytes=>- thanos_store_index_cache_items_size_bytes{name="index-cache"}
- cortex_<service>_blocks_index_cache_total_size_bytes=>- thanos_store_index_cache_total_size_bytes{name="index-cache"}
- cortex_<service>_blocks_index_cache_memcached_operations_total=>- thanos_memcached_operations_total{name="index-cache"}
- cortex_<service>_blocks_index_cache_memcached_operation_failures_total=>- thanos_memcached_operation_failures_total{name="index-cache"}
- cortex_<service>_blocks_index_cache_memcached_operation_duration_seconds=>- thanos_memcached_operation_duration_seconds{name="index-cache"}
- cortex_<service>_blocks_index_cache_memcached_operation_skipped_total=>- thanos_memcached_operation_skipped_total{name="index-cache"}
 
- [CHANGE] Experimental TSDB: Renamed metrics in bucket stores: #2627
- cortex_<service>_blocks_meta_syncs_total=>- cortex_blocks_meta_syncs_total{component="<service>"}
- cortex_<service>_blocks_meta_sync_failures_total=>- cortex_blocks_meta_sync_failures_total{component="<service>"}
- cortex_<service>_blocks_meta_sync_duration_seconds=>- cortex_blocks_meta_sync_duration_seconds{component="<service>"}
- cortex_<service>_blocks_meta_sync_consistency_delay_seconds=>- cortex_blocks_meta_sync_consistency_delay_seconds{component="<service>"}
- cortex_<service>_blocks_meta_synced=>- cortex_blocks_meta_synced{component="<service>"}
- cortex_<service>_bucket_store_block_loads_total=>- cortex_bucket_store_block_loads_total{component="<service>"}
- cortex_<service>_bucket_store_block_load_failures_total=>- cortex_bucket_store_block_load_failures_total{component="<service>"}
- cortex_<service>_bucket_store_block_drops_total=>- cortex_bucket_store_block_drops_total{component="<service>"}
- cortex_<service>_bucket_store_block_drop_failures_total=>- cortex_bucket_store_block_drop_failures_total{component="<service>"}
- cortex_<service>_bucket_store_blocks_loaded=>- cortex_bucket_store_blocks_loaded{component="<service>"}
- cortex_<service>_bucket_store_series_data_touched=>- cortex_bucket_store_series_data_touched{component="<service>"}
- cortex_<service>_bucket_store_series_data_fetched=>- cortex_bucket_store_series_data_fetched{component="<service>"}
- cortex_<service>_bucket_store_series_data_size_touched_bytes=>- cortex_bucket_store_series_data_size_touched_bytes{component="<service>"}
- cortex_<service>_bucket_store_series_data_size_fetched_bytes=>- cortex_bucket_store_series_data_size_fetched_bytes{component="<service>"}
- cortex_<service>_bucket_store_series_blocks_queried=>- cortex_bucket_store_series_blocks_queried{component="<service>"}
- cortex_<service>_bucket_store_series_get_all_duration_seconds=>- cortex_bucket_store_series_get_all_duration_seconds{component="<service>"}
- cortex_<service>_bucket_store_series_merge_duration_seconds=>- cortex_bucket_store_series_merge_duration_seconds{component="<service>"}
- cortex_<service>_bucket_store_series_refetches_total=>- cortex_bucket_store_series_refetches_total{component="<service>"}
- cortex_<service>_bucket_store_series_result_series=>- cortex_bucket_store_series_result_series{component="<service>"}
- cortex_<service>_bucket_store_cached_postings_compressions_total=>- cortex_bucket_store_cached_postings_compressions_total{component="<service>"}
- cortex_<service>_bucket_store_cached_postings_compression_errors_total=>- cortex_bucket_store_cached_postings_compression_errors_total{component="<service>"}
- cortex_<service>_bucket_store_cached_postings_compression_time_seconds=>- cortex_bucket_store_cached_postings_compression_time_seconds{component="<service>"}
- cortex_<service>_bucket_store_cached_postings_original_size_bytes_total=>- cortex_bucket_store_cached_postings_original_size_bytes_total{component="<service>"}
- cortex_<service>_bucket_store_cached_postings_compressed_size_bytes_total=>- cortex_bucket_store_cached_postings_compressed_size_bytes_total{component="<service>"}
- cortex_<service>_blocks_sync_seconds=>- cortex_bucket_stores_blocks_sync_seconds{component="<service>"}
- cortex_<service>_blocks_last_successful_sync_timestamp_seconds=>- cortex_bucket_stores_blocks_last_successful_sync_timestamp_seconds{component="<service>"}
 
- [CHANGE] Available command-line flags are printed to stdout, and only when requested via -help. Using invalid flag no longer causes printing of all available flags. #2691
- [CHANGE] Experimental Memberlist ring: randomize gossip node names to avoid conflicts when running multiple clients on the same host, or reusing host names (eg. pods in statefulset). Node name randomization can be disabled by using -memberlist.randomize-node-name=false. #2715
- [CHANGE] Memberlist KV client is no longer considered experimental. #2725
- [CHANGE] Experimental Delete Series: Make delete request cancellation duration configurable. #2760
- [CHANGE] Removed -store.fullsize-chunksoption which was undocumented and unused (it broke ingester hand-overs). #2656
- [CHANGE] Query with no metric name that has previously resulted in HTTP status code 500 now returns status code 422 instead. #2571
- [FEATURE] TLS config options added for GRPC clients in Querier (Query-frontend client & Ingester client), Ruler, Store Gateway, as well as HTTP client in Config store client. #2502
- [FEATURE] The flag -frontend.max-cache-freshnessis now supported within the limits overrides, to specify per-tenant max cache freshness values. The corresponding YAML config parameter has been changed fromresults_cache.max_freshnesstolimits_config.max_cache_freshness. The legacy YAML config parameter (results_cache.max_freshness) will continue to be supported till Cortex releasev1.4.0. #2609
- [FEATURE] Experimental gRPC Store: Added support to 3rd parties index and chunk stores using gRPC client/server plugin mechanism. #2220
- [FEATURE] Add -cassandra.table-optionsflag to customize table options of Cassandra when creating the index or chunk table. #2575
- [ENHANCEMENT] Propagate GOPROXY value when building build-image. This is to help the builders building the code in a Network where default Go proxy is not accessible (e.g. when behind some corporate VPN). #2741
- [ENHANCEMENT] Querier: Added metric cortex_querier_request_duration_secondsfor all requests to the querier. #2708
- [ENHANCEMENT] Cortex is now built with Go 1.14. #2480 #2749 #2753
- [ENHANCEMENT] Experimental TSDB: added the following metrics to the ingester: #2580 #2583 #2589 #2654
- cortex_ingester_tsdb_appender_add_duration_seconds
- cortex_ingester_tsdb_appender_commit_duration_seconds
- cortex_ingester_tsdb_refcache_purge_duration_seconds
- cortex_ingester_tsdb_compactions_total
- cortex_ingester_tsdb_compaction_duration_seconds
- cortex_ingester_tsdb_wal_fsync_duration_seconds
- cortex_ingester_tsdb_wal_page_flushes_total
- cortex_ingester_tsdb_wal_completed_pages_total
- cortex_ingester_tsdb_wal_truncations_failed_total
- cortex_ingester_tsdb_wal_truncations_total
- cortex_ingester_tsdb_wal_writes_failed_total
- cortex_ingester_tsdb_checkpoint_deletions_failed_total
- cortex_ingester_tsdb_checkpoint_deletions_total
- cortex_ingester_tsdb_checkpoint_creations_failed_total
- cortex_ingester_tsdb_checkpoint_creations_total
- cortex_ingester_tsdb_wal_truncate_duration_seconds
- cortex_ingester_tsdb_head_active_appenders
- cortex_ingester_tsdb_head_series_not_found_total
- `co...
 
Cortex 1.2.0-rc.1
RC1 has one bugfix over RC0: #2796
This release has a number of bug-fixes and enhancements, particularly:
- Memberlist KV client is no longer considered experimental. #2725
- 3rd-party index and chunk stores using gRPC client/server plugin mechanism (experimental) #2220
- Using an invalid flag no longer causes printing of all available flags. #2691 (my favourite change!)
Many thanks to all contributors.
Detailed list of changes:
- [CHANGE] Metric cortex_kv_request_duration_secondsnow includesnamelabel to denote which client is being used as well as thebackendlabel to denote the KV backend implementation in use. #2648
- [CHANGE] Experimental Ruler: Rule groups persisted to object storage using the experimental API have an updated object key encoding to better handle special characters. Rule groups previously-stored using object storage must be renamed to the new format. #2646
- [CHANGE] Query Frontend now uses Round Robin to choose a tenant queue to service next. #2553
- [CHANGE] -promql.lookback-deltais now deprecated and has been replaced by-querier.lookback-deltaalong withlookback_deltaentry underquerierin the config file.-promql.lookback-deltawill be removed in v1.4.0. #2604
- [CHANGE] Experimental TSDB: removed -experimental.tsdb.bucket-store.binary-index-header-enabledflag. Now the binary index-header is always enabled.
- [CHANGE] Experimental TSDB: Renamed index-cache metrics to use original metric names from Thanos, as Cortex is not aggregating them in any way: #2627
- cortex_<service>_blocks_index_cache_items_evicted_total=>- thanos_store_index_cache_items_evicted_total{name="index-cache"}
- cortex_<service>_blocks_index_cache_items_added_total=>- thanos_store_index_cache_items_added_total{name="index-cache"}
- cortex_<service>_blocks_index_cache_requests_total=>- thanos_store_index_cache_requests_total{name="index-cache"}
- cortex_<service>_blocks_index_cache_items_overflowed_total=>- thanos_store_index_cache_items_overflowed_total{name="index-cache"}
- cortex_<service>_blocks_index_cache_hits_total=>- thanos_store_index_cache_hits_total{name="index-cache"}
- cortex_<service>_blocks_index_cache_items=>- thanos_store_index_cache_items{name="index-cache"}
- cortex_<service>_blocks_index_cache_items_size_bytes=>- thanos_store_index_cache_items_size_bytes{name="index-cache"}
- cortex_<service>_blocks_index_cache_total_size_bytes=>- thanos_store_index_cache_total_size_bytes{name="index-cache"}
- cortex_<service>_blocks_index_cache_memcached_operations_total=>- thanos_memcached_operations_total{name="index-cache"}
- cortex_<service>_blocks_index_cache_memcached_operation_failures_total=>- thanos_memcached_operation_failures_total{name="index-cache"}
- cortex_<service>_blocks_index_cache_memcached_operation_duration_seconds=>- thanos_memcached_operation_duration_seconds{name="index-cache"}
- cortex_<service>_blocks_index_cache_memcached_operation_skipped_total=>- thanos_memcached_operation_skipped_total{name="index-cache"}
 
- [CHANGE] Experimental TSDB: Renamed metrics in bucket stores: #2627
- cortex_<service>_blocks_meta_syncs_total=>- cortex_blocks_meta_syncs_total{component="<service>"}
- cortex_<service>_blocks_meta_sync_failures_total=>- cortex_blocks_meta_sync_failures_total{component="<service>"}
- cortex_<service>_blocks_meta_sync_duration_seconds=>- cortex_blocks_meta_sync_duration_seconds{component="<service>"}
- cortex_<service>_blocks_meta_sync_consistency_delay_seconds=>- cortex_blocks_meta_sync_consistency_delay_seconds{component="<service>"}
- cortex_<service>_blocks_meta_synced=>- cortex_blocks_meta_synced{component="<service>"}
- cortex_<service>_bucket_store_block_loads_total=>- cortex_bucket_store_block_loads_total{component="<service>"}
- cortex_<service>_bucket_store_block_load_failures_total=>- cortex_bucket_store_block_load_failures_total{component="<service>"}
- cortex_<service>_bucket_store_block_drops_total=>- cortex_bucket_store_block_drops_total{component="<service>"}
- cortex_<service>_bucket_store_block_drop_failures_total=>- cortex_bucket_store_block_drop_failures_total{component="<service>"}
- cortex_<service>_bucket_store_blocks_loaded=>- cortex_bucket_store_blocks_loaded{component="<service>"}
- cortex_<service>_bucket_store_series_data_touched=>- cortex_bucket_store_series_data_touched{component="<service>"}
- cortex_<service>_bucket_store_series_data_fetched=>- cortex_bucket_store_series_data_fetched{component="<service>"}
- cortex_<service>_bucket_store_series_data_size_touched_bytes=>- cortex_bucket_store_series_data_size_touched_bytes{component="<service>"}
- cortex_<service>_bucket_store_series_data_size_fetched_bytes=>- cortex_bucket_store_series_data_size_fetched_bytes{component="<service>"}
- cortex_<service>_bucket_store_series_blocks_queried=>- cortex_bucket_store_series_blocks_queried{component="<service>"}
- cortex_<service>_bucket_store_series_get_all_duration_seconds=>- cortex_bucket_store_series_get_all_duration_seconds{component="<service>"}
- cortex_<service>_bucket_store_series_merge_duration_seconds=>- cortex_bucket_store_series_merge_duration_seconds{component="<service>"}
- cortex_<service>_bucket_store_series_refetches_total=>- cortex_bucket_store_series_refetches_total{component="<service>"}
- cortex_<service>_bucket_store_series_result_series=>- cortex_bucket_store_series_result_series{component="<service>"}
- cortex_<service>_bucket_store_cached_postings_compressions_total=>- cortex_bucket_store_cached_postings_compressions_total{component="<service>"}
- cortex_<service>_bucket_store_cached_postings_compression_errors_total=>- cortex_bucket_store_cached_postings_compression_errors_total{component="<service>"}
- cortex_<service>_bucket_store_cached_postings_compression_time_seconds=>- cortex_bucket_store_cached_postings_compression_time_seconds{component="<service>"}
- cortex_<service>_bucket_store_cached_postings_original_size_bytes_total=>- cortex_bucket_store_cached_postings_original_size_bytes_total{component="<service>"}
- cortex_<service>_bucket_store_cached_postings_compressed_size_bytes_total=>- cortex_bucket_store_cached_postings_compressed_size_bytes_total{component="<service>"}
- cortex_<service>_blocks_sync_seconds=>- cortex_bucket_stores_blocks_sync_seconds{component="<service>"}
- cortex_<service>_blocks_last_successful_sync_timestamp_seconds=>- cortex_bucket_stores_blocks_last_successful_sync_timestamp_seconds{component="<service>"}
 
- [CHANGE] Available command-line flags are printed to stdout, and only when requested via -help. Using invalid flag no longer causes printing of all available flags. #2691
- [CHANGE] Experimental Memberlist ring: randomize gossip node names to avoid conflicts when running multiple clients on the same host, or reusing host names (eg. pods in statefulset). Node name randomization can be disabled by using -memberlist.randomize-node-name=false. #2715
- [CHANGE] Memberlist KV client is no longer considered experimental. #2725
- [CHANGE] Experimental Delete Series: Make delete request cancellation duration configurable. #2760
- [CHANGE] Removed -store.fullsize-chunksoption which was undocumented and unused (it broke ingester hand-overs). #2656
- [CHANGE] Query with no metric name that has previously resulted in HTTP status code 500 now returns status code 422 instead. #2571
- [FEATURE] TLS config options added for GRPC clients in Querier (Query-frontend client & Ingester client), Ruler, Store Gateway, as well as HTTP client in Config store client. #2502
- [FEATURE] The flag -frontend.max-cache-freshnessis now supported within the limits overrides, to specify per-tenant max cache freshness values. The corresponding YAML config parameter has been changed fromresults_cache.max_freshnesstolimits_config.max_cache_freshness. The legacy YAML config parameter (results_cache.max_freshness) will continue to be supported till Cortex releasev1.4.0. #2609
- [FEATURE] Experimental gRPC Store: Added support to 3rd parties index and chunk stores using gRPC client/server plugin mechanism. #2220
- [FEATURE] Add -cassandra.table-optionsflag to customize table options of Cassandra when creating the index or chunk table. #2575
- [ENHANCEMENT] Propagate GOPROXY value when building build-image. This is to help the builders building the code in a Network where default Go proxy is not accessible (e.g. when behind some corporate VPN). #2741
- [ENHANCEMENT] Querier: Added metric cortex_querier_request_duration_secondsfor all requests to the querier. #2708
- [ENHANCEMENT] Cortex is now built with Go 1.14. #2480 #2749 #2753
- [ENHANCEMENT] Experimental TSDB: added the following metrics to the ingester: #2580 #2583 #2589 #2654
- cortex_ingester_tsdb_appender_add_duration_seconds
- cortex_ingester_tsdb_appender_commit_duration_seconds
- cortex_ingester_tsdb_refcache_purge_duration_seconds
- cortex_ingester_tsdb_compactions_total
- cortex_ingester_tsdb_compaction_duration_seconds
- cortex_ingester_tsdb_wal_fsync_duration_seconds
- cortex_ingester_tsdb_wal_page_flushes_total
- cortex_ingester_tsdb_wal_completed_pages_total
- cortex_ingester_tsdb_wal_truncations_failed_total
- cortex_ingester_tsdb_wal_truncations_total
- cortex_ingester_tsdb_wal_writes_failed_total
- cortex_ingester_tsdb_checkpoint_deletions_failed_total
- cortex_ingester_tsdb_checkpoint_deletions_total
- cortex_ingester_tsdb_checkpoint_creations_failed_total
- cortex_ingester_tsdb_checkpoint_creations_total
- cortex_ingester_tsdb_wal_truncate_duration_seconds
- cortex_ingester_tsdb_head_active_appenders
- `cortex_ingester_tsd...
 
Cortex 1.2.0-rc.0
This release has a number of bug-fixes and enhancements, particularly:
- Memberlist KV client is no longer considered experimental. #2725
- 3rd-party index and chunk stores using gRPC client/server plugin mechanism (experimental) #2220
- Using an invalid flag no longer causes printing of all available flags. #2691 (my favourite change!)
Many thanks to all contributors.
Detailed list of changes:
- [CHANGE] Metric cortex_kv_request_duration_secondsnow includesnamelabel to denote which client is being used as well as thebackendlabel to denote the KV backend implementation in use. #2648
- [CHANGE] Experimental Ruler: Rule groups persisted to object storage using the experimental API have an updated object key encoding to better handle special characters. Rule groups previously-stored using object storage must be renamed to the new format. #2646
- [CHANGE] Query Frontend now uses Round Robin to choose a tenant queue to service next. #2553
- [CHANGE] -promql.lookback-deltais now deprecated and has been replaced by-querier.lookback-deltaalong withlookback_deltaentry underquerierin the config file.-promql.lookback-deltawill be removed in v1.4.0. #2604
- [CHANGE] Experimental TSDB: removed -experimental.tsdb.bucket-store.binary-index-header-enabledflag. Now the binary index-header is always enabled.
- [CHANGE] Experimental TSDB: Renamed index-cache metrics to use original metric names from Thanos, as Cortex is not aggregating them in any way: #2627
- cortex_<service>_blocks_index_cache_items_evicted_total=>- thanos_store_index_cache_items_evicted_total{name="index-cache"}
- cortex_<service>_blocks_index_cache_items_added_total=>- thanos_store_index_cache_items_added_total{name="index-cache"}
- cortex_<service>_blocks_index_cache_requests_total=>- thanos_store_index_cache_requests_total{name="index-cache"}
- cortex_<service>_blocks_index_cache_items_overflowed_total=>- thanos_store_index_cache_items_overflowed_total{name="index-cache"}
- cortex_<service>_blocks_index_cache_hits_total=>- thanos_store_index_cache_hits_total{name="index-cache"}
- cortex_<service>_blocks_index_cache_items=>- thanos_store_index_cache_items{name="index-cache"}
- cortex_<service>_blocks_index_cache_items_size_bytes=>- thanos_store_index_cache_items_size_bytes{name="index-cache"}
- cortex_<service>_blocks_index_cache_total_size_bytes=>- thanos_store_index_cache_total_size_bytes{name="index-cache"}
- cortex_<service>_blocks_index_cache_memcached_operations_total=>- thanos_memcached_operations_total{name="index-cache"}
- cortex_<service>_blocks_index_cache_memcached_operation_failures_total=>- thanos_memcached_operation_failures_total{name="index-cache"}
- cortex_<service>_blocks_index_cache_memcached_operation_duration_seconds=>- thanos_memcached_operation_duration_seconds{name="index-cache"}
- cortex_<service>_blocks_index_cache_memcached_operation_skipped_total=>- thanos_memcached_operation_skipped_total{name="index-cache"}
 
- [CHANGE] Experimental TSDB: Renamed metrics in bucket stores: #2627
- cortex_<service>_blocks_meta_syncs_total=>- cortex_blocks_meta_syncs_total{component="<service>"}
- cortex_<service>_blocks_meta_sync_failures_total=>- cortex_blocks_meta_sync_failures_total{component="<service>"}
- cortex_<service>_blocks_meta_sync_duration_seconds=>- cortex_blocks_meta_sync_duration_seconds{component="<service>"}
- cortex_<service>_blocks_meta_sync_consistency_delay_seconds=>- cortex_blocks_meta_sync_consistency_delay_seconds{component="<service>"}
- cortex_<service>_blocks_meta_synced=>- cortex_blocks_meta_synced{component="<service>"}
- cortex_<service>_bucket_store_block_loads_total=>- cortex_bucket_store_block_loads_total{component="<service>"}
- cortex_<service>_bucket_store_block_load_failures_total=>- cortex_bucket_store_block_load_failures_total{component="<service>"}
- cortex_<service>_bucket_store_block_drops_total=>- cortex_bucket_store_block_drops_total{component="<service>"}
- cortex_<service>_bucket_store_block_drop_failures_total=>- cortex_bucket_store_block_drop_failures_total{component="<service>"}
- cortex_<service>_bucket_store_blocks_loaded=>- cortex_bucket_store_blocks_loaded{component="<service>"}
- cortex_<service>_bucket_store_series_data_touched=>- cortex_bucket_store_series_data_touched{component="<service>"}
- cortex_<service>_bucket_store_series_data_fetched=>- cortex_bucket_store_series_data_fetched{component="<service>"}
- cortex_<service>_bucket_store_series_data_size_touched_bytes=>- cortex_bucket_store_series_data_size_touched_bytes{component="<service>"}
- cortex_<service>_bucket_store_series_data_size_fetched_bytes=>- cortex_bucket_store_series_data_size_fetched_bytes{component="<service>"}
- cortex_<service>_bucket_store_series_blocks_queried=>- cortex_bucket_store_series_blocks_queried{component="<service>"}
- cortex_<service>_bucket_store_series_get_all_duration_seconds=>- cortex_bucket_store_series_get_all_duration_seconds{component="<service>"}
- cortex_<service>_bucket_store_series_merge_duration_seconds=>- cortex_bucket_store_series_merge_duration_seconds{component="<service>"}
- cortex_<service>_bucket_store_series_refetches_total=>- cortex_bucket_store_series_refetches_total{component="<service>"}
- cortex_<service>_bucket_store_series_result_series=>- cortex_bucket_store_series_result_series{component="<service>"}
- cortex_<service>_bucket_store_cached_postings_compressions_total=>- cortex_bucket_store_cached_postings_compressions_total{component="<service>"}
- cortex_<service>_bucket_store_cached_postings_compression_errors_total=>- cortex_bucket_store_cached_postings_compression_errors_total{component="<service>"}
- cortex_<service>_bucket_store_cached_postings_compression_time_seconds=>- cortex_bucket_store_cached_postings_compression_time_seconds{component="<service>"}
- cortex_<service>_bucket_store_cached_postings_original_size_bytes_total=>- cortex_bucket_store_cached_postings_original_size_bytes_total{component="<service>"}
- cortex_<service>_bucket_store_cached_postings_compressed_size_bytes_total=>- cortex_bucket_store_cached_postings_compressed_size_bytes_total{component="<service>"}
- cortex_<service>_blocks_sync_seconds=>- cortex_bucket_stores_blocks_sync_seconds{component="<service>"}
- cortex_<service>_blocks_last_successful_sync_timestamp_seconds=>- cortex_bucket_stores_blocks_last_successful_sync_timestamp_seconds{component="<service>"}
 
- [CHANGE] Available command-line flags are printed to stdout, and only when requested via -help. Using invalid flag no longer causes printing of all available flags. #2691
- [CHANGE] Experimental Memberlist ring: randomize gossip node names to avoid conflicts when running multiple clients on the same host, or reusing host names (eg. pods in statefulset). Node name randomization can be disabled by using -memberlist.randomize-node-name=false. #2715
- [CHANGE] Memberlist KV client is no longer considered experimental. #2725
- [CHANGE] Change target flag for purger from data-purgertopurgerand make delete request cancellation duration configurable. #2760
- [CHANGE] Removed -store.fullsize-chunksoption which was undocumented and unused (it broke ingester hand-overs). #2656
- [CHANGE] Query with no metric name that has previously resulted in HTTP status code 500 now returns status code 422 instead. #2571
- [FEATURE] TLS config options added for GRPC clients in Querier (Query-frontend client & Ingester client), Ruler, Store Gateway, as well as HTTP client in Config store client. #2502
- [FEATURE] The flag -frontend.max-cache-freshnessis now supported within the limits overrides, to specify per-tenant max cache freshness values. The corresponding YAML config parameter has been changed fromresults_cache.max_freshnesstolimits_config.max_cache_freshness. The legacy YAML config parameter (results_cache.max_freshness) will continue to be supported till Cortex releasev1.4.0. #2609
- [FEATURE] Experimental gRPC Store: Added support to 3rd parties index and chunk stores using gRPC client/server plugin mechanism. #2220
- [ENHANCEMENT] Propagate GOPROXY value when building build-image. This is to help the builders building the code in a Network where default Go proxy is not accessible (e.g. when behind some corporate VPN). #2741
- [ENHANCEMENT] Querier: Added metric cortex_querier_request_duration_secondsfor all requests to the querier. #2708
- [ENHANCEMENT] Cortex is now built with Go 1.14. #2480 #2749 #2753
- [ENHANCEMENT] Experimental TSDB: added the following metrics to the ingester: #2580 #2583 #2589 #2654
- cortex_ingester_tsdb_appender_add_duration_seconds
- cortex_ingester_tsdb_appender_commit_duration_seconds
- cortex_ingester_tsdb_refcache_purge_duration_seconds
- cortex_ingester_tsdb_compactions_total
- cortex_ingester_tsdb_compaction_duration_seconds
- cortex_ingester_tsdb_wal_fsync_duration_seconds
- cortex_ingester_tsdb_wal_page_flushes_total
- cortex_ingester_tsdb_wal_completed_pages_total
- cortex_ingester_tsdb_wal_truncations_failed_total
- cortex_ingester_tsdb_wal_truncations_total
- cortex_ingester_tsdb_wal_writes_failed_total
- cortex_ingester_tsdb_checkpoint_deletions_failed_total
- cortex_ingester_tsdb_checkpoint_deletions_total
- cortex_ingester_tsdb_checkpoint_creations_failed_total
- cortex_ingester_tsdb_checkpoint_creations_total
- cortex_ingester_tsdb_wal_truncate_duration_seconds
- cortex_ingester_tsdb_head_active_appenders
- cortex_ingester_tsdb_head_series_not_found_total
- cortex_ingester_tsdb_head_chunks
- cortex_ingester_tsdb_mmap_chunk_corruptions_total
- `cort...
 
1.1.0 / 2020-05-21
This release brings the usual mix of bugfixes and improvements. The biggest change is that WAL support for chunks is now considered to be production-ready!
Please make sure to review renamed metrics, and update your dashboards and alerts accordingly.
- [CHANGE] Added v1 API routes documented in #2327. #2372
- Added -http.alertmanager-http-prefixflag which allows the configuration of the path where the Alertmanager API and UI can be reached. The default is set to/alertmanager.
- Added -http.prometheus-http-prefixflag which allows the configuration of the path where the Prometheus API and UI can be reached. The default is set to/prometheus.
- Updated the index hosted at the root prefix to point to the updated routes.
- Legacy routes hardcoded with the /api/promprefix now respect the-http.prefixflag.
 
- Added 
- [CHANGE] The metrics cortex_distributor_ingester_appends_totalanddistributor_ingester_append_failures_totalnow include atypelabel to differentiate betweensamplesandmetadata. #2336
- [CHANGE] The metrics for number of chunks and bytes flushed to the chunk store are renamed. Note that previous metrics were counted pre-deduplication, while new metrics are counted after deduplication. #2463
- cortex_ingester_chunks_stored_total>- cortex_chunk_store_stored_chunks_total
- cortex_ingester_chunk_stored_bytes_total>- cortex_chunk_store_stored_chunk_bytes_total
 
- [CHANGE] Experimental TSDB: renamed blocks meta fetcher metrics: #2375
- cortex_querier_bucket_store_blocks_meta_syncs_total>- cortex_querier_blocks_meta_syncs_total
- cortex_querier_bucket_store_blocks_meta_sync_failures_total>- cortex_querier_blocks_meta_sync_failures_total
- cortex_querier_bucket_store_blocks_meta_sync_duration_seconds>- cortex_querier_blocks_meta_sync_duration_seconds
- cortex_querier_bucket_store_blocks_meta_sync_consistency_delay_seconds>- cortex_querier_blocks_meta_sync_consistency_delay_seconds
 
- [CHANGE] Experimental TSDB: Modified default values for compactor.deletion-delayoption from 48h to 12h and-experimental.tsdb.bucket-store.ignore-deletion-marks-delayfrom 24h to 6h. #2414
- [CHANGE] WAL: Default value of -ingester.checkpoint-enabledchanged totrue. #2416
- [CHANGE] trace_idfield in log files has been renamed totraceID. #2518
- [CHANGE] Slow query log has a different output now. Previously used urlfield has been replaced withhostandpath, and query parameters are logged as individual log fields withqs_prefix. #2520
- [CHANGE] WAL: WAL and checkpoint compression is now disabled. #2436
- [CHANGE] Update in dependency go-kit/kitfromv0.9.0tov0.10.0. HTML escaping disabled in JSON Logger. #2535
- [CHANGE] Experimental TSDB: Removed cortex_<service>_prefix from Thanos objstore metrics and addedcomponentlabel to distinguish which Cortex component is doing API calls to the object storage when running in single-binary mode: #2568- cortex_<service>_thanos_objstore_bucket_operations_totalrenamed to- thanos_objstore_bucket_operations_total{component="<name>"}
- cortex_<service>_thanos_objstore_bucket_operation_failures_totalrenamed to- thanos_objstore_bucket_operation_failures_total{component="<name>"}
- cortex_<service>_thanos_objstore_bucket_operation_duration_secondsrenamed to- thanos_objstore_bucket_operation_duration_seconds{component="<name>"}
- cortex_<service>_thanos_objstore_bucket_last_successful_upload_timerenamed to- thanos_objstore_bucket_last_successful_upload_time{component="<name>"}
 
- [CHANGE] FIFO cache: The -<prefix>.fifocache.sizeCLI flag has been renamed to-<prefix>.fifocache.max-size-itemsas well as its YAML config optionsizerenamed tomax_size_items. #2319
- [FEATURE] Ruler: The -ruler.evaluation-delayflag was added to allow users to configure a default evaluation delay for all rules in cortex. The default value is 0 which is the current behavior. #2423
- [FEATURE] Experimental: Added a new object storage client for OpenStack Swift. #2440
- [FEATURE] TLS config options added to the Server. #2535
- [FEATURE] Experimental: Added support for /api/v1/metadataPrometheus-based endpoint. #2549
- [FEATURE] Add ability to limit concurrent queries to Cassandra with -cassandra.query-concurrencyflag. #2562
- [ENHANCEMENT] Experimental TSDB: sample ingestion errors are now reported via existing cortex_discarded_samples_totalmetric. #2370
- [ENHANCEMENT] Failures on samples at distributors and ingesters return the first validation error as opposed to the last. #2383
- [ENHANCEMENT] Experimental TSDB: Added cortex_querier_blocks_meta_synced, which reflects current state of synced blocks over all tenants. #2392
- [ENHANCEMENT] Added cortex_distributor_latest_seen_sample_timestamp_secondsmetric to see how far behind Prometheus servers are in sending data. #2371
- [ENHANCEMENT] FIFO cache to support eviction based on memory usage. Added -<prefix>.fifocache.max-size-bytesCLI flag and YAML config optionmax_size_bytesto specify memory limit of the cache. #2319, #2527
- [ENHANCEMENT] Added -querier.worker-match-max-concurrent. Force worker concurrency to match the-querier.max-concurrentoption. Overrides-querier.worker-parallelism. #2456
- [ENHANCEMENT] Added the following metrics for monitoring delete requests: #2445
- cortex_purger_delete_requests_received_total: Number of delete requests received per user.
- cortex_purger_delete_requests_processed_total: Number of delete requests processed per user.
- cortex_purger_delete_requests_chunks_selected_total: Number of chunks selected while building delete plans per user.
- cortex_purger_delete_requests_processing_failures_total: Number of delete requests processing failures per user.
 
- [ENHANCEMENT] Single Binary: Added query-frontend to the single binary. Single binary users will now benefit from various query-frontend features. Primarily: sharding, parallelization, load shedding, additional caching (if configured), and query retries. #2437
- [ENHANCEMENT] Allow 1w (where w denotes week) and 1y (where y denotes year) when setting -store.cache-lookups-older-thanand-store.max-look-back-period. #2454
- [ENHANCEMENT] Optimize index queries for matchers using "a|b|c"-type regex. #2446 #2475
- [ENHANCEMENT] Added per tenant metrics for queries and chunks and bytes read from chunk store: #2463
- cortex_chunk_store_fetched_chunks_totaland- cortex_chunk_store_fetched_chunk_bytes_total
- cortex_query_frontend_queries_total(per tenant queries counted by the frontend)
 
- [ENHANCEMENT] WAL: New metrics cortex_ingester_wal_logged_bytes_totalandcortex_ingester_checkpoint_logged_bytes_totaladded to track total bytes logged to disk for WAL and checkpoints. #2497
- [ENHANCEMENT] Add de-duplicated chunks counter cortex_chunk_store_deduped_chunks_totalwhich counts every chunk not sent to the store because it was already sent by another replica. #2485
- [ENHANCEMENT] Query-frontend now also logs the POST data of long queries. #2481
- [ENHANCEMENT] WAL: Ingester WAL records now have type header and the custom WAL records have been replaced by Prometheus TSDB's WAL records. Old records will not be supported from 1.3 onwards. Note: once this is deployed, you cannot downgrade without data loss. #2436
- [ENHANCEMENT] Redis Cache: Added idle_timeout,wait_on_pool_exhaustionandmax_conn_lifetimeoptions to redis cache configuration. #2550
- [ENHANCEMENT] WAL: the experimental tag has been removed on the WAL in ingesters. #2560
- [ENHANCEMENT] Use newer AWS API for paginated queries - removes 'Deprecated' message from logfiles. #2452
- [BUGFIX] Ruler: Ensure temporary rule files with special characters are properly mapped and cleaned up. #2506
- [BUGFIX] Ensure requests are properly routed to the prometheus api embedded in the query if -server.path-prefixis set. Fixes #2411. #2372
- [BUGFIX] Experimental TSDB: Fixed chunk data corruption when querying back series using the experimental blocks storage. #2400
- [BUGFIX] Cassandra Storage: Fix endpoint TLS host verification. #2109
- [BUGFIX] Experimental TSDB: Fixed response status code from 422to500when an error occurs while iterating chunks with the experimental blocks storage. #2402
- [BUGFIX] Ring: Fixed a situation where upgrading from pre-1.0 cortex with a rolling strategy caused new 1.0 ingesters to lose their zone value in the ring until manually forced to re-register. #2404
- [BUGFIX] Distributor: /all_user_statsnow show API and Rule Ingest Rate correctly. #2457
- [BUGFIX] Fixed version,revisionandbranchlabels exported by thecortex_build_infometric. #2468
- [BUGFIX] QueryFrontend: fixed a situation where span context missed when downstream_url is used. #2539
- [BUGFIX] Querier: Fixed a situation where querier would crash because of an unresponsive frontend instance. #2569
1.1.0-rc.0 / 2020-05-13
This release brings the usual mix of bugfixes and improvements. The biggest change is that WAL support for chunks is now considered to be production-ready!
Please make sure to review renamed metrics, and update your dashboards and alerts accordingly.
- [CHANGE] Added v1 API routes documented in #2327. #2372
- Added -http.alertmanager-http-prefixflag which allows the configuration of the path where the Alertmanager API and UI can be reached. The default is set to/alertmanager.
- Added -http.prometheus-http-prefixflag which allows the configuration of the path where the Prometheus API and UI can be reached. The default is set to/prometheus.
- Updated the index hosted at the root prefix to point to the updated routes.
- Legacy routes hardcoded with the /api/promprefix now respect the-http.prefixflag.
 
- Added 
- [CHANGE] The metrics cortex_distributor_ingester_appends_totalanddistributor_ingester_append_failures_totalnow include atypelabel to differentiate betweensamplesandmetadata. #2336
- [CHANGE] The metrics for number of chunks and bytes flushed to the chunk store are renamed. Note that previous metrics were counted pre-deduplication, while new metrics are counted after deduplication. #2463
- cortex_ingester_chunks_stored_total>- cortex_chunk_store_stored_chunks_total
- cortex_ingester_chunk_stored_bytes_total>- cortex_chunk_store_stored_chunk_bytes_total
 
- [CHANGE] Experimental TSDB: renamed blocks meta fetcher metrics: #2375
- cortex_querier_bucket_store_blocks_meta_syncs_total>- cortex_querier_blocks_meta_syncs_total
- cortex_querier_bucket_store_blocks_meta_sync_failures_total>- cortex_querier_blocks_meta_sync_failures_total
- cortex_querier_bucket_store_blocks_meta_sync_duration_seconds>- cortex_querier_blocks_meta_sync_duration_seconds
- cortex_querier_bucket_store_blocks_meta_sync_consistency_delay_seconds>- cortex_querier_blocks_meta_sync_consistency_delay_seconds
 
- [CHANGE] Experimental TSDB: Modified default values for compactor.deletion-delayoption from 48h to 12h and-experimental.tsdb.bucket-store.ignore-deletion-marks-delayfrom 24h to 6h. #2414
- [CHANGE] Experimental WAL: Default value of -ingester.checkpoint-enabledchanged totrue. #2416
- [CHANGE] trace_idfield in log files has been renamed totraceID. #2518
- [CHANGE] Slow query log has a different output now. Previously used urlfield has been replaced withhostandpath, and query parameters are logged as individual log fields withqs_prefix. #2520
- [CHANGE] Experimental WAL: WAL and checkpoint compression is now disabled. #2436
- [CHANGE] Update in dependency go-kit/kitfromv0.9.0tov0.10.0. HTML escaping disabled in JSON Logger. #2535
- [CHANGE] Experimental TSDB: Removed cortex_<service>_prefix from Thanos objstore metrics and addedcomponentlabel to distinguish which Cortex component is doing API calls to the object storage when running in single-binary mode: #2568- cortex_<service>_thanos_objstore_bucket_operations_totalrenamed to- thanos_objstore_bucket_operations_total{component="<name>"}
- cortex_<service>_thanos_objstore_bucket_operation_failures_totalrenamed to- thanos_objstore_bucket_operation_failures_total{component="<name>"}
- cortex_<service>_thanos_objstore_bucket_operation_duration_secondsrenamed to- thanos_objstore_bucket_operation_duration_seconds{component="<name>"}
- cortex_<service>_thanos_objstore_bucket_last_successful_upload_timerenamed to- thanos_objstore_bucket_last_successful_upload_time{component="<name>"}
 
- [CHANGE] FIFO cache: The -<prefix>.fifocache.sizeCLI flag has been renamed to-<prefix>.fifocache.max-size-itemsas well as its YAML config optionsizerenamed tomax_size_items. #2319
- [FEATURE] Ruler: The -ruler.evaluation-delayflag was added to allow users to configure a default evaluation delay for all rules in cortex. The default value is 0 which is the current behavior. #2423
- [FEATURE] Experimental: Added a new object storage client for OpenStack Swift. #2440
- [FEATURE] TLS config options added to the Server. #2535
- [FEATURE] Experimental: Added support for /api/v1/metadataPrometheus-based endpoint. #2549
- [FEATURE] Add ability to limit concurrent queries to Cassandra with -cassandra.query-concurrencyflag. #2562
- [ENHANCEMENT] Experimental TSDB: sample ingestion errors are now reported via existing cortex_discarded_samples_totalmetric. #2370
- [ENHANCEMENT] Failures on samples at distributors and ingesters return the first validation error as opposed to the last. #2383
- [ENHANCEMENT] Experimental TSDB: Added cortex_querier_blocks_meta_synced, which reflects current state of synced blocks over all tenants. #2392
- [ENHANCEMENT] Added cortex_distributor_latest_seen_sample_timestamp_secondsmetric to see how far behind Prometheus servers are in sending data. #2371
- [ENHANCEMENT] FIFO cache to support eviction based on memory usage. Added -<prefix>.fifocache.max-size-bytesCLI flag and YAML config optionmax_size_bytesto specify memory limit of the cache. #2319, #2527
- [ENHANCEMENT] Added -querier.worker-match-max-concurrent. Force worker concurrency to match the-querier.max-concurrentoption. Overrides-querier.worker-parallelism. #2456
- [ENHANCEMENT] Added the following metrics for monitoring delete requests: #2445
- cortex_purger_delete_requests_received_total: Number of delete requests received per user.
- cortex_purger_delete_requests_processed_total: Number of delete requests processed per user.
- cortex_purger_delete_requests_chunks_selected_total: Number of chunks selected while building delete plans per user.
- cortex_purger_delete_requests_processing_failures_total: Number of delete requests processing failures per user.
 
- [ENHANCEMENT] Single Binary: Added query-frontend to the single binary. Single binary users will now benefit from various query-frontend features. Primarily: sharding, parallelization, load shedding, additional caching (if configured), and query retries. #2437
- [ENHANCEMENT] Allow 1w (where w denotes week) and 1y (where y denotes year) when setting -store.cache-lookups-older-thanand-store.max-look-back-period. #2454
- [ENHANCEMENT] Optimize index queries for matchers using "a|b|c"-type regex. #2446 #2475
- [ENHANCEMENT] Added per tenant metrics for queries and chunks and bytes read from chunk store: #2463
- cortex_chunk_store_fetched_chunks_totaland- cortex_chunk_store_fetched_chunk_bytes_total
- cortex_query_frontend_queries_total(per tenant queries counted by the frontend)
 
- [ENHANCEMENT] WAL: New metrics cortex_ingester_wal_logged_bytes_totalandcortex_ingester_checkpoint_logged_bytes_totaladded to track total bytes logged to disk for WAL and checkpoints. #2497
- [ENHANCEMENT] Add de-duplicated chunks counter cortex_chunk_store_deduped_chunks_totalwhich counts every chunk not sent to the store because it was already sent by another replica. #2485
- [ENHANCEMENT] Query-frontend now also logs the POST data of long queries. #2481
- [ENHANCEMENT] WAL: Ingester WAL records now have type header and the custom WAL records have been replaced by Prometheus TSDB's WAL records. Old records will not be supported from 1.3 onwards. Note: once this is deployed, you cannot downgrade without data loss. #2436
- [ENHANCEMENT] Redis Cache: Added idle_timeout,wait_on_pool_exhaustionandmax_conn_lifetimeoptions to redis cache configuration. #2550
- [ENHANCEMENT] WAL: the experimental tag has been removed on the WAL in ingesters. #2560
- [ENHANCEMENT] Use newer AWS API for paginated queries - removes 'Deprecated' message from logfiles. #2452
- [BUGFIX] Ruler: Ensure temporary rule files with special characters are properly mapped and cleaned up. #2506
- [BUGFIX] Ensure requests are properly routed to the prometheus api embedded in the query if -server.path-prefixis set. Fixes #2411. #2372
- [BUGFIX] Experimental TSDB: Fixed chunk data corruption when querying back series using the experimental blocks storage. #2400
- [BUGFIX] Cassandra Storage: Fix endpoint TLS host verification. #2109
- [BUGFIX] Experimental TSDB: Fixed response status code from 422to500when an error occurs while iterating chunks with the experimental blocks storage. #2402
- [BUGFIX] Ring: Fixed a situation where upgrading from pre-1.0 cortex with a rolling strategy caused new 1.0 ingesters to lose their zone value in the ring until manually forced to re-register. #2404
- [BUGFIX] Distributor: /all_user_statsnow show API and Rule Ingest Rate correctly. #2457
- [BUGFIX] Fixed version,revisionandbranchlabels exported by thecortex_build_infometric. #2468
- [BUGFIX] QueryFrontend: fixed a situation where HTTP error is ignored and an incorrect status code is set. #2483
- [BUGFIX] QueryFrontend: fixed a situation where span context missed when downstream_url is used. #2539
- [BUGFIX] Querier: Fixed a situation where querier would crash because of an unresponsive frontend instance. #2569
1.0.1 / 2020-04-23
In a cluster with 3 ingester replicas, when rollouts happen or when there are only 2 replicas available, you might see gaps in your queries. This release fixes that bug.
- [BUGFIX] Fix gaps when querying ingesters with replication factor = 3 and 2 ingesters in the cluster. #2503