Skip to content

Commit

Permalink
Merge branch 'main' into charleskorn/fallback-with-http-header
Browse files Browse the repository at this point in the history
  • Loading branch information
charleskorn authored Jun 21, 2024
2 parents 4c10efb + 32bec9b commit c4e5134
Show file tree
Hide file tree
Showing 92 changed files with 2,936 additions and 2,786 deletions.
9 changes: 7 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,13 @@
* [FEATURE] Continuous-test: now runable as a module with `mimir -target=continuous-test`. #7747
* [FEATURE] Store-gateway: Allow specific tenants to be enabled or disabled via `-store-gateway.enabled-tenants` or `-store-gateway.disabled-tenants` CLI flags or their corresponding YAML settings. #7653
* [FEATURE] New `-<prefix>.s3.bucket-lookup-type` flag configures lookup style type, used to access bucket in s3 compatible providers. #7684
* [FEATURE] Querier: add experimental streaming PromQL engine, enabled with `-querier.promql-engine=mimir`. #7693 #7898 #7899 #8023 #8058 #8096 #8121 #8197 #8230 #8247 #8270 #8276 #8277 #8291 #8303 #8340 #8256 #8348 #8454
* [FEATURE] Querier: add experimental streaming PromQL engine, enabled with `-querier.promql-engine=mimir`. #7693 #7898 #7899 #8023 #8058 #8096 #8121 #8197 #8230 #8247 #8270 #8276 #8277 #8291 #8303 #8340 #8256 #8348 #8422 #8430 #8454
* [FEATURE] New `/ingester/unregister-on-shutdown` HTTP endpoint allows dynamic access to ingesters' `-ingester.ring.unregister-on-shutdown` configuration. #7739
* [FEATURE] Server: added experimental [PROXY protocol support](https://www.haproxy.org/download/2.3/doc/proxy-protocol.txt). The PROXY protocol support can be enabled via `-server.proxy-protocol-enabled=true`. When enabled, the support is added both to HTTP and gRPC listening ports. #7698
* [FEATURE] mimirtool: Add `runtime-config verify` sub-command, for verifying Mimir runtime config files. #8123
* [FEATURE] Query-frontend, querier: new experimental `/cardinality/active_native_histogram_metrics` API to get active native histogram metric names with statistics about active native histogram buckets. #7982 #7986 #8008
* [FEATURE] Alertmanager: Added `-alertmanager.max-silences-count` and `-alertmanager.max-silence-size-bytes` to set limits on per tenant silences. Disabled by default. #6898
* [FEATURE] Ingester: add experimental support for the server-side circuit breakers when writing to and reading from ingesters. This can be enabled using `-ingester.push-circuit-breaker.enabled` and `-ingester.read-circuit-breaker.enabled` options. Further `-ingester.push-circuit-breaker.*` and `-ingester.read-circuit-breaker.*` options for configuring circuit-breaker are available. Added metrics `cortex_ingester_circuit_breaker_results_total`, `cortex_ingester_circuit_breaker_transitions_total` and `cortex_ingester_circuit_breaker_current_state`. #8180 #8285 #8315
* [FEATURE] Ingester: add experimental support for the server-side circuit breakers when writing to and reading from ingesters. This can be enabled using `-ingester.push-circuit-breaker.enabled` and `-ingester.read-circuit-breaker.enabled` options. Further `-ingester.push-circuit-breaker.*` and `-ingester.read-circuit-breaker.*` options for configuring circuit-breaker are available. Added metrics `cortex_ingester_circuit_breaker_results_total`, `cortex_ingester_circuit_breaker_transitions_total`, `cortex_ingester_circuit_breaker_current_state` and `cortex_ingester_circuit_breaker_request_timeouts_total`. #8180 #8285 #8315 #8446
* [FEATURE] Distributor, ingester: add new setting `-validation.past-grace-period` to limit how old (based on the wall clock minus OOO window) the ingested samples can be. The default 0 value disables this limit. #8262
* [ENHANCEMENT] Distributor: add metrics `cortex_distributor_samples_per_request` and `cortex_distributor_exemplars_per_request` to track samples/exemplars per request. #8265
* [ENHANCEMENT] Reduced memory allocations in functions used to propagate contextual information between gRPC calls. #7529
Expand All @@ -48,6 +48,8 @@
* [ENHANCEMENT] Expose TLS configuration for the S3 backend client. #2652
* [ENHANCEMENT] Rules: Support expansion of native histogram values when using rule templates #7974
* [ENHANCEMENT] Rules: Add metric `cortex_prometheus_rule_group_last_restore_duration_seconds` which measures how long it takes to restore rule groups using the `ALERTS_FOR_STATE` series #7974
* [ENHANCEMENT] Rules: Added per namespace max rules per rule group limit. The maximum number of rules per rule groups for all namespaces continues to be configured by `-ruler.max-rules-per-rule-group`, but now, this can be superseded by the new `-ruler.max-rules-per-rule-group-by-namespace` option on a per namespace basis. This new limit can be overridden using the overrides mechanism to be applied per-tenant. #8378
* [ENHANCEMENT] Rules: Added per namespace max rule groups per tenant limit. The maximum number of rule groups per rule tenant for all namespaces continues to be configured by `-ruler.max-rule-groups-per-tenant`, but now, this can be superseded by the new `-ruler.max-rule-groups-per-tenant-by-namespace` option on a per namespace basis. This new limit can be overridden using the overrides mechanism to be applied per-tenant. #8425
* [ENHANCEMENT] OTLP: Improve remote write format translation performance by using label set hashes for metric identifiers instead of string based ones. #8012
* [ENHANCEMENT] Querying: Remove OpEmptyMatch from regex concatenations. #8012
* [ENHANCEMENT] Store-gateway: add `-blocks-storage.bucket-store.max-concurrent-queue-timeout`. When set, queries at the store-gateway's query gate will not wait longer than that to execute. If a query reaches the wait timeout, then the querier will retry the blocks on a different store-gateway. If all store-gateways are unavailable, then the query will fail with `err-mimir-store-consistency-check-failed`. #7777 #8149
Expand All @@ -66,6 +68,8 @@
* [ENHANCEMENT] Query-frontend: log the start, end time and matchers for remote read requests to the query stats logs. #8326 #8370 #8373
* [ENHANCEMENT] Query-frontend: be able to block remote read queries via the per tenant runtime override `blocked_queries`. #8372 #8415
* [ENHANCEMENT] Query-frontend: added `remote_read` to `op` supported label values for the `cortex_query_frontend_queries_total` metric. #8412
* [ENHANCEMENT] Query-frontend: log the overall length and start, end time offset from current time for remote read requests. The start and end times are calculated as the miminum and maximum times of the individual queries in the remote read request. #8404
* [ENHANCEMENT] Storage Provider: Added option `-<prefix>.s3.dualstack-enabled` that allows disabling S3 client from resolving AWS S3 endpoint into dual-stack IPv4/IPv6 endpoint. Defaults to true. #8405
* [BUGFIX] Distributor: prometheus retry on 5xx and 429 errors, while otlp collector only retry on 429, 502, 503 and 504, mapping other 5xx errors to the retryable ones in otlp endpoint. #8324 #8339
* [BUGFIX] Distributor: make OTLP endpoint return marshalled proto bytes as response body for 4xx/5xx errors. #8227
* [BUGFIX] Rules: improve error handling when querier is local to the ruler. #7567
Expand Down Expand Up @@ -186,6 +190,7 @@
* [ENHANCEMENT] Clarify Compactor and its storage volume when configured under Kubernetes. #7675
* [ENHANCEMENT] Add OTLP route to _Mimir routes by path_ runbooks section. #8074
* [ENHANCEMENT] Document option server.log-source-ips-full. #8268
* [ENHANCEMENT] Specify in which component the configuration flags `-compactor.blocks-retention-period`, `-querier.max-query-lookback`, `-query-frontend.max-total-query-length`, `-query-frontend.max-query-expression-size-bytes` are applied and that they are applied to remote read as well. #8433

### Tools

Expand Down
2 changes: 1 addition & 1 deletion CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
/.github/workflows/publish-technical-documentation-release-mimir.yml @grafana/docs-tooling @grafana/mimir-maintainers
/.github/workflows/update-make-docs.yml @grafana/docs-tooling @grafana/mimir-maintainers

/docs/ @jdbaldry @grafana/mimir-maintainers
/docs/ @tacole02 @grafana/mimir-maintainers
/docs/docs.mk @grafana/docs-tooling @grafana/mimir-maintainers
/docs/internal/ @grafana/mimir-maintainers
/docs/make-docs @grafana/docs-tooling @grafana/mimir-maintainers
Expand Down
74 changes: 70 additions & 4 deletions cmd/mimir/config-descriptor.json
Original file line number Diff line number Diff line change
Expand Up @@ -3756,7 +3756,7 @@
"kind": "field",
"name": "max_query_lookback",
"required": false,
"desc": "Limit how long back data (series and metadata) can be queried, up until \u003clookback\u003e duration ago. This limit is enforced in the query-frontend, querier and ruler. If the requested time range is outside the allowed range, the request will not fail but will be manipulated to only query data within the allowed time range. 0 to disable.",
"desc": "Limit how long back data (series and metadata) can be queried, up until \u003clookback\u003e duration ago. This limit is enforced in the query-frontend, querier and ruler for instant, range and remote read queries. For metadata queries like series, label names, label values queries the limit is enforced in the querier and ruler. If the requested time range is outside the allowed range, the request will not fail but will be manipulated to only query data within the allowed time range. 0 to disable.",
"fieldValue": null,
"fieldDefaultValue": 0,
"fieldFlag": "querier.max-query-lookback",
Expand Down Expand Up @@ -3869,7 +3869,7 @@
"kind": "field",
"name": "max_total_query_length",
"required": false,
"desc": "Limit the total query time range (end - start time). This limit is enforced in the query-frontend on the received query.",
"desc": "Limit the total query time range (end - start time). This limit is enforced in the query-frontend on the received instant, range or remote read query.",
"fieldValue": null,
"fieldDefaultValue": 0,
"fieldFlag": "query-frontend.max-total-query-length",
Expand Down Expand Up @@ -3930,7 +3930,7 @@
"kind": "field",
"name": "max_query_expression_size_bytes",
"required": false,
"desc": "Max size of the raw query, in bytes. 0 to not apply a limit to the size of the query.",
"desc": "Max size of the raw query, in bytes. This limit is enforced by the query-frontend for instant, range and remote read queries. 0 to not apply a limit to the size of the query.",
"fieldValue": null,
"fieldDefaultValue": 0,
"fieldFlag": "query-frontend.max-query-expression-size-bytes",
Expand Down Expand Up @@ -4068,6 +4068,28 @@
"fieldType": "boolean",
"fieldCategory": "advanced"
},
{
"kind": "field",
"name": "ruler_max_rules_per_rule_group_by_namespace",
"required": false,
"desc": "Maximum number of rules per rule group by namespace. Value is a map, where each key is the namespace and value is the number of rules allowed in the namespace (int). On the command line, this map is given in a JSON format. The number of rules specified has the same meaning as -ruler.max-rules-per-rule-group, but only applies for the specific namespace. If specified, it supersedes -ruler.max-rules-per-rule-group.",
"fieldValue": null,
"fieldDefaultValue": {},
"fieldFlag": "ruler.max-rules-per-rule-group-by-namespace",
"fieldType": "map of string to int",
"fieldCategory": "experimental"
},
{
"kind": "field",
"name": "ruler_max_rule_groups_per_tenant_by_namespace",
"required": false,
"desc": "Maximum number of rule groups per tenant by namespace. Value is a map, where each key is the namespace and value is the number of rule groups allowed in the namespace (int). On the command line, this map is given in a JSON format. The number of rule groups specified has the same meaning as -ruler.max-rule-groups-per-tenant, but only applies for the specific namespace. If specified, it supersedes -ruler.max-rule-groups-per-tenant.",
"fieldValue": null,
"fieldDefaultValue": {},
"fieldFlag": "ruler.max-rule-groups-per-tenant-by-namespace",
"fieldType": "map of string to int",
"fieldCategory": "experimental"
},
{
"kind": "field",
"name": "store_gateway_tenant_shard_size",
Expand All @@ -4082,7 +4104,7 @@
"kind": "field",
"name": "compactor_blocks_retention_period",
"required": false,
"desc": "Delete blocks containing samples older than the specified retention period. Also used by query-frontend to avoid querying beyond the retention period. 0 to disable.",
"desc": "Delete blocks containing samples older than the specified retention period. Also used by query-frontend to avoid querying beyond the retention period by instant, range or remote read queries. 0 to disable.",
"fieldValue": null,
"fieldDefaultValue": 0,
"fieldFlag": "compactor.blocks-retention-period",
Expand Down Expand Up @@ -6136,6 +6158,17 @@
"fieldType": "string",
"fieldCategory": "advanced"
},
{
"kind": "field",
"name": "dualstack_enabled",
"required": false,
"desc": "When enabled, direct all AWS S3 requests to the dual-stack IPv4/IPv6 endpoint for the configured region.",
"fieldValue": null,
"fieldDefaultValue": true,
"fieldFlag": "blocks-storage.s3.dualstack-enabled",
"fieldType": "boolean",
"fieldCategory": "experimental"
},
{
"kind": "field",
"name": "storage_class",
Expand Down Expand Up @@ -12086,6 +12119,17 @@
"fieldType": "string",
"fieldCategory": "advanced"
},
{
"kind": "field",
"name": "dualstack_enabled",
"required": false,
"desc": "When enabled, direct all AWS S3 requests to the dual-stack IPv4/IPv6 endpoint for the configured region.",
"fieldValue": null,
"fieldDefaultValue": true,
"fieldFlag": "ruler-storage.s3.dualstack-enabled",
"fieldType": "boolean",
"fieldCategory": "experimental"
},
{
"kind": "field",
"name": "storage_class",
Expand Down Expand Up @@ -14215,6 +14259,17 @@
"fieldType": "string",
"fieldCategory": "advanced"
},
{
"kind": "field",
"name": "dualstack_enabled",
"required": false,
"desc": "When enabled, direct all AWS S3 requests to the dual-stack IPv4/IPv6 endpoint for the configured region.",
"fieldValue": null,
"fieldDefaultValue": true,
"fieldFlag": "alertmanager-storage.s3.dualstack-enabled",
"fieldType": "boolean",
"fieldCategory": "experimental"
},
{
"kind": "field",
"name": "storage_class",
Expand Down Expand Up @@ -16577,6 +16632,17 @@
"fieldType": "string",
"fieldCategory": "advanced"
},
{
"kind": "field",
"name": "dualstack_enabled",
"required": false,
"desc": "When enabled, direct all AWS S3 requests to the dual-stack IPv4/IPv6 endpoint for the configured region.",
"fieldValue": null,
"fieldDefaultValue": true,
"fieldFlag": "common.storage.s3.dualstack-enabled",
"fieldType": "boolean",
"fieldCategory": "experimental"
},
{
"kind": "field",
"name": "storage_class",
Expand Down
Loading

0 comments on commit c4e5134

Please sign in to comment.