|
1 | 1 | # Changelog |
2 | 2 |
|
3 | | -## main / unreleased |
| 3 | +## 3.0.0-rc.0 |
4 | 4 |
|
5 | 5 | ### Grafana Mimir |
6 | 6 |
|
|
27 | 27 | * [CHANGE] Distributor: gRPC errors with the `mimirpb.ERROR_CAUSE_INSTANCE_LIMIT` cause are now mapped to `codes.Unavailable` and `http.StatusServiceUnavailable` instead of `codes.Internal` and `http.StatusInternalServerError`. #13003 #13032 |
28 | 28 | * [CHANGE] Admin: use relative links instead of absolute ones in the administration web UI. #13034 |
29 | 29 | * [CHANGE] Distributor: Use memberlist by default for the HA tracker. #12998 |
| 30 | +* [CHANGE] Block-builder: Remove `cortex_blockbuilder_process_partition_duration_seconds` metric and related dashboard panels. #12631 |
30 | 31 | * [FEATURE] Ingester: Expose the number of active series ingested via OTLP as `cortex_ingester_active_otlp_series`. #12678 |
31 | 32 | * [FEATURE] Distributor, ruler: Add experimental `-validation.name-validation-scheme` flag to specify the validation scheme for metric and label names. #12215 |
32 | | -* [FEATURE] Ruler: Add support to use a Prometheus-compatible HTTP endpoint for remote rule evaluation. See [remote evaluation mode](https://grafana.com/docs/mimir/latest/operators-guide/architecture/components/ruler/#remote-over-http-https) for more details. This feature can be used to federate data from multiple Mimir instances. #11415 |
| 33 | +* [FEATURE] Ruler: Add support to use a Prometheus-compatible HTTP endpoint for remote rule evaluation. See [remote evaluation mode](https://grafana.com/docs/mimir/latest/operators-guide/architecture/components/ruler/#remote-over-http-https) for more details. This feature can be used to federate data from multiple Mimir instances. #11415 #11833 |
33 | 34 | * [FEATURE] Distributor: Add experimental `-distributor.otel-translation-strategy` flag to support configuring the metric and label name translation strategy in the OTLP endpoint. #12284 #12306 #12369 |
34 | 35 | * [FEATURE] Query-frontend: Add `query-frontend.rewrite-propagate-matchers` flag that enables a new MQE AST optimization pass that copies relevant label matchers across binary operations. #12304 |
35 | 36 | * [FEATURE] Query-frontend: Add `query-frontend.rewrite-histogram-queries` flag that enables a new MQE AST optimization pass that rewrites histogram queries for a more efficient order of execution. #12305 |
36 | 37 | * [FEATURE] Query-frontend: Support delayed name removal (Prometheus experimental feature) in MQE. #12509 |
37 | 38 | * [FEATURE] Usage-tracker: Introduce a new experimental service to enforce active series limits before Kafka ingestion. #12358 #12895 #12940 #12942 #12970 |
38 | 39 | * [FEATURE] Ingester: Add experimental `-include-tenant-id-in-profile-labels` flag to include tenant ID in pprof profiling labels for sampled traces. Currently only supported by the ingester. This can help debug performance issues for specific tenants. #12404 |
39 | 40 | * [FEATURE] Alertmanager: Add experimental `-alertmanager.storage.state-read-timeout` flag to configure the timeout for reading the Alertmanager state (notification log, silences) from object storage during the initial sync. #12425 |
40 | | -* [FEATURE] Ingester: Add experimental `-blocks-storage.tsdb.head-statistics-collection-frequency` flag to configure the periodic collection of statistics from the TSDB head. #12407 |
41 | | -* [FEATURE] Ingester: Add experimental `blocks-storage.tsdb.index-lookup-planning-enabled` flag to configure use of a cost-based index lookup planner. #12530 |
| 41 | +* [FEATURE] Ingester: Add experimental `-blocks-storage.tsdb.index-lookup-planning.*` flags to configure use of a cost-based index lookup planner. This should reduce the cost of queries in the ingester. #12197 #12199 #12245 #12248 #12457 #12530 #12407 #12460 #12550 #12597 #12603 #12608 #12658 #12696 #12731 #12755 #12738 #12752 #12807 #12830 #12896 #13039 |
42 | 42 | * [FEATURE] MQE: Add support for applying extra selectors to one side of a binary operation to reduce data fetched. #12577 |
43 | 43 | * [FEATURE] Query-frontend: Add a native histogram presenting the length of query expressions handled by the query-frontend #12571 |
44 | 44 | * [FEATURE] Query-frontend and querier: Add experimental support for performing query planning in query-frontends and distributing portions of the plan to queriers for execution. #12302 #12551 #12665 #12687 #12745 #12757 #12798 #12808 #12809 #12835 #12856 #12870 #12883 #12885 #12886 #12911 #12933 #12934 #12961 #13016 #13027 |
|
49 | 49 | * [FEATURE] MQE: Add support for experimental `ts_of_min_over_time`, `ts_of_max_over_time`, `ts_of_first_over_time` and `ts_of_last_over_time` PromQL functions. #12819 |
50 | 50 | * [FEATURE] Ingester: Add experimental flags `-ingest-storage.write-logs-fsync-before-kafka-commit-enabled` and `-ingest-storage.write-logs-fsync-before-kafka-commit-concurrency` to fsync write logs before the offset is committed to Kafka. This is enabled by default. #12816 |
51 | 51 | * [FEATURE] MQE: Add support for experimental `mad_over_time` PromQL function. #12995 |
| 52 | +* [FEATURE] Continuous test: Add experimental `-tests.ingest-storage-record.enabled` flag to verify ingest-storage record correctness by validating the V2 record format against live write requests. #12500 |
52 | 53 | * [ENHANCEMENT] Query-frontend: CLI flag `-query-frontend.enabled-promql-experimental-functions` and its associated YAML configuration is now stable. #12368 |
53 | 54 | * [ENHANCEMENT] Query-scheduler/query-frontend: Add native histogram definitions to `cortex_query_{scheduler|frontend}_queue_duration_seconds`. #12288 |
54 | 55 | * [ENHANCEMENT] Querier: Add native histogram definition to `cortex_bucket_index_load_duration_seconds`. #12094 |
55 | 56 | * [ENHANCEMENT] Query-frontend: Allow users to set the `query-frontend.extra-propagated-headers` flag to specify the extra headers allowed to pass through to the rest of the query path. #12174 |
56 | 57 | * [ENHANCEMENT] MQE: Add support for applying common subexpression elimination to range vector expressions in instant queries. #12236 |
57 | 58 | * [ENHANCEMENT] Ingester: Improve the performance of active series custom trackers matchers. #12184 |
58 | | -* [ENHANCEMENT] Ingester: Add postings cache sharing and invalidation. You can enable sharing and head cache invalidation via `-blocks-storage.tsdb.shared-postings-for-matchers-cache` and `-blocks-storage.tsdb.head-postings-for-matchers-cache-invalidation` respectively, and you can configure the number of metric versions per cache via `-blocks-storage.tsdb.head-postings-for-matchers-cache-versions`. #12333 |
| 59 | +* [ENHANCEMENT] Ingester: Add postings cache sharing and invalidation. You can enable sharing and head cache invalidation via `-blocks-storage.tsdb.shared-postings-for-matchers-cache` and `-blocks-storage.tsdb.head-postings-for-matchers-cache-invalidation` respectively, and you can configure the number of metric versions per cache via `-blocks-storage.tsdb.head-postings-for-matchers-cache-versions`. #12333 #12932 |
59 | 60 | * [ENHANCEMENT] Overrides-exporter: The overrides-exporter can now export arbitrary fields from the limits configuration. Metric names are automatically discovered from YAML tags in the limits structure, eliminating the need to maintain hardcoded lists when adding new exportable metrics. #12244 |
60 | 61 | * [ENHANCEMENT] OTLP: Stick to OTLP vocabulary on invalid label value length error. #12273 |
61 | 62 | * [ENHANCEMENT] Elide SeriesChunksStreamReader.StartBuffering span on queries; show as events on parent span. #12257 |
62 | 63 | * [ENHANCEMENT] Ruler: Add `-ruler.max-notification-batch-size` CLI flag that can be used to configure the maximum Alertmanager notification batch size. #12469 |
63 | 64 | * [ENHANCEMENT] Ingester: Skip read path load shedding when an ingester is the only available replica. #12448 |
64 | 65 | * [ENHANCEMENT] Querier: Include more information about inflight queries in the activity tracker. A querier logs this information after it restarts following a crash. #12526 |
65 | | -* [ENHANCEMENT] Ingester: Add experimental `-blocks-storage.tsdb.index-lookup-planning-comparison-portion` flag to enable mirrored chunk querier comparison between queries with and without index lookup planning. #12460 |
66 | 66 | * [ENHANCEMENT] Ruler: Add native histogram version of `cortex_ruler_sync_rules_duration_seconds`. #12628 |
67 | 67 | * [ENHANCEMENT] Block-builder: Implement concurrent consumption within a job when `-ingest-storage.kafka.fetch-concurrency-max` is given. #12222 |
68 | 68 | * [ENHANCEMENT] Query-frontend: Labels query optimizer is no longer experimental and is enabled by default. It can be disabled with `-query-frontend.labels-query-optimizer-enabled=false` CLI flag. #12606 |
|
71 | 71 | * [ENHANCEMENT] Query-frontend, querier: Add support for experimental `first_over_time` PromQL function. #12662 |
72 | 72 | * [ENHANCEMENT] OTLP: native support for OpenTelemetry metric start time to Prometheus metric created timestamp conversion, instead of converting to QuietZeroNaNs introduced in #10238. The configuration parameter `-distributor.otel-start-time-quiet-zero` is therefore deprecated and will be removed. Now supports start time for exponential histograms. This is a major rewrite of the endpoint in upstream Prometheus and Mimir. #12652 |
73 | 73 | * [ENHANCEMENT] Distributor: Support zstd decompression of OTLP messages. #12229 |
| 74 | +* [ENHANCEMENT] Distributor: Optimize Remote Write 1.0 to 2.0 translation by improving symbolization and reducing allocations. #12329 |
74 | 75 | * [ENHANCEMENT] Ingester: Improved the performance of active series custom trackers matchers. #12663 |
75 | 76 | * [ENHANCEMENT] Compactor: Log sizes of downloaded and uploaded blocks. #12656 |
76 | 77 | * [ENHANCEMENT] Block-builder-scheduler: The scheduler now handles multiple concurrent jobs within a partition if allowed by `-block-builder-scheduler.max-jobs-per-partition`. #12772 |
|
90 | 91 | * `cortex_ingester_client_transferred_bytes_total{ingester_zone="..."}` |
91 | 92 | * `cortex_storegateway_client_transferred_bytes_total{store_gateway_zone="..."}` |
92 | 93 | * [ENHANCEMENT] Compactor: Add experimental `-compactor.first-level-compaction-skip-future-max-time` flag to skip first-level compaction if any source block has a MaxTime more recent than the wait period threshold. #13040 |
| 94 | +* [ENHANCEMENT] Block-builder-scheduler: Add gap monitoring for planned and completed jobs via `cortex_blockbuilder_scheduler_job_gap_detected` metric. #11867 |
93 | 95 | * [BUGFIX] Distributor: Calculate `WriteResponseStats` before validation and `PushWrappers`. This prevents clients using Remote-Write 2.0 from seeing a diff in written samples, histograms and exemplars. #12682 |
94 | 96 | * [BUGFIX] Compactor: Fix cortex_compactor_block_uploads_failed_total metric showing type="unknown". #12477 |
95 | 97 | * [BUGFIX] Querier: Samples with the same timestamp are merged deterministically. Previously, this could lead to flapping query results when an out-of-order sample is ingested that conflicts with a previously ingested in-order sample's value. #8673 |
|
99 | 101 | * [BUGFIX] Block-builder-scheduler: Fix a caching bug in initial job probing causing excessive memory usage at startup. #12389 |
100 | 102 | * [BUGFIX] Ruler: Support labels at the rule group level. These were previously ignored even when set via the API. #12397 |
101 | 103 | * [BUGFIX] Distributor: Fix metric metadata of type Unknown being silently dropped from RW2 requests. #12461 |
| 104 | +* [BUGFIX] Distributor: Preserve inconsistent metric metadata in Remote Write 1.0 to 2.0 conversion. Previously, when converting RW1.0 requests with multiple different metadata for the same series, only the first metadata was kept. Now all inconsistent metadata are preserved to match Prometheus behavior. This only affects experimental Remote Write 2.0. #12541 #12804 |
102 | 105 | * [BUGFIX] Ruler: Fix ruler remotequerier request body consumption on retries. #12514 |
103 | 106 | * [BUGFIX] Block-builder: Fix a bug where a consumption error can cause a job to stay assigned to a worker for the remainder of its lifetime. #12522 |
104 | 107 | * [BUGFIX] Querier: Fix possible panic when evaluating a nested subquery where the parent has no steps. #12524 |
|
115 | 118 | * [BUGFIX] Query-frontend: Fix issue where shardable expressions containing aggregations with a shardable parameter (eg. `sum(foo)` in `topk(scalar(sum(foo)), sum by (pod) (bar))`) would not have the parameter sharded. #12958 |
116 | 119 | * [BUGFIX] Ingester: Fix `max_inflight_push_requests` metric and internal counter not decremented under pressure, possibly causing the rejection of all push requests. #12975 |
117 | 120 | * [BUGFIX] Store-gateway: Fix not being able to scale down via the `POST /prepare-shutdown` endpoint unless there are some active tenants with sharded blocks to the store-gateway replica. #12972 |
| 121 | +* [BUGFIX] MQE: Fix invalid source label name in `label_join` error message, so it refers to the source label rather than the destination label. #12185 |
| 122 | +* [BUGFIX] Continuous test: Fix false positive in metadata assertion when duplicate metadata is present in ingest-storage record correctness test. #12891 |
118 | 123 |
|
119 | 124 | ### Mixin |
120 | 125 |
|
121 | 126 | * [CHANGE] Enable ingest storage panels by default in all compiled mixins. #13023 |
122 | 127 | * [CHANGE] Alerts: Removed `MimirFrontendQueriesStuck` alert given this is not relevant when the query-scheduler is running and the query-scheduler is now a required component. #12810 |
| 128 | +* [CHANGE] Alerts: Make `MimirIngesterHasNotShippedBlocksSinceStart` weaker to account for block-builder restarts. The change only affects the block-builder version of the alert. #12319 |
123 | 129 | * [ENHANCEMENT] Rollout progress dashboard: make panels higher to fit more components. #12429 |
124 | 130 | * [ENHANCEMENT] Add `max_series` limit to Writes Resources > Ingester > In-memory series panel. #12476 |
125 | 131 | * [ENHANCEMENT] Alerts: Add `MimirHighGRPCConcurrentStreamsPerConnection` alert. #11947 |
126 | 132 | * [ENHANCEMENT] Alerts: Add `rollout_stuck_alert_ignore_deployments` and `rollout_stuck_alert_ignore_statefulsets` configuration options to exclude particular Deployments or StatefulSets from the `MimirRolloutStuck` alert. #12951 |
127 | | -* [BUGFIX] Block-builder dashboard: fix reference to detected gaps metric in errors panel. #12401 |
| 133 | +* [ENHANCEMENT] Alerts: Replace experimental `BlockBuilderLagging` alert with `BlockBuilderSchedulerPendingJobs` alert. The new alert triggers when the block-builder scheduler has pending jobs, indicating that block-builders are unable to keep up with the workload. #12593 |
128 | 134 | * [ENHANCEMENT] Rollout-operator: Vendor rollout-operator monitoring dashboard from rollout-operator repository. #12688 |
| 135 | +* [BUGFIX] Block-builder dashboard: fix reference to detected gaps metric in errors panel. #12401 |
129 | 136 |
|
130 | 137 | ### Jsonnet |
131 | 138 |
|
|
151 | 158 | * `$.memcached_index_queries_node_affinity_matchers` |
152 | 159 | * `$.memcached_chunks_node_affinity_matchers` |
153 | 160 | * `$.memcached_metadata_node_affinity_matchers` |
| 161 | +* [ENHANCEMENT] Rollout-operator: expose `rollout_operator_enabled` in `$._config`. #12419 |
154 | 162 |
|
155 | 163 | ### Documentation |
156 | 164 |
|
|
166 | 174 | ### Tools |
167 | 175 |
|
168 | 176 | * [ENHANCEMENT] Base `mimirtool`, `metaconvert`, `copyblocks`, and `query-tee` images on `distroless/static-debian12`. #13014 |
| 177 | +* [ENHANCEMENT] kafkatool: add `format=json` to `kafkatool dump print`. #12737 |
169 | 178 |
|
170 | 179 | ### Query-tee |
171 | 180 |
|
|
0 commit comments