From c7d51477dae33a71d7543ccf8d803f63387ffb38 Mon Sep 17 00:00:00 2001 From: Christopher Moyer <35463610+chri2547@users.noreply.github.com> Date: Mon, 14 Mar 2022 09:33:05 -0500 Subject: [PATCH 01/30] Docs: Refactors the TOC, adds descriptions (#1466) * Reorder toplevel to have three distinct sections Signed-off-by: Jack Baldry Co-authored-by: Marco Pracucci * Update docs/sources/operators-guide/reference-glossary.md * Fixes after running 'make doc' Signed-off-by: Marco Pracucci * Fixed link in glossary Signed-off-by: Marco Pracucci * incorporates feedback * fixed relref * renamed monitor to monitoring Co-authored-by: Jack Baldry Co-authored-by: Marco Pracucci --- Makefile | 10 +-- docs/sources/_index.md | 13 +-- .../architecture/blocks-storage/_index.md | 14 ---- .../blocks-storage/bucket-index.md | 62 -------------- .../sources/architecture/components/_index.md | 12 --- docs/sources/migrating/_index.md | 9 -- docs/sources/migration-guide/_index.md | 12 +++ .../migrating-from-thanos-or-prometheus.md | 11 ++- docs/sources/operating/_index.md | 11 --- .../dashboards/_index.md | 11 --- .../dashboards/top-tenants.md | 8 -- .../operating/using-exemplars/_index.md | 19 ----- docs/sources/operators-guide/_index.md | 19 +++++ .../operators-guide/architecture/_index.md | 12 +++ .../about-grafana-mimir-architecture.md} | 19 +++-- .../architecture}/binary-index-header.md | 22 +++-- .../architecture/bucket-index.md | 79 ++++++++++++++++++ .../architecture/components/_index.md | 12 +++ .../architecture/components/alertmanager.md | 11 +-- .../architecture/components/compactor.md | 15 ++-- .../architecture/components/distributor.md | 13 +-- .../architecture/components/ingester.md | 15 ++-- .../components/overrides-exporter.md | 11 +-- .../architecture/components/querier.md | 13 +-- .../components/query-frontend.md} | 17 ++-- .../components/query-scheduler.md | 11 +-- .../architecture/components/ruler.md | 11 +-- .../architecture/components/store-gateway.md | 25 +++--- .../architecture/deployment-modes.md | 9 +- .../architecture/hash-ring.md | 13 +-- .../architecture/key-value-store.md | 17 ++-- .../memberlist-and-the-gossip-protocol.md | 11 +-- .../architecture}/query-sharding.md | 12 +-- .../configuring/_index.md | 5 +- .../configuring/about-configurations.md | 7 +- .../about-dns-service-discovery.md | 9 +- .../configuring/about-ip-address-logging.md | 9 +- .../about-runtime-configuration.md | 9 +- .../configuring}/about-tenant-ids.md | 9 +- .../configuring/about-versioning.md | 9 +- .../configuring}/configuring-hash-rings.md | 9 +- ...iguring-high-availability-deduplication.md | 9 +- .../configuring-shuffle-sharding.md | 11 +-- ...he-query-frontend-work-with-prometheus.md} | 11 +-- .../configuring}/configuring-tracing.md | 9 +- .../configuring-zone-aware-replication.md | 9 +- .../mirroring-requests-to-a-second-cluster.md | 11 +-- .../reference-configuration-parameters.md | 9 +- ...eference-configuration-parameters.template | 9 +- .../getting-started/_index.md | 9 +- .../images/architecture.png | Bin .../avoid-querying-non-compacted-blocks.png | Bin .../images/bucket-index-querier-workflow.png | Bin ...tor-horizontal-and-vertical-compaction.png | Bin .../images/compactor-split-and-merge.png | Bin .../mimir-alertmanager-resources.png | Bin .../images/dashboards/mimir-alertmanager.png | Bin .../dashboards/mimir-compactor-resources.png | Bin .../images/dashboards/mimir-compactor.png | Bin .../images/dashboards/mimir-config.png | Bin .../images/dashboards/mimir-object-store.png | Bin .../images/dashboards/mimir-overrides.png | Bin .../images/dashboards/mimir-queries.png | Bin .../dashboards/mimir-reads-networking.png | Bin .../dashboards/mimir-reads-resources.png | Bin .../images/dashboards/mimir-reads.png | Bin .../dashboards/mimir-rollout-progress.png | Bin .../images/dashboards/mimir-ruler.png | Bin .../images/dashboards/mimir-scaling.png | Bin .../images/dashboards/mimir-tenants.png | Bin .../dashboards/mimir-writes-networking.png | Bin .../dashboards/mimir-writes-resources.png | Bin .../images/dashboards/mimir-writes.png | Bin .../images/hash-ring-with-replication.png | Bin .../images/hash-ring-without-replication.png | Bin .../images/microservices-mode.svg | 0 .../images/mirroring-envoy.png | Bin .../images/monolithic-mode.svg | 0 .../images/param-states.png | Bin .../images/query-frontend-architecture.png | Bin .../images/query-scheduler-architecture.png | Bin .../images/query-sharding.png | Bin .../images/query-sharding.tex | 0 .../images/read-path.png | Bin .../images/scaled-monolithic-mode.svg | 0 .../images/shuffle-sharding-probability.png | Bin .../images/write-path.png | Bin .../reference-glossary.md | 13 +-- .../reference-http-api/_index.md | 7 +- .../running-production-environment/_index.md | 12 +++ .../performing-a-rolling-update.md | 9 +- .../planning-capacity.md | 7 +- .../production-tips.md | 7 +- .../scaling-out.md | 5 +- .../operators-guide/securing/_index.md | 12 +++ .../authentication-and-authorization.md | 11 +-- .../securing/encrypting-data-at-rest.md | 9 +- .../securing/securing-alertmanager.md | 9 +- .../securing-communications-with-tls.md | 9 +- .../{ => operators-guide}/tools/_index.md | 3 +- .../tools/listblocks.md} | 11 +-- .../tools/mimirtool.md} | 9 +- .../{ => operators-guide}/tools/query-tee.md | 13 +-- .../tools/tenant-injector.md | 9 +- .../operators-guide/using-exemplars/_index.md | 12 +++ .../using-exemplars/about-exemplars.md | 14 ++++ .../using-exemplars/before-you-begin.md | 9 +- .../using-exemplars/storing-exemplars.md | 34 ++++---- .../using-exemplars/viewing-exemplar-data.md | 14 ++-- .../visualizing-metrics/_index.md | 12 +++ .../visualizing-metrics/dashboards/_index.md | 12 +++ .../dashboards/alertmanager-resources.md | 8 +- .../dashboards/alertmanager.md | 6 +- .../dashboards/compactor-resources.md | 8 +- .../dashboards/compactor.md | 8 +- .../visualizing-metrics}/dashboards/config.md | 8 +- .../dashboards/object-store.md | 8 +- .../dashboards/overrides.md | 8 +- .../dashboards/queries.md | 8 +- .../dashboards/reads-networking.md | 8 +- .../dashboards/reads-resources.md | 8 +- .../visualizing-metrics}/dashboards/reads.md | 8 +- .../dashboards/rollout-progress.md | 8 +- .../visualizing-metrics}/dashboards/ruler.md | 8 +- .../dashboards/scaling.md | 8 +- .../dashboards/slow-queries.md | 8 +- .../dashboards/tenants.md | 8 +- .../dashboards/top-tenants.md | 10 +++ .../dashboards/writes-networking.md | 8 +- .../dashboards/writes-resources.md | 8 +- .../visualizing-metrics}/dashboards/writes.md | 8 +- .../deploying-monitor-mixin.md} | 9 +- .../installing-dashboards-and-alerts.md | 9 +- .../visualizing-metrics}/requirements.md | 7 +- docs/sources/release-notes/_index.md | 1 + docs/sources/release-notes/v2.0.md | 3 +- docs/sources/securing/_index.md | 11 --- 137 files changed, 667 insertions(+), 507 deletions(-) delete mode 100644 docs/sources/architecture/blocks-storage/_index.md delete mode 100644 docs/sources/architecture/blocks-storage/bucket-index.md delete mode 100644 docs/sources/architecture/components/_index.md delete mode 100644 docs/sources/migrating/_index.md create mode 100644 docs/sources/migration-guide/_index.md rename docs/sources/{migrating => migration-guide}/migrating-from-thanos-or-prometheus.md (84%) delete mode 100644 docs/sources/operating/_index.md delete mode 100644 docs/sources/operating/deploying-the-monitoring-mixin/dashboards/_index.md delete mode 100644 docs/sources/operating/deploying-the-monitoring-mixin/dashboards/top-tenants.md delete mode 100644 docs/sources/operating/using-exemplars/_index.md create mode 100644 docs/sources/operators-guide/_index.md create mode 100644 docs/sources/operators-guide/architecture/_index.md rename docs/sources/{architecture/_index.md => operators-guide/architecture/about-grafana-mimir-architecture.md} (90%) rename docs/sources/{architecture/blocks-storage => operators-guide/architecture}/binary-index-header.md (59%) create mode 100644 docs/sources/operators-guide/architecture/bucket-index.md create mode 100644 docs/sources/operators-guide/architecture/components/_index.md rename docs/sources/{ => operators-guide}/architecture/components/alertmanager.md (94%) rename docs/sources/{ => operators-guide}/architecture/components/compactor.md (92%) rename docs/sources/{ => operators-guide}/architecture/components/distributor.md (95%) rename docs/sources/{ => operators-guide}/architecture/components/ingester.md (91%) rename docs/sources/{ => operators-guide}/architecture/components/overrides-exporter.md (86%) rename docs/sources/{ => operators-guide}/architecture/components/querier.md (90%) rename docs/sources/{architecture/components/query-frontend/_index.md => operators-guide/architecture/components/query-frontend.md} (88%) rename docs/sources/{ => operators-guide}/architecture/components/query-scheduler.md (87%) rename docs/sources/{ => operators-guide}/architecture/components/ruler.md (93%) rename docs/sources/{ => operators-guide}/architecture/components/store-gateway.md (92%) rename docs/sources/{ => operators-guide}/architecture/deployment-modes.md (92%) rename docs/sources/{ => operators-guide}/architecture/hash-ring.md (94%) rename docs/sources/{ => operators-guide}/architecture/key-value-store.md (77%) rename docs/sources/{ => operators-guide}/architecture/memberlist-and-the-gossip-protocol.md (87%) rename docs/sources/{architecture/components/query-frontend => operators-guide/architecture}/query-sharding.md (95%) rename docs/sources/{ => operators-guide}/configuring/_index.md (56%) rename docs/sources/{ => operators-guide}/configuring/about-configurations.md (94%) rename docs/sources/{ => operators-guide}/configuring/about-dns-service-discovery.md (83%) rename docs/sources/{ => operators-guide}/configuring/about-ip-address-logging.md (78%) rename docs/sources/{ => operators-guide}/configuring/about-runtime-configuration.md (94%) rename docs/sources/{operating => operators-guide/configuring}/about-tenant-ids.md (83%) rename docs/sources/{ => operators-guide}/configuring/about-versioning.md (95%) rename docs/sources/{operating => operators-guide/configuring}/configuring-hash-rings.md (97%) rename docs/sources/{operating => operators-guide/configuring}/configuring-high-availability-deduplication.md (96%) rename docs/sources/{operating => operators-guide/configuring}/configuring-shuffle-sharding.md (98%) rename docs/sources/{architecture/components/query-frontend/using-the-query-frontend-with-prometheus.md => operators-guide/configuring/configuring-the-query-frontend-work-with-prometheus.md} (79%) rename docs/sources/{operating => operators-guide/configuring}/configuring-tracing.md (88%) rename docs/sources/{operating => operators-guide/configuring}/configuring-zone-aware-replication.md (94%) rename docs/sources/{operating => operators-guide/configuring}/mirroring-requests-to-a-second-cluster.md (92%) rename docs/sources/{ => operators-guide}/configuring/reference-configuration-parameters.md (99%) rename docs/sources/{ => operators-guide}/configuring/reference-configuration-parameters.template (95%) rename docs/sources/{ => operators-guide}/getting-started/_index.md (91%) rename docs/sources/{ => operators-guide}/images/architecture.png (100%) rename docs/sources/{ => operators-guide}/images/avoid-querying-non-compacted-blocks.png (100%) rename docs/sources/{ => operators-guide}/images/bucket-index-querier-workflow.png (100%) rename docs/sources/{ => operators-guide}/images/compactor-horizontal-and-vertical-compaction.png (100%) rename docs/sources/{ => operators-guide}/images/compactor-split-and-merge.png (100%) rename docs/sources/{ => operators-guide}/images/dashboards/mimir-alertmanager-resources.png (100%) rename docs/sources/{ => operators-guide}/images/dashboards/mimir-alertmanager.png (100%) rename docs/sources/{ => operators-guide}/images/dashboards/mimir-compactor-resources.png (100%) rename docs/sources/{ => operators-guide}/images/dashboards/mimir-compactor.png (100%) rename docs/sources/{ => operators-guide}/images/dashboards/mimir-config.png (100%) rename docs/sources/{ => operators-guide}/images/dashboards/mimir-object-store.png (100%) rename docs/sources/{ => operators-guide}/images/dashboards/mimir-overrides.png (100%) rename docs/sources/{ => operators-guide}/images/dashboards/mimir-queries.png (100%) rename docs/sources/{ => operators-guide}/images/dashboards/mimir-reads-networking.png (100%) rename docs/sources/{ => operators-guide}/images/dashboards/mimir-reads-resources.png (100%) rename docs/sources/{ => operators-guide}/images/dashboards/mimir-reads.png (100%) rename docs/sources/{ => operators-guide}/images/dashboards/mimir-rollout-progress.png (100%) rename docs/sources/{ => operators-guide}/images/dashboards/mimir-ruler.png (100%) rename docs/sources/{ => operators-guide}/images/dashboards/mimir-scaling.png (100%) rename docs/sources/{ => operators-guide}/images/dashboards/mimir-tenants.png (100%) rename docs/sources/{ => operators-guide}/images/dashboards/mimir-writes-networking.png (100%) rename docs/sources/{ => operators-guide}/images/dashboards/mimir-writes-resources.png (100%) rename docs/sources/{ => operators-guide}/images/dashboards/mimir-writes.png (100%) rename docs/sources/{ => operators-guide}/images/hash-ring-with-replication.png (100%) rename docs/sources/{ => operators-guide}/images/hash-ring-without-replication.png (100%) rename docs/sources/{ => operators-guide}/images/microservices-mode.svg (100%) rename docs/sources/{ => operators-guide}/images/mirroring-envoy.png (100%) rename docs/sources/{ => operators-guide}/images/monolithic-mode.svg (100%) rename docs/sources/{ => operators-guide}/images/param-states.png (100%) rename docs/sources/{ => operators-guide}/images/query-frontend-architecture.png (100%) rename docs/sources/{ => operators-guide}/images/query-scheduler-architecture.png (100%) rename docs/sources/{ => operators-guide}/images/query-sharding.png (100%) rename docs/sources/{ => operators-guide}/images/query-sharding.tex (100%) rename docs/sources/{ => operators-guide}/images/read-path.png (100%) rename docs/sources/{ => operators-guide}/images/scaled-monolithic-mode.svg (100%) rename docs/sources/{ => operators-guide}/images/shuffle-sharding-probability.png (100%) rename docs/sources/{ => operators-guide}/images/write-path.png (100%) rename docs/sources/{ => operators-guide}/reference-glossary.md (90%) rename docs/sources/{ => operators-guide}/reference-http-api/_index.md (99%) create mode 100644 docs/sources/operators-guide/running-production-environment/_index.md rename docs/sources/{operating => operators-guide/running-production-environment}/performing-a-rolling-update.md (94%) rename docs/sources/{operating => operators-guide/running-production-environment}/planning-capacity.md (97%) rename docs/sources/{operating => operators-guide/running-production-environment}/production-tips.md (97%) rename docs/sources/{operating => operators-guide/running-production-environment}/scaling-out.md (98%) create mode 100644 docs/sources/operators-guide/securing/_index.md rename docs/sources/{ => operators-guide}/securing/authentication-and-authorization.md (89%) rename docs/sources/{ => operators-guide}/securing/encrypting-data-at-rest.md (95%) rename docs/sources/{ => operators-guide}/securing/securing-alertmanager.md (88%) rename docs/sources/{ => operators-guide}/securing/securing-communications-with-tls.md (96%) rename docs/sources/{ => operators-guide}/tools/_index.md (57%) rename docs/sources/{tools/listblocks => operators-guide/tools/listblocks.md} (93%) rename docs/sources/{tools/mimirtool/_index.md => operators-guide/tools/mimirtool.md} (99%) rename docs/sources/{ => operators-guide}/tools/query-tee.md (96%) rename docs/sources/{ => operators-guide}/tools/tenant-injector.md (75%) create mode 100644 docs/sources/operators-guide/using-exemplars/_index.md create mode 100644 docs/sources/operators-guide/using-exemplars/about-exemplars.md rename docs/sources/{operating => operators-guide}/using-exemplars/before-you-begin.md (90%) rename docs/sources/{operating => operators-guide}/using-exemplars/storing-exemplars.md (65%) rename docs/sources/{operating => operators-guide}/using-exemplars/viewing-exemplar-data.md (54%) create mode 100644 docs/sources/operators-guide/visualizing-metrics/_index.md create mode 100644 docs/sources/operators-guide/visualizing-metrics/dashboards/_index.md rename docs/sources/{operating/deploying-the-monitoring-mixin => operators-guide/visualizing-metrics}/dashboards/alertmanager-resources.md (67%) rename docs/sources/{operating/deploying-the-monitoring-mixin => operators-guide/visualizing-metrics}/dashboards/alertmanager.md (68%) rename docs/sources/{operating/deploying-the-monitoring-mixin => operators-guide/visualizing-metrics}/dashboards/compactor-resources.md (67%) rename docs/sources/{operating/deploying-the-monitoring-mixin => operators-guide/visualizing-metrics}/dashboards/compactor.md (66%) rename docs/sources/{operating/deploying-the-monitoring-mixin => operators-guide/visualizing-metrics}/dashboards/config.md (65%) rename docs/sources/{operating/deploying-the-monitoring-mixin => operators-guide/visualizing-metrics}/dashboards/object-store.md (64%) rename docs/sources/{operating/deploying-the-monitoring-mixin => operators-guide/visualizing-metrics}/dashboards/overrides.md (60%) rename docs/sources/{operating/deploying-the-monitoring-mixin => operators-guide/visualizing-metrics}/dashboards/queries.md (65%) rename docs/sources/{operating/deploying-the-monitoring-mixin => operators-guide/visualizing-metrics}/dashboards/reads-networking.md (74%) rename docs/sources/{operating/deploying-the-monitoring-mixin => operators-guide/visualizing-metrics}/dashboards/reads-resources.md (74%) rename docs/sources/{operating/deploying-the-monitoring-mixin => operators-guide/visualizing-metrics}/dashboards/reads.md (74%) rename docs/sources/{operating/deploying-the-monitoring-mixin => operators-guide/visualizing-metrics}/dashboards/rollout-progress.md (65%) rename docs/sources/{operating/deploying-the-monitoring-mixin => operators-guide/visualizing-metrics}/dashboards/ruler.md (66%) rename docs/sources/{operating/deploying-the-monitoring-mixin => operators-guide/visualizing-metrics}/dashboards/scaling.md (60%) rename docs/sources/{operating/deploying-the-monitoring-mixin => operators-guide/visualizing-metrics}/dashboards/slow-queries.md (67%) rename docs/sources/{operating/deploying-the-monitoring-mixin => operators-guide/visualizing-metrics}/dashboards/tenants.md (60%) create mode 100644 docs/sources/operators-guide/visualizing-metrics/dashboards/top-tenants.md rename docs/sources/{operating/deploying-the-monitoring-mixin => operators-guide/visualizing-metrics}/dashboards/writes-networking.md (73%) rename docs/sources/{operating/deploying-the-monitoring-mixin => operators-guide/visualizing-metrics}/dashboards/writes-resources.md (73%) rename docs/sources/{operating/deploying-the-monitoring-mixin => operators-guide/visualizing-metrics}/dashboards/writes.md (73%) rename docs/sources/{operating/deploying-the-monitoring-mixin/_index.md => operators-guide/visualizing-metrics/deploying-monitor-mixin.md} (79%) rename docs/sources/{operating/deploying-the-monitoring-mixin => operators-guide/visualizing-metrics}/installing-dashboards-and-alerts.md (93%) rename docs/sources/{operating/deploying-the-monitoring-mixin => operators-guide/visualizing-metrics}/requirements.md (96%) delete mode 100644 docs/sources/securing/_index.md diff --git a/Makefile b/Makefile index c05d2898f3..7489cf5508 100644 --- a/Makefile +++ b/Makefile @@ -58,13 +58,13 @@ MIXIN_OUT_PATH := operations/mimir-mixin-compiled JSONNET_MANIFESTS_PATH := operations/mimir # Doc templates in use -DOC_TEMPLATES := docs/sources/configuring/reference-configuration-parameters.template +DOC_TEMPLATES := docs/sources/operators-guide/configuring/reference-configuration-parameters.template # Documents to run through embedding -DOC_EMBED := docs/sources/architecture/components/query-frontend/using-the-query-frontend-with-prometheus.md \ - docs/sources/operating/mirroring-requests-to-a-second-cluster.md \ - docs/sources/architecture/components/overrides-exporter.md \ - docs/sources/getting-started/_index.md \ +DOC_EMBED := docs/sources/operators-guide/configuring/configuring-the-query-frontend-work-with-prometheus.md \ + docs/sources/operators-guide/configuring/mirroring-requests-to-a-second-cluster.md \ + docs/sources/operators-guide/architecture/components/overrides-exporter.md \ + docs/sources/operators-guide/getting-started/_index.md \ operations/mimir/README.md .PHONY: image-tag diff --git a/docs/sources/_index.md b/docs/sources/_index.md index dcd802265d..f67371d481 100644 --- a/docs/sources/_index.md +++ b/docs/sources/_index.md @@ -1,8 +1,11 @@ --- -title: "Grafana Mimir technical documentation" +title: "Grafana Mimir" +menuTitle: "Grafana Mimir" weight: 1 --- +# Grafana Mimir + Grafana Mimir provides horizontally scalable, highly available, multi-tenant, long-term storage for [Prometheus](https://prometheus.io). - **Horizontally scalable:** Grafana Mimir can run across multiple machines in a cluster, exceeding the throughput and storage of a single machine. This enables you to send the metrics from multiple Prometheus servers to a single Grafana Mimir cluster and run globally aggregated queries across all data in a single place. @@ -14,13 +17,13 @@ Grafana Mimir provides horizontally scalable, highly available, multi-tenant, lo ## Documentation -If you’re new to Grafana Mimir, read [Getting started with Grafana Mimir]({{< relref "./getting-started/_index.md" >}}). +If you’re new to Grafana Mimir, read [Getting started with Grafana Mimir]({{< relref "./operators-guide/getting-started/_index.md" >}}). Before deploying Grafana Mimir, read: -1. [Grafana Mimir architecture]({{< relref "architecture.md" >}}) -1. [Getting started with Grafana Mimir]({{< relref "getting-started/_index.md" >}}) -1. [Configuring Grafana Mimir]({{< relref "configuring/_index.md" >}}) +1. [Grafana Mimir architecture]({{< relref "operators-guide/architecture/_index.md" >}}) +1. [Getting started with Grafana Mimir]({{< relref "operators-guide/getting-started/_index.md" >}}) +1. [Configuring Grafana Mimir]({{< relref "operators-guide/configuring/_index.md" >}}) ## Hosted Grafana Mimir (Prometheus as a service) diff --git a/docs/sources/architecture/blocks-storage/_index.md b/docs/sources/architecture/blocks-storage/_index.md deleted file mode 100644 index 965841e41f..0000000000 --- a/docs/sources/architecture/blocks-storage/_index.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: "Blocks storage" -weight: 20 ---- - -The blocks storage is a Grafana Mimir storage engine based on [Prometheus TSDB](https://prometheus.io/docs/prometheus/latest/storage/). Blocks storage stores each tenant's time series into their own TSDB which write out their series to a on-disk block, which by default are `2h` block range periods. Each block is composed by chunk files, which contain the timestamp-value pairs for multiple series, an index, which indexes metric names and labels to time series in the chunk files, and a metadata file. - -Blocks storage supports the following backends: - -- [Amazon S3](https://aws.amazon.com/s3) -- [Google Cloud Storage](https://cloud.google.com/storage/) -- [Microsoft Azure Storage](https://azure.microsoft.com/en-us/services/storage/) -- [OpenStack Swift](https://wiki.openstack.org/wiki/Swift) -- Local Filesystem (single node only) diff --git a/docs/sources/architecture/blocks-storage/bucket-index.md b/docs/sources/architecture/blocks-storage/bucket-index.md deleted file mode 100644 index 1f1224b18d..0000000000 --- a/docs/sources/architecture/blocks-storage/bucket-index.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: "Bucket Index" -weight: 10 ---- - -# Bucket index - -The bucket index is a **per-tenant file containing the list of blocks and block deletion marks** in the storage. The bucket index itself is stored in the backend object storage, is periodically updated by the compactor, and used by queriers, store-gateways and rulers to discover blocks in the storage. - -The bucket index is enabled by default, but it is **optional**. It can be disabled via `-blocks-storage.bucket-store.bucket-index.enabled=false` (or its respective YAML config option). Disabling the bucket index is not recommended. - -## Benefits - -The [querier](./querier.md), [store-gateway](./store-gateway.md) and ruler need to have an almost up-to-date view over the entire storage bucket, in order to find the right blocks to lookup at query time (querier) and load block's [index-header](./../../architecture/blocks-storage/binary-index-header.md) (store-gateway). Because of this, they need to periodically scan the bucket to look for new blocks uploaded by ingester or compactor, and blocks deleted (or marked for deletion) by compactor. - -When the bucket index is enabled, the querier, store-gateway and ruler periodically look up the per-tenant bucket index instead of scanning the bucket via "list objects" operations. This brings few benefits: - -1. Reduced number of API calls to the object storage by querier and store-gateway -2. No "list objects" storage API calls done by querier and store-gateway -3. The [querier](./querier.md) is up and running immediately after the startup (no need to run an initial bucket scan) - -## Structure of the index - -The `bucket-index.json.gz` contains: - -- **`blocks`**
- List of complete blocks of a tenant, including blocks marked for deletion (partial blocks are excluded from the index). -- **`block_deletion_marks`**
- List of block deletion marks. -- **`updated_at`**
- Unix timestamp (seconds precision) of when the index has been updated (written in the storage) the last time. - -## How it gets updated - -The [compactor](./compactor.md) periodically scans the bucket and uploads an updated bucket index to the storage. The frequency at which the bucket index is updated can be configured via `-compactor.cleanup-interval`. - -The use of the bucket index is optional, but the index is built and updated by the compactor even if `-blocks-storage.bucket-store.bucket-index.enabled=false`. This behavior ensures the bucket index for any tenant already exists and that query result consistency is guaranteed if a Grafana Mimir cluster operator decides to enable the bucket index in a live cluster. The overhead introduced by keeping the bucket index updated is not signifcant. - -## How it's used by the querier - -At query time the [querier](./querier.md) and ruler check whether the bucket index for the tenant has already been loaded in memory. If not, the querier and ruler download it from the storage and cache it in memory. - -_Given it's a small file, lazy downloading it doesn't significantly impact on first query performances, but allows to get a querier up and running without pre-downloading every tenant's bucket index. Moreover, if the [metadata cache](./querier.md#metadata-cache) is enabled, the bucket index will be cached for a short time in a shared cache, reducing the actual latency and number of API calls to the object storage in case multiple queriers and rulers will fetch the same tenant's bucket index in a short time._ - -![Querier - Bucket index](../../images/bucket-index-querier-workflow.png) - - - -While in-memory, a background process will keep it **updated at periodic intervals**, so that subsequent queries from the same tenant to the same querier instance will use the cached (and periodically updated) bucket index. There are two config options involved: - -- `-blocks-storage.bucket-store.sync-interval`
- This option configures how frequently a cached bucket index should be refreshed. -- `-blocks-storage.bucket-store.bucket-index.update-on-error-interval`
- If downloading a bucket index fails, the failure is cached for a short time in order to avoid hammering the backend storage. This option configures how frequently a bucket index, which previously failed to load, should be tried to load again. - -If a bucket index is unused for a long time (configurable via `-blocks-storage.bucket-store.bucket-index.idle-timeout`), e.g. because that querier instance is not receiving any query from the tenant, the querier will offload it, stopping to keep it updated at regular intervals. This is particularly for tenants which are resharded to different queriers when [shuffle sharding](../guides/shuffle-sharding.md) is enabled. - -Finally, at query time the querier and ruler check how old a bucket index is (based on its `updated_at`) and fail a query if its age is older than `-blocks-storage.bucket-store.bucket-index.max-stale-period`. This circuit breaker is used to ensure queriers and rulers will not return any partial query results due to a stale view over the long-term storage. - -## How it's used by the store-gateway - -The [store-gateway](./store-gateway.md), at startup and periodically, fetches the bucket index for each tenant belonging to their shard and uses it as the source of truth for the blocks (and deletion marks) in the storage. This removes the need to periodically scan the bucket to discover blocks belonging to their shard. diff --git a/docs/sources/architecture/components/_index.md b/docs/sources/architecture/components/_index.md deleted file mode 100644 index a206627998..0000000000 --- a/docs/sources/architecture/components/_index.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: "Components" -description: "" -weight: 10 ---- - -# Components - -Grafana Mimir is composed of a set of components that interact to -form a cluster. - -{{< section >}} diff --git a/docs/sources/migrating/_index.md b/docs/sources/migrating/_index.md deleted file mode 100644 index 9faaecfb2e..0000000000 --- a/docs/sources/migrating/_index.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: "Migrating to Grafana Mimir" -description: "" -weight: 40 ---- - -# Migrating to Grafana Mimir - -{{< section >}} diff --git a/docs/sources/migration-guide/_index.md b/docs/sources/migration-guide/_index.md new file mode 100644 index 0000000000..3a14ddaa78 --- /dev/null +++ b/docs/sources/migration-guide/_index.md @@ -0,0 +1,12 @@ +--- +title: "Grafana Mimir migration guides" +menuTitle: "Migration guides" +description: "Refer to these guides when migrating to Grafana Mimir." +weight: 30 +--- + +# Grafana Mimir migration guides + +Refer to the following migration guides when you migrate to Grafana Mimir. + +{{< section >}} diff --git a/docs/sources/migrating/migrating-from-thanos-or-prometheus.md b/docs/sources/migration-guide/migrating-from-thanos-or-prometheus.md similarity index 84% rename from docs/sources/migrating/migrating-from-thanos-or-prometheus.md rename to docs/sources/migration-guide/migrating-from-thanos-or-prometheus.md index 49ba538138..76306393d3 100644 --- a/docs/sources/migrating/migrating-from-thanos-or-prometheus.md +++ b/docs/sources/migration-guide/migrating-from-thanos-or-prometheus.md @@ -1,10 +1,13 @@ --- -title: "Migrating to Grafana Mimir from Thanos or Prometheus" -description: "Configuring remote-write and migrating historic TSDB blocks from Prometheus or Thanos." +title: "Migrating from Thanos or Prometheus to Grafana Mimir" +menuTitle: "Migrating from Thanos or Prometheus to Grafana Mimir" +description: "Learn how to migrate from Thanos or Prometheus to Grafana Mimir." weight: 10 --- -# Migrating to Grafana Mimir from Thanos or Prometheus +# Migrating from Thanos or Prometheus to Grafana Mimir + +Complete the steps in this to migrate from Thanos or Prometheus to Grafana Mimir. ## Overview @@ -14,7 +17,7 @@ Each project stores blocks in different places use different block metadata file ## Configuring remote write to Grafana Mimir -For configuration of remote write to Grafana Mimir, refer to [Configuring Prometheus remote write]({{< relref "../securing/authentication-and-authorization.md#configuring-prometheus-remote-write" >}}). +For configuration of remote write to Grafana Mimir, refer to [Configuring Prometheus remote write]({{< relref "../operators-guide/securing/authentication-and-authorization.md#configuring-prometheus-remote-write" >}}). ## Uploading historic blocks to the Grafana Mimir storage bucket diff --git a/docs/sources/operating/_index.md b/docs/sources/operating/_index.md deleted file mode 100644 index a44e6d5797..0000000000 --- a/docs/sources/operating/_index.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: "Operating Grafana Mimir" -description: "Collection of tasks pertaining to the ongoing operation of Grafana Mimir." -weight: 50 ---- - -# Operating Grafana Mimir - -This section presents information on planning, configuring, and maintaining a Grafana Mimir cluster. - -{{< section >}} diff --git a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/_index.md b/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/_index.md deleted file mode 100644 index 587fe10f37..0000000000 --- a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/_index.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: "Grafana Mimir dashboards" -description: "Collection of production-ready dashboards maintained by Grafana Mimir." -weight: 10 ---- - -# Grafana Mimir dashboards - -Grafana Mimir provides the following production-ready dashboards. - -{{< section >}} diff --git a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/top-tenants.md b/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/top-tenants.md deleted file mode 100644 index 1cb11aa728..0000000000 --- a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/top-tenants.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: "Top tenants" -weight: 10 ---- - -# Top tenants - -This dashboard shows the top tenants based on multiple, built-in criteria. diff --git a/docs/sources/operating/using-exemplars/_index.md b/docs/sources/operating/using-exemplars/_index.md deleted file mode 100644 index fdd1637220..0000000000 --- a/docs/sources/operating/using-exemplars/_index.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: "Using exemplars with Grafana Mimir" -description: "" -weight: 40 ---- - -# Using exemplars with Grafana Mimir - -An exemplar is a specific trace representative of a repeated pattern of data in a given time interval. It helps you identify higher cardinality metadata from specific events within time series data. To learn more about exemplars and how they can help you isolate and troubleshoot problems with your systems, see [Introduction to exemplars](https://grafana.com/docs/grafana/latest/basics/exemplars/). - -Grafana Mimir includes the ability to store exemplars in-memory. Exemplar storage in Grafana Mimir is implemented similarly to how it is in Prometheus. Exemplars are stored as a fixed size circular buffer that stores exemplars in memory for all series. - -The [limits]({{< relref "../../configuring/reference-configuration-parameters.md#limits" >}}) property can be used to control the size of the circular buffer by the number of exemplars. For reference, an exemplar with just a `traceID=` uses roughly 100 bytes of memory via the in-memory exemplar storage. If the exemplar storage is enabled, Grafana Mimir will also append the exemplars to WAL for local persistence (for WAL duration). - -See also: - -- [Before you begin]({{< relref "before-you-begin.md" >}}) -- [Storing exemplars in Grafana Mimir]({{< relref "storing-exemplars.md" >}}) -- [Viewing exemplar data]({{< relref "viewing-exemplar-data.md" >}}) diff --git a/docs/sources/operators-guide/_index.md b/docs/sources/operators-guide/_index.md new file mode 100644 index 0000000000..4cfc3dadf4 --- /dev/null +++ b/docs/sources/operators-guide/_index.md @@ -0,0 +1,19 @@ +--- +title: "Grafana Mimir operator and user guide" +menuTitle: "Operator and user guide" +description: "This guide contains information about deploying, configuring, and maintaining Grafana Mimir." +weight: 20 +--- + +# Grafana Mimir operator and user guide + +This guide describes the decisions Grafana Mimir operators and users make and the actions they perform to deploy, configure, and maintain Grafana Mimir. + +The intended audience for this guide includes: + +- Operators who are responsible for deploying and configuring Grafana Mimir. +- Users who are responsible for viewing Grafana Mimir dashboards to troubleshoot production environment issues. + +This guide contains the following sections: + +{{< section >}} diff --git a/docs/sources/operators-guide/architecture/_index.md b/docs/sources/operators-guide/architecture/_index.md new file mode 100644 index 0000000000..29b72f2652 --- /dev/null +++ b/docs/sources/operators-guide/architecture/_index.md @@ -0,0 +1,12 @@ +--- +title: "Grafana Mimir architecture" +menuTitle: "Architecture" +description: "Learn about the Grafana Mimir architecture components and services." +weight: 20 +--- + +# Grafana Mimir architecture + +The following topics include overviews of the Grafana Mimir architecture. + +{{< section >}} diff --git a/docs/sources/architecture/_index.md b/docs/sources/operators-guide/architecture/about-grafana-mimir-architecture.md similarity index 90% rename from docs/sources/architecture/_index.md rename to docs/sources/operators-guide/architecture/about-grafana-mimir-architecture.md index 222de43ad4..f014790ad1 100644 --- a/docs/sources/architecture/_index.md +++ b/docs/sources/operators-guide/architecture/about-grafana-mimir-architecture.md @@ -1,10 +1,11 @@ --- -title: "Grafana Mimir architecture" -description: "" -weight: 20 +title: "About the Grafana Mimir architecture" +menuTitle: "About the architecture" +description: "Learn about the Grafana Mimir architecture." +weight: 10 --- -# Grafana Mimir architecture +# About the Grafana Mimir architecture Grafana Mimir has a microservices-based architecture. The system has multiple horizontally scalable microservices that can run separately and in parallel. @@ -16,7 +17,7 @@ For more information, refer to [Deployment modes]({{< relref "./deployment-modes -![Architecture of Grafana Mimir](../images/architecture.png) +![Architecture of Grafana Mimir](../../images/architecture.png) ## Grafana Mimir components @@ -28,7 +29,7 @@ Most components are stateless and do not require any data persisted between proc [//]: # "Diagram source of write path at https://docs.google.com/presentation/d/1LemaTVqa4Lf_tpql060vVoDGXrthp-Pie_SQL7qwHjc/edit#slide=id.g11658e7e4c6_0_899" -![Architecture of Grafana Mimir's write path](../images/write-path.png) +![Architecture of Grafana Mimir's write path](../../images/write-path.png) Ingesters receive incoming samples from the distributors. Each push request belongs to a tenant, and the ingester appends the received samples to the specific per-tenant TSDB that is stored on the local disk. @@ -46,20 +47,20 @@ For example, when running in the cloud, include an AWS EBS volume or a GCP persi If you are running the Grafana Mimir cluster in Kubernetes, you can use a StatefulSet with a persistent volume claim for the ingesters. The location on the filesystem where the WAL is stored is the same location where local TSDB blocks (compacted from head) are stored. The location of the filesystem and the location of the local TSDB blocks cannot be decoupled. -For more information, refer to [timeline of block uploads]({{< relref "../operating/production-tips/#how-to-estimate--querierquery-store-after" >}}) and [Ingester]({{< relref "components/ingester.md" >}}). +For more information, refer to [timeline of block uploads]({{< relref "../running-production-environment/production-tips/#how-to-estimate--querierquery-store-after" >}}) and [Ingester]({{< relref "components/ingester.md" >}}). #### Series sharding and replication By default, each time series is replicated to three ingesters, and each ingester writes its own block to the long-term storage. The [Compactor]({{< relref "components/compactor.md" >}}) merges blocks from multiple ingesters into a single block, and removes duplicate samples. Blocks compaction significantly reduces storage utilization. -For more information, refer to [Compactor]({{< relref "components/compactor.md" >}}) and [Production tips]({{< relref "../operating/production-tips.md" >}}). +For more information, refer to [Compactor]({{< relref "components/compactor.md" >}}) and [Production tips]({{< relref "../running-production-environment/production-tips.md" >}}). ### The read path [//]: # "Diagram source of read path at https://docs.google.com/presentation/d/1LemaTVqa4Lf_tpql060vVoDGXrthp-Pie_SQL7qwHjc/edit#slide=id.g11658e7e4c6_2_6" -![Architecture of Grafana Mimir's read path](../images/read-path.png) +![Architecture of Grafana Mimir's read path](../../images/read-path.png) [Queriers]({{< relref "components/querier.md" >}}) and [store-gateways]({{< relref "components/store-gateway.md" >}}) periodically download the bucket index to discover blocks that are recently uploaded by ingesters and compactors. The bucket index is kept updated by the compactors. diff --git a/docs/sources/architecture/blocks-storage/binary-index-header.md b/docs/sources/operators-guide/architecture/binary-index-header.md similarity index 59% rename from docs/sources/architecture/blocks-storage/binary-index-header.md rename to docs/sources/operators-guide/architecture/binary-index-header.md index f30f5844c7..c730a505b2 100644 --- a/docs/sources/architecture/blocks-storage/binary-index-header.md +++ b/docs/sources/operators-guide/architecture/binary-index-header.md @@ -1,22 +1,28 @@ --- -title: "Binary index-header" -weight: 10 +title: "Grafana Mimir binary index-header" +menuTitle: "Binary index-header" +description: "The binary index-header contains information that the store-gateway uses at query time." +weight: 40 --- -# Binary index-header +# Grafana Mimir binary index-header -In order to query series inside blocks from object storage, the [store-gateway](./store-gateway.md) has to know certain initial info from each block index. In order to achieve so, the store-gateway builds an index-header for each block and stores it on local disk; such index-header is built by downloading specific pieces of original block's index and storing them on local disk. Index header is then used by store-gateway at query time. +To query series inside blocks from object storage, the [store-gateway](./store-gateway.md) must obtain information about each block index. +To obtain the required information, the store-gateway builds an index-header for each block and stores it on local disk. -Store-gateways build the index-header with specific sections of the block's index downloaded using **GET byte range requests**. Since downloading specific sections of the original block's index is a computationally easy operation, the index-header is never uploaded back to the object storage and multiple store-gateway instances (or the same instance after a rolling update without a persistent disk) will re-build the index-header from original block's index each time, if not already existing on local disk. +The store-gateway uses `GET byte range request` to build the index-header, which contains specific sections of the block's index. The store-gateway uses the index-header at query time. + +Because downloading specific sections of the original block's index is a computationally easy operation, the index-header is not uploaded to the object storage. +If the index-header is not available on local disk, store-gateway instances (or the same instance after a rolling update completes without a persistent disk) re-build the index-header from the original block's index. ## Format (version 1) The index-header is a subset of the block index and contains: -- [Symbol Table](https://github.com/prometheus/prometheus/blob/master/tsdb/docs/format/index.md#symbol-table), used to unintern string values -- [Posting Offset Table](https://github.com/prometheus/prometheus/blob/master/tsdb/docs/format/index.md#postings-offset-table), used to lookup postings +- [Symbol Table](https://github.com/prometheus/prometheus/blob/master/tsdb/docs/format/index.md#symbol-table): Used to unintern string values +- [Posting Offset Table](https://github.com/prometheus/prometheus/blob/master/tsdb/docs/format/index.md#postings-offset-table): Used to look up postings -The following describes the format of the index-header file found in each block store-gateway local directory. It is terminated by a table of contents which serves as an entry point into the index. +The following example shows the format of the index-header file that is located in each block store-gateway local directory. It is terminated by a table of contents that serves as an entry point into the index. ``` ┌─────────────────────────────┬───────────────────────────────┐ diff --git a/docs/sources/operators-guide/architecture/bucket-index.md b/docs/sources/operators-guide/architecture/bucket-index.md new file mode 100644 index 0000000000..100a19a147 --- /dev/null +++ b/docs/sources/operators-guide/architecture/bucket-index.md @@ -0,0 +1,79 @@ +--- +title: "Grafana Mimir bucket index" +menuTitle: "Bucket index" +description: "The bucket index enhances query performance." +weight: 50 +--- + +# Grafana Mimir bucket index + +The bucket index is a per-tenant file that contains the list of blocks and block deletion marks in the storage. The bucket index is stored in the backend object storage, is periodically updated by the compactor, and used by queriers, store-gateways, and rulers to discover blocks in the storage. + +The bucket index is enabled by default, but is optional. It can be disabled via `-blocks-storage.bucket-store.bucket-index.enabled=false` (or its respective YAML configuration option). +Disabling the bucket index is not recommended. + +## Benefits + +The [querier](./querier.md), [store-gateway](./store-gateway.md) and [ruler](./ruler.md) must have an almost up-to-date view of the storage bucket, in order to find the right blocks to lookup at query time (querier) and load block's [index-header](./binary-index-header.md) (store-gateway). +Because of this, they need to periodically scan the bucket to look for new blocks uploaded by ingester or compactor, and blocks deleted (or marked for deletion) by compactor. + +When the bucket index is enabled, the querier, store-gateway, and ruler periodically look up the per-tenant bucket index instead of scanning the bucket via `list objects` operations. + +This provides the following benefits: + +1. Reduced number of API calls to the object storage by querier and store-gateway +1. No "list objects" storage API calls performed by querier and store-gateway +1. The [querier](./querier.md) is up and running immediately after the startup, so there is no need to run an initial bucket scan + +## Structure of the index + +The `bucket-index.json.gz` contains: + +- **`blocks`**
+ List of complete blocks of a tenant, including blocks marked for deletion. Partial blocks are excluded from the index. +- **`block_deletion_marks`**
+ List of block deletion marks. +- **`updated_at`**
+ A Unix timestamp, with precision measured in seconds, displays the last time index was updated and written to the storage. + +## How it gets updated + +The [compactor](./compactor.md) periodically scans the bucket and uploads an updated bucket index to the storage. +You can configure the frequency with which the bucket index is updated via `-compactor.cleanup-interval`. + +The use of the bucket index is optional, but the index is built and updated by the compactor even if `-blocks-storage.bucket-store.bucket-index.enabled=false`. +This behavior ensures that the bucket index for any tenant exists and that query result consistency is guaranteed if a Grafana Mimir cluster operator enable the bucket index in a live cluster. +The overhead introduced by keeping the bucket index updated is not signifcant. + +## How it's used by the querier + +At query time the [querier](./querier.md) and [ruler](./ruler.md) determine whether the bucket index for the tenant has already been loaded to memory. +If not, the querier and ruler download it from the storage and cache it. + +Because the bucket index is a small file, lazy downloading it doesn't have a significant impact on first query performances, but it does allow a querier to get up and running without pre-downloading every tenant's bucket index. +In addition, if the [metadata cache](./querier.md#metadata-cache) is enabled, the bucket index is cached for a short time in a shared cache, which reduces the latency and number of API calls to the object storage in case multiple queriers and rulers fetch the same tenant's bucket index within a short time. + +![Querier - Bucket index](../../images/bucket-index-querier-workflow.png) + + + +While in-memory, a background process keeps the bucket index updated periodically so that subsequent queries from the same tenant to the same querier instance uses the cached (and periodically updated) bucket index. + +The following configuration options determine bucket index update intervals: + +- `-blocks-storage.bucket-store.sync-interval`
+ This option configures how frequently a cached bucket index is refreshed. +- `-blocks-storage.bucket-store.bucket-index.update-on-error-interval`
+ If downloading a bucket index fails, the failure is cached for a short time so that the backend storage doesn't experience a large volume of storage requests. + This option configures the frequency with which the bucket store attempts to load a failed bucket index. + +If a bucket index is unused for the amount of time configured via `-blocks-storage.bucket-store.bucket-index.idle-timeout`, (for example, if a querier instance is not receiving any query from the tenant), the querier offload its, which stops the querier from updating it at regular intervals. +This is useful for tenants that are resharded to different queriers when [shuffle sharding](../guides/shuffle-sharding.md) is enabled. + +At query time the querier and ruler determine how old a bucket index is based on its `updated_at`. +If the age is older than the period configured via `-blocks-storage.bucket-store.bucket-index.max-stale-period` a query fails. +This circuit breaker ensures queriers and rulers do not return any partial query results due to a stale view over the long-term storage. + +## How it's used by the store-gateway + +The [store-gateway](./store-gateway.md), at startup and periodically, fetches the bucket index for each tenant that belong to their shard, and uses it as the source of truth for the blocks and deletion marks in the storage. This removes the need to periodically scan the bucket to discover blocks belonging to their shard. diff --git a/docs/sources/operators-guide/architecture/components/_index.md b/docs/sources/operators-guide/architecture/components/_index.md new file mode 100644 index 0000000000..576fc4f5cb --- /dev/null +++ b/docs/sources/operators-guide/architecture/components/_index.md @@ -0,0 +1,12 @@ +--- +title: "Grafana Mimir components" +menuTitle: "Components" +description: "Grafana Mimir includes a set of components that interact to form a cluster." +weight: 30 +--- + +# Grafana Mimir Components + +Grafana Mimir includes a set of components that interact to form a cluster. + +{{< section >}} diff --git a/docs/sources/architecture/components/alertmanager.md b/docs/sources/operators-guide/architecture/components/alertmanager.md similarity index 94% rename from docs/sources/architecture/components/alertmanager.md rename to docs/sources/operators-guide/architecture/components/alertmanager.md index 2d32128346..52219c47f6 100644 --- a/docs/sources/architecture/components/alertmanager.md +++ b/docs/sources/operators-guide/architecture/components/alertmanager.md @@ -1,10 +1,11 @@ --- -title: "(Optional) Alertmanager" -description: "Overview of the Alertmanager component." -weight: 20 +title: "(Optional) Grafana Mimir Alertmanager" +menuTitle: "(Optional) Alertmanager" +description: "The Alertmanager groups alert notifications and routes them to various notification channels." +weight: 100 --- -# (Optional) Alertmanager +# (Optional) Grafana Mimir Alertmanager The Mimir Alertmanager adds multi-tenancy support and horizontal scalability to the [Prometheus Alertmanager](https://prometheus.io/docs/alerting/alertmanager/). The Mimir Alertmanager is an optional component that accepts alert notifications from the [Mimir ruler]({{< relref "ruler.md" >}}). @@ -95,7 +96,7 @@ Grafana Mimir Alertmanager replicas use [hash ring]({{< relref "../hash-ring.md" This means that any Mimir Alertmanager replica can respond to any API or UI request for any tenant. If the Mimir Alertmanager replica receiving the HTTP request doesn't own the tenant to which the request belongs, the request is internally routed to the appropriate replica. -To configure the Alertmanagers' hash ring, refer to [configuring hash rings]({{< relref "../../operating/configuring-hash-rings.md" >}}). +To configure the Alertmanagers' hash ring, refer to [configuring hash rings]({{< relref "../../configuring/configuring-hash-rings.md" >}}). > **Note:** When running with a single tenant, scaling the number of replicas to be greater than the replication factor offers no benefits as the Mimir Alertmanager shards by tenant and not individual alerts. diff --git a/docs/sources/architecture/components/compactor.md b/docs/sources/operators-guide/architecture/components/compactor.md similarity index 92% rename from docs/sources/architecture/components/compactor.md rename to docs/sources/operators-guide/architecture/components/compactor.md index 397045b442..8c05f9fddb 100644 --- a/docs/sources/architecture/components/compactor.md +++ b/docs/sources/operators-guide/architecture/components/compactor.md @@ -1,17 +1,18 @@ --- -title: "Compactor" -description: "Overview of the compactor component." +title: "Grafana Mimir compactor" +menuTitle: "Compactor" +description: "The compactor increases query performance and reduces long-term storage usage." weight: 10 --- -# Compactor +# Grafana Mimir compactor The compactor increases query performance and reduces long-term storage usage by combining blocks. The compactor is the component responsible for: - Compacting multiple blocks of a given tenant into a single, optimized larger block. This deduplicates chunks and reduces the size of the index, resulting in reduced storage costs. Querying fewer blocks is faster, so it also increases query speed. -- Keeping the per-tenant bucket index updated. The [bucket index]({{< relref "../blocks-storage/bucket-index.md" >}}) is used by [queriers]({{< relref "querier.md" >}}), [store-gateways]({{< relref "store-gateway.md" >}}), and [rulers]({{< relref "ruler.md" >}}) to discover both new blocks and deleted blocks in the storage. +- Keeping the per-tenant bucket index updated. The [bucket index]({{< relref "../bucket-index.md" >}}) is used by [queriers]({{< relref "querier.md" >}}), [store-gateways]({{< relref "store-gateway.md" >}}), and [rulers]({{< relref "ruler.md" >}}) to discover both new blocks and deleted blocks in the storage. - Deleting blocks that are no longer within a configurable retention period. The compactor is stateless. @@ -37,7 +38,7 @@ Compaction can be tuned for clusters with large tenants. Configuration specifies - **Vertical scaling**
The setting `-compactor.compaction-concurrency` configures the max number of concurrent compactions running in a single compactor instance. Each compaction uses one CPU core. - **Horizontal scaling**
- By default, tenant blocks can be compacted by any Grafana Mimir compactor. When you enable compactor [shuffle sharding]({{< relref "../../operating/configuring-shuffle-sharding.md" >}}) by setting `-compactor.compactor-tenant-shard-size` (or its respective YAML configuration option) to a value higher than `0` and lower than the number of available compactors, only the specified number of compactors are eligible to compact blocks for a given tenant. + By default, tenant blocks can be compacted by any Grafana Mimir compactor. When you enable compactor [shuffle sharding]({{< relref "../../configuring/configuring-shuffle-sharding.md" >}}) by setting `-compactor.compactor-tenant-shard-size` (or its respective YAML configuration option) to a value higher than `0` and lower than the number of available compactors, only the specified number of compactors are eligible to compact blocks for a given tenant. ## Compaction algorithm @@ -52,7 +53,7 @@ To split, the first level of compaction, for example `2h`, the compactor divides The compactor merges the split blocks for each shard. This compacts all _N_ split blocks of a given shard. The merge reduces the number of blocks from _N \* M_ to _M_. For a given compaction time range, there will be a compacted block for each of the _M_ shards. -![Compactor - split-and-merge compaction strategy](../../images/compactor-split-and-merge.png) +![Compactor - split-and-merge compaction strategy](../../../images/compactor-split-and-merge.png) @@ -74,7 +75,7 @@ Whenever the pool of compactors grows or shrinks, tenants and jobs are resharded Compactor sharding uses a [hash ring]({{< relref "../hash-ring.md" >}}). At startup, a compactor generates random tokens and registers itself to the compactor hash ring. While running, it periodically scans the storage bucket at every interval defined by `-compactor.compaction-interval`, to discover the list of tenants in storage and compact blocks for each tenant which hash matches the token ranges assigned to the instance itself within the hash ring. -To configure the compactors' hash ring, refer to [configuring hash rings]({{< relref "../../operating/configuring-hash-rings.md" >}}). +To configure the compactors' hash ring, refer to [configuring hash rings]({{< relref "../../configuring/configuring-hash-rings.md" >}}). ### Waiting for a stable hash ring at startup diff --git a/docs/sources/architecture/components/distributor.md b/docs/sources/operators-guide/architecture/components/distributor.md similarity index 95% rename from docs/sources/architecture/components/distributor.md rename to docs/sources/operators-guide/architecture/components/distributor.md index 9e6e1b4d1a..2e57ce25a6 100644 --- a/docs/sources/architecture/components/distributor.md +++ b/docs/sources/operators-guide/architecture/components/distributor.md @@ -1,10 +1,11 @@ --- -title: "Distributor" -description: "Overview of the distributor component." -weight: 10 +title: "Grafana Mimir distributor" +menuTitle: "Distributor" +description: "The distributor validates time-series data and sends the data to ingesters." +weight: 20 --- -# Distributor +# Grafana Mimir distributor The distributor is a stateless component that receives time-series data from Prometheus or the Grafana agent. The distributor validates the data for correctness and to ensure that it is within the configured limits for a given tenant. @@ -53,7 +54,7 @@ Use the following flags to configure the rate limit: ### Configuration The distributors form a [hash ring]({{< relref "../hash-ring.md" >}}) (called the distributors’ ring) to discover each other and enforce limits correctly. -To configure the distributors' hash ring, refer to [configuring hash rings]({{< relref "../../operating/configuring-hash-rings.md" >}}). +To configure the distributors' hash ring, refer to [configuring hash rings]({{< relref "../../configuring/configuring-hash-rings.md" >}}). ## High-availability tracker @@ -64,7 +65,7 @@ The distributor includes an HA tracker. When the HA tracker is enabled, the distributor deduplicates incoming series from Prometheus HA pairs. This enables you to have multiple HA replicas of the same Prometheus servers that write the same series to Mimir and then deduplicates the series in the Mimir distributor. -For more information about HA deduplication and how to configure it, refer to [configure HA deduplication]({{< relref "../../operating/configuring-high-availability-deduplication.md" >}}). +For more information about HA deduplication and how to configure it, refer to [configure HA deduplication]({{< relref "../../configuring/configuring-high-availability-deduplication.md" >}}). ## Sharding and replication diff --git a/docs/sources/architecture/components/ingester.md b/docs/sources/operators-guide/architecture/components/ingester.md similarity index 91% rename from docs/sources/architecture/components/ingester.md rename to docs/sources/operators-guide/architecture/components/ingester.md index e6d2923db2..27d1f46851 100644 --- a/docs/sources/architecture/components/ingester.md +++ b/docs/sources/operators-guide/architecture/components/ingester.md @@ -1,10 +1,11 @@ --- -title: "Ingester" -description: "Overview of the ingester component." -weight: 10 +title: "Grafana Mimir ingester" +menuTitle: "Ingester" +description: "The ingester writes incoming series to long-term storage." +weight: 30 --- -# Ingester +# Grafana Mimir ingester The ingester is a stateful component that writes incoming series to [long-term storage]({{< relref "../_index.md#long-term-storage" >}}) on the write path and returns series samples for queries on the read path. @@ -28,7 +29,7 @@ Each ingester could be in one of the following states: - `UNHEALTHY`
The ingester has failed to heartbeat to the hash ring. While in this state, distributors bypass the ingester, which means that the ingester does not receive write or read requests. -To configure the ingesters' hash ring, refer to [configuring hash rings]({{< relref "../../operating/configuring-hash-rings.md" >}}). +To configure the ingesters' hash ring, refer to [configuring hash rings]({{< relref "../../configuring/configuring-hash-rings.md" >}}). ## Ingesters write de-amplification @@ -68,10 +69,10 @@ Zone aware replication ensures that the ingester replicas for a given time serie Zones can represent logical or physical failure domains, for example, different data centers. Dividing replicas across multiple zones prevents data loss and service interruptions when there is a zone-wide outage. -To set up multi-zone replication, refer to [Configuring zone-aware replication]({{< relref "../../operating/configuring-zone-aware-replication.md" >}}). +To set up multi-zone replication, refer to [Configuring zone-aware replication]({{< relref "../../configuring/configuring-zone-aware-replication.md" >}}). ## Shuffle sharding Shuffle sharding can be used to reduce the effect that multiple tenants can have on each other. -For more information on shuffle sharding, refer to [Configuring shuffle sharding]({{< relref "../../operating/configuring-shuffle-sharding.md" >}}). +For more information on shuffle sharding, refer to [Configuring shuffle sharding]({{< relref "../../configuring/configuring-shuffle-sharding.md" >}}). diff --git a/docs/sources/architecture/components/overrides-exporter.md b/docs/sources/operators-guide/architecture/components/overrides-exporter.md similarity index 86% rename from docs/sources/architecture/components/overrides-exporter.md rename to docs/sources/operators-guide/architecture/components/overrides-exporter.md index 285f1fd2aa..609c0eb879 100644 --- a/docs/sources/architecture/components/overrides-exporter.md +++ b/docs/sources/operators-guide/architecture/components/overrides-exporter.md @@ -1,10 +1,11 @@ --- -title: "(Optional) Overrides-exporter" -description: "" -weight: 20 +title: "(Optional) Grafana Mimir overrides-exporter" +menuTitle: "(Optional) Overrides-exporter" +description: "The overrides-exporter exports Prometheus metrics containing the configured per-tenant limits." +weight: 110 --- -# (Optional) Overrides-exporter +# (Optional) Grafana Mimir overrides-exporter Grafana Mimir supports applying overrides on a per-tenant basis. A number of overrides configure limits that prevent a single tenant from using too many resources. @@ -23,7 +24,7 @@ The overrides-exporter must be explicitly enabled. With a `runtime.yaml` file as follows: -[embedmd]:# (../../../configurations/overrides-exporter-runtime.yaml) +[embedmd]:# (../../../../configurations/overrides-exporter-runtime.yaml) ```yaml # file: runtime.yaml # In this example, we're overriding ingestion limits for a single tenant. diff --git a/docs/sources/architecture/components/querier.md b/docs/sources/operators-guide/architecture/components/querier.md similarity index 90% rename from docs/sources/architecture/components/querier.md rename to docs/sources/operators-guide/architecture/components/querier.md index 7aaf6a6251..8d923a4164 100644 --- a/docs/sources/architecture/components/querier.md +++ b/docs/sources/operators-guide/architecture/components/querier.md @@ -1,10 +1,11 @@ --- -title: "Querier" -description: "Overview of the querier component." -weight: 10 +title: "Grafana Mimir querier" +menuTitle: "Querier" +description: "The querier evaluates PromQL expressions." +weight: 50 --- -# Querier +# Grafana Mimir querier The querier is a stateless component that evaluates [PromQL](https://prometheus.io/docs/prometheus/latest/querying/basics/) expressions by fetching time series and labels on the read path. @@ -15,7 +16,7 @@ The querier uses the [store-gateway]({{< relref "store-gateway.md" >}}) componen To find the correct blocks to look up at query time, the querier requires an almost up-to-date view of the bucket in long-term storage. The querier performs one of the following actions to ensure that the bucket view is updated: -1. Periodically download the [bucket index]({{< relref "../blocks-storage/bucket-index.md" >}}) (default) +1. Periodically download the [bucket index]({{< relref "../bucket-index.md" >}}) (default) 2. Periodically scan the bucket Queriers do not need any content from blocks except their metadata, which includes the minimum and maximum timestamp of samples within the block. @@ -31,7 +32,7 @@ We recommend that you keep the bucket index enabled. ### Bucket index disabled -When [bucket index]({{< relref "../blocks-storage/bucket-index.md" >}}) is disabled, queriers iterate over the storage bucket to discover blocks for all tenants and download the `meta.json` of each block. During this initial bucket scanning phase, a querier cannot process incoming queries and its `/ready` readiness probe endpoint will not return the HTTP status code `200`. +When [bucket index]({{< relref "../bucket-index.md" >}}) is disabled, queriers iterate over the storage bucket to discover blocks for all tenants and download the `meta.json` of each block. During this initial bucket scanning phase, a querier cannot process incoming queries and its `/ready` readiness probe endpoint will not return the HTTP status code `200`. When running, queriers periodically iterate over the storage bucket to discover new tenants and recently uploaded blocks. diff --git a/docs/sources/architecture/components/query-frontend/_index.md b/docs/sources/operators-guide/architecture/components/query-frontend.md similarity index 88% rename from docs/sources/architecture/components/query-frontend/_index.md rename to docs/sources/operators-guide/architecture/components/query-frontend.md index 4826235bf2..ccf7411617 100644 --- a/docs/sources/architecture/components/query-frontend/_index.md +++ b/docs/sources/operators-guide/architecture/components/query-frontend.md @@ -1,12 +1,13 @@ --- -title: "Query-frontend" -description: "Overview of the query-frontend component." -weight: 10 +title: "Grafana Mimir query-frontend" +menuTitle: "Query-frontend" +description: "The query-frontend accelerates queries." +weight: 60 --- -# Query-frontend +# Grafana Mimir query-frontend -The query-frontend is a stateless component that provides the same API as the [querier]({{< relref "../querier.md" >}}) and can be used to accelerate the read path. +The query-frontend is a stateless component that provides the same API as the [querier]({{< relref "./querier.md" >}}) and can be used to accelerate the read path. Although the query-frontend is not required, we recommend that you deploy it. When you deploy the query-frontend, you should make query requests to the query-frontend instead of the queriers. The queriers are required within the cluster to execute the queries. @@ -69,7 +70,7 @@ The query-frontend also provides [query sharding]({{< relref "query-sharding.md" The query-frontend scalability is limited by the configured number of workers per querier. -When you don't use the [query-scheduler]({{< relref "../query-scheduler.md">}}), the query-frontend stores a queue of queries to execute. +When you don't use the [query-scheduler]({{< relref "./query-scheduler.md">}}), the query-frontend stores a queue of queries to execute. A querier runs `-querier.max-concurrent` workers and each worker connects to one of the query-frontend replicas to pull queries to execute. A querier worker executes one query at a time. @@ -86,12 +87,12 @@ The queries exceeding the configured maximum concurrency create a backlog in the The backlog might cause a suboptimal utilization of querier resources, which can result in poor query performance when you run Grafana Mimir at scale. -The [query-scheduler]({{< relref "../query-scheduler.md" >}}) is an optional component that you can deploy to overcome the query-frontend scalability limitations. +The [query-scheduler]({{< relref "./query-scheduler.md" >}}) is an optional component that you can deploy to overcome the query-frontend scalability limitations. ## DNS configuration and readiness When a query-frontend starts up, it does not immediately have queriers attached to it. -The [`/ready` endpoint]({{< relref "../../../reference-http-api/#readiness-probe" >}}) returns an HTTP 200 status code only when the query-frontend has at least one querier attached to it, and is then ready to serve queries. +The [`/ready` endpoint]({{< relref "../../reference-http-api/#readiness-probe" >}}) returns an HTTP 200 status code only when the query-frontend has at least one querier attached to it, and is then ready to serve queries. Configure the `/ready` endpoint as a healthcheck in your load balancer; otherwise, a query-frontend scale-out event might result in failed queries or high latency until queriers connect to the query-frontend. If you use query-frontend with query-scheduler, the `/ready` endpoint reports an HTTP 200 status code only after the query-frontend connects to at least one query-scheduler. diff --git a/docs/sources/architecture/components/query-scheduler.md b/docs/sources/operators-guide/architecture/components/query-scheduler.md similarity index 87% rename from docs/sources/architecture/components/query-scheduler.md rename to docs/sources/operators-guide/architecture/components/query-scheduler.md index b0c5166e88..adcdd4e735 100644 --- a/docs/sources/architecture/components/query-scheduler.md +++ b/docs/sources/operators-guide/architecture/components/query-scheduler.md @@ -1,10 +1,11 @@ --- -title: "(Optional) Query-scheduler" -description: "Overview of the query-scheduler component." -weight: 20 +title: "(Optional) Grafana Mimir query-scheduler" +menuTitle: "(Optional) Query-scheduler" +description: "The query-scheduler distributes work to queriers." +weight: 120 --- -# (Optional) Query-scheduler +# (Optional) Grafana Mimir query-scheduler The query-scheduler is an optional, stateless component that retains a queue of queries to execute, and distributes the workload to available [queriers]({{< relref "querier.md" >}}). @@ -14,7 +15,7 @@ The query-scheduler is an optional, stateless component that retains a queue of The following flow describes how a queries moves through a Grafana Mimir cluster: -1. The [query-frontend]({{< relref "query-frontend/_index.md" >}}) receives queries, and then either splits and shards them, or serves them from the cache. +1. The [query-frontend]({{< relref "./query-frontend/_index.md" >}}) receives queries, and then either splits and shards them, or serves them from the cache. 1. The query-frontend enqueues the queries into a query-scheduler. 1. The query-scheduler stores the queries in an in-memory queue where they wait for a querier to pick them up. 1. Queriers pick up the queries, and executes them. diff --git a/docs/sources/architecture/components/ruler.md b/docs/sources/operators-guide/architecture/components/ruler.md similarity index 93% rename from docs/sources/architecture/components/ruler.md rename to docs/sources/operators-guide/architecture/components/ruler.md index 702eb7d85e..df5022d2e6 100644 --- a/docs/sources/architecture/components/ruler.md +++ b/docs/sources/operators-guide/architecture/components/ruler.md @@ -1,10 +1,11 @@ --- -title: "(Optional) Ruler" -description: "" -weight: 20 +title: "(Optional) Grafana Mimir ruler" +menuTitle: "(Optional) Ruler" +description: "The ruler evaluates PromQL expressions defined in recording and alerting rules." +weight: 130 --- -# (Optional) Ruler +# (Optional) Grafana Mimir ruler The ruler is an optional component that evaluates PromQL expressions defined in recording and alerting rules. Each tenant has a set of recording and alerting rules and can group those rules into namespaces. @@ -34,7 +35,7 @@ The ruler supports multi-tenancy and horizontal scalability. To achieve horizontal scalability, the ruler shards the execution of rules by rule groups. Ruler replicas form their own [hash ring]({{< relref "../hash-ring.md" >}}) stored in the [KV store]({{< relref "../key-value-store.md" >}}) to divide the work of the executing rules. -To configure the rulers' hash ring, refer to [configuring hash rings]({{< relref "../../operating/configuring-hash-rings.md" >}}). +To configure the rulers' hash ring, refer to [configuring hash rings]({{< relref "../../configuring/configuring-hash-rings.md" >}}). ## HTTP configuration API diff --git a/docs/sources/architecture/components/store-gateway.md b/docs/sources/operators-guide/architecture/components/store-gateway.md similarity index 92% rename from docs/sources/architecture/components/store-gateway.md rename to docs/sources/operators-guide/architecture/components/store-gateway.md index 639f6dde9d..1d9f1d9626 100644 --- a/docs/sources/architecture/components/store-gateway.md +++ b/docs/sources/operators-guide/architecture/components/store-gateway.md @@ -1,10 +1,11 @@ --- -title: "Store-gateway" -description: "Overview of the store-gateway component." -weight: 10 +title: "Grafana Mimir store-gateway" +menuTitle: "Store-gateway" +description: "The store-gateway queries blocks from long-term storage." +weight: 70 --- -# Store-gateway +# Grafana Mimir store-gateway The store-gateway component, which is stateful, queries blocks from [long-term storage]({{< relref "./_index.md#long-term-storage" >}}). On the read path, the [querier]({{< relref "./querier.md" >}}) and the [ruler]({{< relref "./ruler.md">}}) use the store-gateway when handling the query, whether the query comes from a user or from when a rule is being evaluated. @@ -12,17 +13,17 @@ On the read path, the [querier]({{< relref "./querier.md" >}}) and the [ruler]({ To find the right blocks to look up at query time, the store-gateway requires an almost up-to-date view of the bucket in long-term storage. The store-gateway keeps the bucket view updated using one of the following options: -- Periodically downloading the [bucket index]({{< relref "../blocks-storage/bucket-index.md" >}}) (default) +- Periodically downloading the [bucket index]({{< relref "../bucket-index.md" >}}) (default) - Periodically scanning the bucket ### Bucket index enabled (default) -To discover each tenant's blocks and block deletion marks, at startup, store-gateways fetch the [bucket index]({{< relref "../blocks-storage/bucket-index.md" >}}) from long-term storage for each tenant that belongs to their [shard](#blocks-sharding-and-replication). +To discover each tenant's blocks and block deletion marks, at startup, store-gateways fetch the [bucket index]({{< relref "../bucket-index.md" >}}) from long-term storage for each tenant that belongs to their [shard](#blocks-sharding-and-replication). For each discovered block, the store-gateway downloads the [index header](#blocks-index-header) to the local disk. During this initial bucket-synchronization phase, the store-gateway’s `/ready` readiness probe endpoint reports a not-ready status. -For more information about the bucket index, refer to [bucket index]({{< relref "../blocks-storage/bucket-index.md" >}}). +For more information about the bucket index, refer to [bucket index]({{< relref "../bucket-index.md" >}}). Store-gateways periodically re-download the bucket index to obtain an updated view of the long-term storage and discover new blocks uploaded by ingesters and compactors, or deleted by compactors. @@ -34,7 +35,7 @@ When a query executes, store-gateway downloads chunks, but it does not fully dow To avoid the store-gateway having to re-download the index header during subsequent restarts, we recommend running the store-gateway with a persistent disk. For example, if you're running the Grafana Mimir cluster in Kubernetes, you can use a StatefulSet with a PersistentVolumeClaim for the store-gateways. -For more information about the index-header, refer to [Binary index-header documentation]({{< relref "../blocks-storage/binary-index-header.md" >}}). +For more information about the index-header, refer to [Binary index-header documentation]({{< relref "../binary-index-header.md" >}}). ### Bucket index disabled @@ -74,7 +75,7 @@ The `store_gateway_tenant_shard_size` in the limits overrides can override the s The default `-store-gateway.tenant-shard-size` value is 0, which means that tenant's blocks are sharded across all store-gateway instances. -For more information about shuffle sharding, refer to [configure shuffle sharding]({{< relref "../../operating/configuring-shuffle-sharding.md" >}}). +For more information about shuffle sharding, refer to [configure shuffle sharding]({{< relref "../../configuring/configuring-shuffle-sharding.md" >}}). ### Auto-forget @@ -85,7 +86,7 @@ The auto-forget feature works as follows: when an healthy store-gateway instance ### Zone-awareness -Store-gateway replication optionally supports [zone-awareness]({{< relref "../../operating/configuring-zone-aware-replication.md" >}}). When you enable zone-aware replication and the blocks replication factor is greater than 1, each block is replicated across store-gateway instances located in different availability zones. +Store-gateway replication optionally supports [zone-awareness]({{< relref "../../configuring/configuring-zone-aware-replication.md" >}}). When you enable zone-aware replication and the blocks replication factor is greater than 1, each block is replicated across store-gateway instances located in different availability zones. **To enable zone-aware replication for the store-gateways**: @@ -106,7 +107,7 @@ To enable waiting for the ring to be stable at startup, start the store-gateway ## Blocks index-header -The [index-header]({{< relref "../blocks-storage/binary-index-header.md" >}}) is a subset of the block index that the store-gateway downloads from long-term storage and keeps on the local disk. +The [index-header]({{< relref "../binary-index-header.md" >}}) is a subset of the block index that the store-gateway downloads from long-term storage and keeps on the local disk. Keeping the index-header on the local disk makes query execution faster. ### Index-header lazy loading @@ -127,7 +128,7 @@ The store-gateway supports the following type of caches: - [Metadata cache](#metadata-cache) We recommend that you use caching in a production environment. -For more information about configuring the cache, refer to [production tips]({{< relref "../../operating/production-tips.md#caching" >}}). +For more information about configuring the cache, refer to [production tips]({{< relref "../../running-production-environment/production-tips.md#caching" >}}). ### Index cache diff --git a/docs/sources/architecture/deployment-modes.md b/docs/sources/operators-guide/architecture/deployment-modes.md similarity index 92% rename from docs/sources/architecture/deployment-modes.md rename to docs/sources/operators-guide/architecture/deployment-modes.md index 71a430642f..90e1966ba9 100644 --- a/docs/sources/architecture/deployment-modes.md +++ b/docs/sources/operators-guide/architecture/deployment-modes.md @@ -1,10 +1,11 @@ --- -title: "Deployment modes" -description: "" -weight: 10 +title: "Grafana Mimir deployment modes" +menuTitle: "Deployment modes" +description: "You can deploy Grafana Mimir in either monolithic mode or microservices mode." +weight: 20 --- -# Deployment modes +# Grafana Mimir deployment modes You can deploy Grafana Mimir in one of two modes: diff --git a/docs/sources/architecture/hash-ring.md b/docs/sources/operators-guide/architecture/hash-ring.md similarity index 94% rename from docs/sources/architecture/hash-ring.md rename to docs/sources/operators-guide/architecture/hash-ring.md index 6eed68acee..15b7232cde 100644 --- a/docs/sources/architecture/hash-ring.md +++ b/docs/sources/operators-guide/architecture/hash-ring.md @@ -1,10 +1,11 @@ --- -title: "Hash ring" -description: "" -weight: 20 +title: "Grafana Mimir hash rings" +menuTitle: "Hash rings" +description: "Hash rings distribute sharding and replication work among Grafana Mimir components." +weight: 60 --- -# Hash ring +# Grafana Mimir hash rings Hash rings are a distributed [consistent hashing scheme](https://en.wikipedia.org/wiki/Consistent_hashing) and are widely used by Grafana Mimir for sharding and replication. @@ -93,5 +94,5 @@ Features that are built using the hash ring: - **Service discovery**: Instances can discover each other looking up who is registered in the ring. - **Heartbeating**: Instances periodically send an heartbeat to the ring to signal they're up and running. An instance is considered unhealthy if misses the heartbeat for some period of time. -- **Zone-aware replication**: Zone-aware replication is the replication of data across failure domains and can be optionally enabled in Grafana Mimir. For more information, see [configuring zone-aware replication]({{< relref "../operating/configuring-zone-aware-replication.md" >}}). -- **Shuffle sharding**: Grafana Mimir optionally supports shuffle sharding in a multi-tenant cluster, to reduce the blast radius of an outage and better isolate tenants. For more information, refer to [configure shuffle sharding]({{< relref "../operating/configuring-shuffle-sharding.md" >}}). +- **Zone-aware replication**: Zone-aware replication is the replication of data across failure domains and can be optionally enabled in Grafana Mimir. For more information, see [configuring zone-aware replication]({{< relref "../configuring/configuring-zone-aware-replication.md" >}}). +- **Shuffle sharding**: Grafana Mimir optionally supports shuffle sharding in a multi-tenant cluster, to reduce the blast radius of an outage and better isolate tenants. For more information, refer to [configure shuffle sharding]({{< relref "../configuring/configuring-shuffle-sharding.md" >}}). diff --git a/docs/sources/architecture/key-value-store.md b/docs/sources/operators-guide/architecture/key-value-store.md similarity index 77% rename from docs/sources/architecture/key-value-store.md rename to docs/sources/operators-guide/architecture/key-value-store.md index d3d56aade1..10f475f48c 100644 --- a/docs/sources/architecture/key-value-store.md +++ b/docs/sources/operators-guide/architecture/key-value-store.md @@ -1,16 +1,17 @@ --- -title: "Key-value store" -description: "" -weight: 20 +title: "Grafana Mimir key-value store" +menuTitle: "Key-value store" +description: "The key-value store is a database that stores data indexed by key." +weight: 70 --- -# Key-value store +# Grafana Mimir key-value store A key-value (KV) store is a database that stores data indexed by key. Grafana Mimir requires a key-value store for the following features: - [Hash ring]({{< relref "hash-ring.md" >}}) -- [(Optional) Distributor high-availability tracker]({{< relref "../operating/configuring-high-availability-deduplication.md" >}}) +- [(Optional) Distributor high-availability tracker]({{< relref "../configuring/configuring-high-availability-deduplication.md" >}}) ## Supported key-value store backends @@ -27,18 +28,18 @@ The data is shared between the instances using peer-to-peer communication and no We recommend that you use memberlist to run Grafana Mimir. -To configure memberlist, refer to [configuring hash rings]({{< relref "../operating/configuring-hash-rings.md" >}}). +To configure memberlist, refer to [configuring hash rings]({{< relref "../configuring/configuring-hash-rings.md" >}}). ### Consul Grafana Mimir supports [Consul](https://www.consul.io) as a backend KV store. If you want to use Consul, you must install it. The Grafana Mimir installation does not include Consul. -To configure Consul, refer to [configuring hash rings]({{< relref "../operating/configuring-hash-rings.md" >}}). +To configure Consul, refer to [configuring hash rings]({{< relref "../configuring/configuring-hash-rings.md" >}}). ### Etcd Grafana Mimir supports [etcd](https://etcd.io) as a backend KV store. If you want to use etcd, you must install it. The Grafana Mimir installation does not include etcd. -To configure etcd, refer to [configuring hash rings]({{< relref "../operating/configuring-hash-rings.md" >}}). +To configure etcd, refer to [configuring hash rings]({{< relref "../configuring/configuring-hash-rings.md" >}}). diff --git a/docs/sources/architecture/memberlist-and-the-gossip-protocol.md b/docs/sources/operators-guide/architecture/memberlist-and-the-gossip-protocol.md similarity index 87% rename from docs/sources/architecture/memberlist-and-the-gossip-protocol.md rename to docs/sources/operators-guide/architecture/memberlist-and-the-gossip-protocol.md index 3513072a85..0f58c184a0 100644 --- a/docs/sources/architecture/memberlist-and-the-gossip-protocol.md +++ b/docs/sources/operators-guide/architecture/memberlist-and-the-gossip-protocol.md @@ -1,10 +1,11 @@ --- -title: "Memberlist and the gossip protocol" -description: "" -weight: 20 +title: "Grafana Mimir memberlist and gossip protocol" +menuTitle: "Memberlist and gossip protocol" +description: "Memberlist manages Grafana Mimir cluster membership and node detection failure." +weight: 80 --- -# Memberlist and the gossip protocol +# Grafana Mimir memberlist and gossip protocol [Memberlist](https://github.com/hashicorp/memberlist) is a Go library that manages cluster membership, node failure detection, and message passing using a gossip-based protocol. Memberlist is eventually consistent and network partitions are partially tolerated by attempting to communicate to potentially dead nodes through multiple routes. @@ -15,7 +16,7 @@ When using a memberlist-based KV store, each instance maintains a copy of the ha Each Mimir instance updates a hash ring locally and uses memberlist to propagate the changes to other instances. Updates generated locally and updates received from other instances are merged together to form the current state of the ring on the instance. -To configure memberlist, refer to [configuring hash rings]({{< relref "../operating/configuring-hash-rings.md" >}}). +To configure memberlist, refer to [configuring hash rings]({{< relref "../configuring/configuring-hash-rings.md" >}}). ## How memberlist propagates hash ring changes diff --git a/docs/sources/architecture/components/query-frontend/query-sharding.md b/docs/sources/operators-guide/architecture/query-sharding.md similarity index 95% rename from docs/sources/architecture/components/query-frontend/query-sharding.md rename to docs/sources/operators-guide/architecture/query-sharding.md index dba9613649..b1294545aa 100644 --- a/docs/sources/architecture/components/query-frontend/query-sharding.md +++ b/docs/sources/operators-guide/architecture/query-sharding.md @@ -1,9 +1,11 @@ --- -title: About query sharding -weight: 10 +title: "Grafana Mimir query sharding" +menuTitle: "Query sharding" +description: "Query sharding parallelizes query execution." +weight: 90 --- -# About query sharding +# Grafana Mimir query sharding Mimir includes the ability to run a single query across multiple machines. This is achieved by breaking the dataset into smaller pieces. These smaller pieces are @@ -12,7 +14,7 @@ partial queries are distributed by the query-frontend to run on different queriers in parallel. The results of those partial queries are aggregated by the query-frontend to return the full query result. -## About query sharding at glance +## Query sharding at glance Not all queries are shardable. While the full query is not shardable, the inner parts of a query could still be shardable. @@ -88,7 +90,7 @@ sum( ) ``` -![Flow of a query with two shardable portions](../../../images/query-sharding.png) +![Flow of a query with two shardable portions](../../images/query-sharding.png) ## How to enable query sharding diff --git a/docs/sources/configuring/_index.md b/docs/sources/operators-guide/configuring/_index.md similarity index 56% rename from docs/sources/configuring/_index.md rename to docs/sources/operators-guide/configuring/_index.md index b83ef39bab..100d0e8f71 100644 --- a/docs/sources/configuring/_index.md +++ b/docs/sources/operators-guide/configuring/_index.md @@ -1,7 +1,8 @@ --- title: "Configuring Grafana Mimir" -description: "" -weight: 60 +menuTitle: "Configuration" +description: "This section provides links to Grafana Mimir configuration topics." +weight: 30 --- # Configuring Grafana Mimir diff --git a/docs/sources/configuring/about-configurations.md b/docs/sources/operators-guide/configuring/about-configurations.md similarity index 94% rename from docs/sources/configuring/about-configurations.md rename to docs/sources/operators-guide/configuring/about-configurations.md index 780ec15d60..5bdaf55fdf 100644 --- a/docs/sources/configuring/about-configurations.md +++ b/docs/sources/operators-guide/configuring/about-configurations.md @@ -1,10 +1,11 @@ --- -title: "About configurations" -description: "" +title: "About Grafana Mimir configurations" +menuTitle: "About configurations" +description: "Learn about Grafana Mimir configuration and key guidelines to consider." weight: 10 --- -# About configurations +# About Grafana Mimir configurations You can configure Grafana Mimir via a ([YAML](https://en.wikipedia.org/wiki/YAML)-based) configuration file or CLI (command-line-interface) flags. It is best to specify your configuration via the configuration file rather than CLI flags. Every parameter that is set in the configuration file can also be set via a corresponding CLI flag. If you specify both CLI flags and configuration parameters, CLI flags take precedence over corresponding values in a configuration file. You can specify the configuration file by using the `-config.file` CLI flag. diff --git a/docs/sources/configuring/about-dns-service-discovery.md b/docs/sources/operators-guide/configuring/about-dns-service-discovery.md similarity index 83% rename from docs/sources/configuring/about-dns-service-discovery.md rename to docs/sources/operators-guide/configuring/about-dns-service-discovery.md index 665f0eb84c..5b3a2ac0aa 100644 --- a/docs/sources/configuring/about-dns-service-discovery.md +++ b/docs/sources/operators-guide/configuring/about-dns-service-discovery.md @@ -1,10 +1,11 @@ --- -title: "About DNS service discovery" -description: "" -weight: 10 +title: "About Grafana Mimir DNS service discovery" +menuTitle: "About DNS service discovery" +description: "DNS service discovery finds addresses of backend services to which Grafana Mimir connects." +weight: 20 --- -# About DNS service discovery +# About Grafana Mimir DNS service discovery Some clients in Grafana Mimir support service discovery via DNS to find the addresses of backend servers to connect to. These clients support service discovery via DNS: diff --git a/docs/sources/configuring/about-ip-address-logging.md b/docs/sources/operators-guide/configuring/about-ip-address-logging.md similarity index 78% rename from docs/sources/configuring/about-ip-address-logging.md rename to docs/sources/operators-guide/configuring/about-ip-address-logging.md index 9c14d625dc..77acd4e2af 100644 --- a/docs/sources/configuring/about-ip-address-logging.md +++ b/docs/sources/operators-guide/configuring/about-ip-address-logging.md @@ -1,10 +1,11 @@ --- -title: "About IP address logging of a reverse proxy" -description: "" -weight: 10 +title: "About Grafana Mimir IP address logging of a reverse proxy" +menuTitle: "About IP address logging of a reverse proxy" +description: "Troubleshoot errors by logging IP addresses of reverse proxies." +weight: 30 --- -# About IP address logging of a reverse proxy +# About Grafana Mimir IP address logging of a reverse proxy If a reverse proxy is used in front of Mimir, it may be difficult to troubleshoot errors. The following settings can be used to log the IP address passed along by the reverse proxy in headers such as `X-Forwarded-For`. diff --git a/docs/sources/configuring/about-runtime-configuration.md b/docs/sources/operators-guide/configuring/about-runtime-configuration.md similarity index 94% rename from docs/sources/configuring/about-runtime-configuration.md rename to docs/sources/operators-guide/configuring/about-runtime-configuration.md index 5ffc0249e4..07388711fe 100644 --- a/docs/sources/configuring/about-runtime-configuration.md +++ b/docs/sources/operators-guide/configuring/about-runtime-configuration.md @@ -1,10 +1,11 @@ --- -title: "About runtime configuration" -description: "" -weight: 10 +title: "About Grafana Mimir runtime configuration" +menuTitle: "About runtime configuration" +description: "Runtime configuration enables you to change a subset of configurations without restarting Grafana Mimir." +weight: 40 --- -# About runtime configuration +# About Grafana Mimir runtime configuration A runtime configuration file is a file containing configuration, which is periodically reloaded while Mimir is running. It allows you to change a subset of Grafana Mimir’s configuration without having to restart the Grafana Mimir component or instance. diff --git a/docs/sources/operating/about-tenant-ids.md b/docs/sources/operators-guide/configuring/about-tenant-ids.md similarity index 83% rename from docs/sources/operating/about-tenant-ids.md rename to docs/sources/operators-guide/configuring/about-tenant-ids.md index 3b2dc6f4dd..1b84b9824b 100644 --- a/docs/sources/operating/about-tenant-ids.md +++ b/docs/sources/operators-guide/configuring/about-tenant-ids.md @@ -1,10 +1,11 @@ --- -title: "About tenant IDs" -description: "" -weight: 30 +title: "About Grafana Mimir tenant IDs" +menuTitle: "About tenant IDs" +description: "Learn about tenant ID restrictions." +weight: 10 --- -# About tenant IDs +# About Grafana Mimir tenant IDs Within a Grafana Mimir cluster, the tenant ID is the unique identifier of a tenant. For information about how Grafana Mimir components use tenant IDs, refer to [Authentication and authorization]({{< relref "../securing/authentication-and-authorization.md" >}}). diff --git a/docs/sources/configuring/about-versioning.md b/docs/sources/operators-guide/configuring/about-versioning.md similarity index 95% rename from docs/sources/configuring/about-versioning.md rename to docs/sources/operators-guide/configuring/about-versioning.md index 30724dfa61..712c870b13 100644 --- a/docs/sources/configuring/about-versioning.md +++ b/docs/sources/operators-guide/configuring/about-versioning.md @@ -1,10 +1,11 @@ --- -title: "About versioning" -description: "" -weight: 10 +title: "About Grafana Mimir versioning" +menuTitle: "About versioning" +description: "Learn about guarantees for this Grafana Mimir major release." +weight: 50 --- -# About versioning +# About Grafana Mimir versioning This topic describes our guarantees for this Grafana Mimir major release. diff --git a/docs/sources/operating/configuring-hash-rings.md b/docs/sources/operators-guide/configuring/configuring-hash-rings.md similarity index 97% rename from docs/sources/operating/configuring-hash-rings.md rename to docs/sources/operators-guide/configuring/configuring-hash-rings.md index f2a5edb2c8..dd08c562aa 100644 --- a/docs/sources/operating/configuring-hash-rings.md +++ b/docs/sources/operators-guide/configuring/configuring-hash-rings.md @@ -1,10 +1,11 @@ --- -title: "Configuring hash rings" -description: "How to configure Grafana Mimir hash ring." -weight: 30 +title: "Configuring Grafana Mimir hash rings" +menuTitle: "Configuring hash rings" +description: "Learn how to configure Grafana Mimir hash rings." +weight: 60 --- -# Configuring hash rings +# Configuring Grafana Mimir hash rings [Hash rings]({{< relref "../architecture/hash-ring.md" >}}) are a distributed consistent hashing scheme and are widely used by Grafana Mimir for sharding and replication. diff --git a/docs/sources/operating/configuring-high-availability-deduplication.md b/docs/sources/operators-guide/configuring/configuring-high-availability-deduplication.md similarity index 96% rename from docs/sources/operating/configuring-high-availability-deduplication.md rename to docs/sources/operators-guide/configuring/configuring-high-availability-deduplication.md index 10e9700548..f61b715247 100644 --- a/docs/sources/operating/configuring-high-availability-deduplication.md +++ b/docs/sources/operators-guide/configuring/configuring-high-availability-deduplication.md @@ -1,10 +1,11 @@ --- -title: "Configuring high-availability deduplication" -description: "How to configure Grafana Mimir to handle HA Prometheus server deduplication." -weight: 30 +title: "Configuring Grafana Mimir high-availability deduplication" +menuTitle: "Configuring high-availability deduplication" +description: "Learn how to configure Grafana Mimir to handle HA Prometheus server deduplication." +weight: 70 --- -# Configuring high-availability deduplication +# Configuring Grafana Mimir high-availability deduplication You can have more than one Prometheus instance that scrapes the same metrics for redundancy. Grafana Mimir already performs replication for redundancy, so you do not need to ingest the same data twice. In Grafana Mimir, you can deduplicate the data that you receive from HA pairs of Prometheus instances. diff --git a/docs/sources/operating/configuring-shuffle-sharding.md b/docs/sources/operators-guide/configuring/configuring-shuffle-sharding.md similarity index 98% rename from docs/sources/operating/configuring-shuffle-sharding.md rename to docs/sources/operators-guide/configuring/configuring-shuffle-sharding.md index 1f5b1b77d6..da556d2e93 100644 --- a/docs/sources/operating/configuring-shuffle-sharding.md +++ b/docs/sources/operators-guide/configuring/configuring-shuffle-sharding.md @@ -1,10 +1,11 @@ --- -title: "Configuring shuffle sharding" -description: "How to configure shuffle sharding." -weight: 30 +title: "Configuring Grafana Mimir shuffle sharding" +menuTitle: "Configuring shuffle sharding" +description: "Learn how to configure shuffle sharding." +weight: 80 --- -# Configuring shuffle sharding +# Configuring Grafana Mimir shuffle sharding Grafana Mimir leverages sharding to horizontally scale both single- and multi-tenant clusters beyond the capacity of a single node. @@ -22,7 +23,7 @@ In a multi-tenant cluster this default (`0`) value introduces the following down Configuring a shard size value higher than `0` enables shuffle sharding. The goal of shuffle sharding is to reduce the blast radius of an outage and better isolate tenants. -## What is shuffle sharding +## About shuffle sharding Shuffle sharding is a technique that isolates different tenant's workloads and gives each tenant a single-tenant experience, even if they're running in a shared cluster. For more information about how AWS describes shuffle sharding, refer to [What is shuffle sharding?](https://aws.amazon.com/builders-library/workload-isolation-using-shuffle-sharding/). diff --git a/docs/sources/architecture/components/query-frontend/using-the-query-frontend-with-prometheus.md b/docs/sources/operators-guide/configuring/configuring-the-query-frontend-work-with-prometheus.md similarity index 79% rename from docs/sources/architecture/components/query-frontend/using-the-query-frontend-with-prometheus.md rename to docs/sources/operators-guide/configuring/configuring-the-query-frontend-work-with-prometheus.md index 571334e724..bbb0272da4 100644 --- a/docs/sources/architecture/components/query-frontend/using-the-query-frontend-with-prometheus.md +++ b/docs/sources/operators-guide/configuring/configuring-the-query-frontend-work-with-prometheus.md @@ -1,17 +1,18 @@ --- -title: "Using the query-frontend with Prometheus" -description: "" -weight: 10 +title: "Configuring the Grafana Mimir query-frontend to work with Prometheus" +menuTitle: "Configuring the query-frontend to work with Prometheus" +description: "Learn how to configure the query-frontend to work with Prometheus." +weight: 90 --- -# Using the query-frontend with Prometheus +# Configuring the Grafana Mimir query-frontend to work with Prometheus You can use the Mimir query-frontend with any Prometheus-API compatible service, including Prometheus and Thanos. Use this config file to get the benefits of query parallelisation and caching. -[embedmd]:# (../../../../configurations/prometheus-frontend.yml) +[embedmd]:# (../../../configurations/prometheus-frontend.yml) ```yml # You can use the Mimir query frontend with any Prometheus-API compatible # service, including Prometheus and Thanos. Use this config file to get diff --git a/docs/sources/operating/configuring-tracing.md b/docs/sources/operators-guide/configuring/configuring-tracing.md similarity index 88% rename from docs/sources/operating/configuring-tracing.md rename to docs/sources/operators-guide/configuring/configuring-tracing.md index ebc9cea831..4d76b29756 100644 --- a/docs/sources/operating/configuring-tracing.md +++ b/docs/sources/operators-guide/configuring/configuring-tracing.md @@ -1,10 +1,11 @@ --- -title: "Configuring tracing" -description: "How to configure Grafana Mimir to send traces to Jaeger." -weight: 30 +title: "Configuring Grafana Mimir tracing" +menuTitle: "Configuring tracing" +description: "Learn how to configure Grafana Mimir to send traces to Jaeger." +weight: 100 --- -# Configuring tracing +# Configuring Grafana Mimir tracing Grafana Mimir uses [Jaeger](https://www.jaegertracing.io/) to implement distributed tracing. Jaeger is a valuable tool for troubleshooting the behavior of diff --git a/docs/sources/operating/configuring-zone-aware-replication.md b/docs/sources/operators-guide/configuring/configuring-zone-aware-replication.md similarity index 94% rename from docs/sources/operating/configuring-zone-aware-replication.md rename to docs/sources/operators-guide/configuring/configuring-zone-aware-replication.md index 5d2c3caed0..475e899d5d 100644 --- a/docs/sources/operating/configuring-zone-aware-replication.md +++ b/docs/sources/operators-guide/configuring/configuring-zone-aware-replication.md @@ -1,10 +1,11 @@ --- -title: "Configuring zone-aware replication" -description: "" -weight: 30 +title: "Configuring Grafana Mimir zone-aware replication" +menuTitle: "Configuring zone-aware replication" +description: "Learn how to replicate data across failure domains." +weight: 110 --- -# Configuring zone-aware replication +# Configuring Grafana Mimir zone-aware replication Zone-aware replication is the replication of data across failure domains. Zone-aware replication helps to avoid data loss during a domain outage. diff --git a/docs/sources/operating/mirroring-requests-to-a-second-cluster.md b/docs/sources/operators-guide/configuring/mirroring-requests-to-a-second-cluster.md similarity index 92% rename from docs/sources/operating/mirroring-requests-to-a-second-cluster.md rename to docs/sources/operators-guide/configuring/mirroring-requests-to-a-second-cluster.md index 56c9ef350a..e3f2debf7d 100644 --- a/docs/sources/operating/mirroring-requests-to-a-second-cluster.md +++ b/docs/sources/operators-guide/configuring/mirroring-requests-to-a-second-cluster.md @@ -1,10 +1,11 @@ --- -title: "Mirroring requests to a second cluster" -description: "" -weight: 40 +title: "Mirroring requests to a second Grafana Mimir cluster" +menuTitle: "Mirroring requests to a second cluster" +description: "Learn how to set up a testing cluster that receives the same series of the primary cluster." +weight: 120 --- -# Mirroring requests to a second cluster +# Mirroring requests to a second Grafana Mimir cluster Use request mirroring when you want to set up a Grafana Mimir testing cluster that receives the same series that are ingested by a primary cluster and when you don't have control over the Prometheus remote write configuration. @@ -35,7 +36,7 @@ The following diagram illustrates a simplified network structure. The following Envoy configuration shows an example that includes two Grafana Mimir clusters. Envoy listens on port `9900` and proxies all requests to `mimir-primary:8080`, while also mirroring them to `mimir-secondary:8080`. -[embedmd]:# (../../configurations/requests-mirroring-envoy.yaml) +[embedmd]:# (../../../configurations/requests-mirroring-envoy.yaml) ```yaml admin: # No access logs. diff --git a/docs/sources/configuring/reference-configuration-parameters.md b/docs/sources/operators-guide/configuring/reference-configuration-parameters.md similarity index 99% rename from docs/sources/configuring/reference-configuration-parameters.md rename to docs/sources/operators-guide/configuring/reference-configuration-parameters.md index 2e5b3323da..4a0eed1773 100644 --- a/docs/sources/configuring/reference-configuration-parameters.md +++ b/docs/sources/operators-guide/configuring/reference-configuration-parameters.md @@ -1,10 +1,11 @@ --- -title: "Configuration parameters" -description: "" -weight: 30 +title: "Grafana Mimir configuration parameters" +menuTitle: "Configuration parameters" +description: "Describes parameters used to configure Grafana Mimir." +weight: 130 --- -# Configuration parameters +# Grafana Mimir configuration parameters diff --git a/docs/sources/configuring/reference-configuration-parameters.template b/docs/sources/operators-guide/configuring/reference-configuration-parameters.template similarity index 95% rename from docs/sources/configuring/reference-configuration-parameters.template rename to docs/sources/operators-guide/configuring/reference-configuration-parameters.template index a5efc70474..265c0947d1 100644 --- a/docs/sources/configuring/reference-configuration-parameters.template +++ b/docs/sources/operators-guide/configuring/reference-configuration-parameters.template @@ -1,10 +1,11 @@ --- -title: "Configuration parameters" -description: "" -weight: 30 +title: "Grafana Mimir configuration parameters" +menuTitle: "Configuration parameters" +description: "Describes parameters used to configure Grafana Mimir." +weight: 130 --- -# Configuration parameters +# Grafana Mimir configuration parameters {{ .GeneratedFileWarning }} diff --git a/docs/sources/getting-started/_index.md b/docs/sources/operators-guide/getting-started/_index.md similarity index 91% rename from docs/sources/getting-started/_index.md rename to docs/sources/operators-guide/getting-started/_index.md index 860fb5a744..8c203f2c2f 100644 --- a/docs/sources/getting-started/_index.md +++ b/docs/sources/operators-guide/getting-started/_index.md @@ -1,12 +1,13 @@ --- title: "Getting started with Grafana Mimir" -description: "" -weight: 20 +menuTitle: "Getting started" +description: "Learn how to get started with Grafana Mimir." +weight: 10 --- # Getting started with Grafana Mimir -These instructions focus on deploying Grafana Mimir as a [monolith]({{}}), which is designed for users getting started with the project. For more information about the different ways to deploy Grafana Mimir, refer to [Deployment Modes]({{}}). +These instructions focus on deploying Grafana Mimir as a [monolith]({{< relref "../architecture/deployment-modes.md#monolithic-mode" >}}), which is designed for users getting started with the project. For more information about the different ways to deploy Grafana Mimir, refer to [Deployment Modes]({{< relref "../architecture/deployment-modes.md" >}}). ## Before you begin @@ -37,7 +38,7 @@ chmod +x mimir To run Grafana Mimir as a monolith and with local filesystem storage, write the following configuration YAML to a file called `demo.yaml`: -[embedmd]:# (../../configurations/demo.yaml) +[embedmd]:# (../../../configurations/demo.yaml) ```yaml # Do not use this configuration in production. # It is for demonstration purposes only. diff --git a/docs/sources/images/architecture.png b/docs/sources/operators-guide/images/architecture.png similarity index 100% rename from docs/sources/images/architecture.png rename to docs/sources/operators-guide/images/architecture.png diff --git a/docs/sources/images/avoid-querying-non-compacted-blocks.png b/docs/sources/operators-guide/images/avoid-querying-non-compacted-blocks.png similarity index 100% rename from docs/sources/images/avoid-querying-non-compacted-blocks.png rename to docs/sources/operators-guide/images/avoid-querying-non-compacted-blocks.png diff --git a/docs/sources/images/bucket-index-querier-workflow.png b/docs/sources/operators-guide/images/bucket-index-querier-workflow.png similarity index 100% rename from docs/sources/images/bucket-index-querier-workflow.png rename to docs/sources/operators-guide/images/bucket-index-querier-workflow.png diff --git a/docs/sources/images/compactor-horizontal-and-vertical-compaction.png b/docs/sources/operators-guide/images/compactor-horizontal-and-vertical-compaction.png similarity index 100% rename from docs/sources/images/compactor-horizontal-and-vertical-compaction.png rename to docs/sources/operators-guide/images/compactor-horizontal-and-vertical-compaction.png diff --git a/docs/sources/images/compactor-split-and-merge.png b/docs/sources/operators-guide/images/compactor-split-and-merge.png similarity index 100% rename from docs/sources/images/compactor-split-and-merge.png rename to docs/sources/operators-guide/images/compactor-split-and-merge.png diff --git a/docs/sources/images/dashboards/mimir-alertmanager-resources.png b/docs/sources/operators-guide/images/dashboards/mimir-alertmanager-resources.png similarity index 100% rename from docs/sources/images/dashboards/mimir-alertmanager-resources.png rename to docs/sources/operators-guide/images/dashboards/mimir-alertmanager-resources.png diff --git a/docs/sources/images/dashboards/mimir-alertmanager.png b/docs/sources/operators-guide/images/dashboards/mimir-alertmanager.png similarity index 100% rename from docs/sources/images/dashboards/mimir-alertmanager.png rename to docs/sources/operators-guide/images/dashboards/mimir-alertmanager.png diff --git a/docs/sources/images/dashboards/mimir-compactor-resources.png b/docs/sources/operators-guide/images/dashboards/mimir-compactor-resources.png similarity index 100% rename from docs/sources/images/dashboards/mimir-compactor-resources.png rename to docs/sources/operators-guide/images/dashboards/mimir-compactor-resources.png diff --git a/docs/sources/images/dashboards/mimir-compactor.png b/docs/sources/operators-guide/images/dashboards/mimir-compactor.png similarity index 100% rename from docs/sources/images/dashboards/mimir-compactor.png rename to docs/sources/operators-guide/images/dashboards/mimir-compactor.png diff --git a/docs/sources/images/dashboards/mimir-config.png b/docs/sources/operators-guide/images/dashboards/mimir-config.png similarity index 100% rename from docs/sources/images/dashboards/mimir-config.png rename to docs/sources/operators-guide/images/dashboards/mimir-config.png diff --git a/docs/sources/images/dashboards/mimir-object-store.png b/docs/sources/operators-guide/images/dashboards/mimir-object-store.png similarity index 100% rename from docs/sources/images/dashboards/mimir-object-store.png rename to docs/sources/operators-guide/images/dashboards/mimir-object-store.png diff --git a/docs/sources/images/dashboards/mimir-overrides.png b/docs/sources/operators-guide/images/dashboards/mimir-overrides.png similarity index 100% rename from docs/sources/images/dashboards/mimir-overrides.png rename to docs/sources/operators-guide/images/dashboards/mimir-overrides.png diff --git a/docs/sources/images/dashboards/mimir-queries.png b/docs/sources/operators-guide/images/dashboards/mimir-queries.png similarity index 100% rename from docs/sources/images/dashboards/mimir-queries.png rename to docs/sources/operators-guide/images/dashboards/mimir-queries.png diff --git a/docs/sources/images/dashboards/mimir-reads-networking.png b/docs/sources/operators-guide/images/dashboards/mimir-reads-networking.png similarity index 100% rename from docs/sources/images/dashboards/mimir-reads-networking.png rename to docs/sources/operators-guide/images/dashboards/mimir-reads-networking.png diff --git a/docs/sources/images/dashboards/mimir-reads-resources.png b/docs/sources/operators-guide/images/dashboards/mimir-reads-resources.png similarity index 100% rename from docs/sources/images/dashboards/mimir-reads-resources.png rename to docs/sources/operators-guide/images/dashboards/mimir-reads-resources.png diff --git a/docs/sources/images/dashboards/mimir-reads.png b/docs/sources/operators-guide/images/dashboards/mimir-reads.png similarity index 100% rename from docs/sources/images/dashboards/mimir-reads.png rename to docs/sources/operators-guide/images/dashboards/mimir-reads.png diff --git a/docs/sources/images/dashboards/mimir-rollout-progress.png b/docs/sources/operators-guide/images/dashboards/mimir-rollout-progress.png similarity index 100% rename from docs/sources/images/dashboards/mimir-rollout-progress.png rename to docs/sources/operators-guide/images/dashboards/mimir-rollout-progress.png diff --git a/docs/sources/images/dashboards/mimir-ruler.png b/docs/sources/operators-guide/images/dashboards/mimir-ruler.png similarity index 100% rename from docs/sources/images/dashboards/mimir-ruler.png rename to docs/sources/operators-guide/images/dashboards/mimir-ruler.png diff --git a/docs/sources/images/dashboards/mimir-scaling.png b/docs/sources/operators-guide/images/dashboards/mimir-scaling.png similarity index 100% rename from docs/sources/images/dashboards/mimir-scaling.png rename to docs/sources/operators-guide/images/dashboards/mimir-scaling.png diff --git a/docs/sources/images/dashboards/mimir-tenants.png b/docs/sources/operators-guide/images/dashboards/mimir-tenants.png similarity index 100% rename from docs/sources/images/dashboards/mimir-tenants.png rename to docs/sources/operators-guide/images/dashboards/mimir-tenants.png diff --git a/docs/sources/images/dashboards/mimir-writes-networking.png b/docs/sources/operators-guide/images/dashboards/mimir-writes-networking.png similarity index 100% rename from docs/sources/images/dashboards/mimir-writes-networking.png rename to docs/sources/operators-guide/images/dashboards/mimir-writes-networking.png diff --git a/docs/sources/images/dashboards/mimir-writes-resources.png b/docs/sources/operators-guide/images/dashboards/mimir-writes-resources.png similarity index 100% rename from docs/sources/images/dashboards/mimir-writes-resources.png rename to docs/sources/operators-guide/images/dashboards/mimir-writes-resources.png diff --git a/docs/sources/images/dashboards/mimir-writes.png b/docs/sources/operators-guide/images/dashboards/mimir-writes.png similarity index 100% rename from docs/sources/images/dashboards/mimir-writes.png rename to docs/sources/operators-guide/images/dashboards/mimir-writes.png diff --git a/docs/sources/images/hash-ring-with-replication.png b/docs/sources/operators-guide/images/hash-ring-with-replication.png similarity index 100% rename from docs/sources/images/hash-ring-with-replication.png rename to docs/sources/operators-guide/images/hash-ring-with-replication.png diff --git a/docs/sources/images/hash-ring-without-replication.png b/docs/sources/operators-guide/images/hash-ring-without-replication.png similarity index 100% rename from docs/sources/images/hash-ring-without-replication.png rename to docs/sources/operators-guide/images/hash-ring-without-replication.png diff --git a/docs/sources/images/microservices-mode.svg b/docs/sources/operators-guide/images/microservices-mode.svg similarity index 100% rename from docs/sources/images/microservices-mode.svg rename to docs/sources/operators-guide/images/microservices-mode.svg diff --git a/docs/sources/images/mirroring-envoy.png b/docs/sources/operators-guide/images/mirroring-envoy.png similarity index 100% rename from docs/sources/images/mirroring-envoy.png rename to docs/sources/operators-guide/images/mirroring-envoy.png diff --git a/docs/sources/images/monolithic-mode.svg b/docs/sources/operators-guide/images/monolithic-mode.svg similarity index 100% rename from docs/sources/images/monolithic-mode.svg rename to docs/sources/operators-guide/images/monolithic-mode.svg diff --git a/docs/sources/images/param-states.png b/docs/sources/operators-guide/images/param-states.png similarity index 100% rename from docs/sources/images/param-states.png rename to docs/sources/operators-guide/images/param-states.png diff --git a/docs/sources/images/query-frontend-architecture.png b/docs/sources/operators-guide/images/query-frontend-architecture.png similarity index 100% rename from docs/sources/images/query-frontend-architecture.png rename to docs/sources/operators-guide/images/query-frontend-architecture.png diff --git a/docs/sources/images/query-scheduler-architecture.png b/docs/sources/operators-guide/images/query-scheduler-architecture.png similarity index 100% rename from docs/sources/images/query-scheduler-architecture.png rename to docs/sources/operators-guide/images/query-scheduler-architecture.png diff --git a/docs/sources/images/query-sharding.png b/docs/sources/operators-guide/images/query-sharding.png similarity index 100% rename from docs/sources/images/query-sharding.png rename to docs/sources/operators-guide/images/query-sharding.png diff --git a/docs/sources/images/query-sharding.tex b/docs/sources/operators-guide/images/query-sharding.tex similarity index 100% rename from docs/sources/images/query-sharding.tex rename to docs/sources/operators-guide/images/query-sharding.tex diff --git a/docs/sources/images/read-path.png b/docs/sources/operators-guide/images/read-path.png similarity index 100% rename from docs/sources/images/read-path.png rename to docs/sources/operators-guide/images/read-path.png diff --git a/docs/sources/images/scaled-monolithic-mode.svg b/docs/sources/operators-guide/images/scaled-monolithic-mode.svg similarity index 100% rename from docs/sources/images/scaled-monolithic-mode.svg rename to docs/sources/operators-guide/images/scaled-monolithic-mode.svg diff --git a/docs/sources/images/shuffle-sharding-probability.png b/docs/sources/operators-guide/images/shuffle-sharding-probability.png similarity index 100% rename from docs/sources/images/shuffle-sharding-probability.png rename to docs/sources/operators-guide/images/shuffle-sharding-probability.png diff --git a/docs/sources/images/write-path.png b/docs/sources/operators-guide/images/write-path.png similarity index 100% rename from docs/sources/images/write-path.png rename to docs/sources/operators-guide/images/write-path.png diff --git a/docs/sources/reference-glossary.md b/docs/sources/operators-guide/reference-glossary.md similarity index 90% rename from docs/sources/reference-glossary.md rename to docs/sources/operators-guide/reference-glossary.md index 01a85ad695..cf7abd89ad 100644 --- a/docs/sources/reference-glossary.md +++ b/docs/sources/operators-guide/reference-glossary.md @@ -1,16 +1,17 @@ --- -title: "Reference: Glossary" -description: "" +title: "Reference: Grafana Mimir glossary" +menuTitle: "Reference: Glossary" +description: "Grafana Mimir glossary terms." weight: 100 --- -# Reference: Glossary +# Reference: Grafana Mimir glossary ## Blocks storage Blocks storage is the Mimir storage engine based on the Prometheus TSDB. Grafana Mimir stores blocks in object stores such as AWS S3, Google Cloud Storage (GCS), Azure blob storage, or OpenStack Object Storage (Swift). -For the full list of supported backends and more information, refer to [Blocks storage]({{< relref "architecture/blocks-storage/_index.md" >}}) +For a complete list of supported backends, refer to [About the architecture]({{< relref "architecture/about-grafana-mimir-architecture.md" >}}) ## Chunk @@ -44,13 +45,13 @@ Flushing is the operation run by ingesters to offload time series from memory an ## Gossip -Gossip is a protocol by which components coordinate without the need for a centralized [key-value store]({{}}). +Gossip is a protocol by which components coordinate without the need for a centralized [key-value store]({{< relref "#key-value-store" >}}). ## HA tracker The HA tracker is a feature of the Grafana Mimir distributor. It deduplicates time series received from two or more Prometheus servers that are configured to scrape the same targets. -To configure HA tracking, refer to [Configuring high-availability deduplication]({{< relref "operating/configuring-high-availability-deduplication.md" >}}). +To configure HA tracking, refer to [Configuring high-availability deduplication]({{< relref "configuring/configuring-high-availability-deduplication.md" >}}). ## Hash ring diff --git a/docs/sources/reference-http-api/_index.md b/docs/sources/operators-guide/reference-http-api/_index.md similarity index 99% rename from docs/sources/reference-http-api/_index.md rename to docs/sources/operators-guide/reference-http-api/_index.md index c93305c583..638fac7c0b 100644 --- a/docs/sources/reference-http-api/_index.md +++ b/docs/sources/operators-guide/reference-http-api/_index.md @@ -1,9 +1,12 @@ --- -title: "Reference: HTTP API" -description: "" +title: "Reference: Grafana Mimir HTTP API" +menuTitle: "Reference: HTTP API" +description: "Use the HTTP API to write and query time-series data and operate a Grafana Mimir cluster." weight: 100 --- +# Reference: Grafana Mimir HTTP API + Grafana Mimir exposes an HTTP API that you can use to write and query time series data, and operate the cluster. This document groups API endpoints by service. Note that the API endpoints are exposed when you run Grafana Mimir in microservices mode and monolithic mode: diff --git a/docs/sources/operators-guide/running-production-environment/_index.md b/docs/sources/operators-guide/running-production-environment/_index.md new file mode 100644 index 0000000000..fed39b8c7e --- /dev/null +++ b/docs/sources/operators-guide/running-production-environment/_index.md @@ -0,0 +1,12 @@ +--- +title: "Running Grafana Mimir in production" +menuTitle: "Running Grafana Mimir in production" +description: "Learn how to run Grafana Mimir in production." +weight: 80 +--- + +# Running Grafana Mimir in production + +The following topics provide guidance for you to consider when you run Grafana Mimir in a production environment. + +{{< section >}} diff --git a/docs/sources/operating/performing-a-rolling-update.md b/docs/sources/operators-guide/running-production-environment/performing-a-rolling-update.md similarity index 94% rename from docs/sources/operating/performing-a-rolling-update.md rename to docs/sources/operators-guide/running-production-environment/performing-a-rolling-update.md index e799139ae0..c0d5647015 100644 --- a/docs/sources/operating/performing-a-rolling-update.md +++ b/docs/sources/operators-guide/running-production-environment/performing-a-rolling-update.md @@ -1,10 +1,11 @@ --- -title: "Performing a rolling update" -description: "" -weight: 40 +title: "Performing a rolling update to Grafana Mimir" +menuTitle: "Performing a rolling update" +description: "Learn how to perform a rolling update to Grafana Mimir." +weight: 20 --- -# Performing a rolling update +# Performing a rolling update to Grafana Mimir You can use a rolling update strategy to apply configuration changes to Grafana Mimir and to upgrade Grafana Mimir to a newer version. A rolling update results in no downtime to Grafana Mimir. diff --git a/docs/sources/operating/planning-capacity.md b/docs/sources/operators-guide/running-production-environment/planning-capacity.md similarity index 97% rename from docs/sources/operating/planning-capacity.md rename to docs/sources/operators-guide/running-production-environment/planning-capacity.md index 9a3fc0189c..f9b6164b9c 100644 --- a/docs/sources/operating/planning-capacity.md +++ b/docs/sources/operators-guide/running-production-environment/planning-capacity.md @@ -1,10 +1,11 @@ --- -title: "Planning capacity" -description: "How to plan the resources required for a Grafana Mimir deployment." +title: "Planning Grafana Mimir capacity" +menuTitle: "Planning capacity" +description: "Learn how to plan the resources required to deploy Grafana Mimir." weight: 10 --- -# Planning capacity +# Planning Grafana Mimir capacity The information that follows is an overview about the CPU, memory, and disk space that Grafana Mimir requires at scale. You can get a rough idea about the required resources, rather than a prescriptive recommendation about the exact amount of CPU, memory, and disk space. diff --git a/docs/sources/operating/production-tips.md b/docs/sources/operators-guide/running-production-environment/production-tips.md similarity index 97% rename from docs/sources/operating/production-tips.md rename to docs/sources/operators-guide/running-production-environment/production-tips.md index 5be05b47cc..18d6e22cdc 100644 --- a/docs/sources/operating/production-tips.md +++ b/docs/sources/operators-guide/running-production-environment/production-tips.md @@ -1,10 +1,11 @@ --- -title: "Production tips" -description: "" +title: "Grafana Mimir production tips" +menuTitle: "Production tips" +description: "Learn tips for setting up a production Grafana Mimir cluster." weight: 40 --- -# Production tips +# Grafana Mimir production tips This topic provides tips and techniques for you to consider when setting up a production Grafana Mimir cluster. diff --git a/docs/sources/operating/scaling-out.md b/docs/sources/operators-guide/running-production-environment/scaling-out.md similarity index 98% rename from docs/sources/operating/scaling-out.md rename to docs/sources/operators-guide/running-production-environment/scaling-out.md index c9213a7c73..b00ccc02e2 100644 --- a/docs/sources/operating/scaling-out.md +++ b/docs/sources/operators-guide/running-production-environment/scaling-out.md @@ -1,7 +1,8 @@ --- title: "Scaling out Grafana Mimir" -description: "" -weight: 40 +menuTitle: "Scaling out Grafana Mimir" +description: "Learn how to scale out Grafana Mimir." +weight: 30 --- # Scaling out Grafana Mimir diff --git a/docs/sources/operators-guide/securing/_index.md b/docs/sources/operators-guide/securing/_index.md new file mode 100644 index 0000000000..7bb6e09d9c --- /dev/null +++ b/docs/sources/operators-guide/securing/_index.md @@ -0,0 +1,12 @@ +--- +title: "Securing Grafana Mimir" +menuTitle: "Securing Grafana Mimir" +description: "Learn how to secure Grafana Mimir data and communication paths." +weight: 70 +--- + +# Securing Grafana Mimir + +These sections explain how to secure Grafana Mimir data and communication paths. + +{{< section >}} diff --git a/docs/sources/securing/authentication-and-authorization.md b/docs/sources/operators-guide/securing/authentication-and-authorization.md similarity index 89% rename from docs/sources/securing/authentication-and-authorization.md rename to docs/sources/operators-guide/securing/authentication-and-authorization.md index 6e66324155..d2f36b9ec9 100644 --- a/docs/sources/securing/authentication-and-authorization.md +++ b/docs/sources/operators-guide/securing/authentication-and-authorization.md @@ -1,10 +1,11 @@ --- -title: "Authentication and authorization" -description: "" -weight: 10 +title: "Grafana Mimir authentication and authorization" +menuTitle: "Authentication and authorization" +description: "Learn how to configure and run Grafana Mimir with multi-tenancy." +weight: 20 --- -# Authentication and authorization +# Grafana Mimir authentication and authorization Grafana Mimir is a multi-tenant system where tenants can query metrics and alerts that include their tenant ID. The query takes the tenant ID from the `X-Scope-OrgID` parameter that exists in the HTTP header of each request. @@ -61,4 +62,4 @@ After you disable multi-tenancy, Grafana Mimir components internally set the ten To set an alternative tenant ID, use the `-auth.no-auth-tenant` flag. -> **Note**: Not all tenant IDs are valid. For more inforamtion about tenant ID restrictions, refer to [About tenant IDs]({{< relref "../operating/about-tenant-ids.md" >}}). +> **Note**: Not all tenant IDs are valid. For more inforamtion about tenant ID restrictions, refer to [About tenant IDs]({{< relref "../configuring/about-tenant-ids.md" >}}). diff --git a/docs/sources/securing/encrypting-data-at-rest.md b/docs/sources/operators-guide/securing/encrypting-data-at-rest.md similarity index 95% rename from docs/sources/securing/encrypting-data-at-rest.md rename to docs/sources/operators-guide/securing/encrypting-data-at-rest.md index 34c7e246d4..5606bfa6e2 100644 --- a/docs/sources/securing/encrypting-data-at-rest.md +++ b/docs/sources/operators-guide/securing/encrypting-data-at-rest.md @@ -1,10 +1,11 @@ --- -title: "Encrypting data at rest" -description: "How to configure object storage encryption." -weight: 10 +title: "Encrypting Grafana Mimir data at rest" +menuTitle: "Encrypting data at rest" +description: "Learn how to configure object storage encryption." +weight: 30 --- -# Encrypting data at rest +# Encrypting Grafana Mimir data at rest Grafana Mimir supports encrypting data at rest in object storage using server-side encryption (SSE). Configuration of SSE depends on your storage backend. diff --git a/docs/sources/securing/securing-alertmanager.md b/docs/sources/operators-guide/securing/securing-alertmanager.md similarity index 88% rename from docs/sources/securing/securing-alertmanager.md rename to docs/sources/operators-guide/securing/securing-alertmanager.md index 2f55d2dda1..34f926f742 100644 --- a/docs/sources/securing/securing-alertmanager.md +++ b/docs/sources/operators-guide/securing/securing-alertmanager.md @@ -1,10 +1,11 @@ --- -title: "Securing Alertmanager" -description: "" -weight: 10 +title: "Securing Grafana Mimir Alertmanager" +menuTitle: "Securing Alertmanager" +description: "Learn how to secure the Alertmanager." +weight: 40 --- -# Securing Alertmanager +# Securing Grafana Mimir Alertmanager By default, the Alertmanager exposes API endpoints that enable a user to configure the Alertmanager. The Alertmanager configuration includes receivers that create network connections to send the alerting notifications. diff --git a/docs/sources/securing/securing-communications-with-tls.md b/docs/sources/operators-guide/securing/securing-communications-with-tls.md similarity index 96% rename from docs/sources/securing/securing-communications-with-tls.md rename to docs/sources/operators-guide/securing/securing-communications-with-tls.md index 22cd5da3f7..57bea8f2e9 100644 --- a/docs/sources/securing/securing-communications-with-tls.md +++ b/docs/sources/operators-guide/securing/securing-communications-with-tls.md @@ -1,10 +1,11 @@ --- -title: "Securing communications with TLS" -description: "How to configure TLS between Grafana Mimir components." -weight: 10 +title: "Securing Grafana Mimir communications with TLS" +menuTitle: "Securing communications with TLS" +description: "Learn how to configure TLS between Grafana Mimir components." +weight: 50 --- -# Securing communications with TLS +# Securing Grafana Mimir communications with TLS Grafana Mimir is a distributed system with significant traffic between its components. To allow for secure communication, Grafana Mimir supports TLS between its diff --git a/docs/sources/tools/_index.md b/docs/sources/operators-guide/tools/_index.md similarity index 57% rename from docs/sources/tools/_index.md rename to docs/sources/operators-guide/tools/_index.md index 2691b5ed94..ade0e47c67 100644 --- a/docs/sources/tools/_index.md +++ b/docs/sources/operators-guide/tools/_index.md @@ -1,6 +1,7 @@ --- title: "Grafana Mimir tools" -description: "" +menuTitle: "Grafana Mimir tools" +description: "Tools for Grafana Mimir aid in administration and troubleshooting tasks." weight: 100 --- diff --git a/docs/sources/tools/listblocks b/docs/sources/operators-guide/tools/listblocks.md similarity index 93% rename from docs/sources/tools/listblocks rename to docs/sources/operators-guide/tools/listblocks.md index a7e0570873..d38a0a3538 100644 --- a/docs/sources/tools/listblocks +++ b/docs/sources/operators-guide/tools/listblocks.md @@ -1,15 +1,16 @@ --- -title: "Listblocks" -description: "" +title: "Grafana Mimir listblocks" +menuTitle: "Listblocks" +description: "Listblocks show the block details of a tenant." weight: 10 --- -# Listblocks +# Grafana Mimir listblocks -The listblocks tool lists blocks and show the block details for a specific tenant. +The listblocks tool lists blocks and show the block details of a tenant. Listblocks requires at least configuration to access the bucket and tenant. -Listblocks doesn't use the bucket index; instead, it downloads the `meta.json` file of every block in the tenant. +Listblocks doesn't use the bucket index; instead, it downloads the `meta.json` file of every block in the tenant. This means that listblocks has an up-to-date view of the blocks in the bucket. ``` diff --git a/docs/sources/tools/mimirtool/_index.md b/docs/sources/operators-guide/tools/mimirtool.md similarity index 99% rename from docs/sources/tools/mimirtool/_index.md rename to docs/sources/operators-guide/tools/mimirtool.md index 5dc132e17c..2caf3f9f82 100644 --- a/docs/sources/tools/mimirtool/_index.md +++ b/docs/sources/operators-guide/tools/mimirtool.md @@ -1,10 +1,11 @@ --- -title: "Reference: Mimirtool" -description: "" -weight: 10 +title: "Grafana Mimirtool" +menuTitle: "Mimirtool" +description: "Use Mimirtool to perform common tasks in Grafana Mimir or Grafana Cloud Metrics." +weight: 40 --- -# Mimirtool +# Grafana Mimirtool Mimirtool is a command-line tool that operators and tenants can use to execute a number of common tasks that involve Grafana Mimir or Grafana Cloud Metrics. diff --git a/docs/sources/tools/query-tee.md b/docs/sources/operators-guide/tools/query-tee.md similarity index 96% rename from docs/sources/tools/query-tee.md rename to docs/sources/operators-guide/tools/query-tee.md index 4ca4df7e1f..efadd40286 100644 --- a/docs/sources/tools/query-tee.md +++ b/docs/sources/operators-guide/tools/query-tee.md @@ -1,10 +1,11 @@ --- -title: "Query-tee" -description: "" -weight: 10 +title: "Grafana Mimir query-tee" +menuTitle: "Query-tee" +description: "Use query-tee to compare query results and performance between two Grafana Mimir clusters." +weight: 30 --- -# Query-tee +# Grafana Mimir query-tee The query-tee is a standalone tool that you can use for testing purposes when comparing the query results and performances of two Grafana Mimir clusters. The two Mimir clusters compared by the query-tee must ingest the same series and samples. @@ -12,7 +13,7 @@ The two Mimir clusters compared by the query-tee must ingest the same series and The query-tee exposes Prometheus-compatible read API endpoints and acts as a proxy. When the query-tee receives a request, it performs the same request against the two backend Grafana Mimir clusters and tracks the response time of each backend, and compares the query results. -## How to download the query-tee +## Download the query-tee - Using Docker: @@ -31,7 +32,7 @@ curl -Lo query-tee https://github.com/grafana/mimir/releases/latest/download/que chmod +x query-tee ``` -## How to configure the query-tee +## Configure the query-tee The query-tee requires the endpoints of the backend Grafana Mimir clusters. You can configure the backend endpoints by setting the `-backend.endpoints` flag to a comma-separated list of HTTP or HTTPS URLs. diff --git a/docs/sources/tools/tenant-injector.md b/docs/sources/operators-guide/tools/tenant-injector.md similarity index 75% rename from docs/sources/tools/tenant-injector.md rename to docs/sources/operators-guide/tools/tenant-injector.md index 89dd20abaa..4e86e59da6 100644 --- a/docs/sources/tools/tenant-injector.md +++ b/docs/sources/operators-guide/tools/tenant-injector.md @@ -1,10 +1,11 @@ --- -title: "Tenant injector" -description: "" -weight: 100 +title: "Grafana Mimir tenant injector" +menuTitle: "Tenant injector" +description: "Use the tenant injector to query data for a tenant during development and troubleshooting." +weight: 20 --- -# Tenant injector +# Grafana Mimir tenant injector The tenant injector is a standalone HTTP proxy that injects the `X-Scope-OrgID` header with a value, which you specify via the `-tenant-id` flag into incoming HTTP requests, and then forwards the modified requests to the URL you specify via the `-remote-address` flag. diff --git a/docs/sources/operators-guide/using-exemplars/_index.md b/docs/sources/operators-guide/using-exemplars/_index.md new file mode 100644 index 0000000000..9705501c5c --- /dev/null +++ b/docs/sources/operators-guide/using-exemplars/_index.md @@ -0,0 +1,12 @@ +--- +title: "Using exemplars with Grafana Mimir" +menuTitle: "Using exemplars with Grafana Mimir" +description: "Learn how to use examplars with Grafana Mimir." +weight: 40 +--- + +# Using exemplars with Grafana Mimir + +This following topics describe how to use exemplars to identify higher cardinality metadata from specific events within time series data. + +{{< section >}} diff --git a/docs/sources/operators-guide/using-exemplars/about-exemplars.md b/docs/sources/operators-guide/using-exemplars/about-exemplars.md new file mode 100644 index 0000000000..f6d7dd0d07 --- /dev/null +++ b/docs/sources/operators-guide/using-exemplars/about-exemplars.md @@ -0,0 +1,14 @@ +--- +title: "About Grafana Mimir exemplars" +menuTitle: "About exemplars" +description: "Learn about using exemplars in Grafana Mimir to identify high cardinality in time series events." +weight: 10 +--- + +# About Grafana Mimir exemplars + +An exemplar is a specific trace representative of a repeated pattern of data in a given time interval. It helps you identify higher cardinality metadata from specific events within time series data. To learn more about exemplars and how they can help you isolate and troubleshoot problems with your systems, see [Introduction to exemplars](https://grafana.com/docs/grafana/latest/basics/exemplars/). + +Grafana Mimir includes the ability to store exemplars in-memory. Exemplar storage in Grafana Mimir is implemented similarly to how it is in Prometheus. Exemplars are stored as a fixed size circular buffer that stores exemplars in memory for all series. + +The [limits]({{< relref "../configuring/reference-configuration-parameters.md#limits" >}}) property can be used to control the size of the circular buffer by the number of exemplars. For reference, an exemplar with just a `traceID=` uses roughly 100 bytes of memory via the in-memory exemplar storage. If the exemplar storage is enabled, Grafana Mimir will also append the exemplars to WAL for local persistence (for WAL duration). diff --git a/docs/sources/operating/using-exemplars/before-you-begin.md b/docs/sources/operators-guide/using-exemplars/before-you-begin.md similarity index 90% rename from docs/sources/operating/using-exemplars/before-you-begin.md rename to docs/sources/operators-guide/using-exemplars/before-you-begin.md index 22941c353b..db73f4db44 100644 --- a/docs/sources/operating/using-exemplars/before-you-begin.md +++ b/docs/sources/operators-guide/using-exemplars/before-you-begin.md @@ -1,10 +1,11 @@ --- -title: "Before you begin" -description: "" -weight: 10 +title: "Before you begin using exemplars with Grafana Mimir" +menuTitle: "Before you begin" +description: "Refer to this checklist before you begin using exemplars in Grafana Mimir." +weight: 20 --- -# Before you begin +# Before you begin using exemplars with Grafana Mimir Follow the checklist to ensure that your application is generating metrics, traces, and exemplars. diff --git a/docs/sources/operating/using-exemplars/storing-exemplars.md b/docs/sources/operators-guide/using-exemplars/storing-exemplars.md similarity index 65% rename from docs/sources/operating/using-exemplars/storing-exemplars.md rename to docs/sources/operators-guide/using-exemplars/storing-exemplars.md index 259b641352..8ee936c0e4 100644 --- a/docs/sources/operating/using-exemplars/storing-exemplars.md +++ b/docs/sources/operators-guide/using-exemplars/storing-exemplars.md @@ -1,7 +1,8 @@ --- title: "Storing exemplars in Grafana Mimir" -description: "" -weight: 10 +menuTitle: "Storing exemplars" +description: "Learn how to store exemplars in Grafana Mimir." +weight: 30 --- # Storing exemplars in Grafana Mimir @@ -14,12 +15,12 @@ While exemplars can be enabled for all tenants at once or for only specific tena 1. In the Grafana Mimir configuration file, set the `limits.max_global_exemplars_per_user` value. Start with a relatively low number (100,000) and adjust it if needed. -A partial Grafana Mimir configuration file with `max_global_exemplars_per_user` set globally would look as follows: + A partial Grafana Mimir configuration file with `max_global_exemplars_per_user` set globally looks as follows: -```yaml -limits: - max_global_exemplars_per_user: 100000 -``` + ```yaml + limits: + max_global_exemplars_per_user: 100000 + ``` 1. Save and deploy the configuration file. 1. Perform a rolling update of Grafana Mimir components. @@ -27,23 +28,18 @@ limits: ## Enable exemplars for a specific tenant 1. Ensure Grafana Mimir uses a runtime configuration file by verifying that the flag `-runtime-config.file` is set to a non-null value. - For more information about supported runtime configuration, refer to [Runtime configuration file]({{< relref "../../configuring/about-runtime-configuration.md" >}}) + For more information about supported runtime configuration, refer to [Runtime configuration file]({{< relref "../configuring/about-runtime-configuration.md" >}}) 1. In the runtime configuration file, set the `overrides..max_global_exemplars_per_user` value. Start with a relatively low number (100,000) and adjust it if needed. -A partial runtime configuration file with `max_global_exemplars_per_user` set for a tenant called "tenant-a" would look as follows: + A partial runtime configuration file with `max_global_exemplars_per_user` set for a tenant called "tenant-a" would look as follows: -```yaml -overrides: - "tenant-a": - max_global_exemplars_per_user: 100000 -``` + ```yaml + overrides: + "tenant-a": + max_global_exemplars_per_user: 100000 + ``` 1. Save and deploy the runtime configuration file. After the `-runtime-config.reload-period` has elapsed, components reload the runtime configuration file and use the updated configuration. - -See also: - -- [Before you begin]({{< relref "before-you-begin.md" >}}) -- [Viewing exemplar data]({{< relref "viewing-exemplar-data.md" >}}) diff --git a/docs/sources/operating/using-exemplars/viewing-exemplar-data.md b/docs/sources/operators-guide/using-exemplars/viewing-exemplar-data.md similarity index 54% rename from docs/sources/operating/using-exemplars/viewing-exemplar-data.md rename to docs/sources/operators-guide/using-exemplars/viewing-exemplar-data.md index c62ba3bbac..f9f04815a8 100644 --- a/docs/sources/operating/using-exemplars/viewing-exemplar-data.md +++ b/docs/sources/operators-guide/using-exemplars/viewing-exemplar-data.md @@ -1,15 +1,11 @@ --- -title: "Viewing exemplar data" -description: "" -weight: 10 +title: "Viewing exemplar data in Grafana Explore" +menuTitle: "Viewing exemplar data" +description: "Learn how to view exemplar data in Grafana Mimir." +weight: 40 --- -# Viewing exemplar data +# Viewing exemplar data in Grafana Explore Grafana Explore visualizes exemplar traces as highlighted points alongside metrics data. For more information, see [View exemplar data](https://grafana.com/docs/grafana/latest/basics/exemplars/view-exemplars/#view-exemplar-data) topic in Grafana OSS documentation. - -See also: - -- [Before you begin]({{< relref "before-you-begin.md" >}}) -- [Storing exemplars in Grafana Mimir]({{< relref "storing-exemplars.md" >}}) diff --git a/docs/sources/operators-guide/visualizing-metrics/_index.md b/docs/sources/operators-guide/visualizing-metrics/_index.md new file mode 100644 index 0000000000..82a3f33085 --- /dev/null +++ b/docs/sources/operators-guide/visualizing-metrics/_index.md @@ -0,0 +1,12 @@ +--- +title: "Monitoring Grafana Mimir" +menuTitle: "Monitoring Grafana Mimir" +description: "View example Grafana Mimir dashboards." +weight: 50 +--- + +# Monitoring Grafana Mimir + +The following topics guide you in preparing your environment to display dashboards that you can use to monitor Grafana Mimir. + +{{< section >}} diff --git a/docs/sources/operators-guide/visualizing-metrics/dashboards/_index.md b/docs/sources/operators-guide/visualizing-metrics/dashboards/_index.md new file mode 100644 index 0000000000..867b07108f --- /dev/null +++ b/docs/sources/operators-guide/visualizing-metrics/dashboards/_index.md @@ -0,0 +1,12 @@ +--- +title: "Viewing Grafana Mimir dashboards" +menuTitle: "Viewing dashboards" +description: "View examples of production-ready Grafana Mimir dashboards." +weight: 40 +--- + +# Viewing Grafana Mimir dashboards + +Grafana Mimir provides the following production-ready dashboards. + +{{< section >}} diff --git a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/alertmanager-resources.md b/docs/sources/operators-guide/visualizing-metrics/dashboards/alertmanager-resources.md similarity index 67% rename from docs/sources/operating/deploying-the-monitoring-mixin/dashboards/alertmanager-resources.md rename to docs/sources/operators-guide/visualizing-metrics/dashboards/alertmanager-resources.md index 9240a51f08..3d7be2354c 100644 --- a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/alertmanager-resources.md +++ b/docs/sources/operators-guide/visualizing-metrics/dashboards/alertmanager-resources.md @@ -1,9 +1,11 @@ --- -title: "Alertmanager resources" -weight: 10 +title: "Grafana Mimir Alertmanager resources dashboards" +menuTitle: "Alertmanager resources" +description: "View an example Alertmanager resources dashboard." +weight: 20 --- -# Alertmanager resources +# Grafana Mimir Alertmanager resources dashboard The Alertmanager resources dashboard shows CPU, memory, disk and networking metrics for the Alertmanager. diff --git a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/alertmanager.md b/docs/sources/operators-guide/visualizing-metrics/dashboards/alertmanager.md similarity index 68% rename from docs/sources/operating/deploying-the-monitoring-mixin/dashboards/alertmanager.md rename to docs/sources/operators-guide/visualizing-metrics/dashboards/alertmanager.md index 3fc7a3e8cd..93062f5100 100644 --- a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/alertmanager.md +++ b/docs/sources/operators-guide/visualizing-metrics/dashboards/alertmanager.md @@ -1,9 +1,11 @@ --- -title: "Alertmanager" +title: "Grafana Mimir Alertmanager dashboard" +menuTitle: "Alertmanager" +description: "View an example Alertmanager dashboard." weight: 10 --- -# Alertmanager +# Grafana Mimir Alertmanager dashboard The Alertmanager dashboard shows health and activity metrics for the Alertmanager, and object storage metrics for operations triggered by the Alertmanager. diff --git a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/compactor-resources.md b/docs/sources/operators-guide/visualizing-metrics/dashboards/compactor-resources.md similarity index 67% rename from docs/sources/operating/deploying-the-monitoring-mixin/dashboards/compactor-resources.md rename to docs/sources/operators-guide/visualizing-metrics/dashboards/compactor-resources.md index 6f388542b8..39be6f429b 100644 --- a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/compactor-resources.md +++ b/docs/sources/operators-guide/visualizing-metrics/dashboards/compactor-resources.md @@ -1,9 +1,11 @@ --- -title: "Compactor resources" -weight: 10 +title: "Grafana Mimir Compactor resources dashboard" +menuTitle: "Compactor resources" +description: "View an example Compactor resources dashboard." +weight: 40 --- -# Compactor resources +# Grafana Mimir Compactor resources dashboard The Compactor resources dashboard shows CPU, memory, disk, and networking metrics for the compactor. diff --git a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/compactor.md b/docs/sources/operators-guide/visualizing-metrics/dashboards/compactor.md similarity index 66% rename from docs/sources/operating/deploying-the-monitoring-mixin/dashboards/compactor.md rename to docs/sources/operators-guide/visualizing-metrics/dashboards/compactor.md index 2de5c47180..82b80a8118 100644 --- a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/compactor.md +++ b/docs/sources/operators-guide/visualizing-metrics/dashboards/compactor.md @@ -1,9 +1,11 @@ --- -title: "Compactor" -weight: 10 +title: "Grafana Mimir Compactor dashboard" +menuTitle: "Compactor" +description: "View an example Compactor dashboard." +weight: 30 --- -# Compactor +# Grafana Mimir Compactor dashboard The Compactor dashboard shows health and activity metrics for the compactor and object storage metrics for operations triggered by the compactor. diff --git a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/config.md b/docs/sources/operators-guide/visualizing-metrics/dashboards/config.md similarity index 65% rename from docs/sources/operating/deploying-the-monitoring-mixin/dashboards/config.md rename to docs/sources/operators-guide/visualizing-metrics/dashboards/config.md index fd178fc064..1d8e4b15d7 100644 --- a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/config.md +++ b/docs/sources/operators-guide/visualizing-metrics/dashboards/config.md @@ -1,9 +1,11 @@ --- -title: "Config" -weight: 10 +title: "Grafana Mimir Config dashboard" +menuTitle: "Config" +description: "View an example Config dashboard." +weight: 50 --- -# Config +# Grafana Mimir Config dashboard The Config dashboard shows details about the runtime configuration currently loaded by each Grafana Mimir instance. diff --git a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/object-store.md b/docs/sources/operators-guide/visualizing-metrics/dashboards/object-store.md similarity index 64% rename from docs/sources/operating/deploying-the-monitoring-mixin/dashboards/object-store.md rename to docs/sources/operators-guide/visualizing-metrics/dashboards/object-store.md index ddf0343b84..1e5b2bb27a 100644 --- a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/object-store.md +++ b/docs/sources/operators-guide/visualizing-metrics/dashboards/object-store.md @@ -1,9 +1,11 @@ --- -title: "Object Store" -weight: 10 +title: "Grafana Mimir Object Store dashboard" +menuTitle: "Object Store" +description: "View an example Object Store dashboard." +weight: 60 --- -# Object Store +# Grafana Mimir Object Store dashboard The Object Store dashboard shows an overview of all activity and operations run by any Grafana Mimir component on the object storage. diff --git a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/overrides.md b/docs/sources/operators-guide/visualizing-metrics/dashboards/overrides.md similarity index 60% rename from docs/sources/operating/deploying-the-monitoring-mixin/dashboards/overrides.md rename to docs/sources/operators-guide/visualizing-metrics/dashboards/overrides.md index 7e70c234ae..e92cc26383 100644 --- a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/overrides.md +++ b/docs/sources/operators-guide/visualizing-metrics/dashboards/overrides.md @@ -1,9 +1,11 @@ --- -title: "Overrides" -weight: 10 +title: "Grafana Mimir Overrides dashboard" +menuTitle: "Overrides" +description: "View an example Overrides dashboard." +weight: 70 --- -# Overrides +# Grafana Mimir Overrides dashboard The Overrides dashboard shows global limits and per-tenant overrides. diff --git a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/queries.md b/docs/sources/operators-guide/visualizing-metrics/dashboards/queries.md similarity index 65% rename from docs/sources/operating/deploying-the-monitoring-mixin/dashboards/queries.md rename to docs/sources/operators-guide/visualizing-metrics/dashboards/queries.md index 54ff5899df..942a9d34ab 100644 --- a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/queries.md +++ b/docs/sources/operators-guide/visualizing-metrics/dashboards/queries.md @@ -1,9 +1,11 @@ --- -title: "Queries" -weight: 10 +title: "Grafana Mimir Queries dashboard" +menuTitle: "Queries" +description: "View an example Queries dashboard." +weight: 80 --- -# Queries +# Grafana Mimir Queries dashboard The Queries dashboard shows information about query queues, duration, retries, and details about query execution performance. diff --git a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/reads-networking.md b/docs/sources/operators-guide/visualizing-metrics/dashboards/reads-networking.md similarity index 74% rename from docs/sources/operating/deploying-the-monitoring-mixin/dashboards/reads-networking.md rename to docs/sources/operators-guide/visualizing-metrics/dashboards/reads-networking.md index 9ded2eb5ec..114a6768fb 100644 --- a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/reads-networking.md +++ b/docs/sources/operators-guide/visualizing-metrics/dashboards/reads-networking.md @@ -1,9 +1,11 @@ --- -title: "Reads networking" -weight: 10 +title: "Grafana Mimir Reads networking dashboard" +menuTitle: "Reads networking" +description: "View an example Reads networking dashboard." +weight: 100 --- -# Reads networking +# Grafana Mimir Reads networking dashboard The Reads networking dashboard shows receive and transmit bandwidth, in-flight requests, and TCP connections. The dashboard isolates each service on the read path into its own section and displays the order in which a read request flows. diff --git a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/reads-resources.md b/docs/sources/operators-guide/visualizing-metrics/dashboards/reads-resources.md similarity index 74% rename from docs/sources/operating/deploying-the-monitoring-mixin/dashboards/reads-resources.md rename to docs/sources/operators-guide/visualizing-metrics/dashboards/reads-resources.md index 1c7d242d4f..660100b8b5 100644 --- a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/reads-resources.md +++ b/docs/sources/operators-guide/visualizing-metrics/dashboards/reads-resources.md @@ -1,9 +1,11 @@ --- -title: "Reads resources" -weight: 10 +title: "Grafana Mimir Reads resources dashboard" +menuTitle: "Reads resources" +description: "View an example Reads resources dashboard." +weight: 110 --- -# Reads resources +# Grafana Mimir Reads resources dashboard The Reads resources dashboard shows CPU, memory, disk, and other resources utilization metrics. The dashboard isolates each service on the read path into its own section and displays the order in which a read request flows. diff --git a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/reads.md b/docs/sources/operators-guide/visualizing-metrics/dashboards/reads.md similarity index 74% rename from docs/sources/operating/deploying-the-monitoring-mixin/dashboards/reads.md rename to docs/sources/operators-guide/visualizing-metrics/dashboards/reads.md index 3533b57e88..fa2fb8353b 100644 --- a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/reads.md +++ b/docs/sources/operators-guide/visualizing-metrics/dashboards/reads.md @@ -1,9 +1,11 @@ --- -title: "Reads" -weight: 10 +title: "Grafana Mimir Reads dashboard" +menuTitle: "Reads" +description: "View an example Reads dashboard." +weight: 90 --- -# Reads +# Grafana Mimir Reads dashboard The Reads dashboard shows health metrics for the read path and object storage metrics for operations triggered by the read path. diff --git a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/rollout-progress.md b/docs/sources/operators-guide/visualizing-metrics/dashboards/rollout-progress.md similarity index 65% rename from docs/sources/operating/deploying-the-monitoring-mixin/dashboards/rollout-progress.md rename to docs/sources/operators-guide/visualizing-metrics/dashboards/rollout-progress.md index f68731781a..4d55a7cb53 100644 --- a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/rollout-progress.md +++ b/docs/sources/operators-guide/visualizing-metrics/dashboards/rollout-progress.md @@ -1,9 +1,11 @@ --- -title: "Rollout progress" -weight: 10 +title: "Grafana Mimir Rollout progress dashboard" +menuTitle: "Rollout progress" +description: "View an example Rollout progress dashboard." +weight: 120 --- -# Rollout progress +# Grafana Mimir Rollout progress dashboard The Rollout progress dashboard shows the progress of a rollout across a Grafana Mimir cluster and key metrics you can monitor, such as failure rates and latency. diff --git a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/ruler.md b/docs/sources/operators-guide/visualizing-metrics/dashboards/ruler.md similarity index 66% rename from docs/sources/operating/deploying-the-monitoring-mixin/dashboards/ruler.md rename to docs/sources/operators-guide/visualizing-metrics/dashboards/ruler.md index e878306dfb..a679d39ff8 100644 --- a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/ruler.md +++ b/docs/sources/operators-guide/visualizing-metrics/dashboards/ruler.md @@ -1,9 +1,11 @@ --- -title: "Ruler" -weight: 10 +title: "Grafana Mimir Ruler dashboard" +menuTitle: "Ruler" +description: "View an example Ruler dashboard." +weight: 130 --- -# Ruler +# Grafana Mimir Ruler dashboard The Ruler dashboard shows health and activity metrics for the ruler and object storage metrics for operations triggered by the ruler. diff --git a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/scaling.md b/docs/sources/operators-guide/visualizing-metrics/dashboards/scaling.md similarity index 60% rename from docs/sources/operating/deploying-the-monitoring-mixin/dashboards/scaling.md rename to docs/sources/operators-guide/visualizing-metrics/dashboards/scaling.md index 22eaf03a10..e2972cf633 100644 --- a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/scaling.md +++ b/docs/sources/operators-guide/visualizing-metrics/dashboards/scaling.md @@ -1,9 +1,11 @@ --- -title: "Scaling" -weight: 10 +title: "Grafana Mimir Scaling dashboard" +menuTitle: "Scaling" +description: "View an example Scaling dashboard." +weight: 140 --- -# Scaling +# Grafana Mimir Scaling dashboard The Scaling dashboard shows services that are not scaled correctly. diff --git a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/slow-queries.md b/docs/sources/operators-guide/visualizing-metrics/dashboards/slow-queries.md similarity index 67% rename from docs/sources/operating/deploying-the-monitoring-mixin/dashboards/slow-queries.md rename to docs/sources/operators-guide/visualizing-metrics/dashboards/slow-queries.md index e6d1b50eb5..f0cc39dd50 100644 --- a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/slow-queries.md +++ b/docs/sources/operators-guide/visualizing-metrics/dashboards/slow-queries.md @@ -1,9 +1,11 @@ --- -title: "Slow queries" -weight: 10 +title: "Grafana Mimir Slow queries dashboard" +menuTitle: "Slow queries" +description: "Review a description of the Slow queries dashboard." +weight: 150 --- -# Slow queries +# Grafana Mimir Slow queries dashboard The Slow queries dashboard shows details about the slowest queries for a given time range and enables you to filter results by a specific tenant. diff --git a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/tenants.md b/docs/sources/operators-guide/visualizing-metrics/dashboards/tenants.md similarity index 60% rename from docs/sources/operating/deploying-the-monitoring-mixin/dashboards/tenants.md rename to docs/sources/operators-guide/visualizing-metrics/dashboards/tenants.md index 9fa7b7bf94..abd1110398 100644 --- a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/tenants.md +++ b/docs/sources/operators-guide/visualizing-metrics/dashboards/tenants.md @@ -1,9 +1,11 @@ --- -title: "Tenants" -weight: 10 +title: "Grafana Mimir Tenants dashboard" +menuTitle: "Tenants" +description: "View an example Tenants dashboard." +weight: 160 --- -# Tenants +# Grafana Mimir Tenants dashboard The Tenants dashboard shows various metrics for the selected tenant. diff --git a/docs/sources/operators-guide/visualizing-metrics/dashboards/top-tenants.md b/docs/sources/operators-guide/visualizing-metrics/dashboards/top-tenants.md new file mode 100644 index 0000000000..7dd9bb30c0 --- /dev/null +++ b/docs/sources/operators-guide/visualizing-metrics/dashboards/top-tenants.md @@ -0,0 +1,10 @@ +--- +title: "Grafana Mimir Top tenants dashboard" +menuTitle: "Top tenants" +description: "Review a description of the Top tenants dashboard." +weight: 170 +--- + +# Grafana Mimir Top tenants dashboard + +The Top tenants dashboard shows the top tenants based on multiple, built-in criteria. diff --git a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/writes-networking.md b/docs/sources/operators-guide/visualizing-metrics/dashboards/writes-networking.md similarity index 73% rename from docs/sources/operating/deploying-the-monitoring-mixin/dashboards/writes-networking.md rename to docs/sources/operators-guide/visualizing-metrics/dashboards/writes-networking.md index 21f3719a7b..238320c2ba 100644 --- a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/writes-networking.md +++ b/docs/sources/operators-guide/visualizing-metrics/dashboards/writes-networking.md @@ -1,9 +1,11 @@ --- -title: "Writes networking" -weight: 10 +title: "Grafana Mimir Writes networking dashboard" +menuTitle: "Writes networking" +description: "View an example Writes networking dashboard." +weight: 190 --- -# Writes networking +# Grafana Mimir Writes networking dashboard The Writes networking dashboard shows receive/transmit bandwidth, inflight requests, and TCP connections. The dashboard isolates each service on the write path into its own section and displays the order in which a write request flows. diff --git a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/writes-resources.md b/docs/sources/operators-guide/visualizing-metrics/dashboards/writes-resources.md similarity index 73% rename from docs/sources/operating/deploying-the-monitoring-mixin/dashboards/writes-resources.md rename to docs/sources/operators-guide/visualizing-metrics/dashboards/writes-resources.md index c6b94bdd03..9edd0011b3 100644 --- a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/writes-resources.md +++ b/docs/sources/operators-guide/visualizing-metrics/dashboards/writes-resources.md @@ -1,9 +1,11 @@ --- -title: "Writes resources" -weight: 10 +title: "Grafana Mimir Writes resources dashboard" +menuTitle: "Writes resources" +description: "View an example Writes resources dashboard." +weight: 200 --- -# Writes resources +# Grafana Mimir Writes resources dashboard The Writes resources dashboard shows CPU, memory, disk, and other resource utilization metrics. The dashboard isolates each service on the write path into its own section and displays the order in which a write request flows. diff --git a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/writes.md b/docs/sources/operators-guide/visualizing-metrics/dashboards/writes.md similarity index 73% rename from docs/sources/operating/deploying-the-monitoring-mixin/dashboards/writes.md rename to docs/sources/operators-guide/visualizing-metrics/dashboards/writes.md index 58413690c0..51b66457ae 100644 --- a/docs/sources/operating/deploying-the-monitoring-mixin/dashboards/writes.md +++ b/docs/sources/operators-guide/visualizing-metrics/dashboards/writes.md @@ -1,9 +1,11 @@ --- -title: "Writes" -weight: 10 +title: "Grafana Mimir Writes dashboard" +menuTitle: "Writes" +description: "View an example Writes dashboard." +weight: 180 --- -# Writes +# Grafana Mimir Writes dashboard The Writes dashboard shows health metrics for the write path and object storage metrics for operations triggered by the write path. diff --git a/docs/sources/operating/deploying-the-monitoring-mixin/_index.md b/docs/sources/operators-guide/visualizing-metrics/deploying-monitor-mixin.md similarity index 79% rename from docs/sources/operating/deploying-the-monitoring-mixin/_index.md rename to docs/sources/operators-guide/visualizing-metrics/deploying-monitor-mixin.md index 951acc08c0..56380c591e 100644 --- a/docs/sources/operating/deploying-the-monitoring-mixin/_index.md +++ b/docs/sources/operators-guide/visualizing-metrics/deploying-monitor-mixin.md @@ -1,13 +1,14 @@ --- -title: "Deploying the monitoring mixin" -description: "How to to deploy the Grafana Mimir monitoring mixin." +title: "Deploying the Grafana Mimir monitoring mixin" +menuTitle: "Deploying the monitoring mixin" +description: "Learn how to deploy the Grafana Mimir monitoring mixin." weight: 20 --- -# Deploying the monitoring mixin +# Deploying the Grafana Mimir monitoring mixin Grafana Mimir exposes a `/metrics` endpoint returning Prometheus metrics. -The endpoint is exposed on the Mimir HTTP server address / port which can be customized through `-server.http-listen-address` and `-server.http-listen-port` CLI flags or their respective YAML [config options]({{< relref "../../configuring/reference-configuration-parameters.md" >}}). +The endpoint is exposed on the Mimir HTTP server address / port which can be customized through `-server.http-listen-address` and `-server.http-listen-port` CLI flags or their respective YAML [config options]({{< relref "../configuring/reference-configuration-parameters.md" >}}). ## Dashboards and alerts diff --git a/docs/sources/operating/deploying-the-monitoring-mixin/installing-dashboards-and-alerts.md b/docs/sources/operators-guide/visualizing-metrics/installing-dashboards-and-alerts.md similarity index 93% rename from docs/sources/operating/deploying-the-monitoring-mixin/installing-dashboards-and-alerts.md rename to docs/sources/operators-guide/visualizing-metrics/installing-dashboards-and-alerts.md index 6b65a5fbf8..2680318aac 100644 --- a/docs/sources/operating/deploying-the-monitoring-mixin/installing-dashboards-and-alerts.md +++ b/docs/sources/operators-guide/visualizing-metrics/installing-dashboards-and-alerts.md @@ -1,10 +1,11 @@ --- -title: "Installing dashboards and alerts" -description: "" -weight: 10 +title: "Installing Grafana Mimir dashboards and alerts" +menuTitle: "Installing dashboards and alerts" +description: "Learn how to install Grafana Mimir dashboards and alerts." +weight: 30 --- -# Install Grafana Mimir dashboards and alerts +# Installing Grafana Mimir dashboards and alerts Grafana Mimir is shipped with a comprehensive set of production-ready Grafana [dashboards]({{< relref "dashboards/_index.md" >}}) and alerts to monitor the state and health of a Mimir cluster. diff --git a/docs/sources/operating/deploying-the-monitoring-mixin/requirements.md b/docs/sources/operators-guide/visualizing-metrics/requirements.md similarity index 96% rename from docs/sources/operating/deploying-the-monitoring-mixin/requirements.md rename to docs/sources/operators-guide/visualizing-metrics/requirements.md index 17aa02b1a6..dbe82e4432 100644 --- a/docs/sources/operating/deploying-the-monitoring-mixin/requirements.md +++ b/docs/sources/operators-guide/visualizing-metrics/requirements.md @@ -1,10 +1,11 @@ --- -title: "Grafana Mimir dashboards and alerts requirements" -description: "" +title: "About Grafana Mimir dashboards and alerts requirements" +menuTitle: "About dashboards and alerts requirements" +description: "Requirements for installing Grafana Mimir dashboards and alerts." weight: 10 --- -# Grafana Mimir dashboards and alerts requirements +# About Grafana Mimir dashboards and alerts requirements Grafana Mimir dashboards and alerts require certain labels to exist on metrics scraped from Grafana Mimir. Your Prometheus or Grafana Agent must be configured to add these labels in order for the dashboards and alerts to function. diff --git a/docs/sources/release-notes/_index.md b/docs/sources/release-notes/_index.md index 702ad99484..abdd795eac 100644 --- a/docs/sources/release-notes/_index.md +++ b/docs/sources/release-notes/_index.md @@ -1,5 +1,6 @@ --- title: "Grafana Mimir release notes" +menuTitle: "Release notes" description: "Release notes for all versions of Grafana Mimir." weight: 10 --- diff --git a/docs/sources/release-notes/v2.0.md b/docs/sources/release-notes/v2.0.md index a0d6491f11..30e5bb7058 100644 --- a/docs/sources/release-notes/v2.0.md +++ b/docs/sources/release-notes/v2.0.md @@ -1,5 +1,6 @@ --- -title: V2.0 release notes +title: "Grafana Mimir version 2.0 release notes" +menuTitle: "V2.0 release notes" description: "Release notes for Grafana Mimir version 2.0." weight: 100 --- diff --git a/docs/sources/securing/_index.md b/docs/sources/securing/_index.md deleted file mode 100644 index 7d82695285..0000000000 --- a/docs/sources/securing/_index.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Securing Grafana Mimir -description: "" -weight: 70 ---- - -# Securing Grafana Mimir - -These sections explain how to secure Grafana Mimir data and communication paths. - -{{< section >}} From a37075f77f52f4ac55633dc3a3b7b632ba5ee67b Mon Sep 17 00:00:00 2001 From: Marco Pracucci Date: Mon, 14 Mar 2022 16:02:15 +0100 Subject: [PATCH 02/30] Fix modules stop dependencies (#1472) * Upgrade dskit Signed-off-by: Marco Pracucci * Added CHANGELOG entry Signed-off-by: Marco Pracucci --- CHANGELOG.md | 1 + go.mod | 2 +- go.sum | 4 +-- .../grafana/dskit/modules/modules.go | 33 ++++++++++++++----- vendor/modules.txt | 2 +- 5 files changed, 29 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f016b8909..faf1dc8068 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -596,6 +596,7 @@ _Changes since Cortex 1.10.0._ * [BUGFIX] Ring: multi KV runtime config changes are now propagated to all rings, not just ingester ring. #1047 * [BUGFIX] Memberlist: fixed corrupted packets when sending compound messages with more than 255 messages or messages bigger than 64KB. #551 * [BUGFIX] Overrides exporter: successfully startup even if runtime config is not set. #1056 +* [BUGFIX] Fix internal modules to wait for other modules depending on them before stopping. #1472 ### Mixin diff --git a/go.mod b/go.mod index 902aab6267..293d1e35ad 100644 --- a/go.mod +++ b/go.mod @@ -18,7 +18,7 @@ require ( github.com/golang/snappy v0.0.4 github.com/google/gopacket v1.1.19 github.com/gorilla/mux v1.8.0 - github.com/grafana/dskit v0.0.0-20220211095946-19921f863583 + github.com/grafana/dskit v0.0.0-20220314143558-7b6c9c059728 github.com/grafana/e2e v0.1.0 github.com/hashicorp/golang-lru v0.5.4 github.com/json-iterator/go v1.1.12 diff --git a/go.sum b/go.sum index 97cf8d7e2b..a4cb62bb0b 100644 --- a/go.sum +++ b/go.sum @@ -973,8 +973,8 @@ github.com/grafana-tools/sdk v0.0.0-20211220201350-966b3088eec9 h1:LQAhgcUPnzdjU github.com/grafana-tools/sdk v0.0.0-20211220201350-966b3088eec9/go.mod h1:AHHlOEv1+GGQ3ktHMlhuTUwo3zljV3QJbC0+8o2kn+4= github.com/grafana/dskit v0.0.0-20211021180445-3bd016e9d7f1/go.mod h1:uPG2nyK4CtgNDmWv7qyzYcdI+S90kHHRWvHnBtEMBXM= github.com/grafana/dskit v0.0.0-20220112093026-95274ccc858d/go.mod h1:M0/dlftwBvH7+hdNNpjMa/CUXD7gsew67mbkCuDlFXE= -github.com/grafana/dskit v0.0.0-20220211095946-19921f863583 h1:UCLVGNJptATClAs4CbClVmn5b4YA6GTG3yoCObI//0E= -github.com/grafana/dskit v0.0.0-20220211095946-19921f863583/go.mod h1:q51XdMLLHNZJSG6KOGujC20ed2OoLFdx0hBmOEVfRs0= +github.com/grafana/dskit v0.0.0-20220314143558-7b6c9c059728 h1:eH3UVEXwgEIwz1Xr7XexKyLOKH8jR2wqbK4DKqU6ELA= +github.com/grafana/dskit v0.0.0-20220314143558-7b6c9c059728/go.mod h1:q51XdMLLHNZJSG6KOGujC20ed2OoLFdx0hBmOEVfRs0= github.com/grafana/e2e v0.1.0 h1:nThd0U0TjUqyOOupSb+qDd4BOdhqwhR/oYbjoqiMlZk= github.com/grafana/e2e v0.1.0/go.mod h1:+26VJWpczg2OU3D0537acnHSHzhJORpxOs6F+M27tZo= github.com/grafana/memberlist v0.2.5-0.20211201083710-c7bc8e9df94b/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE= diff --git a/vendor/github.com/grafana/dskit/modules/modules.go b/vendor/github.com/grafana/dskit/modules/modules.go index 4aee08d213..60e68ca25a 100644 --- a/vendor/github.com/grafana/dskit/modules/modules.go +++ b/vendor/github.com/grafana/dskit/modules/modules.go @@ -59,11 +59,25 @@ func (m *Manager) RegisterModule(name string, initFn func() (services.Service, e // AddDependency adds a dependency from name(source) to dependsOn(targets) // An error is returned if the source module name is not found func (m *Manager) AddDependency(name string, dependsOn ...string) error { - if mod, ok := m.modules[name]; ok { - mod.deps = append(mod.deps, dependsOn...) - } else { + mod, ok := m.modules[name] + if !ok { return fmt.Errorf("no such module: %s", name) } + + // Ensure it doesn't introduce any circular dependency. + for _, newDep := range dependsOn { + if _, ok := m.modules[newDep]; !ok { + return fmt.Errorf("no such module: %s", newDep) + } + + for _, prevDep := range m.DependenciesForModule(newDep) { + if prevDep == name { + return fmt.Errorf("found a circular dependency: %s depends on %s", newDep, name) + } + } + } + + mod.deps = append(mod.deps, dependsOn...) return nil } @@ -92,7 +106,7 @@ func (m *Manager) initModule(name string, initMap map[string]bool, servicesMap m deps := m.orderedDeps(name) deps = append(deps, name) // lastly, initialize the requested module - for ix, n := range deps { + for _, n := range deps { // Skip already initialized modules if initMap[n] { continue @@ -111,7 +125,7 @@ func (m *Manager) initModule(name string, initMap map[string]bool, servicesMap m if s != nil { // We pass servicesMap, which isn't yet complete. By the time service starts, // it will be fully built, so there is no need for extra synchronization. - serv = newModuleServiceWrapper(servicesMap, n, m.logger, s, m.DependenciesForModule(n), m.findInverseDependencies(n, deps[ix+1:])) + serv = newModuleServiceWrapper(servicesMap, n, m.logger, s, m.DependenciesForModule(n), m.inverseDependenciesForModule(n)) } } @@ -205,12 +219,12 @@ func (m *Manager) orderedDeps(mod string) []string { return result } -// find modules in the supplied list, that depend on mod -func (m *Manager) findInverseDependencies(mod string, mods []string) []string { +// inverseDependenciesForModule returns the list of modules depending on the input module, sorted by name. +func (m *Manager) inverseDependenciesForModule(mod string) []string { result := []string(nil) - for _, n := range mods { - for _, d := range m.modules[n].deps { + for n := range m.modules { + for _, d := range m.DependenciesForModule(n) { if d == mod { result = append(result, n) break @@ -218,6 +232,7 @@ func (m *Manager) findInverseDependencies(mod string, mods []string) []string { } } + sort.Strings(result) return result } diff --git a/vendor/modules.txt b/vendor/modules.txt index 874bbec574..267bd01ca9 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -345,7 +345,7 @@ github.com/gosimple/slug # github.com/grafana-tools/sdk v0.0.0-20211220201350-966b3088eec9 ## explicit; go 1.13 github.com/grafana-tools/sdk -# github.com/grafana/dskit v0.0.0-20220211095946-19921f863583 +# github.com/grafana/dskit v0.0.0-20220314143558-7b6c9c059728 ## explicit; go 1.17 github.com/grafana/dskit/backoff github.com/grafana/dskit/concurrency From e032be2b288144ae74abb482732640436f752700 Mon Sep 17 00:00:00 2001 From: Christopher Moyer <35463610+chri2547@users.noreply.github.com> Date: Mon, 14 Mar 2022 11:06:57 -0500 Subject: [PATCH 03/30] fixes link (#1476) --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 72070db44d..18fbaafde6 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,3 +1,3 @@ # Contributing to Grafana Mimir -See [https://github.com/grafana/mimir/tree/main/docs/sources/contributing](https://github.com/grafana/mimir/tree/main/docs/sources/contributing). +For contribution guidelines, refer to [https://github.com/grafana/mimir/tree/main/docs/internal/contributing](https://github.com/grafana/mimir/tree/main/docs/internal/contributing). From 8be0f0ac5835805a8b5ba155cebb3b2cb38e6070 Mon Sep 17 00:00:00 2001 From: Jennifer Villa Date: Mon, 14 Mar 2022 11:13:21 -0500 Subject: [PATCH 04/30] Updated diagrams on the architecture page (#1459) * Refreshing read and write diagrams and removing parent architecture diagram. Adding ruler diagram. * Moved images Signed-off-by: Marco Pracucci Co-authored-by: Marco Pracucci --- .../about-grafana-mimir-architecture.md | 10 +++------- .../architecture/components/ruler.md | 4 ++++ .../operators-guide/images/architecture.png | Bin 36966 -> 0 bytes .../operators-guide/images/read-path.png | Bin 21760 -> 0 bytes .../operators-guide/images/read-path.svg | 1 + docs/sources/operators-guide/images/ruler.svg | 1 + .../operators-guide/images/write-path.png | Bin 17141 -> 0 bytes .../operators-guide/images/write-path.svg | 1 + 8 files changed, 10 insertions(+), 7 deletions(-) delete mode 100644 docs/sources/operators-guide/images/architecture.png delete mode 100644 docs/sources/operators-guide/images/read-path.png create mode 100644 docs/sources/operators-guide/images/read-path.svg create mode 100644 docs/sources/operators-guide/images/ruler.svg delete mode 100644 docs/sources/operators-guide/images/write-path.png create mode 100644 docs/sources/operators-guide/images/write-path.svg diff --git a/docs/sources/operators-guide/architecture/about-grafana-mimir-architecture.md b/docs/sources/operators-guide/architecture/about-grafana-mimir-architecture.md index f014790ad1..5340960cd2 100644 --- a/docs/sources/operators-guide/architecture/about-grafana-mimir-architecture.md +++ b/docs/sources/operators-guide/architecture/about-grafana-mimir-architecture.md @@ -12,13 +12,9 @@ The system has multiple horizontally scalable microservices that can run separat Grafana Mimir microservices are called components. Grafana Mimir's design compiles the code for all components into a single binary. -The `-target` parameter controls which component that single binary will behave as. For those looking for a simple way to get started, Grafana Mimir can also be run as a monolith, with all components running simultaneously in one process. +The `-target` parameter controls which component(s) that single binary will behave as. For those looking for a simple way to get started, Grafana Mimir can also be run in [monolithic mode]({{< relref "./deployment-modes.md#monolithic-mode" >}}), with all components running simultaneously in one process. For more information, refer to [Deployment modes]({{< relref "./deployment-modes.md" >}}). - - -![Architecture of Grafana Mimir](../../images/architecture.png) - ## Grafana Mimir components Most components are stateless and do not require any data persisted between process restarts. Some components are stateful and rely on non-volatile storage to prevent data loss between process restarts. For details about each component, see its page. @@ -29,7 +25,7 @@ Most components are stateless and do not require any data persisted between proc [//]: # "Diagram source of write path at https://docs.google.com/presentation/d/1LemaTVqa4Lf_tpql060vVoDGXrthp-Pie_SQL7qwHjc/edit#slide=id.g11658e7e4c6_0_899" -![Architecture of Grafana Mimir's write path](../../images/write-path.png) +![Architecture of Grafana Mimir's write path](../../images/write-path.svg) Ingesters receive incoming samples from the distributors. Each push request belongs to a tenant, and the ingester appends the received samples to the specific per-tenant TSDB that is stored on the local disk. @@ -60,7 +56,7 @@ For more information, refer to [Compactor]({{< relref "components/compactor.md" [//]: # "Diagram source of read path at https://docs.google.com/presentation/d/1LemaTVqa4Lf_tpql060vVoDGXrthp-Pie_SQL7qwHjc/edit#slide=id.g11658e7e4c6_2_6" -![Architecture of Grafana Mimir's read path](../../images/read-path.png) +![Architecture of Grafana Mimir's read path](../../images/read-path.svg) [Queriers]({{< relref "components/querier.md" >}}) and [store-gateways]({{< relref "components/store-gateway.md" >}}) periodically download the bucket index to discover blocks that are recently uploaded by ingesters and compactors. The bucket index is kept updated by the compactors. diff --git a/docs/sources/operators-guide/architecture/components/ruler.md b/docs/sources/operators-guide/architecture/components/ruler.md index df5022d2e6..5399646c7d 100644 --- a/docs/sources/operators-guide/architecture/components/ruler.md +++ b/docs/sources/operators-guide/architecture/components/ruler.md @@ -10,6 +10,10 @@ weight: 130 The ruler is an optional component that evaluates PromQL expressions defined in recording and alerting rules. Each tenant has a set of recording and alerting rules and can group those rules into namespaces. +[//]: # "Diagram source of ruler interactions https://docs.google.com/presentation/d/1LemaTVqa4Lf_tpql060vVoDGXrthp-Pie_SQL7qwHjc/edit#slide=id.g11658e7e4c6_0_938" + +![Architecture of Grafana Mimir's ruler component](../../../images/ruler.svg) + ## Recording rules The ruler evaluates the expressions in the recording rules at regular intervals and writes the results back to the ingesters. diff --git a/docs/sources/operators-guide/images/architecture.png b/docs/sources/operators-guide/images/architecture.png deleted file mode 100644 index 66651162b0d08e9391f73f09c7d3517588b1fd22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36966 zcmd43WmuJ4*EURJ5R%d=B_J)GOHz=KP`X1Jq#G2F76}DGV1WoI-CatEC@dtT5fEwV zkbKA5d*AoH_x&8l_x^dlx-F-Pfq~tM zfq_ML4h#OJTKX<021YQ3lH4tAZ{yWTd|h(IIXsuu5kHoW<~#@91B~31b*TvsF0E9j}*3IsLH{QB`%%~ z`U8wNcoAgiPv||uOhtd-;{^f~`U7(JP5=M$2+>CGO&Npda{m7Q*{@$$RiWR`xeY^= zed*Kl8(&fdKeVv*Wk@zC#xbx-1RPfSZ2v6KDG@R$H*WGx7xR#58)$E2e^_kPu-A1Z z2#Ly5&zx-VvQI;A$JArY)C3v1(CSWpK0ZF%uQ_^+-h7|#72KB><=|Le9xCwk^lb24 z<2TttWy!)XDrCKk^wF9Xa2P?2j~kf%u|YTZ5L%iaQ#7b~uRi3f_y4^WaI_a29epQF z$ngmQ_1@}eh3A?+&SGh4>95I#8t3WL55&@jEr9`fYU$71TaJE-`;ir9r*P{hbKHC9 zzVuc4?6~5$5Uqd>um8aYji6nnO+TZA1fAe@wO0p=ujA~#6-&B&Z%yVgA)*mrd(ivJ zV|lR7XPZ@Myg-MilCdpQ+^g4L9KA!E==UnExT&@@aD&T$qq%u(80T8c{SxDo?`b67AlPSc~?6%=wLB3T=WTn1oO(*L5W4M0Y{l z>(?qOE2N$T>?~W@JXnpMj{dB>wp(oequH^rpJ&IYUIVuC!jB(G*JPiRS#)_W58C!; z%M;QFAe3)HoS=F#TaM?HH;`*Nnv8_jpYJAf zw0|riDM=Ev{qswMY1?Bk8|%+0e13bYjD$>x8k>F@PD*J6F`dYzZrZYu{`N0lR3~$3 zkj@je8b$h5mwAkn*tLFc%zSwG@L|N{A8xb5O@(A<*QHMVa&6N3ODYBR*oO~uu%DuC zKegApye)!%fgwebvKSf~?yXP9v4j)SR{QQQ_ojE0*?KxmC}DzKkph zyTN?e%_yrUMD$`0XXVJBUXeC_tNAAI&nn_cHW z?XG+q3PVR6Qi#7wR~_|#m|E@FfDsma5Ww2Gp6So{>5cO9WmFdSg}KgHvTr#TFLST1 zuLte_nq-uZ`q7izH#OC)m8Yirz4Z|`HNRym7I?-G&SJKFw3vtp0j*FWm~TXX{!4x< zWw3{?7;3F%|KE#?i|frt#fV2(>Ed3U)+9)h+?LbB74Q}=!`i!(=OFC&kMkn(E@=g+4e~C#8?1YGFs(`rXYAr+?{!N~iV^}+x z+%kCXE9s!A{(h2*o)=uQS_lN<zq<8~UdyQ?b?cEWt-U?0JRkoG^g zgc}reru>{EtJGs<_yw0iwf#4u@rl}pueW@IDfbb6K0ZSQI_m%43N6x)NlMh>!^?}D z`86&(tD`p|7-(o{KyHy|H7+xkM<6g<9d&g_Qur)fe}4XbusKIaD-?lYROf2-u%c_M z%6^&>+4o9xpw#Tcb@hy^$Y{T}_=GeNdcaNA!9@}fv)L6$JR1nDJ4*v`43dYxw-?~m zzC6G2?LlV1{hZtJ@IpL>wY-jFl_vh1@-y$lNFW?Tq>senugveqS$sIxNiXV}1KzBr zrUur?dB1R^q~#P+k1O*MQwFen;8FoHC*rd_>5tU@X;SQLYsF>JPy~oAp_QQq0e>JQd8W{=pJyHmsY6&_6 zw`%XO?jZkC_A83w##4H6&)N3#gAjy|#+_RT&z-xQiA_&Ja;;ntj7#G^6;jE0&_DzY zEE2G>1(v>ylv#9aXP`X+{dY9*_}_*m?CY?0h;35d8^|_Ol)%aEHxsZ(w}%h=2hR!` zyw>sX@a*gpyI`B=)N-}(4pGw66T+$sAO}SB&9d_B zEeBCnR=npt#*M9Nr{JR_ET5(P_C8Ne(u+S?n`rP-cVOn`COV4T4h6*V&Hx=ZBY6>8 zq=?QUu(YRiqJ^>jeVNjIDSUJJ8n4?|0cDl4he8l8$i53-cjd|za)^HS8oeKqLxg?O z!K#w-jN7Ol!d9+&Cc~p$$a3Z{Nm-Qh4bb1d(3ct4>gen|{aTTjc}phj!nGxCh_Nh~#HSAc zV}^b{*_yvYG73I;TMTWb&rB|ovjy*ndT*E(6eG^SU2cB>`zNo6NEsQ7XHpcv)StjU zS<1_VEIJ7g=*!C8Vnb09B#%+OWixsOeHliBSNpjQs#W+dqFC;{Z~*jmGm$~k7s(38 zWIhAA%(M*b{Mu`;rLVXR@zO!3K|&`{tOy8Rbks%yX33?LSndE&PSYc+O&Mo`iM0_FMA{>5{cox`y99zuV)jyJi;OXfp;C#(l z+(p@NA~UYC!`Y5#NTOuYi0L}Fg{}FXs3p9WSE6q3YTVHgRSqKRd1h|0i^9%RoVul^ z;0Vv|4!pT@-ASYwTvF3@>FXPkXhBSxuq@f|>?*Z%F?fonyL+V&!fS1eVt!-8rF{p& zCs?;XBqOrxYTBQ%b^wh-0@?53X&KDdn1kf0@a6N%o8y(XP(h4=Wij4+oqH<;58{sZ z&SLyI6gZwDV^=OEm%etjgWiwT15BFri_V|AyU#bohRLI=y6!N5h#76BBjr{X9~Wk3 zX6pMa55A?iasO&67^SfxucwE{WQ}vCjik>O^H<*No1e0>vUC+DkcIW0Yc$!S7XScK z3NkP-NJ&Ytg@%Qh^_)Yo0m7yqZ?lGcVb;uR?X^A?`vngdH*)1mlr8?VfTpIV4o*h? z>JW@rBMSB7gY7=)8prV`!du_lu=!S2S2-!cG+%l9lD)OE&CL*Q<7o|al8b^Z$J5VB|5w;d=J;cR{i!eZpQ zA7P47l&)b+fLyRgs z{EGhGNc208xCAS-swQ(!F806fC`?YiEORr#J(`khYoX5sk_-Vg|J6%pr$_70IqrP| z?}jgbR{A`)uhNJ{w z_0ucSo5TEm0kBz&1$>A+EFn516BEMGPwX2!n(JGC#~f%jp+w z;6Vsc;=Vg7q|V&%tw3alFRZSJI*2|Hr|hq@z{ELhM5^s0b-O#u+2jhLw-mdsAw?g zX=v;ikO0VH-b4J4rnuob*Gb4(>NqYmsFK3_C-X5yg6+;>`T>&$@`wS{NN6*GbPjLW zlgyJD(Fm?^x>C|oZrS}91OD4?@Zji3+IJ@(+`-Ao=>@*cLtNiaN$mO5V(x5zAe$y8 zyhZKSYU~}@N~i_mVH>ediAU`V zP*0arOpK-i(w>y-k8>9S0|Rxpptvk9E{5zO{{_-fg_W+i>R!1Jm7#hB+sJQtl zGw9R@Ag4(aCxj0Tb0`k5gsvbH4FL7L(JYw7NZSU4 zEfF!XsOV9&C9XdP54gSiM@h(b9&H_evPw$f@b7;TOUjUZ-UgqsS-c21BQs8h7=PRA z|8tV+4FL~N$qnY4$2e8e+KkzQk1+KYQZ(FK2L`l`+=g%)1+lvcq;IVeKTn_`3R;Um zXwLZL8uKAmCMc}Qe;f7Ns+cV#r5pR@s?L}(iZihKc3>2_(fNBIO6GXP^Hz7pZaQ8d zCL7)4?Z1I%lRo#o0Na;7XjIfH?^}kgmUqg>r{R(4r_te?(4$rkdV1N#oAy-Fwlatl zAzF!xisItp+S0O>d8aH=U|04wEwm*kgcx_3c&d#qRXrF>+V@Xcov0h=?M3_R7@jic zUvIGPv+?E!^4n%|x|XN!+DoB%$t$dpL?}QjN3+p9l~wH@X!tcP*|3a7zgQev_b^WfpSeTf52*T21Af=YN~OG^;s?r3s$bAWHi zTOogZK9KegOjgHBkogZZ-Ms_a^gPv6BLqEG^~TBpn%xAYlT0_ngn7 z6W9t-aq(zh2YlL5K=+DQ0+OI|=ePP)s8^vN@F+U^;{v>D4iO<|m*K65-eML}qQsPx6ezXt73q6` zHy-V;E0RK$r(QeP)D2JOWlHi}WEGUp)kod`0~Z{*MhONBh7$Psoc*EN8?m(-#1zVn&!F;lsPC!__ygI8`^$BeubavZzb;xtk^1G(*w za=*l=;mIKs-4;ba)&XR)>3T{JCH$?#k`kU&SZx@;CtktTdkfu(3l)7*WCjNH?(D-f zyrvjaml>tX`K{%{6)C$`h!`ZORLNLXZl?(q-Tr}w-TdBpb6s&JRd&xu)JSK|vULbh zV##zN&a>`7-$7c-j)~tq++8WDF~G-0r^OCIf|wMlpv@b%8lD+1dK_1!_r7EfJl^aQ zu>E>9g5Zjj;kflpwG4^KLYE&ONgQRf7tyx-Lqz4-bBNgfGw*TvR(}3`V*Dt{!CMjm zC38Jg_{(o*aW7I@etd?x5`__4``gY>;b)CY1jfl)&2-f0$cV1x1YoIxi%bIF-fAfd zn5hpEMaEimgk8K$V~o3K)ZiJJ3wCDV3Cthf!2H75QOj9$bTpaj$61kIa&^Gs{`5+K zOejx?0@~AIy18jA)I{m_@e>_PU$ApKt*?Jy_#mWi$aHL`oalV_?3!%lokk+2+Qh`f z>b>XK_(Y~3$-WU=_hrPo0tEET!U=ow#QbPIWp0|d>1j*#fao;6uLqbK5P@$_HPuPM zFqOwddNH`te~7DGQd;Ouk3JT27~$QCQcV-0HYP?1+6^KW-F@fNoSR9~6>%0JO{F<= z1qPo2NFN-&K*8bvdp>!Y^V7X|+8Pfef#6KNo@Odfumo?ff8zHP&fi+6*pS^C(tc?H za8z9!-b=7pYL(YwYUZ1{#*QPrL8tyC$dJd6QG-y6?XLN6bze8<`U7FVD}G-2R{&y} z{%+4Dh@e%uEYY5Mk!%AXtNGpN*w`VVl&iUP;+`s@KihF_oSmHutIR&&IfktDuN>Hm zr*BVA);?qstsekOg|P6hC;*=T^;IeN!;gZJW;Cpj`2hfaiV_)pnI{9#4QYwE`{LcN zcxW<<=vFlx9@t+EFB+QT)3*11H%h^`QT-^Cf@@>xEfpB79?l(YH4R&m#xdP%^<_r|xU-?FCzq{CvZ6vQ6?oJ|2c#pXK*DST(CT=c|gV|^R zvH1nWz$HR(LNj-#2yz6m9LphXb#T%%mOGT>z+7CTyuV)uk60{Teo^)rO4&_)oA+fF zfmejGv5iS~q0=GX{vi0p9a08X4uW@!c<@n*irF0=FvX1z#Qk4B>yRhFIW-4}1DmyY zY?qjhi%AnsP|nlo-ydpbf@9O@1hhUn76esWQ6jOiupr=vn6TL;Mq#FshNFY6#YPnh zq6yy%vy=j0rU3F>q~y%Uvmx*t$W_qcnGJ+mp@Z;3JE|? z6&O*VVP0_=2*qTb{mqDF(+UFb68HvS);1IRb$s(zxukKtrE?*rg zNN#G93@o3$9|c^xpyQafkt?7=AcHSig?@)OLN8YOcmr+t&$K#}=zXu=SByLPk*JQ^ z2Yw)A6xJA7_3UH6@TK@6M;evi9*d|f-PHkg>2wJn{&JozZfm#sPeaWC&?i(`2pv&s zkB2x|=`=|bU<*w!^Ia@fXrHwHnvpMKRNI!3l`UiRW%AT*QUVSuaq$d}p-qaZ5a}E} z5qJEk3Q}m8>E;*VX>xYW99S+8A$VG=t({;G0Ize}Lhzw58hDDS&!Oazk|KLwLHMqE zYrF09gQG~F;Lar*sIh^5WucUnpt$bpOn_Q^1~#ITTv@@1nEUuX0h%uqyR$sZ=AYHC zBIX*&Y00}pPCE+Ep-@1No*gepFDsh6?Ah-xGb}A<`*MkR+e)$N*+W@QqYn{V8rk&I zSmR()h$*eOim>3SjN%{e&?B2InYkBy-%rNdTZBLKupQ&rSK*k#%FWo=*wb1Rfn&2< zKL)kQM*YW<Hpa5NRG~qY-Mxn@kr+kB zZzvxjBvKp>HfBUfPfkwc2cSw^r9!?*&<>9jeTDh6I}u;fWwt$1WPv>I9+fCz3I1Ym zFvct2EPQi`c3xeuDmvD4uhF|*K-F|zB_-H{ix{O_4!B$drxOTS(^iaEwdUVDl#tij z{-{)v9$uQ6(3E&VR3Y*S<-Ulz_G(thZt$F{NHzp3n|%(%73n~_JLZM0N}N+7#@fdo zz*GO*`P!kpFtgKYW*OMIi0LU@ZnF0J#_pJflRePt;jF zs7KA8C_{S&LcWtX1(Jk*u*!FD6#$u1$kJQmgSDq_Tsg}bC07lorbv;%8#ze%ogV+z zNfR&@)M;Q0jE|!cRCbg>C}vPvZDVj@;Y_91_d$4~C}KnueCz1gzR*5*5zy2%H3FO| zY_4=>QI%QQg;j_iz=)C{fkHjpSqjm%<271ElY+gJ1&+<})0*h(ka3;} z<1PZq9DDg|w$<6t&(F{DoIQ5sLBToF;Cj`E%WR}ia@VVX>WIbE-|>lsFh)a4fD*Yu zCFGEjFU*U$!=^-(IEXznC2?V{9SMyY>oxY^KWiC7Wx{4iv$DZL#8u80Q7%xe0tnt) z>}Rs*j9KP~_XQq%Buf?_tOgD2fO*tT4rNtMjR=3jkGP)5y!5KAt!>eEwxsVdD`IXT zU+66+O#mV`g$7LSz^xsUChCfq*RR6iv^ydQrfG}e> z={Xd9E2Qk2dS>iO_k@>mK9$j=sgX|!5!5i4V1zbB9X=Lqly)VN*gM`1~ z*f=x--wEkt@^|XZ2Wp#&3V4f_3EJru5Eh7th?WZvmT^ds(kD9u0M_zVWuFj`V2ZJ_ zvO+}<4H%6yAa{6*FF~ve{-q7v`KuVmiQ4`~2qShs;v9GLqtT6JA{{)NNai841ZC4>FL(Ds?YElM4x=u6 zHi1_>m1q9K@0uYz3AefvSV&R>0s=^^UcGwtHCGiKP7U64JSgJbAf)2OQ2i;2$EQ=c zRf1WsQ(_EEAy5QBWqh!YBuf;f&<2GdMBTpanJcc`f!C2RLcT{ydrJkL z9qsM$=Qe1$KL_TCLBs`P!4!(iDnAM&G}9d(9DWjb)jwmBqq{2`3ZO|Pk@X8e#Ij-F zJ~{3evi(X6vIwR$8G7O|y~i?g9^a<**R`NN=&bMv0~h43vFTy|1P6Nu__?on>Offd zZU(VT5vgI9l4vusM5y0_Zf5`ZLzOB>mJi~*?ZYlmlv@P9P}ZbpP15|=sek{zvb?Nc zYI;jN5l~^!!Av-qS=-JGsaz<~gyZAm4|-mx1~^p2#Sw2^7^X;`ASFWSg6I62ttu7V z6-C}|ieSo?GOBma=ESOOb04CvfMS%q;+*hExM7{^wMEmup}ZJAv|X>hI-m~NXv1IB zf!b_wyryKb0E3>4Y#aFZImMXbA)u)N&)qLJ)HAY&Dsu6~?IB>@Xe50ry$e^Nwt>d1 zSzt>!aPf6G4CdZI6c)ab3ZauEt5|mXLYN!=*&hJz$T?3^o~Y#eX?D=boAjD~TOmRL zzg)n^L^j7sPOo{A^aEX?NzLI*S&dg`1^O(DYVb<1{51RzU7{akBV8R-_#@a&XZt!23&Gs-xKo63D^w6KAYr)9D{p$qvv2%Ky(HRfys1G0aFz6%-PrD? zrl!!Z1~g=~_N`+j15MySIl|lxa7iiPs_pyskcXF$Lvcu5CpZZ}X!2PQ>-jw#E|W+*iro?ViG12b6AU z28gx-%K~waQ_86rZxMKiv>=Sh7k@EJiB=nLaG=yy&Fy_zSu^on=M?lHrK*nDOEpkh zTZ*Y97((2W&w^Gm@PQ&OG(ryE!1@709qCL-$8Qb)F#C+4Z4|OGISkTf@4o zSXyC-OD151VD3m z7nq%dww+3-2R^m8w<9HhrH0ZzAJZ4zJ_{!jY-B(}=z~}1sz%khJ&=2#8q6SQm!#VS zh0{;Wv4MdK=t-H&({}x7>}oICl1cx@smZ_ikOSK}yW|Szck5h+sGBta!1wRpUqV8< zFZbS@1(*la^q6V=s0FaLj0lT8h?rNT{6&U=C8F4>VMRbgrv(fPxHE3(=|cb*#AveW zq1=?$sgCY<`y8>~Wp1yVg) zW&rJ%-Ird#2166S#rsn%WX5x|(Ak-_%>!wfi03NR@Yd$$=JvL1n`zW!`ElRBJjE&^ z3vEh&+sVk-*pt_S)$8M(Ak)avq5H0+A9LMu+&fAU{uXnUnF}qI?52kR zW+2aut#B!U5~%q2&*l~uP>O{GRT0Vw#gT;ObYQ4f$JV$oM<=T%wJ@*+P26Y5&@v}x z*Jw!Es8SwLX7Mg26}VF;+$|7b@#@#pd;a(>LRp<7%r9Q%;C#9Nc;N=|eRh(S=Zlic zs~Yn&KJ$?!Tb#inOddCBTA+?a9C=S>buF^)pp!>SGjsU<}(W~(K3&NW!yDB&YBeWeQ?Ep;}#Uc9NPIv z$E)Q&|JtSzS+cqL%unkX%0HZyQE_LM^WQU*Hg-Exjux}GepCxxx<0+r*hgV6piJwen#wJ-;(k1cv7LlFiw2PJG5!iI0ta zR(1TT@m@<9oJY*Qa&c~@=nveZ zIU6o4TC5iP?Md9}TR$Q_G5Ih2?mpOwIZ)D`V*eRTDxi2Iv^33&NX!{|sH9Kl*?pgo zIy*RlUR?kG~uoM2|3a-WZPSz0u-#cC%^o{xfN(6K6~n z;>j5MYpGpy+Kkm~GxpC*-+(K0Ui=&=`@CT;2}9AspV;I9H$4&4a5MumzN&=#z6g%ye7{P=J_+ z)d*0-pf6V{n@gw^Sycvl$ddpy7Ku6LOMqf#_cTnP3^(fLL-fFZi1YpZxNnH!*^Kfb z?EmX6x-hsvi@DbR_Y*GuL4~w>5P~VTe7bq?d^2ym>l?#Fok(C)N`_p$S(M4y`agFO z{le)*xHjrFMY}87(I!`dQl;H?zF|v8oABh)4D}otK79H=f9Z}RrZ04+@4VpbAJ(4( zni1IMosA8YP@@yjiNFV;hFL=_2~j)*zs#D$&tmFber_lSl}P6MeE0e>m_-qH<<-69 zx*!W_ySqHrHAQLnij+rD;@swY)m>_pQ;m(XMyGnKZ`>4hnCQ~*7gJgjbytr!tGu~7 z+zA_8viz?TA0G;gi4@qLB>&g$y{X19daKFOZsJ%ZsFo=eTlo-Z8^;eTQ2J>W>hd`{ z^4}iDh}|))y#46O?z{cvDeebP9W284(ebaFg_3jQ+NGFfV7l+7?8*P(i{{@bHJsZfvKVz*(+Pq^qXuga>T-X?&`SL`&fS?GTp zw>_*RR@m=kRwyY?ojT@YbVQ765zTWV(KG+Gi5HJ?w;~GquSs#&xmqjkNv@TX7UiF> z54coz6xLRIJmi*E#(W{-JClkM4Vii6In>ADk)(XNMk$}~I^!#F z-SGT=Aaz|MaOJ;@Xo?R3I*BuA`kOOB)ed?+`59m}q2}oC?>B#$l0x-4Thr(UBjfua zW+9>bMWBxKy?y&5TC)IsFFLxId!;F3%PT7@b91kIQ)MOhW&mxa9@f^@LVbF5$-Khu z4Gl6rB#uthyjcfp3b*>nBx(@&Zra@u!fgzCP$xiL=0UyLxfw|4d;xXP^4?$@S^@U$ zTL>qpER5oPwjdWYm|HFUp5(@&YI0fJeyc1gE0)oT4pcmy^7Iqv9o$kuW z$S~)_G5lO?P^0!4`nj(`QLKCMIp9tZ8JFjGDL^@z3@w8}CYxMPi9lVDeO{y1rav3h z1a&F*uDyfaEB+m{;?I7l*oYQWM<5+qoX~N~{|wDCpaG$Y!Msd@G^n)E06C;M*=l5J zWBeHOyyKKtX@^t!t)lY7&y%s5?xR94zZbuUy#wT08LmeeXm62AAlE?G3VUwt5hNqI z-rq6<4{a?inU^<%9*;sJXLkAtA?>^IGG*9jy3vX#ek}JsCr5cbLKNZheQ6JyFtHBY zhIg2UhaHYSt_vwrRvT^U(Ua=Vt&>xpz zj)A&T)DI+Hx1T|ixd^Bfh&AzXgt-{$!p_E)cb%Qr^YhtqW?(WSlB>49-uxmcN60JQ z!59IPB$Sr;^8f=Gdl=KQ>1b&5YhBE8W}qG#85sd_hB==@yXgfK3~~V5!14+3y>|z& zUeQI@s6ozi!7qY;>YQ=^=qUC4bl?%8m7=2J>hsJ@6X5%c2vO)xU}PIwzlc_he1iVU z&BhBT=s8NloX2=^$yot80V>1Ez-|6Bx0Do>i(62b>y>uAx(xC9dfy?}e7(JaoEKk~ zqvn&j4-_2mee@lE%**b37SS>ynB3;1uWe27b+~tk-LdxDbZ8)sx~zZ`MCD6UG;^v* zF<``~S7ABT5|CBz=bZ5mVDa2A8(Toe1zO!h4V;fdLb%SOKse5!ksa#0&4s< z(GYeR2-!)O4wAyEug#V)dym6BxwvQ(6cn_s!y9dydQBE@*YjfN7%;TirO*Rpw%)!S z#T#4c$ct-3QXU49RBad$z;(D(P-xU}-|-N-SAIK-k7PiQ1Z7+9aI}CkG(6He_z%`K zF9WM#0!1ryk#<_7P)ug*R7i~!!2s|0_rJ$$Y_$t*9S(##r1YuZ!Dw#mnbv~zbNfKutXq@Ivy@MrjP!@{jhl7$J#Fm1E=sp> z9^gIK^1gvtUg5)&(V?nWbAaNxN<{|V4fa((%pks9L4&Ibl z@cSU9zSl~HEDYh-DL3k7V_wDb(vx{>4o>V&`Hfp#zd$Uj9zAa& zFv2m~UOoSNB(#<2v19_vs;>Hqs_WR2E4?YEFH3JP>-k&}~?8ly!9!rNRS zx1L~d&Hq;vC8b9~_oD!mqXiW||DYAvqSGSL?HiD94uJ~6sK@XaqY3^3t(t3tl*z@7THZ@SxYCCE|Pq7ko zgv*6K!3;O8RX|!Zlq-z4`0Uv;7$~qv9_-L2Ky~x~GZELx;V%NT`JVg>bkgmGA0IO! zK!eCI4;5Eb?#r7G-eJ4q`j%^4#wZ+j0&6MqExm8&s4Z3B$(OF^H{k8Vt-21SL(O$5mqr*d>ZKTzlUn5@s5#_Ts+~Uelf6Cm_=S-HQ)U`U;-dG#hFKM9Px~2vJUkau@4l8Tw}ga0w5q+cfMiZ-!SVL>MGHlF+*e2V zs$3zc|Ky3{w;LQqBCj$#myIunIfg9V>Wyg3S40q>Ki^jTj`&qGaCyKq_WxL2jXA>+ zi0tFf5P2x0x_ya)qUzzC0%x^p8`iF-fG1T?+O%E5xv#j3J$XX;({By7iXuvRdKEji1?D9Ek9vD;?&uw3_WZ5JYc=>-g3? z4mE}j{nz8~yu*Mol>UkbeLx=C(UPu2^E5AheG`4)&%kmO7kekCETAWeCB2ZL)OB_W&JE+PhSyy*IR+%ex_;;mNbkzJEg$c{^EC0#(la@e$a*I$?3WNTnB zl-emMzEwlah}pth`}*f{-51=ggz?~6|I9Jy zLXVvS`Hl0aSnG&2`}qC$z;Ax*yV2uYKYIBBK79`nzub^Hm5;Ybc%%7pbO&CY!lbm* z>9zOs(P!#}DBTq}SM#m9S-LX{uJnI;I30H7swM|wdT-<)-Sfa_1SNU zUuf!erbvGC!Jqhy+T+&XG-R@cWp0hY5xyQBY6$;)k-2eXp>o#yzz z{Cdy2{d~WbBgS*z_v3A8AJ`INa?JG;Z`zW`wI^sR|jhc9e(>vI#dU2xu zjb&eP5>Ls_N*<@tJHxt!`YnNfQwPbnjf3Pl_E|Y*R+73H#+W(g$jjvG#MOS^yn7_X zRbd^Qa4qEFZP|q0)O+3WvXK!e?$;nI{1=%}?)dcS7>(~2w-D0u+jY`Pk;kgQc*f?G ztMDBq1urRoCzvmBS);8~=*v*mCo(E#Rq*RVi=`yYnt1�GKweZ_T=iEm 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 UWvn#t*9+w8WtU6!cDGai08D&>yZ`_I diff --git a/docs/sources/operators-guide/images/read-path.svg b/docs/sources/operators-guide/images/read-path.svg new file mode 100644 index 0000000000..9172c8bb40 --- /dev/null +++ b/docs/sources/operators-guide/images/read-path.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/sources/operators-guide/images/ruler.svg b/docs/sources/operators-guide/images/ruler.svg new file mode 100644 index 0000000000..cfbdea25b6 --- /dev/null +++ b/docs/sources/operators-guide/images/ruler.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/sources/operators-guide/images/write-path.png b/docs/sources/operators-guide/images/write-path.png deleted file mode 100644 index e2e73d4ffd9f76c1a3b30338da03f39e3e144d02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17141 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 \ No newline at end of file From 9be967810b40b059eff0fc1797430d24d1b62334 Mon Sep 17 00:00:00 2001 From: Jennifer Villa Date: Tue, 15 Mar 2022 04:58:24 -0500 Subject: [PATCH 05/30] Update prose for the read path on the main architecture page [post TOC changes] (#1479) * creating a new PR since had some merge conflicts with the last one. * Apply suggestions from code review Adding Chris' suggestions. Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com> * Update about-grafana-mimir-architecture.md Removed parallelization comment. * Update docs/sources/operators-guide/architecture/components/query-frontend.md * Reran make docs. Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com> --- .../about-grafana-mimir-architecture.md | 13 +++++++++---- .../architecture/components/query-frontend.md | 9 +++++---- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/docs/sources/operators-guide/architecture/about-grafana-mimir-architecture.md b/docs/sources/operators-guide/architecture/about-grafana-mimir-architecture.md index 5340960cd2..b5e63b5c82 100644 --- a/docs/sources/operators-guide/architecture/about-grafana-mimir-architecture.md +++ b/docs/sources/operators-guide/architecture/about-grafana-mimir-architecture.md @@ -58,12 +58,17 @@ For more information, refer to [Compactor]({{< relref "components/compactor.md" ![Architecture of Grafana Mimir's read path](../../images/read-path.svg) -[Queriers]({{< relref "components/querier.md" >}}) and [store-gateways]({{< relref "components/store-gateway.md" >}}) periodically download the bucket index to discover blocks that are recently uploaded by ingesters and compactors. -The bucket index is kept updated by the compactors. +Queries coming into Grafana Mimir arrive at the [query-frontend]({{< relref "components/query-frontend" >}}). The query-frontend then splits queries over longer time ranges into multiple, smaller queries. -For each discovered block, store-gateways download the `meta.json` and the index-header, which is a small subset of the block’s index that the store-gateway uses to look up series at query time. +The query-frontend next checks the results cache. If the result of a query has been cached, the query-frontend returns the cached results. Queries that cannot be answered from the results cache are put into an in-memory queue within the query-frontend. -Queriers use the block’s metadata to compute the list of blocks that need to be queried at query time. Queriers also fetch matching series from the store-gateway instances that are holding the required blocks. +> **Note:** If you run the optional [query-scheduler]({{< relref "components/query-scheduler" >}}) component, this queue is maintained in the query-scheduler instead of the query-frontend. + +The queriers act as workers, pulling queries from the queue. + +The queriers connect to the store-gateways and the ingesters to fetch all the data needed to execute a query. For more information about how the query is executed, refer to [querier]({{< relref "components/querier.md" >}}). + +After the querier executes the query, it returns the results to the query-frontend for aggregation. The query-frontend then returns the aggregated results to the client. ## The role of Prometheus diff --git a/docs/sources/operators-guide/architecture/components/query-frontend.md b/docs/sources/operators-guide/architecture/components/query-frontend.md index ccf7411617..7d6234fb8b 100644 --- a/docs/sources/operators-guide/architecture/components/query-frontend.md +++ b/docs/sources/operators-guide/architecture/components/query-frontend.md @@ -27,10 +27,11 @@ The following steps describe how a query moves through the query-frontend. > **Note:** In this scenario, a query-scheduler is not deployed. 1. A query-frontend receives a query. -1. If the query has been previously cached, the query-frontend returns the cached result. -1. If the query has not been previously cached, the query-frontend splits or shards the query into multiple queries to be executed by the querier workers. -1. A query-frontend stores the query (or queries) in an in-memory queue, where it waits for a querier to pick it up. -1. A querier picks up the query and executes it. If the query was split or sharded, multiple queriers can pick up the work. +1. If the query is a range query, the query-frontend [splits it by time]({{< relref "#splitting" >}}) into multiple smaller queries that can be parallelized. +1. The query-frontend checks the results cache. If the query result is in the cache, the query-frontend returns the cached result. If not, query execution continues according to the steps below. +1. If [query-sharding]({{< relref "#about-query-sharding" >}}) is enabled, the query-frontend attempts to shard the query for further parallelization. +1. The query-frontend places the query (or _queries_ if splitting or sharding of the initial query occurred) in an in-memory queue, where it waits to be picked up by a querier. +1. A querier picks up the query from the queue and executes it. If the query was split or sharded into multiple subqueries, different queriers can pick up each of the individual queries. 1. A querier or queriers return the result to query-frontend, which then aggregates and forwards the results to the client. ## Functions From e4918a18a2ac7c739b1010ba06b2ef57517563cd Mon Sep 17 00:00:00 2001 From: Karen Miller <84039272+KMiller-Grafana@users.noreply.github.com> Date: Tue, 15 Mar 2022 06:58:17 -0700 Subject: [PATCH 06/30] Docs: add first-pass keywords in frontmatter (#1481) * Docs: add first-pass keywords in frontmatter * Make the linter happy --- docs/sources/_index.md | 8 ++++++++ docs/sources/operators-guide/_index.md | 7 +++++++ .../operators-guide/architecture/components/_index.md | 11 +++++++++++ docs/sources/operators-guide/configuring/_index.md | 2 ++ .../operators-guide/reference-http-api/_index.md | 5 +++++ docs/sources/operators-guide/securing/_index.md | 6 ++++++ .../sources/operators-guide/using-exemplars/_index.md | 2 ++ .../operators-guide/visualizing-metrics/_index.md | 2 ++ docs/sources/release-notes/_index.md | 2 ++ 9 files changed, 45 insertions(+) diff --git a/docs/sources/_index.md b/docs/sources/_index.md index f67371d481..5d02e9dea2 100644 --- a/docs/sources/_index.md +++ b/docs/sources/_index.md @@ -2,6 +2,14 @@ title: "Grafana Mimir" menuTitle: "Grafana Mimir" weight: 1 +keywords: + - Grafana Mimir + - Grafana metrics + - time series database + - TSDB + - Prometheus storage + - metrics storage + - metrics datastore --- # Grafana Mimir diff --git a/docs/sources/operators-guide/_index.md b/docs/sources/operators-guide/_index.md index 4cfc3dadf4..c233ada2b5 100644 --- a/docs/sources/operators-guide/_index.md +++ b/docs/sources/operators-guide/_index.md @@ -3,6 +3,13 @@ title: "Grafana Mimir operator and user guide" menuTitle: "Operator and user guide" description: "This guide contains information about deploying, configuring, and maintaining Grafana Mimir." weight: 20 +keywords: + - Grafana Mimir architecture + - Mimir architecture + - Mimir components + - query sharding + - Mimir deployment + - deploying Mimir --- # Grafana Mimir operator and user guide diff --git a/docs/sources/operators-guide/architecture/components/_index.md b/docs/sources/operators-guide/architecture/components/_index.md index 576fc4f5cb..9d849af184 100644 --- a/docs/sources/operators-guide/architecture/components/_index.md +++ b/docs/sources/operators-guide/architecture/components/_index.md @@ -3,6 +3,17 @@ title: "Grafana Mimir components" menuTitle: "Components" description: "Grafana Mimir includes a set of components that interact to form a cluster." weight: 30 +keywords: + - Mimir components + - Mimir compactor + - Mimir distributor + - Mimir Ingester + - Mimir querier + - Mimir query-frontend + - Mimir store-gateway + - Mimir overrides-exporter + - Mimir query-scheduler + - Mimir ruler --- # Grafana Mimir Components diff --git a/docs/sources/operators-guide/configuring/_index.md b/docs/sources/operators-guide/configuring/_index.md index 100d0e8f71..1edf3a5dba 100644 --- a/docs/sources/operators-guide/configuring/_index.md +++ b/docs/sources/operators-guide/configuring/_index.md @@ -3,6 +3,8 @@ title: "Configuring Grafana Mimir" menuTitle: "Configuration" description: "This section provides links to Grafana Mimir configuration topics." weight: 30 +keywords: + - Mimir configuration --- # Configuring Grafana Mimir diff --git a/docs/sources/operators-guide/reference-http-api/_index.md b/docs/sources/operators-guide/reference-http-api/_index.md index 638fac7c0b..c0c26353a9 100644 --- a/docs/sources/operators-guide/reference-http-api/_index.md +++ b/docs/sources/operators-guide/reference-http-api/_index.md @@ -3,6 +3,11 @@ title: "Reference: Grafana Mimir HTTP API" menuTitle: "Reference: HTTP API" description: "Use the HTTP API to write and query time-series data and operate a Grafana Mimir cluster." weight: 100 +keywords: + - Mimir API + - Mimir endpoints + - Mimir communication + - Mimir querying --- # Reference: Grafana Mimir HTTP API diff --git a/docs/sources/operators-guide/securing/_index.md b/docs/sources/operators-guide/securing/_index.md index 7bb6e09d9c..aec7df06d7 100644 --- a/docs/sources/operators-guide/securing/_index.md +++ b/docs/sources/operators-guide/securing/_index.md @@ -3,6 +3,12 @@ title: "Securing Grafana Mimir" menuTitle: "Securing Grafana Mimir" description: "Learn how to secure Grafana Mimir data and communication paths." weight: 70 +keywords: + - Mimir security + - Mimir authentication + - Mimir authorization + - Mimir encrypt data at rest + - Mimir TLS --- # Securing Grafana Mimir diff --git a/docs/sources/operators-guide/using-exemplars/_index.md b/docs/sources/operators-guide/using-exemplars/_index.md index 9705501c5c..b68c157c76 100644 --- a/docs/sources/operators-guide/using-exemplars/_index.md +++ b/docs/sources/operators-guide/using-exemplars/_index.md @@ -3,6 +3,8 @@ title: "Using exemplars with Grafana Mimir" menuTitle: "Using exemplars with Grafana Mimir" description: "Learn how to use examplars with Grafana Mimir." weight: 40 +keywords: + - Mimir exemplars --- # Using exemplars with Grafana Mimir diff --git a/docs/sources/operators-guide/visualizing-metrics/_index.md b/docs/sources/operators-guide/visualizing-metrics/_index.md index 82a3f33085..101e050198 100644 --- a/docs/sources/operators-guide/visualizing-metrics/_index.md +++ b/docs/sources/operators-guide/visualizing-metrics/_index.md @@ -3,6 +3,8 @@ title: "Monitoring Grafana Mimir" menuTitle: "Monitoring Grafana Mimir" description: "View example Grafana Mimir dashboards." weight: 50 +keywords: + - Mimir dashboards --- # Monitoring Grafana Mimir diff --git a/docs/sources/release-notes/_index.md b/docs/sources/release-notes/_index.md index abdd795eac..33876a579a 100644 --- a/docs/sources/release-notes/_index.md +++ b/docs/sources/release-notes/_index.md @@ -3,6 +3,8 @@ title: "Grafana Mimir release notes" menuTitle: "Release notes" description: "Release notes for all versions of Grafana Mimir." weight: 10 +keywords: + - Grafana Mimir release notes --- # Grafana Mimir release notes From b6296b33db15a4fcc5d741dcfced7bc68030a5e9 Mon Sep 17 00:00:00 2001 From: Jack Baldry Date: Tue, 15 Mar 2022 14:05:49 +0000 Subject: [PATCH 07/30] Update logo image to be less jagged (#1484) Co-authored-by: Gilles De May Signed-off-by: Jack Baldry Co-authored-by: Gilles De May --- images/logo.png | Bin 23076 -> 110338 bytes 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 images/logo.png diff --git a/images/logo.png b/images/logo.png old mode 100755 new mode 100644 index 87f9e2bd0a6f2a9633adb24b8abf844f38f73ebb..4673dd7feb3c52552c051c1f101ffbe1966d40ce GIT binary patch literal 110338 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 z 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 Xn$JwD{`?OqG!#@6H0A5$EF%98Sjs4Z literal 23076 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 Date: Tue, 15 Mar 2022 09:39:09 -0500 Subject: [PATCH 08/30] Review configuration topics (#1485) * Review configuration topics not previously copy edited * make doc * Apply suggestions from code review Co-authored-by: Marco Pracucci Co-authored-by: Marco Pracucci --- .../about-dns-service-discovery.md | 7 +-- .../configuring/about-ip-address-logging.md | 9 ++-- .../about-runtime-configuration.md | 30 +++++------ .../configuring/about-tenant-ids.md | 2 +- .../configuring/configuring-hash-rings.md | 53 +++++++++---------- ...iguring-high-availability-deduplication.md | 24 +++++---- ...the-query-frontend-work-with-prometheus.md | 6 +-- 7 files changed, 67 insertions(+), 64 deletions(-) diff --git a/docs/sources/operators-guide/configuring/about-dns-service-discovery.md b/docs/sources/operators-guide/configuring/about-dns-service-discovery.md index 5b3a2ac0aa..64e0bbf5ca 100644 --- a/docs/sources/operators-guide/configuring/about-dns-service-discovery.md +++ b/docs/sources/operators-guide/configuring/about-dns-service-discovery.md @@ -7,7 +7,7 @@ weight: 20 # About Grafana Mimir DNS service discovery -Some clients in Grafana Mimir support service discovery via DNS to find the addresses of backend servers to connect to. These clients support service discovery via DNS: +Some clients in Grafana Mimir support service discovery via DNS to locate the addresses of backend servers to connect to. The following clients support service discovery via DNS: - [Block storage's memcached cache]({{< relref "reference-configuration-parameters/#blocks_storage" >}}) - [All caching memcached servers]({{< relref "reference-configuration-parameters/#memcached" >}}) @@ -15,7 +15,8 @@ Some clients in Grafana Mimir support service discovery via DNS to find the addr ## Supported discovery modes -The DNS service discovery supports different discovery modes. A discovery mode is selected adding a specific prefix to the address. Supported prefixes are: +DNS service discovery supports different discovery modes. +You select a discovery mode by adding one of the following supported prefixes to the address: - **`dns+`**
The domain name after the prefix is looked up as an A/AAAA query. For example: `dns+memcached.local:11211`. @@ -24,4 +25,4 @@ The DNS service discovery supports different discovery modes. A discovery mode i - **`dnssrvnoa+`**
The domain name after the prefix is looked up as a SRV query, with no A/AAAA lookup made after that. For example: `dnssrvnoa+_memcached._tcp.memcached.namespace.svc.cluster.local`. -If no prefix is provided, the provided IP or hostname will be used without pre-resolving it. +If no prefix is provided, the provided IP or hostname is used without pre-resolving it. diff --git a/docs/sources/operators-guide/configuring/about-ip-address-logging.md b/docs/sources/operators-guide/configuring/about-ip-address-logging.md index 77acd4e2af..32a7ba5340 100644 --- a/docs/sources/operators-guide/configuring/about-ip-address-logging.md +++ b/docs/sources/operators-guide/configuring/about-ip-address-logging.md @@ -7,16 +7,17 @@ weight: 30 # About Grafana Mimir IP address logging of a reverse proxy -If a reverse proxy is used in front of Mimir, it may be difficult to troubleshoot errors. The following settings can be used to log the IP address passed along by the reverse proxy in headers such as `X-Forwarded-For`. +If a reverse proxy is used in front of Mimir, it might be difficult to troubleshoot errors. +You can use the following settings to log the IP address passed along by the reverse proxy in headers such as `X-Forwarded-For`. - `-server.log-source-ips-enabled` - Set this to true to add IP address logging when a `Forwarded`, `X-Real-IP` or `X-Forwarded-For` header is used. A field called `sourceIPs` will be added to error logs when data is pushed into Grafana Mimir. + Set this to `true` to add IP address logging when a `Forwarded`, `X-Real-IP`, or `X-Forwarded-For` header is used. A field called `sourceIPs` is added to error logs when data is pushed into Grafana Mimir. - `-server.log-source-ips-header` - Header field storing the source IP addresses. It is only used if `-server.log-source-ips-enabled` is true, and if `-server.log-source-ips-regex` is set. If not set, the default `Forwarded`, `X-Real-IP` or `X-Forwarded-For` headers are searched. + The header field stores the source IP addresses and is used only if `-server.log-source-ips-enabled` is `true`, and if `-server.log-source-ips-regex` is set. If you do not set these flags, the default `Forwarded`, `X-Real-IP`, or `X-Forwarded-For` headers are searched. - `-server.log-source-ips-regex` - Regular expression for matching the source IPs. It should contain at least one capturing group the first of which will be returned. Only used if `-server.log-source-ips-enabled` is true and if `-server.log-source-ips-header` is set. + A regular expression that is used to match the source IPs. The regular expression must contain at least one capturing group, the first of which is returned. This flag is used only if `-server.log-source-ips-enabled` is `true` and if `-server.log-source-ips-header` is set. diff --git a/docs/sources/operators-guide/configuring/about-runtime-configuration.md b/docs/sources/operators-guide/configuring/about-runtime-configuration.md index 07388711fe..427f3a8df2 100644 --- a/docs/sources/operators-guide/configuring/about-runtime-configuration.md +++ b/docs/sources/operators-guide/configuring/about-runtime-configuration.md @@ -7,9 +7,11 @@ weight: 40 # About Grafana Mimir runtime configuration -A runtime configuration file is a file containing configuration, which is periodically reloaded while Mimir is running. It allows you to change a subset of Grafana Mimir’s configuration without having to restart the Grafana Mimir component or instance. +A runtime configuration file is a file that contains configuration parameters, which is periodically reloaded while Mimir is running. +It allows you to change a subset of Grafana Mimir’s configuration without having to restart the Grafana Mimir component or instance. -Runtime configuration is available for a subset of the configuration that was set at startup. A Grafana Mimir operator can observe the configuration and use runtime configuration to make immediate adjustments to Grafana Mimir. +Runtime configuration is available for a subset of the configuration that was set at startup. +A Grafana Mimir operator can observe the configuration and use runtime configuration to make immediate adjustments to Grafana Mimir. Runtime configuration values take precedence over command-line options. @@ -27,11 +29,11 @@ Use Grafana Mimir’s `/runtime_config` endpoint to see the current value of the ## Runtime configuration of per-tenant limits -The primary use case for the runtime configuration file is that it allows you to set and adjust limits for each tenant in Grafana Mimir. Doing so lets you set limits that are appropriate for each tenant based on their ingest and query needs. +The runtime configuration file is primarily used to set and adjust limits that are appropriate for each tenant based on their ingest and query needs. -The values that are defined in the limits section of your YAML configuration define the default set of limits that are applied to tenants. For example, if you set the `ingestion_rate` to 25,000 in your YAML configuration file, any tenant in your cluster that is sending more than 25,000 samples per second (SPS) will be rate limited. +The values that are defined in the limits section of your YAML configuration define the default set of limits that are applied to tenants. For example, if you set the `ingestion_rate` to `25,000` in your YAML configuration file, any tenant in your cluster that sends more than 25,000 samples per second (SPS) is rate limited. -You can use the runtime configuration file to override this behavior. For example, if you have a tenant (`tenant1`) that needs to send twice as many data points as the current limit, and you have another tenant (`tenant2`) that needs to send three times as many data points, you can modify the contents of your runtime configuration file: +You can use the runtime configuration file to override this behavior. For example, if you have a tenant (`tenant1`) that needs to send twice as many data points as the current limit, and you have another tenant (`tenant2`) that needs to send three times as many data points, you can modify the contents of your runtime configuration file as follows: ```yaml overrides: @@ -49,13 +51,13 @@ As a result, Grafana Mimir allows `tenant1` to send 50,000 SPS, and `tenant2` to ## Ingester instance limits -Grafana Mimir ingesters support limits that are applied per instance, meaning that they apply to each ingester process. These limits can be used to ensure individual ingesters are not overwhelmed regardless of any per-tenant limits. These limits can be set under the `ingester.instance_limits` block in the global configuration file, with CLI flags, or under the `ingester_limits` field in the runtime configuration file. - -The runtime configuration file can be used to dynamically adjust ingester instance limits. While per-tenant limits are limits applied to each tenant, per-ingester-instance limits are limits applied to each ingester process. +The runtime configuration file can be used to dynamically adjust Grafana Mimir ingester instance limits. While per-tenant limits are limits applied to each tenant, per-ingester-instance limits are limits applied to each ingester process. +Ingester limits ensure individual ingesters are not overwhelmed, regardless of any per-tenant limits. These limits can be set under the `ingester.instance_limits` block in the global configuration file, with CLI flags, or under the `ingester_limits` field in the runtime configuration file. The runtime configuration allows you to override initial values, which is useful for advanced operators who need to dynamically change them in response to changes in ingest or query load. -Everything under the `instance_limits` section within the [`ingester`]({{< relref "reference-configuration-parameters/#ingester" >}}) block can be overridden via runtime configuration. Here is an example portion of runtime configuration that changes the ingester limits: +Everything under the `instance_limits` section within the [`ingester`]({{< relref "reference-configuration-parameters/#ingester" >}}) block can be overridden via runtime configuration. +The following example shows a portion of the runtime configuration that changes the ingester limits: ```yaml ingester_limits: @@ -67,11 +69,9 @@ ingester_limits: ## Runtime configuration of ingester streaming -An advanced runtime configuration -controls whether ingesters transfer encoded chunks (the default) or transfer decoded series to queriers at query time. +An advanced runtime configuration option controls if ingesters transfer encoded chunks (the default) or transfer decoded series to queriers at query time. -The parameter `ingester_stream_chunks_when_using_blocks` may only be used in runtime configuration. -A value of true transfers encoded chunks, -and a value of false transfers decoded series. +The parameter `ingester_stream_chunks_when_using_blocks` might only be used in runtime configuration. +A value of `true` transfers encoded chunks, and a value of `false` transfers decoded series. -We strongly recommend against changing the default setting. It already defaults to true, and should remain true except for rare corner cases where users have observed slowdowns in Grafana Mimir rules evaluation. +> **Note:** We strongly recommend that you use the default setting, which is `true`, except in rare cases where users observe Grafana Mimir rules evaluation slowing down. diff --git a/docs/sources/operators-guide/configuring/about-tenant-ids.md b/docs/sources/operators-guide/configuring/about-tenant-ids.md index 1b84b9824b..d530f0cec6 100644 --- a/docs/sources/operators-guide/configuring/about-tenant-ids.md +++ b/docs/sources/operators-guide/configuring/about-tenant-ids.md @@ -12,7 +12,7 @@ For information about how Grafana Mimir components use tenant IDs, refer to [Aut ## Restrictions -Tenant IDs must be less-than or equal-to 150 bytes or characters in length and must comprise only supported characters: +Tenant IDs must be less-than or equal-to 150 bytes or characters in length and can only include the following supported characters: - Alphanumeric characters - `0-9` diff --git a/docs/sources/operators-guide/configuring/configuring-hash-rings.md b/docs/sources/operators-guide/configuring/configuring-hash-rings.md index dd08c562aa..b53903ab4e 100644 --- a/docs/sources/operators-guide/configuring/configuring-hash-rings.md +++ b/docs/sources/operators-guide/configuring/configuring-hash-rings.md @@ -9,8 +9,7 @@ weight: 60 [Hash rings]({{< relref "../architecture/hash-ring.md" >}}) are a distributed consistent hashing scheme and are widely used by Grafana Mimir for sharding and replication. -There are several Grafana Mimir components that require a hash ring. -Each of the following components builds an independent hash ring. +Each of the following Grafana Mimir components builds an independent hash ring. The CLI flags used to configure the hash ring of each component have the following prefixes: - Ingesters: `-ingester.ring.*` @@ -40,10 +39,10 @@ You can configure the KV store backend setting the `.store` CLI flag (fo ### Memberlist (default) -By default, Grafana Mimir uses `memberlist` KV store backend. +By default, Grafana Mimir uses `memberlist` as the KV store backend. -At startup, a Mimir instance connects to other Mimir replicas to join the cluster. -A Mimir instance discovers the other replicas to join resolving the addresses configured in `-memberlist.join`. +At startup, a Grafana Mimir instance connects to other Mimir replicas to join the cluster. +A Grafana Mimir instance discovers the other replicas to join by resolving the addresses configured in `-memberlist.join`. The `-memberlist.join` CLI flag must resolve to other replicas in the cluster and can be specified multiple times. The `-memberlist.join` can be set to: @@ -56,9 +55,9 @@ The default port is `7946`. > **Note**: At a minimum, configure one or more addresses that resolve to a consistent subset of replicas (for example, all the ingesters). -> **Note**: If you're running Grafana Mimir in Kubernetes, we recommend defining a [headless Kubernetes Service](https://kubernetes.io/docs/concepts/services-networking/service/#headless-services) which resolves to the IP addresses of all Grafana Mimir pods. Then you set `-memberlist.join` to `dnssrv+..svc.cluster.local:`. +> **Note**: If you're running Grafana Mimir in Kubernetes, define a [headless Kubernetes Service](https://kubernetes.io/docs/concepts/services-networking/service/#headless-services) which resolves to the IP addresses of all Grafana Mimir pods. Then you set `-memberlist.join` to `dnssrv+..svc.cluster.local:`. -> **Note**: the `memberlist` backend is configured globally and can't be customized on a per-component basis. In these regards, the `memberlist` backend differs from others supported backends, like Consul or etcd. +> **Note**: The `memberlist` backend is configured globally and can't be customized on a per-component basis. Because `memberlist` is configured globally, the `memberlist` backend differs from other supported backends, such as Consul or etcd. Grafana Mimir supports TLS for memberlist connections between its components. For more information about TLS configuration, refer to [secure communications with TLS]({{< relref "../securing/securing-communications-with-tls.md" >}}). @@ -71,13 +70,13 @@ By default, Grafana Mimir memberlist protocol listens on address `0.0.0.0` and p If you run multiple Mimir processes on the same node or the port `7946` is not available, you can change the bind and advertise port by setting the following parameters: - `-memberlist.bind-addr`: IP address to listen on the local machine. -- `-memberlist.bind-port`: port to listen on the local machine. +- `-memberlist.bind-port`: Port to listen on the local machine. - `-memberlist.advertise-addr`: IP address to advertise to other Mimir replicas. The other replicas will connect to this IP to talk to the instance. -- `-memberlist.advertise-port`: port to advertise to other Mimir replicas. The other replicas will connect to this port to talk to the instance. +- `-memberlist.advertise-port`: Port to advertise to other Mimir replicas. The other replicas will connect to this port to talk to the instance. ### Fine tuning memberlist changes propagation latency -The `cortex_ring_oldest_member_timestamp` metric can be used to measure the hash ring changes propagation. +The `cortex_ring_oldest_member_timestamp` metric can be used to measure the propagation of hash ring changes. This metric tracks the oldest heartbeat timestamp across all instances in the ring. You can execute the following query to measure the age of the oldest heartbeat timestamp in the ring: @@ -85,8 +84,8 @@ You can execute the following query to measure the age of the oldest heartbeat t max(time() - cortex_ring_oldest_member_timestamp{state="ACTIVE"}) ``` -The measured age shouldn't be higher than the configured `.heartbeat-period` plus a reasonable delta (15 seconds). -If you experience an higher changes propagation latency, you can fine tune the following settings: +The measured age shouldn't be higher than the configured `.heartbeat-period` plus a reasonable delta (for example, 15 seconds). +If you experience a higher changes propagation latency, you can adjust the following settings: - Decrease `-memberlist.gossip-interval` - Increase `-memberlist.gossip-nodes` @@ -106,7 +105,7 @@ To see all supported configuration parameters, refer [consul]({{< relref "../con To use [etcd](https://etcd.io) as a backend KV store, set the following parameters: -- `.etcd.endpoints`: etcd hostname and port separated by colon. For example, `etcd:2379`. +- `.etcd.endpoints`: etcd hostname and port separated by a colon. For example, `etcd:2379`. - `.etcd.username`: Username used to authenticate to etcd. If etcd authentication is disabled, you can leave the username empty. - `.etcd.password`: Password used to authenticate to etcd. If etcd authentication is disabled, you can leave the password empty. @@ -126,17 +125,17 @@ The primary and secondary backends can be swapped in real-time, which enables yo You can use the following parameters to configure the multi KV store settings: -- `.multi.primary`: the type of primary backend store. -- `.multi.secondary`: the type of the secondary backend store. -- `.multi.mirror-enabled`: whether mirroring of writes to the secondary backend store is enabled. -- `.multi.mirror-timeout`: the maximum time allowed to mirror a change to the secondary backend store. +- `.multi.primary`: The type of primary backend store. +- `.multi.secondary`: The type of the secondary backend store. +- `.multi.mirror-enabled`: Whether mirroring of writes to the secondary backend store is enabled. +- `.multi.mirror-timeout`: The maximum time allowed to mirror a change to the secondary backend store. -> **Note**: Grafana Mimir does not log an error if unable to mirror writes to the secondary backend store. The total number of errors is only tracked through the metric `cortex_multikv_mirror_write_errors_total`. +> **Note**: Grafana Mimir does not log an error if it is unable to mirror writes to the secondary backend store. The total number of errors is only tracked through the metric `cortex_multikv_mirror_write_errors_total`. The multi KV primary backend and mirroring can also be configured in the [runtime configuration file]({{< relref "../configuring/about-runtime-configuration.md" >}}). -Changes to a multi KV Store in the runtime configuration apply to ALL components using a multi KV store. +Changes to a multi KV Store in the runtime configuration apply to _all_ components using a multi KV store. -Example runtime configuration file for the multi KV store: +The following example shows a runtime configuration file for the multi KV store: ```yaml multi_kv_config: @@ -145,17 +144,17 @@ multi_kv_config: mirror_enabled: true ``` -> **Note**: the runtime configuration settings take precedence over CLI flags. +> **Note**: The runtime configuration settings take precedence over CLI flags. -#### A practical example +#### Ingester migration example -For example, you can migrate ingesters from Consul to etcd using the following procedure: +The following steps show how to migrate ingesters from Consul to etcd: -1. Configure `-ingester.ring.store=multi`, `-ingester.ring.multi.primary=consul`, `-ingester.ring.multi.secondary=etcd` and `-ingester.ring.multi.mirror-enabled=true`. Configure both Consul settings `-ingester.ring.consul.*` and etcd settings `-ingester.ring.etcd.*`. -1. Apply changes to your Grafana Mimir cluster. After changes have rolled out, Mimir will use Consul as primary KV store, and all writes will be mirrored to etcd too. +1. Configure `-ingester.ring.store=multi`, `-ingester.ring.multi.primary=consul`, `-ingester.ring.multi.secondary=etcd`, and `-ingester.ring.multi.mirror-enabled=true`. Configure both Consul settings `-ingester.ring.consul.*` and etcd settings `-ingester.ring.etcd.*`. +1. Apply changes to your Grafana Mimir cluster. After changes have rolled out, Grafana Mimir uses Consul as primary KV store, and all writes are mirrored to etcd too. 1. Configure `primary: etcd` in the `multi_kv_config` block of the [runtime configuration file]({{< relref "../configuring/about-runtime-configuration.md" >}}). Changes in the runtime configuration file are reloaded live, without the need to restart the process. 1. Wait until all Mimir instances have reloaded the updated configuration. 1. Configure `mirror_enabled: false` in the `multi_kv_config` block of the [runtime configuration file]({{< relref "../configuring/about-runtime-configuration.md" >}}). 1. Wait until all Mimir instances have reloaded the updated configuration. -1. Configure `-ingester.ring.store=etcd` and remove both the multi and Consul configuration because they will not be required anymore. -1. Apply changes to your Grafana Mimir cluster. After changes have rolled out, Mimir will only use etcd. +1. Configure `-ingester.ring.store=etcd` and remove both the multi and Consul configuration because they are no longer required. +1. Apply changes to your Grafana Mimir cluster. After changes have rolled out, Grafana Mimir only uses etcd. diff --git a/docs/sources/operators-guide/configuring/configuring-high-availability-deduplication.md b/docs/sources/operators-guide/configuring/configuring-high-availability-deduplication.md index f61b715247..b887ad8edd 100644 --- a/docs/sources/operators-guide/configuring/configuring-high-availability-deduplication.md +++ b/docs/sources/operators-guide/configuring/configuring-high-availability-deduplication.md @@ -23,7 +23,7 @@ timeout ensures that too much data is not dropped before failover to the other r > **Note:** In a scenario where the default scrape period is 15 seconds, and the timeouts in Grafana Mimir are set to the default values, > when a leader-election failover occurs, you'll likely only lose a single scrape of data. For any query using the `rate()` function, make the rate time interval > at least four times that of the scrape period to account for any of these failover scenarios. -> For example with the default scrape period of 15 seconds, use a rate time-interval at least 1-minute long. +> For example, with the default scrape period of 15 seconds, use a rate time-interval at least 1-minute. ## Distributor high-availability (HA) tracker @@ -32,20 +32,22 @@ The [distributor]({{< relref "../architecture/components/distributor.md" >}}) in The HA tracker deduplicates incoming samples based on a cluster and replica label expected on each incoming series. The cluster label uniquely identifies the cluster of redundant Prometheus servers for a given tenant. The replica label uniquely identifies the replica within the Prometheus cluster. -Incoming samples are considered duplicated (and thus dropped) if received from any replica which is not the currently elected as leader within a cluster. +Incoming samples are considered duplicated (and thus dropped) if they are received from any replica that is not the currently elected leader within a cluster. -In the event the HA tracker is enabled but incoming samples contain only one or none of the cluster and replica labels, these samples will be accepted by default and never deduplicated. +If the HA tracker is enabled but incoming samples contain only one or none of the cluster and replica labels, these samples are accepted by default and never deduplicated. -> Note: for performance reasons, the HA tracker only checks the cluster and replica label of the first series in the request to decide whether all series in the request should be deduplicated. This assumes that all series inside the request have the same cluster and replica labels, which is typically true when Prometheus is configured with external labels. We recommend you to ensure this requirement is honored if you're having a non standard Prometheus setup (eg. you're using Prometheus federation or have a metrics proxy in between). +> Note: for performance reasons, the HA tracker only checks the cluster and replica label of the first series in the request to determine whether all series in the request should be deduplicated. This assumes that all series inside the request have the same cluster and replica labels, which is typically true when Prometheus is configured with external labels. Ensure this requirement is honored if you have a non-standard Prometheus setup (for example, you're using Prometheus federation or have a metrics proxy in between). ## Configuration -This section includes information about how to configure Prometheus and how to configure Grafana Mimir. +This section includes information about how to configure Prometheus and Grafana Mimir. ### How to configure Prometheus -To configure Prometheus, set two identifiers for each Prometheus server: one for the cluster, for example, `team-1` or `team-2`, and one to identify the replica in the cluster, for example `a` or `b`. -It’s easiest to set [external labels](https://prometheus.io/docs/prometheus/latest/configuration/configuration/). The default labels are `cluster` and `__replica__`, for example: +To configure Prometheus, set two identifiers for each Prometheus server, one for the cluster. For example, set `team-1` or `team-2`, and one to identify the replica in the cluster, for example `a` or `b`. +The easiest approach is to set [external labels](https://prometheus.io/docs/prometheus/latest/configuration/configuration/). The default labels are `cluster` and `__replica__`. + +The following example shows how to set identifiers in Prometheus: ``` global: @@ -66,7 +68,7 @@ global: > **Note:** The preceding labels are external labels and have nothing to do with `remote_write` configuration. These two label names are configurable on a per-tenant basis within Grafana Mimir. For example, if the label name of one cluster is used by -some workloads, set the label name of another cluster to be something else that uniquely identifies the second cluster. +some workloads, set the label name of another cluster to something else that uniquely identifies the second cluster. Set the replica label so that the value for each Prometheus cluster is unique in that cluster. @@ -84,7 +86,7 @@ The minimal configuration required is as follows: To enable the HA tracker feature, set the `-distributor.ha-tracker.enable=true` CLI flag (or its YAML configuration option) in the distributor. -Next, decide whether you want to enable it for all tenants or just a subset of them. +Next, decide whether you want to enable it for all tenants or just a subset of tenants. To enable it for all tenants, set `-distributor.ha-tracker.enable-for-all-users=true`. Alternatively, you can enable the HA tracker only on a per-tenant basis, keeping the default `-distributor.ha-tracker.enable-for-all-users=false` and overriding it on a per-tenant basis setting `accept_ha_samples` in the overrides section of the runtime configuration. @@ -109,8 +111,8 @@ You can configure the name of these labels either globally or on a per-tenant ba Configure the default cluster and replica label names using the following CLI flags (or their respective YAML configuration options): -- `-distributor.ha-tracker.cluster`: name of the label whose value uniquely identifies a Prometheus HA cluster (defaults to `cluster`). -- `-distributor.ha-tracker.replica`: name of the label whose value uniquely identifies a Prometheus replica within the HA cluster (defaults to `__replica__`). +- `-distributor.ha-tracker.cluster`: Name of the label whose value uniquely identifies a Prometheus HA cluster (defaults to `cluster`). +- `-distributor.ha-tracker.replica`: Name of the label whose value uniquely identifies a Prometheus replica within the HA cluster (defaults to `__replica__`). > **Note:** The HA label names can be overridden on a per-tenant basis by setting `ha_cluster_label` and `ha_replica_label` in the overrides section of the runtime configuration. diff --git a/docs/sources/operators-guide/configuring/configuring-the-query-frontend-work-with-prometheus.md b/docs/sources/operators-guide/configuring/configuring-the-query-frontend-work-with-prometheus.md index bbb0272da4..6668f5dea4 100644 --- a/docs/sources/operators-guide/configuring/configuring-the-query-frontend-work-with-prometheus.md +++ b/docs/sources/operators-guide/configuring/configuring-the-query-frontend-work-with-prometheus.md @@ -7,9 +7,9 @@ weight: 90 # Configuring the Grafana Mimir query-frontend to work with Prometheus -You can use the Mimir query-frontend with any Prometheus-API compatible -service, including Prometheus and Thanos. Use this config file to get -the benefits of query parallelisation and caching. +You can use the Grafana Mimir query-frontend with any Prometheus-API compatible +service, including Prometheus and Thanos. Use this configuration file to +benefit from query parallelization and caching. [embedmd]:# (../../../configurations/prometheus-frontend.yml) From a98024754961aa2474313f1918701b02daf6a652 Mon Sep 17 00:00:00 2001 From: Karen Miller <84039272+KMiller-Grafana@users.noreply.github.com> Date: Tue, 15 Mar 2022 10:24:25 -0700 Subject: [PATCH 09/30] Docs: Revise Mimir docs landing page (#1458) * Docs: Revise Mimir docs landing page - Add logo - Make the Grafana Cloud note like other Grafana open source project landing pages * Linter change. * Update _index.md Not done yet. * Update _index.md continuing to edit. * Update _index.md Alrighty - Iooking decent now. * Copy edit and run linter * Yet another linter change needed after resolving a conflict. * Spelling correction * Update docs/sources/_index.md Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com> * Update docs/sources/_index.md Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com> * Changes per review comments Co-authored-by: Jennifer Villa Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com> --- docs/sources/_index.md | 33 ++++++++--------------------- docs/sources/images/mimir-logo.png | Bin 0 -> 32739 bytes 2 files changed, 9 insertions(+), 24 deletions(-) create mode 100644 docs/sources/images/mimir-logo.png diff --git a/docs/sources/_index.md b/docs/sources/_index.md index 5d02e9dea2..103b21129b 100644 --- a/docs/sources/_index.md +++ b/docs/sources/_index.md @@ -12,31 +12,16 @@ keywords: - metrics datastore --- -# Grafana Mimir +# Grafana Mimir Documentation -Grafana Mimir provides horizontally scalable, highly available, multi-tenant, long-term storage for [Prometheus](https://prometheus.io). +![Grafana Mimir](./images/mimir-logo.png) -- **Horizontally scalable:** Grafana Mimir can run across multiple machines in a cluster, exceeding the throughput and storage of a single machine. This enables you to send the metrics from multiple Prometheus servers to a single Grafana Mimir cluster and run globally aggregated queries across all data in a single place. -- **Highly available:** When run in a cluster, Grafana Mimir replicates data between machines. - This makes Grafana Mimir resilient to machine failure, which ensures that there is no data missing in your graphs. -- **Multi-tenant:** Grafana Mimir can isolate data and queries from multiple independent - Prometheus sources in a single cluster, allowing untrusted parties to share the same cluster. -- **Long-term storage:** Grafana Mimir supports S3, GCS, Swift, and Microsoft Azure for long-term storage of metric data. This enables you to durably store data for longer than the lifetime of a single machine, and use this data for long-term capacity planning. +Grafana Mimir is an open source software project that provides a scalable long-term storage for [Prometheus](https://prometheus.io). Some of the core strengths of Grafana Mimir include: -## Documentation +- **Massive scalability:** You can run Grafana Mimir's horizontally-scalable architecture across multiple machines, resulting in the ability to process orders of magnitude more time series than a single Prometheus instance. Internal testing shows that Grafana Mimir handles up to 1 billion active time series. +- **Global view of metrics:** Grafana Mimir enables you to run queries that aggregate series from multiple Prometheus instances, giving you a global view of your systems. Its query engine extensively parallelizes query execution, so that even the highest-cardinality queries complete with blazing speed. +- **Cheap, durable metric storage:** Grafana Mimir uses object storage for long-term data storage, allowing it to take advantage of this ubiquitous, cost-effective, high-durability technology. It is compatible with multiple object store implementations, including AWS S3, Google Cloud Storage, Azure Blob Storage, OpenStack Swift, as well as any S3-compatible object storage. +- **High availability:** Grafana Mimir replicates incoming metrics, ensuring that no data is lost in the event of machine failure. Its horizontally scalable architecture also means that it can be restarted, upgraded, or downgraded with zero downtime, which means no interruptions to metrics ingestion or querying. +- **Natively multi-tenant:** Grafana Mimir’s multi-tenant architecture enables you to isolate data and queries from independent teams or business units, making it possible for these groups to share the same cluster. Advanced limits and quality-of-service controls ensure that capacity is shared fairly among tenants. -If you’re new to Grafana Mimir, read [Getting started with Grafana Mimir]({{< relref "./operators-guide/getting-started/_index.md" >}}). - -Before deploying Grafana Mimir, read: - -1. [Grafana Mimir architecture]({{< relref "operators-guide/architecture/_index.md" >}}) -1. [Getting started with Grafana Mimir]({{< relref "operators-guide/getting-started/_index.md" >}}) -1. [Configuring Grafana Mimir]({{< relref "operators-guide/configuring/_index.md" >}}) - -## Hosted Grafana Mimir (Prometheus as a service) - -Grafana Mimir is used in [Grafana Cloud](https://grafana.com/cloud), and is primarily used as a [remote write](https://prometheus.io/docs/operating/configuration/#remote_write) destination for Prometheus via a Prometheus-compatible query API. - -### Grafana Cloud - -As the creators of [Grafana](https://grafana.com/oss/grafana/), [Grafana Loki](https://grafana.com/oss/loki/), and [Grafana Tempo](https://grafana.com/oss/tempo/), Grafana Labs can offer you the most holistic Observability-as-a-Service stack out there. +> **Note:** You can use [Grafana Cloud](https://grafana.com/products/cloud/features/#cloud-metrics) to avoid installing, maintaining, and scaling your own instance of Grafana Mimir. The free forever plan includes 10,000 metrics. [Create an account to get started](https://grafana.com/auth/sign-up/create-user?pg=docs-mimir&plcmt=in-text). diff --git a/docs/sources/images/mimir-logo.png b/docs/sources/images/mimir-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..340b59143587d5d59184358024d16068a1fe1d09 GIT binary patch literal 32739 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 literal 0 HcmV?d00001 From 523bd5beddbcfcaadac651581a745794746e6518 Mon Sep 17 00:00:00 2001 From: Karen Miller <84039272+KMiller-Grafana@users.noreply.github.com> Date: Tue, 15 Mar 2022 10:44:09 -0700 Subject: [PATCH 10/30] Add two more top-level keywords to frontmatter (#1487) --- docs/sources/_index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/sources/_index.md b/docs/sources/_index.md index 103b21129b..b1afd3c507 100644 --- a/docs/sources/_index.md +++ b/docs/sources/_index.md @@ -8,8 +8,10 @@ keywords: - time series database - TSDB - Prometheus storage + - Prometheus remote write - metrics storage - metrics datastore + - observability --- # Grafana Mimir Documentation From b90650ff4bb925d659003b29dd1d48af9f14ce21 Mon Sep 17 00:00:00 2001 From: Jennifer Villa Date: Wed, 16 Mar 2022 01:29:33 -0700 Subject: [PATCH 11/30] Adding a small page for deployment instructions that references Helm and Jsonnet (#1490) * placeholder page for deployment content * Initial stub of deployment file. * Apply suggestions from code review Added Chris' suggestions Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com> * Update _index.md * incorporates feedback * make doc Co-authored-by: Chris Moyer Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com> --- .../deploying-grafana-mimir/_index.md | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 docs/sources/operators-guide/deploying-grafana-mimir/_index.md diff --git a/docs/sources/operators-guide/deploying-grafana-mimir/_index.md b/docs/sources/operators-guide/deploying-grafana-mimir/_index.md new file mode 100644 index 0000000000..44db4ec1a6 --- /dev/null +++ b/docs/sources/operators-guide/deploying-grafana-mimir/_index.md @@ -0,0 +1,23 @@ +--- +title: "Deploying Grafana Mimir on Kubernetes" +menuTitle: "Deploying on Kubernetes" +description: "Learn how to deploy Grafana Mimir on Kubernetes." +weight: 15 +keywords: + - Mimir deployment + - Mimir Kubernetes +--- + +# Deploying Grafana Mimir on Kubernetes + +You can use Helm or Tanka to deploy Grafana Mimir on Kubernetes. + +## Helm + +A [mimir-distributed](https://github.com/grafana/helm-charts/tree/main/charts/mimir-distributed) Helm chart that deploys Grafana Mimir in [microservices mode]({{< relref "../architecture/deployment-modes.md#microservices-mode" >}}) is available in the grafana/helm-charts repo. + +## Tanka + +Grafana Labs also publishes [jsonnet](https://jsonnet.org/) files that you can use to deploy Grafana Mimir in [microservices mode]({{< relref "../architecture/deployment-modes.md#microservices-mode" >}}). To locate the Jsonnet files and a README file, refer to [Jsonnet for Mimir on Kubernetes](https://github.com/grafana/mimir/tree/main/operations/mimir). + +The README explains how to use [tanka](https://tanka.dev/) and [jsonnet-bundler](https://github.com/jsonnet-bundler/jsonnet-bundler) to generate Kubernetes YAML manifests from the jsonnet files. Alternatively, if you are familiar with tanka, you can use it directly to deploy Grafana Mimir. From 122e865bbc650793a1e74e494995c4a724e1daa8 Mon Sep 17 00:00:00 2001 From: Jennifer Villa Date: Wed, 16 Mar 2022 07:24:35 -0700 Subject: [PATCH 12/30] Added some quick updates on zone awareness. (#1495) * Added some quick updates on zone awareness. Signed-off-by: Marco Pracucci Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com> --- .../configuring/configuring-zone-aware-replication.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docs/sources/operators-guide/configuring/configuring-zone-aware-replication.md b/docs/sources/operators-guide/configuring/configuring-zone-aware-replication.md index 475e899d5d..1dc2944bda 100644 --- a/docs/sources/operators-guide/configuring/configuring-zone-aware-replication.md +++ b/docs/sources/operators-guide/configuring/configuring-zone-aware-replication.md @@ -74,3 +74,12 @@ When replica counts are unbalanced, zones with fewer replicas have higher resour Most cloud providers charge for inter-availability zone networking. Deploying Grafana Mimir with zone-aware replication across multiple cloud provider availability zones likely results in additional networking costs. + +## Kubernetes operator for simplifying rollouts of zone-aware components + +The [Kubernetes Rollout Operator](https://github.com/grafana/rollout-operator) is a Kubernetes operator that makes it easier for you to manage multi-availability-zone rollouts. Consider using the Kubernetes Rollout Operator when you run Grafana Mimir on Kubernetes with zone awareness enabled. + +## Enabling zone-awareness via the Grafana Mimir Jsonnet + +Instead of configuring Grafana Mimir directly, you can use the [Grafana Mimir Jsonnet](https://github.com/grafana/mimir/tree/main/operations/mimir) to enable ingester and store-gateway zone awareness. +To enable ingester and store-gateway zone awareness, set the top level `cortex_multi_zone_store_gateway_enabled` or `cortex_multi_zone_ingester_enabled` Jsonnet fields to `true`. These flags set the required Grafana Mimir configuration parameters that support ingester and store-gateway zone awareness. From 23d4154598fb488e8734d76915541ec6e83fa91b Mon Sep 17 00:00:00 2001 From: Jennifer Villa Date: Wed, 16 Mar 2022 08:52:42 -0700 Subject: [PATCH 13/30] Create a small docs page on custom active series trackers (#1491) Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com> Co-authored-by: Marco Pracucci Co-authored-by: Oleg Zaytsev Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com> --- .../configuring-custom-trackers.md | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 docs/sources/operators-guide/configuring/configuring-custom-trackers.md diff --git a/docs/sources/operators-guide/configuring/configuring-custom-trackers.md b/docs/sources/operators-guide/configuring/configuring-custom-trackers.md new file mode 100644 index 0000000000..926a244b75 --- /dev/null +++ b/docs/sources/operators-guide/configuring/configuring-custom-trackers.md @@ -0,0 +1,38 @@ +--- +title: "Configuring custom active series trackers" +menuTitle: "Configuring custom active series trackers" +description: "Use the custom tracker to count the number of active series on an ingester." +weight: 55 +--- + +# Configuring custom active series trackers + +You can use the custom tracker feature to count the number of active series on an ingester that match a particular label pattern. + +The label pattern to match against is specified using the `-ingester.active-series-custom-trackers` CLI flag (or its respective YAML configuration option). Each custom tracker is defined as a key-value pair, where the key is the name of the tracker and the value is the label matcher. Both the key and the value are type ``. + +The following example configures a custom tracker to count the active series coming from `dev` and `prod` namespaces for each tenant. + +```yaml +active_series_custom_trackers: + dev: '{namespace=~"dev-.*"}' + prod: '{namespace=~"prod-.*"}' +``` + +If you configure a custom tracker for an ingester, the ingester exposes a `cortex_ingester_active_series_custom_tracker` gauge metric on its [/metrics endpoint](({{< relref "../reference-http-api#metrics" >}})). + +Each custom tracker counts the active series matching its label pattern on a per-tenant basis, which means that each custom tracker generates as many as `# of tenants` series with metric name `cortex_ingester_active_series_custom_tracker`. To reduce the cardinality of this metric, only custom trackers that have matched at least one series are exposed on the metric, and they are removed if they become `0`. + +Series with metric name `cortex_ingester_active_series_custom_tracker` have two labels applied: `name` and `user`. The value of the `name` label is the name of the custom tracker specified in the configuration. The value of the `user` label is the tenant-id for which the series count applies. + +Assume two custom trackers are configured as in the example above, and that your Grafana Mimir cluster has three tenants: `tenant_1`, `tenant_2`, and `tenant_with_only_prod_metrics`. Assume all series within `tenant_with_only_prod_metrics` have labels that match the pattern `{namespace=~"prod-.*"}` and none that match `{namespace=~"dev-.*"}`. + +In this example, the following output appears when the `/metrics` endpoint for the ingester component is scraped: + +``` +cortex_ingester_active_series_custom_tracker{name="dev", user="tenant_1"} +cortex_ingester_active_series_custom_tracker{name="prod", user="tenant_2"} +cortex_ingester_active_series_custom_tracker{name="prod", user="tenant_with_only_prod_metrics"} +``` + +> **Note:** The custom active series trackers are exposed on each ingester. To understand the count of active series matching a particular label pattern in your Grafana Mimir cluster at a global level, you must collect and sum this metric across all ingesters. If you're running Grafana Mimir with a `replication_factor` > 1, you must also adjust for the fact that the same series will be replicated `RF` times across your ingesters. From e7e14e456962cf80a456a69c2dcea13a36ae027a Mon Sep 17 00:00:00 2001 From: Christopher Moyer <35463610+chri2547@users.noreply.github.com> Date: Wed, 16 Mar 2022 15:32:19 -0500 Subject: [PATCH 14/30] Docs: Revise readme (#1489) * in-process copy edit * copy edit continues * in-process draft * Update README.md Co-authored-by: Marco Pracucci * Update README.md Co-authored-by: Marco Pracucci * incorporated first batch of feedback * addressed final feedback * adjusted doc URLs to latest * removed reference to apache exceptions * Fix typo Co-authored-by: Marco Pracucci Co-authored-by: Jack Baldry --- README.md | 54 +++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 37 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 46bcefff59..ec9964e7f5 100644 --- a/README.md +++ b/README.md @@ -2,32 +2,52 @@

Grafana Mimir logo

-Grafana Mimir provides horizontally scalable, highly available, multi-tenant, long-term storage for [Prometheus](https://prometheus.io). +Grafana Mimir is an open source software project that provides a scalable long-term storage for [Prometheus](https://prometheus.io). Some of the core strengths of Grafana Mimir include: -- **Horizontally scalable:** Grafana Mimir can run across multiple machines in a cluster, exceeding the throughput and storage of a single machine. This enables you to send the metrics from multiple Prometheus servers to a single Mimir cluster and run "globally aggregated" queries across all data in a single place. -- **Highly available:** When run in a cluster, Grafana Mimir can replicate data between machines. This allows you to survive machine failure without gaps in your graphs. -- **Multi-tenant:** Grafana Mimir can isolate data and queries from multiple different independent - Prometheus sources in a single cluster, allowing untrusted parties to share the same cluster. -- **Long term storage:** Grafana Mimir supports S3, GCS, Swift and Microsoft Azure for long term storage of metric data. This allows you to durably store data for longer than the lifetime of any single machine, and use this data for long term capacity planning. +- **Massive scalability:** You can run Grafana Mimir's horizontally-scalable architecture across multiple machines, resulting in the ability to process orders of magnitude more time series than a single Prometheus instance. Internal testing shows that Grafana Mimir handles up to 1 billion active time series. +- **Global view of metrics:** Grafana Mimir enables you to run queries that aggregate series from multiple Prometheus instances, giving you a global view of your systems. Its query engine extensively parallelizes query execution, so that even the highest-cardinality queries complete with blazing speed. +- **Cheap, durable metric storage:** Grafana Mimir uses object storage for long-term data storage, allowing it to take advantage of this ubiquitous, cost-effective, high-durability technology. It is compatible with multiple object store implementations, including AWS S3, Google Cloud Storage, Azure Blob Storage, OpenStack Swift, as well as any S3-compatible object storage. +- **High availability:** Grafana Mimir replicates incoming metrics, ensuring that no data is lost in the event of machine failure. Its horizontally scalable architecture also means that it can be restarted, upgraded, or downgraded with zero downtime, which means no interruptions to metrics ingestion or querying. +- **Natively multi-tenant:** Grafana Mimir’s multi-tenant architecture enables you to isolate data and queries from independent teams or business units, making it possible for these groups to share the same cluster. Advanced limits and quality-of-service controls ensure that capacity is shared fairly among tenants. -## Documentation +## Migrating to Grafana Mimir + +If you're migrating to Grafana Mimir, refer to the following documents: + +- [Migrating from Thanos or Prometheus to Grafana Mimir](https://grafana.com/docs/mimir/latest/migration-guide/migrating-from-thanos-or-prometheus/). +- [Migrating from Cortex to Grafana Mimir](https://grafana.com/docs/mimir/latest/migration-guide/migrating-from-cortex/) + +## Deploying Grafana Mimir + +For information about how to deploy Grafana Mimir, refer to [Deploying Grafana Mimir](https://grafana.com/docs/mimir/latest/operators-guide/deploying-grafana-mimir/). + +## Getting started -If you’re new to Grafana Mimir, read the [Getting started guide](docs/sources/getting-started/_index.md). +If you’re new to Grafana Mimir, read the [Getting started guide](https://grafana.com/docs/mimir/latest/operators-guide/getting-started/). -Before deploying Grafana Mimir with a permanent storage backend, read: +Before deploying Grafana Mimir in a production environment, read: -1. [An overview of Grafana Mimir’s architecture](docs/sources/architecture.md) -1. [Getting started with Grafana Mimir](docs/sources/getting-started/_index.md) -1. [Configuring Grafana Mimir](docs/sources/configuration/_index.md) +1. [An overview of Grafana Mimir’s architecture](https://grafana.com/docs/mimir/latest/operators-guide/architecture/) +1. [Configuring Grafana Mimir](https://grafana.com/docs/mimir/latest/operators-guide/configuring/) +1. [Running Grafana Mimir in production](https://grafana.com/docs/mimir/latest/operators-guide/running-production-environment/) + +## Documentation + +Refer to the following links to access Grafana Mimir documentation: + +- [Latest release](https://grafana.com/docs/mimir/latest/) +- [Upcoming release](https://grafana.com/docs/mimir/next/), at the tip of the main branch ## Contributing -To contribute to Grafana Mimir, see [Contributing to Grafana Mimir](./CONTRIBUTING.md). +To contribute to Grafana Mimir, refer to [Contributing to Grafana Mimir](https://github.com/grafana/mimir/tree/main/docs/internal/contributing). + +## Join the Grafana Mimir discussion -## Hosted Grafana Mimir (Prometheus as a service) +If you have any questions or feedback regarding Grafana Mimir, join the [Grafana Mimir Discussion](https://github.com/grafana/mimir/discussions). -Grafana Mimir is used in [Grafana Cloud](https://grafana.com/cloud), and is primarily used as a [remote write](https://prometheus.io/docs/operating/configuration/#remote_write) destination for Prometheus via a Prometheus-compatible query API. +Your feedback is always welcome. -### Grafana Cloud +## License -As the creators of [Grafana](https://grafana.com/oss/grafana/), [Loki](https://grafana.com/oss/loki/), and [Tempo](https://grafana.com/oss/tempo/), Grafana Labs offers you the most comprehensive Observability-as-a-Service stack available. +Grafana Mimir is distributed under [AGPL-3.0-only](LICENSE). From 0dc96ebda0a7cb727e066fb5070c7b199d52a75c Mon Sep 17 00:00:00 2001 From: Dimitar Dimitrov Date: Wed, 16 Mar 2022 23:08:34 +0100 Subject: [PATCH 15/30] Add mimirtool config convert docs (#1496) * Add mimirtool config convert docs Signed-off-by: Dimitar Dimitrov * Apply suggestions from code review Co-authored-by: Jack Baldry Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com> * Add links to config reference Signed-off-by: Dimitar Dimitrov * Apply suggestions from code review Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com> * Update verbose flag description Signed-off-by: Dimitar Dimitrov * Update docs/sources/operators-guide/tools/mimirtool.md Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com> * Add intro sentence before example Signed-off-by: Dimitar Dimitrov * Apply suggestions from code review Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com> * Reword description of -include-defaults Signed-off-by: Dimitar Dimitrov * Apply suggestions from code review Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com> * Update docs/sources/operators-guide/tools/mimirtool.md Co-authored-by: Marco Pracucci * Update mention of cortex v1.11 to 1.10 Signed-off-by: Dimitar Dimitrov * Remove empty environment variables columns Signed-off-by: Dimitar Dimitrov * Update docs/sources/operators-guide/tools/mimirtool.md Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com> Co-authored-by: Jack Baldry Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com> Co-authored-by: Marco Pracucci --- .../operators-guide/tools/mimirtool.md | 126 ++++++++++++++++-- 1 file changed, 113 insertions(+), 13 deletions(-) diff --git a/docs/sources/operators-guide/tools/mimirtool.md b/docs/sources/operators-guide/tools/mimirtool.md index 2caf3f9f82..86acb41401 100644 --- a/docs/sources/operators-guide/tools/mimirtool.md +++ b/docs/sources/operators-guide/tools/mimirtool.md @@ -36,6 +36,10 @@ Mimirtool is a command-line tool that operators and tenants can use to execute a For more information about the `acl` command, refer to [ACL]({{< relref "#acl" >}}). +- The `config` command helps convert configuration files from Cortex to Grafana Mimir. + + For more information about the `config` command, refer to [Config]({{< relref "#config" >}}) + Mimirtool interacts with: - User-facing APIs provided by Grafana Mimir. @@ -211,10 +215,10 @@ mimirtool rules prepare ... ##### Configuration -| Environment variable | Flag | Description | -| -------------------- | ------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | -| - | `-i`, `--in-place` | Edits the file in place. If not set, the system generates a new file with the extension `.result` that contains the results. | -| - | `-l`, `--label="cluster"` | Specifies the label for aggregations. By default, the label is set to `cluster`. | +| Flag | Description | +| ------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | +| `-i`, `--in-place` | Edits the file in place. If not set, the system generates a new file with the extension `.result` that contains the results. | +| `-l`, `--label="cluster"` | Specifies the label for aggregations. By default, the label is set to `cluster`. | ##### Example @@ -621,15 +625,111 @@ The following command validates that the object store bucket works correctly. mimirtool bucket-validation ``` -| Env Variable | Flag | Description | -| ------------ | ---------------------- | ------------------------------------------------------------------------------------------------------------- | -| - | `--object-count` | Sets the number of objects to create and delete. By default, the value is 2000. | -| - | `--report-every` | Sets the number operations afterwhich an operations progress report is printed. By default, the value is 100. | -| - | `--test-runs` | Sets the number of times to run the test. By default, the value is 1. | -| - | `--prefix` | Sets the path prefix to use for test objects in the object store. | -| - | `--retries-on-error` | Sets the number of times to retry if the object store returns an error. | -| - | `--bucket-config` | Sets the CLI arguments to configure a storage bucket. | -| - | `--bucket-config-help` | Displays help text that explains how to use the -bucket-config parameter. | +| Flag | Description | +| ---------------------- | ------------------------------------------------------------------------------------------------------------- | +| `--object-count` | Sets the number of objects to create and delete. By default, the value is 2000. | +| `--report-every` | Sets the number operations afterwhich an operations progress report is printed. By default, the value is 100. | +| `--test-runs` | Sets the number of times to run the test. By default, the value is 1. | +| `--prefix` | Sets the path prefix to use for test objects in the object store. | +| `--retries-on-error` | Sets the number of times to retry if the object store returns an error. | +| `--bucket-config` | Sets the CLI arguments to configure a storage bucket. | +| `--bucket-config-help` | Displays help text that explains how to use the -bucket-config parameter. | + +### Config + +#### Convert + +The config convert command converts configuration parameters that work with Cortex v1.10.0 and above to parameters that work with Grafana Mimir v2.0.0. +It supports converting both CLI flags and [YAML configuration files]({{< relref "../configuring/reference-configuration-parameters.md" >}}). + +##### Configuration + +| Flag | Description | +| -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `--yaml-file` | The YAML configuration file to convert. | +| `--flags-file` | Newline-delimited list of CLI flags to convert. | +| `--yaml-out` | The file to output the converted YAML configuration to. If not set, output to `stdout`. | +| `--flags-out` | The file to output the list of converted CLI flags to. If not set, output to `stdout`. | +| `--update-defaults` | If you set this flag and you set a configuration parameter to a default value that has changed in Mimir 2.0, the parameter updates to the new default value. | +| `--include-defaults` | If you set this flag, all default values are included in the output YAML, regardless of whether you explicitly set the values in the input files. | +| `-v`, `--verbose` | If you set this flag, the CLI flags and YAML paths from the old configuration that do not exist in the new configuration are printed to `stderr`. This flag also prints default values that have changed between the old and the new configuration. | + +##### Example + +The following example shows a command that converts Cortex [query-frontend]({{< relref "../architecture/components/query-frontend" >}}) YAML configuration file and CLI flag to a Mimir-compatible YAML and CLI flag. + +```bash +mimirtool config convert --yaml-file=cortex.yaml --flags-file=cortex.flags --yaml-out=mimir.yaml --flags-out=mimir.flags +``` + +`cortex.yaml`: + +```yaml +query_range: + results_cache: + cache: + memcached: + expiration: 10s # Expiration was removed in Grafana Mimir, so this parameter will be missing from the output YAML + batch_size: 2048 + parallelism: 10 + memcached_client: + max_idle_conns: 32 +``` + +`cortex.flags`: + +``` +-frontend.background.write-back-concurrency=45 +``` + +After you run the command, the contents of `mimir.yaml` and `mimir.flags` should look like: + +`mimir.yaml`: + +```yaml +frontend: + results_cache: + memcached: + max_get_multi_batch_size: 2048 + max_get_multi_concurrency: 10 + max_idle_connections: 32 + +server: + http_listen_port: 80 +``` + +> **Note:** As a precaution,`server.http_listen_port` is included. The default value in Grafana Mimir changed from 80 to 8080. Unless you explicitly set the port in the input configuration, the tool outputs the old default value. + +`mimir.flags`: + +``` +-query-frontend.results-cache.memcached.max-async-concurrency=45 +``` + +##### Verbose output + +When you set the `--verbose` flag, the output explains which configuration parameters were removed and which default values were changed. +The verbose output is printed to `stderr`. + +The output includes the following entries: + +- `field is no longer supported: ` + + This parameter was used in the input Cortex YAML file and removed from the output configuration. + +- `flag is no longer supported: ` + + This parameter was used in the input Cortex CLI flags file, but the parameter was removed in Grafana Mimir. The tool removed this CLI flag from the output configuration. + +- `using a new default for : (used to be )` + + The default value for a configuration parameter changed in Grafana Mimir. This parameter was not explicitly set in the input configuration files. + When you run Grafana Mimir with the output configuration from `mimirtool config convert` Grafana Mimir uses the new default. + +- `default value for changed: (used to be ); not updating` + + The default value for a configuration parameter that was set in the input configuration file has changed in Grafana Mimir. + The tool has not converted the old default value to the new default value. To automatically update the default value to the new default value, pass the `--update-defaults` flag. ## License From 689bbf5bddb823385b7a196d7d0f38ce924a1042 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20=C5=A0tibran=C3=BD?= Date: Thu, 17 Mar 2022 18:01:07 +0100 Subject: [PATCH 16/30] Improve tsdb-index and tsdb-index-health. (#1503) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Improve tsdb-index and tsdb-index-health. Signed-off-by: Peter Štibraný * Only process remaining args as block directories. Signed-off-by: Peter Štibraný * Fix help string. Signed-off-by: Peter Štibraný * Fix help string. Signed-off-by: Peter Štibraný --- tools/tsdb-index-health/main.go | 78 ++++++++++++++++++++++++++++++--- tools/tsdb-index/main.go | 6 ++- 2 files changed, 77 insertions(+), 7 deletions(-) diff --git a/tools/tsdb-index-health/main.go b/tools/tsdb-index-health/main.go index a44f3f851a..66d2a911c2 100644 --- a/tools/tsdb-index-health/main.go +++ b/tools/tsdb-index-health/main.go @@ -4,6 +4,7 @@ package main import ( "encoding/json" + "flag" "fmt" "math" "os" @@ -26,19 +27,28 @@ import ( var logger = log.NewLogfmtLogger(os.Stderr) func main() { - if len(os.Args) < 2 { - fmt.Println("Usage:", os.Args[0], " [ ...]") + verifyChunks := flag.Bool("check-chunks", false, "Verify chunks in segment files.") + flag.Usage = func() { + fmt.Fprintf(flag.CommandLine.Output(), "Usage: %s [options...] [ ...]:\n", os.Args[0]) + fmt.Fprintln(flag.CommandLine.Output()) + flag.PrintDefaults() + } + + flag.Parse() + + if flag.NArg() == 0 { + flag.Usage() return } - for _, b := range os.Args[1:] { + for _, b := range flag.Args() { meta, err := metadata.ReadFromDir(b) if err != nil { fmt.Fprintln(os.Stderr, "Failed to read meta from block dir", b, "error:", err) continue } - stats, err := GatherIndexHealthStats(logger, filepath.Join(b, block.IndexFilename), meta.MinTime, meta.MaxTime) + stats, err := GatherIndexHealthStats(logger, b, meta.MinTime, meta.MaxTime, *verifyChunks) if err != nil { fmt.Fprintln(os.Stderr, "Failed to gather health stats from block dir", b, "error:", err) continue @@ -137,8 +147,17 @@ func (n *minMaxSumInt64) Avg() int64 { return n.sum / n.cnt } -func GatherIndexHealthStats(logger log.Logger, fn string, minTime, maxTime int64) (stats HealthStats, err error) { - r, err := index.NewFileReader(fn) +func GatherIndexHealthStats(logger log.Logger, blockDir string, minTime, maxTime int64, checkChunks bool) (stats HealthStats, err error) { + var cr *chunks.Reader + if checkChunks { + cr, err = chunks.NewDirReader(filepath.Join(blockDir, block.ChunksDirname), nil) + if err != nil { + return stats, errors.Wrap(err, "open chunks dir") + } + defer runutil.CloseWithErrCapture(&err, cr, "closing chunks reader") + } + + r, err := index.NewFileReader(filepath.Join(blockDir, block.IndexFilename)) if err != nil { return stats, errors.Wrap(err, "open index file") } @@ -274,6 +293,10 @@ func GatherIndexHealthStats(logger log.Logger, fn string, minTime, maxTime int64 } else { seriesLifeDurationWithoutSingleSampleSeries.Add(seriesLifeTimeMs) } + + if checkChunks { + verifyChunks(logger, cr, lset, chks) + } } if p.Err() != nil { return stats, errors.Wrap(err, "walk postings") @@ -300,3 +323,46 @@ func GatherIndexHealthStats(logger log.Logger, fn string, minTime, maxTime int64 stats.ChunkMinDuration = model.Duration(time.Duration(chunkDuration.min) * time.Millisecond) return stats, nil } + +func verifyChunks(l log.Logger, cr *chunks.Reader, lset labels.Labels, chks []chunks.Meta) { + for _, cm := range chks { + ch, err := cr.Chunk(cm.Ref) + if err != nil { + level.Error(l).Log("msg", "failed to read chunk", "ref", cm.Ref, "err", err) + continue + } + + samples := 0 + firstSample := true + prevTs := int64(-1) + + it := ch.Iterator(nil) + for it.Err() == nil && it.Next() { + samples++ + ts, _ := it.At() + + if firstSample { + firstSample = false + if ts != cm.MinTime { + level.Warn(l).Log("ref", cm.Ref, "msg", "timestamp of the first sample doesn't match chunk MinTime", "sampleTimestamp", formatTimestamp(ts), "chunkMinTime", formatTimestamp(cm.MinTime)) + } + } else if ts <= prevTs { + level.Warn(l).Log("ref", cm.Ref, "msg", "found sample with timestamp not strictly higher than previous timestamp", "previous", formatTimestamp(prevTs), "sampleTimestamp", formatTimestamp(ts)) + } + + prevTs = ts + } + + if e := it.Err(); e != nil { + level.Warn(l).Log("ref", cm.Ref, "msg", "failed to iterate over chunk samples", "err", err) + } else if samples == 0 { + level.Warn(l).Log("ref", cm.Ref, "msg", "no samples found in the chunk") + } else if prevTs != cm.MaxTime { + level.Warn(l).Log("ref", cm.Ref, "msg", "timestamp of the last sample doesn't match chunk MaxTime", "sampleTimestamp", formatTimestamp(prevTs), "chunkMaxTime", formatTimestamp(cm.MaxTime)) + } + } +} + +func formatTimestamp(ts int64) string { + return fmt.Sprintf("%d (%s)", ts, timestamp.Time(ts).UTC().Format(time.RFC3339Nano)) +} diff --git a/tools/tsdb-index/main.go b/tools/tsdb-index/main.go index 8627f7bbc3..b67bd81052 100644 --- a/tools/tsdb-index/main.go +++ b/tools/tsdb-index/main.go @@ -6,10 +6,12 @@ import ( "flag" "fmt" "os" + "time" "github.com/go-kit/log" "github.com/go-kit/log/level" "github.com/prometheus/prometheus/model/labels" + "github.com/prometheus/prometheus/model/timestamp" "github.com/prometheus/prometheus/promql/parser" "github.com/prometheus/prometheus/tsdb" "github.com/prometheus/prometheus/tsdb/chunks" @@ -99,7 +101,9 @@ func printBlockIndex(blockDir string, printChunks bool, matchers []*labels.Match fmt.Println("series", lbls.String()) if printChunks { for _, c := range chks { - fmt.Println("chunk", c.Ref, "min time:", c.MinTime, "max time:", c.MaxTime) + fmt.Println("chunk", c.Ref, + "min time:", c.MinTime, timestamp.Time(c.MinTime).UTC().Format(time.RFC3339Nano), + "max time:", c.MaxTime, timestamp.Time(c.MaxTime).UTC().Format(time.RFC3339Nano)) } } } From ee37da0203ba233d8a40afe08b92d9e6b45f8849 Mon Sep 17 00:00:00 2001 From: Richard Hartmann Date: Thu, 17 Mar 2022 23:57:08 +0100 Subject: [PATCH 17/30] Update README.md (#1502) * Add info about easy start Co-authored-by: Jennifer Villa --- README.md | 1 + docs/sources/_index.md | 1 + 2 files changed, 2 insertions(+) diff --git a/README.md b/README.md index ec9964e7f5..e0ecbe56a4 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,7 @@ Grafana Mimir is an open source software project that provides a scalable long-term storage for [Prometheus](https://prometheus.io). Some of the core strengths of Grafana Mimir include: +- **Easy to install and maintain:** Grafana Mimir’s extensive documentation, tutorials, and deployment tooling make it quick to get started. Using its monolithic mode, you can get Grafana Mimir up and running with just one binary and no additional dependencies. Once deployed, the best-practice dashboards, alerts, and playbooks packaged with Grafana Mimir make it easy to monitor the health of the system. - **Massive scalability:** You can run Grafana Mimir's horizontally-scalable architecture across multiple machines, resulting in the ability to process orders of magnitude more time series than a single Prometheus instance. Internal testing shows that Grafana Mimir handles up to 1 billion active time series. - **Global view of metrics:** Grafana Mimir enables you to run queries that aggregate series from multiple Prometheus instances, giving you a global view of your systems. Its query engine extensively parallelizes query execution, so that even the highest-cardinality queries complete with blazing speed. - **Cheap, durable metric storage:** Grafana Mimir uses object storage for long-term data storage, allowing it to take advantage of this ubiquitous, cost-effective, high-durability technology. It is compatible with multiple object store implementations, including AWS S3, Google Cloud Storage, Azure Blob Storage, OpenStack Swift, as well as any S3-compatible object storage. diff --git a/docs/sources/_index.md b/docs/sources/_index.md index b1afd3c507..b28c293c01 100644 --- a/docs/sources/_index.md +++ b/docs/sources/_index.md @@ -20,6 +20,7 @@ keywords: Grafana Mimir is an open source software project that provides a scalable long-term storage for [Prometheus](https://prometheus.io). Some of the core strengths of Grafana Mimir include: +- **Easy to install and maintain:** Grafana Mimir’s extensive documentation, tutorials, and deployment tooling make it quick to get started. Using its monolithic mode, you can get Grafana Mimir up and running with just one binary and no additional dependencies. Once deployed, the best-practice dashboards, alerts, and playbooks packaged with Grafana Mimir make it easy to monitor the health of the system. - **Massive scalability:** You can run Grafana Mimir's horizontally-scalable architecture across multiple machines, resulting in the ability to process orders of magnitude more time series than a single Prometheus instance. Internal testing shows that Grafana Mimir handles up to 1 billion active time series. - **Global view of metrics:** Grafana Mimir enables you to run queries that aggregate series from multiple Prometheus instances, giving you a global view of your systems. Its query engine extensively parallelizes query execution, so that even the highest-cardinality queries complete with blazing speed. - **Cheap, durable metric storage:** Grafana Mimir uses object storage for long-term data storage, allowing it to take advantage of this ubiquitous, cost-effective, high-durability technology. It is compatible with multiple object store implementations, including AWS S3, Google Cloud Storage, Azure Blob Storage, OpenStack Swift, as well as any S3-compatible object storage. From edb6569e1270d0ec1a36f2f6fe2ba5e1d1a89fae Mon Sep 17 00:00:00 2001 From: Dimitar Dimitrov Date: Fri, 18 Mar 2022 10:55:00 +0100 Subject: [PATCH 18/30] `mimirtool config` GEM conversion (#1499) * Support inspecting slices in parse package Signed-off-by: Dimitar Dimitrov * Replace InspectedEntry.FieldValue with a Value struct Signed-off-by: Dimitar Dimitrov --- .../operators-guide/tools/mimirtool.md | 1 + pkg/mimirtool/commands/config.go | 24 +- pkg/mimirtool/config/convert.go | 59 +- pkg/mimirtool/config/convert_test.go | 349 +- pkg/mimirtool/config/cortex.go | 165 +- .../descriptors/gem-v1.7.0-flags-only.json | 80 + .../config/descriptors/gem-v1.7.0.json | 18480 ++++++++++++++++ .../descriptors/gem-v2.0.0-flags-only.json | 53 + .../config/descriptors/gem-v2.0.0.json | 14037 ++++++++++++ .../descriptors/mimir-v2.0.0-flags-only.json | 18 + .../config/descriptors/mimir-v2.0.0.json | 9673 ++++++++ pkg/mimirtool/config/gem.go | 58 + pkg/mimirtool/config/inspect.go | 353 +- pkg/mimirtool/config/inspect_test.go | 20 +- pkg/mimirtool/config/mapping.go | 9 +- pkg/mimirtool/config/parameters.go | 43 +- .../testdata/duration-slice-new.flags.txt | 2 + .../testdata/duration-slice-old.flags.txt | 2 + .../config/testdata/exemplars-new.yaml | 2 - .../config/testdata/exemplars-old.yaml | 3 - .../config/testdata/proxy-targets.yaml | 16 + pkg/mimirtool/config/testdata/rename-new.yaml | 3 + pkg/mimirtool/config/testdata/rename-old.yaml | 4 + pkg/mimirtool/config/value.go | 131 + tools/doc-generator/parse/parser.go | 82 +- tools/doc-generator/writer.go | 2 +- 26 files changed, 43275 insertions(+), 394 deletions(-) create mode 100644 pkg/mimirtool/config/descriptors/gem-v1.7.0-flags-only.json create mode 100644 pkg/mimirtool/config/descriptors/gem-v1.7.0.json create mode 100644 pkg/mimirtool/config/descriptors/gem-v2.0.0-flags-only.json create mode 100644 pkg/mimirtool/config/descriptors/gem-v2.0.0.json create mode 100644 pkg/mimirtool/config/descriptors/mimir-v2.0.0.json create mode 100644 pkg/mimirtool/config/gem.go create mode 100644 pkg/mimirtool/config/testdata/duration-slice-new.flags.txt create mode 100644 pkg/mimirtool/config/testdata/duration-slice-old.flags.txt delete mode 100644 pkg/mimirtool/config/testdata/exemplars-new.yaml delete mode 100644 pkg/mimirtool/config/testdata/exemplars-old.yaml create mode 100644 pkg/mimirtool/config/testdata/proxy-targets.yaml create mode 100644 pkg/mimirtool/config/testdata/rename-new.yaml create mode 100644 pkg/mimirtool/config/testdata/rename-old.yaml create mode 100644 pkg/mimirtool/config/value.go diff --git a/docs/sources/operators-guide/tools/mimirtool.md b/docs/sources/operators-guide/tools/mimirtool.md index 86acb41401..f629d4d74a 100644 --- a/docs/sources/operators-guide/tools/mimirtool.md +++ b/docs/sources/operators-guide/tools/mimirtool.md @@ -653,6 +653,7 @@ It supports converting both CLI flags and [YAML configuration files]({{< relref | `--update-defaults` | If you set this flag and you set a configuration parameter to a default value that has changed in Mimir 2.0, the parameter updates to the new default value. | | `--include-defaults` | If you set this flag, all default values are included in the output YAML, regardless of whether you explicitly set the values in the input files. | | `-v`, `--verbose` | If you set this flag, the CLI flags and YAML paths from the old configuration that do not exist in the new configuration are printed to `stderr`. This flag also prints default values that have changed between the old and the new configuration. | +| `--gem` | If you set this flag, the tool will convert from Grafana Metrics Enterprise (GEM) v1.7.x to v2.0.0. | ##### Example diff --git a/pkg/mimirtool/commands/config.go b/pkg/mimirtool/commands/config.go index 0dae57fd6d..ffe1ada7af 100644 --- a/pkg/mimirtool/commands/config.go +++ b/pkg/mimirtool/commands/config.go @@ -30,6 +30,8 @@ type ConfigCommand struct { includeDefaults bool verbose bool + + gem bool } // Register rule related commands and flags with the kingpin application @@ -37,16 +39,17 @@ func (c *ConfigCommand) Register(app *kingpin.Application, _ EnvVarNames) { configCmd := app.Command("config", "Work with Grafana Mimir configuration.") convertCmd := configCmd. - Command("convert", "Convert a configuration file from Cortex v1.11.0 to Grafana Mimir v2.0.0 and output it to stdout"). + Command("convert", "Convert configuration parameters (YAML and CLI flags) from Cortex v1.10.0 and above to Grafana Mimir v2.0.0 (default), and from Grafana Metrics Enterprise v1.7.0 to v2.0.0 (via --gem flag)."). Action(c.convertConfig) convertCmd.Flag("yaml-file", "The YAML configuration file to convert.").StringVar(&c.yamlFile) - convertCmd.Flag("flags-file", "New-line-delimited list of CLI flags to convert.").StringVar(&c.flagsFile) - convertCmd.Flag("yaml-out", "Location to output the converted YAML configuration to. Default stdout").StringVar(&c.outYAMLFile) - convertCmd.Flag("flags-out", "Location to output list of converted CLI flags to. Default stdout").StringVar(&c.outFlagsFile) - convertCmd.Flag("update-defaults", "If set and a configuration parameter is explicitly set to a default value which has changed in Mimir 2.0, the parameter value will be updated to the new default.").BoolVar(&c.updateDefaults) - convertCmd.Flag("include-defaults", "If set, includes all default values in the output YAML, regardless if they were explicitly set in the input YAML or not.").BoolVar(&c.includeDefaults) - convertCmd.Flag("verbose", "Print to stderr CLI flags and YAML paths from old config that no longer exist in the new one, changed default values between old and new, and deleted default values from -keep-defaults=false.").Short('v').BoolVar(&c.verbose) + convertCmd.Flag("flags-file", "Newline-delimited list of CLI flags to convert.").StringVar(&c.flagsFile) + convertCmd.Flag("yaml-out", "The file to output the converted YAML configuration to. If not set, output to stdout.").StringVar(&c.outYAMLFile) + convertCmd.Flag("flags-out", "The file to output the list of converted CLI flags to. If not set, output to stdout.").StringVar(&c.outFlagsFile) + convertCmd.Flag("update-defaults", "If you set this flag and you set a configuration parameter to a default value that has changed in Mimir 2.0, the parameter updates to the new default value.").BoolVar(&c.updateDefaults) + convertCmd.Flag("include-defaults", "If you set this flag, all default values are included in the output YAML, regardless of whether you explicitly set the values in the input files.").BoolVar(&c.includeDefaults) + convertCmd.Flag("verbose", "If you set this flag, the CLI flags and YAML paths from the old configuration that do not exist in the new configuration are printed to stderr. This flag also prints default values that have changed between the old and the new configuration.").Short('v').BoolVar(&c.verbose) + convertCmd.Flag("gem", "If you set this flag, the tool will convert from Grafana Metrics Enterprise (GEM) v1.7.x to v2.0.0.").BoolVar(&c.gem) } func (c *ConfigCommand) convertConfig(_ *kingpin.ParseContext) error { @@ -55,7 +58,12 @@ func (c *ConfigCommand) convertConfig(_ *kingpin.ParseContext) error { return err } - convertedYAML, flagsFlags, notices, err := config.Convert(yamlContents, flagsFlags, config.CortexToMimirMapper, config.DefaultCortexConfig, config.DefaultMimirConfig, c.updateDefaults, c.includeDefaults) + sourceFactory, targetFactory, mapper := config.DefaultCortexConfig, config.DefaultMimirConfig, config.CortexToMimirMapper() + if c.gem { + sourceFactory, targetFactory, mapper = config.DefaultGEM170Config, config.DefaultGEM200COnfig, config.GEM170ToGEM200Mapper() + } + + convertedYAML, flagsFlags, notices, err := config.Convert(yamlContents, flagsFlags, mapper, sourceFactory, targetFactory, c.updateDefaults, c.includeDefaults) if err != nil { return errors.Wrap(err, "could not convert configuration") } diff --git a/pkg/mimirtool/config/convert.go b/pkg/mimirtool/config/convert.go index 54b38105a3..20b6dfdd44 100644 --- a/pkg/mimirtool/config/convert.go +++ b/pkg/mimirtool/config/convert.go @@ -6,7 +6,6 @@ import ( "flag" "fmt" "os" - "reflect" "strings" "github.com/pkg/errors" @@ -28,14 +27,14 @@ type ChangedDefault struct { type changedDefault struct { path string - oldDefault, newDefault interface{} + oldDefault, newDefault Value } func (d changedDefault) asExported() ChangedDefault { return ChangedDefault{ Path: d.path, - OldDefault: fmt.Sprint(d.oldDefault), - NewDefault: fmt.Sprint(d.newDefault), + OldDefault: d.oldDefault.String(), + NewDefault: d.newDefault.String(), } } @@ -126,10 +125,10 @@ func changeDefaults(defaults []changedDefault, target Parameters, useNewDefaults var changedDefaults, skippedChangedDefault []ChangedDefault for _, def := range defaults { currentValue := target.MustGetValue(def.path) - if currentValue == nil { + if currentValue.IsUnset() { // The value will be implicitly changed to the new default value. changedDefaults = append(changedDefaults, def.asExported()) - } else if useNewDefaults && reflect.DeepEqual(currentValue, def.oldDefault) { + } else if useNewDefaults && currentValue.Equals(def.oldDefault) { err := target.SetValue(def.path, def.newDefault) if err != nil { return nil, nil, err @@ -145,7 +144,7 @@ func changeDefaults(defaults []changedDefault, target Parameters, useNewDefaults func reportChangedDefaults(target, sourceDefaults Parameters) ([]changedDefault, error) { var defs []changedDefault - err := target.Walk(func(path string, value interface{}) error { + err := target.Walk(func(path string, _ Value) error { oldDefault, err := sourceDefaults.GetDefaultValue(path) if err != nil { if errors.Is(err, ErrParameterNotFound) { @@ -156,7 +155,7 @@ func reportChangedDefaults(target, sourceDefaults Parameters) ([]changedDefault, } newDefault := target.MustGetDefaultValue(path) - if !reflect.DeepEqual(oldDefault, newDefault) { + if !oldDefault.Equals(newDefault) { defs = append(defs, changedDefault{ path: path, oldDefault: oldDefault, @@ -169,8 +168,8 @@ func reportChangedDefaults(target, sourceDefaults Parameters) ([]changedDefault, } func changeNilsToDefaults(target *InspectedEntry) error { - return target.Walk(func(path string, value interface{}) error { - if value != nil { + return target.Walk(func(path string, value Value) error { + if !value.IsUnset() { return nil // If the value is already set, don't change it. } return target.SetValue(path, target.MustGetDefaultValue(path)) @@ -183,7 +182,7 @@ func convertFlags(flags []string, m Mapper, target Parameters, sourceFactory, ta return nil, err } var newFlagsWithValues []string - err = target.Walk(func(path string, value interface{}) error { + err = target.Walk(func(path string, value Value) error { if _, ok := flagsNewPaths[path]; !ok { return nil } @@ -192,7 +191,7 @@ func convertFlags(flags []string, m Mapper, target Parameters, sourceFactory, ta return err } - newFlagsWithValues = append(newFlagsWithValues, fmt.Sprintf("-%s=%v", flagName, value)) + newFlagsWithValues = append(newFlagsWithValues, fmt.Sprintf("-%s=%s", flagName, value)) return nil }) if err != nil { @@ -242,7 +241,7 @@ func mapOldFlagsToNewPaths(flags []string, m Mapper, sourceFactory, targetFactor flagIsSet := parseFlagNames(flags) var parametersWithoutProvidedFlags []string - err = source.Walk(func(path string, value interface{}) error { + err = source.Walk(func(path string, _ Value) error { flagName, err := source.GetFlag(path) if err != nil { if !errors.Is(err, ErrParameterNotFound) { @@ -269,7 +268,7 @@ func mapOldFlagsToNewPaths(flags []string, m Mapper, sourceFactory, targetFactor } var allTargetParams []string - err = target.Walk(func(path string, value interface{}) error { + err = target.Walk(func(path string, _ Value) error { allTargetParams = append(allTargetParams, path) return nil }) @@ -278,7 +277,7 @@ func mapOldFlagsToNewPaths(flags []string, m Mapper, sourceFactory, targetFactor } for _, path := range allTargetParams { - err = target.SetValue(path, nil) + err = target.SetValue(path, Nil) if err != nil { return nil, err } @@ -288,8 +287,8 @@ func mapOldFlagsToNewPaths(flags []string, m Mapper, sourceFactory, targetFactor _ = m.DoMap(source, target) remainingFlags := map[string]struct{}{} - err = target.Walk(func(path string, value interface{}) error { - if value != nil { + err = target.Walk(func(path string, value Value) error { + if !value.IsUnset() { remainingFlags[path] = struct{}{} } return nil @@ -327,8 +326,8 @@ func prepareSourceDefaults(m Mapper, sourceFactory, targetFactory InspectedEntry func pruneNils(params Parameters) { var pathsToDelete []string - err := params.Walk(func(path string, value interface{}) error { - if value == nil { + err := params.Walk(func(path string, value Value) error { + if value.IsUnset() { pathsToDelete = append(pathsToDelete, path) } return nil @@ -347,20 +346,9 @@ func pruneNils(params Parameters) { } func reportDeletedFlags(contents []byte, flags []string, sourceFactory InspectedEntryFactory) (removedFieldPaths, removedFlags []string, _ error) { - cortexConfigWithNoValues := func() (*InspectedEntry, error) { - s := sourceFactory() - - return s, s.Walk(func(path string, value interface{}) error { - return s.SetValue(path, nil) - }) - } - // Find YAML options that user is using, but are no longer supported. { - s, err := cortexConfigWithNoValues() - if err != nil { - return nil, nil, err - } + s := sourceFactory() if err := yaml.Unmarshal(contents, &s); err != nil { return nil, nil, errors.Wrap(err, "could not unmarshal Cortex configuration file") @@ -368,7 +356,7 @@ func reportDeletedFlags(contents []byte, flags []string, sourceFactory Inspected for _, path := range removedConfigPaths { val, _ := s.GetValue(path) - if val != nil { + if !val.IsUnset() { removedFieldPaths = append(removedFieldPaths, path) } } @@ -376,10 +364,7 @@ func reportDeletedFlags(contents []byte, flags []string, sourceFactory Inspected // Find CLI flags that user is using, but are no longer supported. { - s, err := cortexConfigWithNoValues() - if err != nil { - return nil, nil, err - } + s := sourceFactory() if err := addFlags(s, flags); err != nil { return nil, nil, err @@ -387,7 +372,7 @@ func reportDeletedFlags(contents []byte, flags []string, sourceFactory Inspected for _, path := range removedConfigPaths { val, _ := s.GetValue(path) - if val != nil { + if !val.IsUnset() { fl, _ := s.GetFlag(path) if fl != "" { removedFlags = append(removedFlags, fl) diff --git a/pkg/mimirtool/config/convert_test.go b/pkg/mimirtool/config/convert_test.go index a937e2a82a..beaeb91198 100644 --- a/pkg/mimirtool/config/convert_test.go +++ b/pkg/mimirtool/config/convert_test.go @@ -13,7 +13,28 @@ import ( "gopkg.in/yaml.v3" ) -func TestConvert(t *testing.T) { +type conversionInput struct { + useNewDefaults bool + outputDefaults bool + inYAML []byte + inFlags []string +} + +func testCortexAndGEM(t *testing.T, tc conversionInput, assert func(t *testing.T, outYAML []byte, outFlags []string, notices ConversionNotices, err error)) { + t.Run("cortex->mimir", func(t *testing.T) { + t.Parallel() + mimirYAML, mimirFlags, mimirNotices, mimirErr := Convert(tc.inYAML, tc.inFlags, CortexToMimirMapper(), DefaultCortexConfig, DefaultMimirConfig, tc.useNewDefaults, tc.outputDefaults) + assert(t, mimirYAML, mimirFlags, mimirNotices, mimirErr) + }) + + t.Run("gem170->gem200", func(t *testing.T) { + t.Parallel() + gemYAML, gemFlags, gemNotices, gemErr := Convert(tc.inYAML, tc.inFlags, GEM170ToGEM200Mapper(), DefaultGEM170Config, DefaultGEM200COnfig, tc.useNewDefaults, tc.outputDefaults) + assert(t, gemYAML, gemFlags, gemNotices, gemErr) + }) +} + +func TestConvert_Cortex(t *testing.T) { testCases := []struct { name string useNewDefaults bool @@ -31,9 +52,9 @@ func TestConvert(t *testing.T) { outFlagsFile: "testdata/noop-flags-new.flags.txt", }, { - name: "exemplars limit rename", - inFile: "testdata/exemplars-old.yaml", - outFile: "testdata/exemplars-new.yaml", + name: "simple rename", + inFile: "testdata/rename-old.yaml", + outFile: "testdata/rename-new.yaml", }, { name: "alertmanager URL has dnssrvnoa+ prepended if alertmanager discovery ", @@ -215,6 +236,60 @@ func TestConvert(t *testing.T) { inFlagsFile: "testdata/uncommon-flag-values.txt", outFlagsFile: "testdata/uncommon-flag-values.txt", }, + { + name: "duration list flags with single element", + inFlagsFile: "testdata/duration-slice-old.flags.txt", + outFlagsFile: "testdata/duration-slice-new.flags.txt", + }, + } + + for _, tc := range testCases { + tc := tc + t.Run(tc.name, func(t *testing.T) { + t.Parallel() + inBytes, expectedOut := loadFile(t, tc.inFile), loadFile(t, tc.outFile) + inFlags, expectedOutFlags := loadFlags(t, tc.inFlagsFile), loadFlags(t, tc.outFlagsFile) + if inFlags == nil { + inFlags = loadFlags(t, "testdata/common-flags.txt") + expectedOutFlags = inFlags + } + if inBytes == nil { + inBytes = loadFile(t, "testdata/common-options.yaml") + expectedOut = inBytes + } + + in := conversionInput{ + useNewDefaults: tc.useNewDefaults, + outputDefaults: false, + inYAML: inBytes, + inFlags: inFlags, + } + + testCortexAndGEM(t, in, func(t *testing.T, outYAML []byte, outFlags []string, notices ConversionNotices, err error) { + assert.NoError(t, err) + + assert.ElementsMatch(t, expectedOutFlags, outFlags) + if expectedOut == nil { + expectedOut = []byte("{}") + } + assert.YAMLEq(t, string(expectedOut), string(outYAML)) + }) + }) + } +} + +func TestConvert_GEM(t *testing.T) { + testCases := []struct { + name string + useNewDefaults bool + inFile, outFile string + inFlagsFile, outFlagsFile string + }{ + { + name: "proxy_targets get translated", + inFile: "testdata/proxy-targets.yaml", + outFile: "testdata/proxy-targets.yaml", + }, } for _, tc := range testCases { @@ -232,14 +307,15 @@ func TestConvert(t *testing.T) { expectedOut = inBytes } - actualOut, actualOutFlags, _, err := Convert(inBytes, inFlags, CortexToMimirMapper, DefaultCortexConfig, DefaultMimirConfig, tc.useNewDefaults, false) + outYAML, outFlags, _, err := Convert(inBytes, inFlags, GEM170ToGEM200Mapper(), DefaultGEM170Config, DefaultGEM200COnfig, tc.useNewDefaults, false) assert.NoError(t, err) - assert.ElementsMatch(t, expectedOutFlags, actualOutFlags) + assert.ElementsMatch(t, expectedOutFlags, outFlags) if expectedOut == nil { expectedOut = []byte("{}") } - assert.YAMLEq(t, string(expectedOut), string(actualOut)) + assert.YAMLEq(t, string(expectedOut), string(outYAML)) + }) } } @@ -271,8 +347,13 @@ func TestConvert_InvalidConfigs(t *testing.T) { inBytes := loadFile(t, tc.inFile) inFlags := loadFlags(t, tc.inFlagsFile) - _, _, _, err := Convert(inBytes, inFlags, CortexToMimirMapper, DefaultCortexConfig, DefaultMimirConfig, false, false) - assert.EqualError(t, err, tc.expectedErr) + in := conversionInput{ + inFlags: inFlags, + inYAML: inBytes, + } + testCortexAndGEM(t, in, func(t *testing.T, outYAML []byte, outFlags []string, notices ConversionNotices, err error) { + assert.EqualError(t, err, tc.expectedErr) + }) }) } } @@ -335,88 +416,135 @@ func TestReportDeletedFlags(t *testing.T) { } } -func TestChangedDefaults(t *testing.T) { - expectedChangedDefaults := []ChangedDefault{ - {Path: "activity_tracker.filepath", OldDefault: "./active-query-tracker", NewDefault: "./metrics-activity.log"}, - {Path: "alertmanager.data_dir", OldDefault: "data/", NewDefault: "./data-alertmanager/"}, - {Path: "alertmanager.enable_api", OldDefault: "false", NewDefault: "true"}, - {Path: "alertmanager.external_url", OldDefault: "", NewDefault: "http://localhost:8080/alertmanager"}, - {Path: "alertmanager.sharding_ring.instance_interface_names", OldDefault: "eth0,en0", NewDefault: ""}, - {Path: "alertmanager.sharding_ring.kvstore.store", OldDefault: "consul", NewDefault: "memberlist"}, - {Path: "alertmanager_storage.backend", OldDefault: "s3", NewDefault: "filesystem"}, - {Path: "alertmanager_storage.filesystem.dir", OldDefault: "", NewDefault: "alertmanager"}, - {Path: "blocks_storage.backend", OldDefault: "s3", NewDefault: "filesystem"}, - {Path: "blocks_storage.bucket_store.bucket_index.enabled", OldDefault: "false", NewDefault: "true"}, - {Path: "blocks_storage.bucket_store.chunks_cache.memcached.max_async_buffer_size", OldDefault: "10000", NewDefault: "25000"}, - {Path: "blocks_storage.bucket_store.chunks_cache.memcached.max_get_multi_batch_size", OldDefault: "0", NewDefault: "100"}, - {Path: "blocks_storage.bucket_store.chunks_cache.memcached.max_idle_connections", OldDefault: "16", NewDefault: "100"}, - {Path: "blocks_storage.bucket_store.chunks_cache.memcached.timeout", OldDefault: "100ms", NewDefault: "200ms"}, - {Path: "blocks_storage.bucket_store.ignore_deletion_mark_delay", OldDefault: "6h0m0s", NewDefault: "1h0m0s"}, - {Path: "blocks_storage.bucket_store.index_cache.memcached.max_async_buffer_size", OldDefault: "10000", NewDefault: "25000"}, - {Path: "blocks_storage.bucket_store.index_cache.memcached.max_get_multi_batch_size", OldDefault: "0", NewDefault: "100"}, - {Path: "blocks_storage.bucket_store.index_cache.memcached.max_idle_connections", OldDefault: "16", NewDefault: "100"}, - {Path: "blocks_storage.bucket_store.index_cache.memcached.timeout", OldDefault: "100ms", NewDefault: "200ms"}, - {Path: "blocks_storage.bucket_store.index_header_lazy_loading_enabled", OldDefault: "false", NewDefault: "true"}, - {Path: "blocks_storage.bucket_store.index_header_lazy_loading_idle_timeout", OldDefault: "20m0s", NewDefault: "1h0m0s"}, - {Path: "blocks_storage.bucket_store.metadata_cache.memcached.max_async_buffer_size", OldDefault: "10000", NewDefault: "25000"}, - {Path: "blocks_storage.bucket_store.metadata_cache.memcached.max_get_multi_batch_size", OldDefault: "0", NewDefault: "100"}, - {Path: "blocks_storage.bucket_store.metadata_cache.memcached.max_idle_connections", OldDefault: "16", NewDefault: "100"}, - {Path: "blocks_storage.bucket_store.metadata_cache.memcached.timeout", OldDefault: "100ms", NewDefault: "200ms"}, - {Path: "blocks_storage.bucket_store.sync_dir", OldDefault: "tsdb-sync", NewDefault: "./tsdb-sync/"}, - {Path: "blocks_storage.filesystem.dir", OldDefault: "", NewDefault: "blocks"}, - {Path: "blocks_storage.tsdb.close_idle_tsdb_timeout", OldDefault: "0s", NewDefault: "13h0m0s"}, - {Path: "blocks_storage.tsdb.dir", OldDefault: "tsdb", NewDefault: "./tsdb/"}, - {Path: "blocks_storage.tsdb.retention_period", OldDefault: "6h0m0s", NewDefault: "24h0m0s"}, - {Path: "compactor.block_sync_concurrency", OldDefault: "20", NewDefault: "8"}, - {Path: "compactor.data_dir", OldDefault: "./data", NewDefault: "./data-compactor/"}, - {Path: "compactor.sharding_ring.instance_interface_names", OldDefault: "eth0,en0", NewDefault: ""}, - {Path: "compactor.sharding_ring.kvstore.store", OldDefault: "consul", NewDefault: "memberlist"}, - {Path: "compactor.sharding_ring.wait_stability_min_duration", OldDefault: "1m0s", NewDefault: "0s"}, - {Path: "distributor.instance_limits.max_inflight_push_requests", OldDefault: "0", NewDefault: "2000"}, - {Path: "distributor.remote_timeout", OldDefault: "2s", NewDefault: "20s"}, - {Path: "distributor.ring.instance_interface_names", OldDefault: "eth0,en0", NewDefault: ""}, - {Path: "distributor.ring.kvstore.store", OldDefault: "consul", NewDefault: "memberlist"}, - {Path: "frontend.grpc_client_config.max_send_msg_size", OldDefault: "16777216", NewDefault: "104857600"}, - {Path: "frontend.instance_interface_names", OldDefault: "eth0,en0", NewDefault: ""}, - {Path: "frontend.query_stats_enabled", OldDefault: "false", NewDefault: "true"}, - {Path: "frontend.results_cache.memcached.addresses", OldDefault: "dnssrvnoa+_memcached._tcp.", NewDefault: ""}, - {Path: "frontend.results_cache.memcached.max_async_buffer_size", OldDefault: "10000", NewDefault: "25000"}, - {Path: "frontend.results_cache.memcached.max_async_concurrency", OldDefault: "10", NewDefault: "50"}, - {Path: "frontend.results_cache.memcached.max_get_multi_batch_size", OldDefault: "1024", NewDefault: "100"}, - {Path: "frontend.results_cache.memcached.max_idle_connections", OldDefault: "16", NewDefault: "100"}, - {Path: "frontend.results_cache.memcached.max_item_size", OldDefault: "0", NewDefault: "1048576"}, - {Path: "frontend.results_cache.memcached.timeout", OldDefault: "100ms", NewDefault: "200ms"}, - {Path: "frontend.split_queries_by_interval", OldDefault: "0s", NewDefault: "24h0m0s"}, - {Path: "frontend_worker.grpc_client_config.max_send_msg_size", OldDefault: "16777216", NewDefault: "104857600"}, - {Path: "ingester.instance_limits.max_inflight_push_requests", OldDefault: "0", NewDefault: "30000"}, - {Path: "ingester.ring.final_sleep", OldDefault: "30s", NewDefault: "0s"}, - {Path: "ingester.ring.instance_interface_names", OldDefault: "eth0,en0", NewDefault: ""}, - {Path: "ingester.ring.kvstore.store", OldDefault: "consul", NewDefault: "memberlist"}, - {Path: "ingester.ring.min_ready_duration", OldDefault: "1m0s", NewDefault: "15s"}, - {Path: "ingester_client.grpc_client_config.max_send_msg_size", OldDefault: "16777216", NewDefault: "104857600"}, - {Path: "limits.ingestion_burst_size", OldDefault: "50000", NewDefault: "200000"}, - {Path: "limits.ingestion_rate", OldDefault: "25000", NewDefault: "10000"}, - {Path: "limits.max_global_series_per_metric", OldDefault: "0", NewDefault: "20000"}, - {Path: "limits.max_global_series_per_user", OldDefault: "0", NewDefault: "150000"}, - {Path: "limits.ruler_max_rule_groups_per_tenant", OldDefault: "0", NewDefault: "70"}, - {Path: "limits.ruler_max_rules_per_rule_group", OldDefault: "0", NewDefault: "20"}, - {Path: "querier.query_ingesters_within", OldDefault: "0s", NewDefault: "13h0m0s"}, - {Path: "query_scheduler.grpc_client_config.max_send_msg_size", OldDefault: "16777216", NewDefault: "104857600"}, - {Path: "ruler.enable_api", OldDefault: "false", NewDefault: "true"}, - {Path: "ruler.ring.instance_interface_names", OldDefault: "eth0,en0", NewDefault: ""}, - {Path: "ruler.ring.kvstore.store", OldDefault: "consul", NewDefault: "memberlist"}, - {Path: "ruler.rule_path", OldDefault: "/rules", NewDefault: "./data-ruler/"}, - {Path: "ruler.ruler_client.max_send_msg_size", OldDefault: "16777216", NewDefault: "104857600"}, - {Path: "ruler_storage.backend", OldDefault: "s3", NewDefault: "filesystem"}, - {Path: "ruler_storage.filesystem.dir", OldDefault: "", NewDefault: "ruler"}, - {Path: "store_gateway.sharding_ring.instance_interface_names", OldDefault: "eth0,en0", NewDefault: ""}, - {Path: "store_gateway.sharding_ring.kvstore.store", OldDefault: "consul", NewDefault: "memberlist"}, - {Path: "store_gateway.sharding_ring.wait_stability_min_duration", OldDefault: "1m0s", NewDefault: "0s"}, - } +var changedCortexDefaults = []ChangedDefault{ + {Path: "activity_tracker.filepath", OldDefault: "./active-query-tracker", NewDefault: "./metrics-activity.log"}, + {Path: "alertmanager.data_dir", OldDefault: "data/", NewDefault: "./data-alertmanager/"}, + {Path: "alertmanager.enable_api", OldDefault: "false", NewDefault: "true"}, + {Path: "alertmanager.external_url", OldDefault: "", NewDefault: "http://localhost:8080/alertmanager"}, + {Path: "alertmanager.sharding_ring.instance_interface_names", OldDefault: "eth0,en0", NewDefault: ""}, + {Path: "alertmanager.sharding_ring.kvstore.store", OldDefault: "consul", NewDefault: "memberlist"}, + {Path: "alertmanager_storage.backend", OldDefault: "s3", NewDefault: "filesystem"}, + {Path: "alertmanager_storage.filesystem.dir", OldDefault: "", NewDefault: "alertmanager"}, + {Path: "blocks_storage.backend", OldDefault: "s3", NewDefault: "filesystem"}, + {Path: "blocks_storage.bucket_store.bucket_index.enabled", OldDefault: "false", NewDefault: "true"}, + {Path: "blocks_storage.bucket_store.chunks_cache.memcached.max_async_buffer_size", OldDefault: "10000", NewDefault: "25000"}, + {Path: "blocks_storage.bucket_store.chunks_cache.memcached.max_get_multi_batch_size", OldDefault: "0", NewDefault: "100"}, + {Path: "blocks_storage.bucket_store.chunks_cache.memcached.max_idle_connections", OldDefault: "16", NewDefault: "100"}, + {Path: "blocks_storage.bucket_store.chunks_cache.memcached.timeout", OldDefault: "100ms", NewDefault: "200ms"}, + {Path: "blocks_storage.bucket_store.ignore_deletion_mark_delay", OldDefault: "6h0m0s", NewDefault: "1h0m0s"}, + {Path: "blocks_storage.bucket_store.index_cache.memcached.max_async_buffer_size", OldDefault: "10000", NewDefault: "25000"}, + {Path: "blocks_storage.bucket_store.index_cache.memcached.max_get_multi_batch_size", OldDefault: "0", NewDefault: "100"}, + {Path: "blocks_storage.bucket_store.index_cache.memcached.max_idle_connections", OldDefault: "16", NewDefault: "100"}, + {Path: "blocks_storage.bucket_store.index_cache.memcached.timeout", OldDefault: "100ms", NewDefault: "200ms"}, + {Path: "blocks_storage.bucket_store.index_header_lazy_loading_enabled", OldDefault: "false", NewDefault: "true"}, + {Path: "blocks_storage.bucket_store.index_header_lazy_loading_idle_timeout", OldDefault: "20m0s", NewDefault: "1h0m0s"}, + {Path: "blocks_storage.bucket_store.metadata_cache.memcached.max_async_buffer_size", OldDefault: "10000", NewDefault: "25000"}, + {Path: "blocks_storage.bucket_store.metadata_cache.memcached.max_get_multi_batch_size", OldDefault: "0", NewDefault: "100"}, + {Path: "blocks_storage.bucket_store.metadata_cache.memcached.max_idle_connections", OldDefault: "16", NewDefault: "100"}, + {Path: "blocks_storage.bucket_store.metadata_cache.memcached.timeout", OldDefault: "100ms", NewDefault: "200ms"}, + {Path: "blocks_storage.bucket_store.sync_dir", OldDefault: "tsdb-sync", NewDefault: "./tsdb-sync/"}, + {Path: "blocks_storage.filesystem.dir", OldDefault: "", NewDefault: "blocks"}, + {Path: "blocks_storage.tsdb.close_idle_tsdb_timeout", OldDefault: "0s", NewDefault: "13h0m0s"}, + {Path: "blocks_storage.tsdb.dir", OldDefault: "tsdb", NewDefault: "./tsdb/"}, + {Path: "blocks_storage.tsdb.retention_period", OldDefault: "6h0m0s", NewDefault: "24h0m0s"}, + {Path: "compactor.block_sync_concurrency", OldDefault: "20", NewDefault: "8"}, + {Path: "compactor.data_dir", OldDefault: "./data", NewDefault: "./data-compactor/"}, + {Path: "compactor.sharding_ring.instance_interface_names", OldDefault: "eth0,en0", NewDefault: ""}, + {Path: "compactor.sharding_ring.kvstore.store", OldDefault: "consul", NewDefault: "memberlist"}, + {Path: "compactor.sharding_ring.wait_stability_min_duration", OldDefault: "1m0s", NewDefault: "0s"}, + {Path: "distributor.instance_limits.max_inflight_push_requests", OldDefault: "0", NewDefault: "2000"}, + {Path: "distributor.remote_timeout", OldDefault: "2s", NewDefault: "20s"}, + {Path: "distributor.ring.instance_interface_names", OldDefault: "eth0,en0", NewDefault: ""}, + {Path: "distributor.ring.kvstore.store", OldDefault: "consul", NewDefault: "memberlist"}, + {Path: "frontend.grpc_client_config.max_send_msg_size", OldDefault: "16777216", NewDefault: "104857600"}, + {Path: "frontend.instance_interface_names", OldDefault: "eth0,en0", NewDefault: ""}, + {Path: "frontend.query_stats_enabled", OldDefault: "false", NewDefault: "true"}, + // frontend.results_cache.memcached.addresses can be included or not. + // The perceived default for cortex was "dnssrvnoa+_memcached._tcp." because + // cortex used .hostname and .service to do DNS service discovery. + // The old default is kind of a result of the default values of two other fields (.hostname and .service) + {Path: "frontend.results_cache.memcached.addresses", OldDefault: "dnssrvnoa+_memcached._tcp.", NewDefault: ""}, + {Path: "frontend.results_cache.memcached.max_async_buffer_size", OldDefault: "10000", NewDefault: "25000"}, + {Path: "frontend.results_cache.memcached.max_async_concurrency", OldDefault: "10", NewDefault: "50"}, + {Path: "frontend.results_cache.memcached.max_get_multi_batch_size", OldDefault: "1024", NewDefault: "100"}, + {Path: "frontend.results_cache.memcached.max_idle_connections", OldDefault: "16", NewDefault: "100"}, + {Path: "frontend.results_cache.memcached.max_item_size", OldDefault: "0", NewDefault: "1048576"}, + {Path: "frontend.results_cache.memcached.timeout", OldDefault: "100ms", NewDefault: "200ms"}, + {Path: "frontend.split_queries_by_interval", OldDefault: "0s", NewDefault: "24h0m0s"}, + {Path: "frontend_worker.grpc_client_config.max_send_msg_size", OldDefault: "16777216", NewDefault: "104857600"}, + {Path: "ingester.instance_limits.max_inflight_push_requests", OldDefault: "0", NewDefault: "30000"}, + {Path: "ingester.ring.final_sleep", OldDefault: "30s", NewDefault: "0s"}, + {Path: "ingester.ring.instance_interface_names", OldDefault: "eth0,en0", NewDefault: ""}, + {Path: "ingester.ring.kvstore.store", OldDefault: "consul", NewDefault: "memberlist"}, + {Path: "ingester.ring.min_ready_duration", OldDefault: "1m0s", NewDefault: "15s"}, + {Path: "ingester_client.grpc_client_config.max_send_msg_size", OldDefault: "16777216", NewDefault: "104857600"}, + {Path: "limits.ingestion_burst_size", OldDefault: "50000", NewDefault: "200000"}, + {Path: "limits.ingestion_rate", OldDefault: "25000", NewDefault: "10000"}, + {Path: "limits.max_global_series_per_metric", OldDefault: "0", NewDefault: "20000"}, + {Path: "limits.max_global_series_per_user", OldDefault: "0", NewDefault: "150000"}, + {Path: "limits.ruler_max_rule_groups_per_tenant", OldDefault: "0", NewDefault: "70"}, + {Path: "limits.ruler_max_rules_per_rule_group", OldDefault: "0", NewDefault: "20"}, + {Path: "querier.query_ingesters_within", OldDefault: "0s", NewDefault: "13h0m0s"}, + {Path: "query_scheduler.grpc_client_config.max_send_msg_size", OldDefault: "16777216", NewDefault: "104857600"}, + {Path: "ruler.enable_api", OldDefault: "false", NewDefault: "true"}, + {Path: "ruler.ring.instance_interface_names", OldDefault: "eth0,en0", NewDefault: ""}, + {Path: "ruler.ring.kvstore.store", OldDefault: "consul", NewDefault: "memberlist"}, + {Path: "ruler.rule_path", OldDefault: "/rules", NewDefault: "./data-ruler/"}, + {Path: "ruler.ruler_client.max_send_msg_size", OldDefault: "16777216", NewDefault: "104857600"}, + {Path: "ruler_storage.backend", OldDefault: "s3", NewDefault: "filesystem"}, + {Path: "ruler_storage.filesystem.dir", OldDefault: "", NewDefault: "ruler"}, + {Path: "store_gateway.sharding_ring.instance_interface_names", OldDefault: "eth0,en0", NewDefault: ""}, + {Path: "store_gateway.sharding_ring.kvstore.store", OldDefault: "consul", NewDefault: "memberlist"}, + {Path: "store_gateway.sharding_ring.wait_stability_min_duration", OldDefault: "1m0s", NewDefault: "0s"}, +} +func TestChangedCortexDefaults(t *testing.T) { // Create cortex config where all params have explicitly set default values params := DefaultCortexConfig() - err := params.Walk(func(path string, value interface{}) error { + err := params.Walk(func(path string, _ Value) error { + return params.SetValue(path, params.MustGetDefaultValue(path)) + }) + require.NoError(t, err) + config, err := yaml.Marshal(params) + require.NoError(t, err) + + // Create cortex config where all params have explicitly set default values so that all of them can be changed and reported as changed + _, _, notices, err := Convert(config, nil, CortexToMimirMapper(), DefaultCortexConfig, DefaultMimirConfig, true, false) + require.NoError(t, err) + assert.ElementsMatch(t, changedCortexDefaults, notices.ChangedDefaults) +} + +func TestChangedGEMDefaults(t *testing.T) { + changedGEMSpecificDefaults := []ChangedDefault{ + {Path: "admin_api.leader_election.client_config.max_send_msg_size", OldDefault: "16777216", NewDefault: "104857600"}, + {Path: "admin_api.leader_election.enabled", OldDefault: "false", NewDefault: "true"}, + {Path: "admin_api.leader_election.ring.instance_interface_names", OldDefault: "eth0,en0", NewDefault: ""}, + {Path: "auth.type", OldDefault: "trust", NewDefault: "enterprise"}, + {Path: "graphite.enabled", OldDefault: "false", NewDefault: "true"}, + {Path: "graphite.querier.schemas.backend", OldDefault: "s3", NewDefault: "filesystem"}, + {Path: "instrumentation.enabled", OldDefault: "false", NewDefault: "true"}, + {Path: "limits.compactor_split_groups", OldDefault: "4", NewDefault: "1"}, + {Path: "limits.compactor_tenant_shard_size", OldDefault: "1", NewDefault: "0"}, + } + + // These slipped through from Mimir into GEM 1.7.0 + changedDefaultsOnlyInCortex := map[string]struct{}{ + "frontend.query_stats_enabled": {}, + "ingester.instance_limits.max_inflight_push_requests": {}, + "ingester.ring.min_ready_duration": {}, + } + + expectedChangedDefaults := changedGEMSpecificDefaults + for _, def := range changedCortexDefaults { + if _, notInGEM := changedDefaultsOnlyInCortex[def.Path]; notInGEM { + continue + } + expectedChangedDefaults = append(expectedChangedDefaults, def) + } + + // Create cortex config where all params have explicitly set default values so that all of them can be changed and reported as changed + params := DefaultGEM170Config() + err := params.Walk(func(path string, _ Value) error { return params.SetValue(path, params.MustGetDefaultValue(path)) }) require.NoError(t, err) @@ -424,7 +552,7 @@ func TestChangedDefaults(t *testing.T) { require.NoError(t, err) // Convert while also converting explicitly set defaults to new defaults - _, _, notices, err := Convert(config, nil, CortexToMimirMapper, DefaultCortexConfig, DefaultMimirConfig, true, false) + _, _, notices, err := Convert(config, nil, GEM170ToGEM200Mapper(), DefaultGEM170Config, DefaultGEM200COnfig, true, false) require.NoError(t, err) assert.ElementsMatch(t, expectedChangedDefaults, notices.ChangedDefaults) } @@ -479,18 +607,24 @@ func TestConvert_UseNewDefaults(t *testing.T) { // in the out YAML. This helps to keep the test cases and expected YAML clean of // unrelated config options (e.g. server.http_listen_port) inFlags := loadFlags(t, "testdata/common-flags.txt") - - outYAML, _, notices, err := Convert(tc.inYAML, inFlags, CortexToMimirMapper, DefaultCortexConfig, DefaultMimirConfig, tc.useNewDefaults, false) - require.NoError(t, err) - - assert.YAMLEq(t, string(tc.expectedYAML), string(outYAML)) - if tc.valueShouldBeChanged { - assert.Contains(t, notices.ChangedDefaults, tc.expectedNotice) - assert.NotContains(t, notices.SkippedChangedDefaults, tc.expectedNotice) - } else { - assert.Contains(t, notices.SkippedChangedDefaults, tc.expectedNotice) - assert.NotContains(t, notices.ChangedDefaults, tc.expectedNotice) + in := conversionInput{ + inYAML: tc.inYAML, + inFlags: inFlags, + useNewDefaults: tc.useNewDefaults, } + + testCortexAndGEM(t, in, func(t *testing.T, outYAML []byte, outFlags []string, notices ConversionNotices, err error) { + require.NoError(t, err) + + assert.YAMLEq(t, string(tc.expectedYAML), string(outYAML)) + if tc.valueShouldBeChanged { + assert.Contains(t, notices.ChangedDefaults, tc.expectedNotice) + assert.NotContains(t, notices.SkippedChangedDefaults, tc.expectedNotice) + } else { + assert.Contains(t, notices.SkippedChangedDefaults, tc.expectedNotice) + assert.NotContains(t, notices.ChangedDefaults, tc.expectedNotice) + } + }) }) } } @@ -498,10 +632,19 @@ func TestConvert_UseNewDefaults(t *testing.T) { func TestConvert_NotInYAMLIsNotPrinted(t *testing.T) { for _, useNewDefaults := range []bool{true, false} { for _, showDefaults := range []bool{true, false} { + showDefaults, useNewDefaults := showDefaults, useNewDefaults t.Run(fmt.Sprintf("useNewDefault=%t_showDefaults=%t", useNewDefaults, showDefaults), func(t *testing.T) { - actualYAML, _, _, err := Convert([]byte("{}"), nil, CortexToMimirMapper, DefaultCortexConfig, DefaultMimirConfig, useNewDefaults, showDefaults) - assert.NoError(t, err) - assert.NotContains(t, string(actualYAML), notInYaml) + t.Parallel() + in := conversionInput{ + useNewDefaults: useNewDefaults, + outputDefaults: showDefaults, + inYAML: nil, + inFlags: nil, + } + testCortexAndGEM(t, in, func(t *testing.T, outYAML []byte, outFlags []string, notices ConversionNotices, err error) { + assert.NoError(t, err) + assert.NotContains(t, string(outYAML), notInYaml) + }) }) } } diff --git a/pkg/mimirtool/config/cortex.go b/pkg/mimirtool/config/cortex.go index f98baaf929..412fc01c53 100644 --- a/pkg/mimirtool/config/cortex.go +++ b/pkg/mimirtool/config/cortex.go @@ -4,10 +4,8 @@ package config import ( "fmt" - "reflect" "strings" - "github.com/grafana/dskit/flagext" "github.com/grafana/dskit/multierror" "github.com/pkg/errors" @@ -15,33 +13,35 @@ import ( ) // CortexToMimirMapper maps from cortex-1.11.0 to mimir-2.0.0 configurations -var CortexToMimirMapper = MultiMapper{ - MapperFunc(mapInstanceInterfaceNames), - // first try to naively map keys from old config to same keys from new config - BestEffortDirectMapper{}, - // next map alertmanager URL in the ruler config - MapperFunc(alertmanagerURLMapperFunc), - // Removed `-alertmanager.storage.*` configuration options, use `-alertmanager-storage.*` instead. -alertmanager.storage.* should take precedence - MapperFunc(alertmanagerStorageMapperFunc), - // Removed the support for `-ruler.storage.*`, use `-ruler-storage.*` instead. -ruler.storage.* should take precedence - MapperFunc(rulerStorageMapperFunc), - // Replace (ruler|alertmanager).storage.s3.sse_encryption=true with (alertmanager|ruler)_storage.s3.sse.type="SSE-S3" - mapS3SSE("alertmanager"), mapS3SSE("ruler"), - // Apply trivial renames and moves of parameters - PathMapper{PathMappings: simpleRenameMappings}, - // Remap sharding configs - MapperFunc(updateKVStoreValue), - // Convert provided memcached service and host to the DNS service discovery format - MapperFunc(mapMemcachedAddresses), - // Map `-*.s3.url` to `-*.s3.(endpoint|access_key_id|secret_access_key)` - mapRulerAlertmanagerS3URL("alertmanager.storage", "alertmanager_storage"), mapRulerAlertmanagerS3URL("ruler.storage", "ruler_storage"), - // Map `-*.s3.bucketnames` and (maybe part of `-*s3.s3.url`) to `-*.s3.bucket-name` - mapRulerAlertmanagerS3Buckets("alertmanager.storage", "alertmanager_storage"), mapRulerAlertmanagerS3Buckets("ruler.storage", "ruler_storage"), - // Prevent server.http_listen_port from being updated with a new default and always output it. - MapperFunc(mapServerHTTPListenPort), +func CortexToMimirMapper() Mapper { + return MultiMapper{ + mapCortexInstanceInterfaceNames(), + // first try to naively map keys from old config to same keys from new config + BestEffortDirectMapper{}, + // next map alertmanager URL in the ruler config + MapperFunc(alertmanagerURLMapperFunc), + // Removed `-alertmanager.storage.*` configuration options, use `-alertmanager-storage.*` instead. -alertmanager.storage.* should take precedence + MapperFunc(alertmanagerStorageMapperFunc), + // Removed the support for `-ruler.storage.*`, use `-ruler-storage.*` instead. -ruler.storage.* should take precedence + MapperFunc(rulerStorageMapperFunc), + // Replace (ruler|alertmanager).storage.s3.sse_encryption=true with (alertmanager|ruler)_storage.s3.sse.type="SSE-S3" + mapS3SSE("alertmanager"), mapS3SSE("ruler"), + // Apply trivial renames and moves of parameters + PathMapper{PathMappings: cortexRenameMappings}, + // Remap sharding configs + MapperFunc(updateKVStoreValue), + // Convert provided memcached service and host to the DNS service discovery format + MapperFunc(mapMemcachedAddresses), + // Map `-*.s3.url` to `-*.s3.(endpoint|access_key_id|secret_access_key)` + mapRulerAlertmanagerS3URL("alertmanager.storage", "alertmanager_storage"), mapRulerAlertmanagerS3URL("ruler.storage", "ruler_storage"), + // Map `-*.s3.bucketnames` and (maybe part of `-*s3.s3.url`) to `-*.s3.bucket-name` + mapRulerAlertmanagerS3Buckets("alertmanager.storage", "alertmanager_storage"), mapRulerAlertmanagerS3Buckets("ruler.storage", "ruler_storage"), + // Prevent server.http_listen_port from being updated with a new default and always output it. + MapperFunc(mapServerHTTPListenPort), + } } -var simpleRenameMappings = map[string]Mapping{ +var cortexRenameMappings = map[string]Mapping{ "blocks_storage.tsdb.max_exemplars": RenameMapping("limits.max_global_exemplars_per_user"), "query_range.results_cache.cache.background.writeback_buffer": RenameMapping("frontend.results_cache.memcached.max_async_buffer_size"), @@ -149,7 +149,7 @@ func updateKVStoreValue(source, target Parameters) error { return errors.Wrapf(err, "could not find %s", storePath) } - if kvStore != nil { + if !kvStore.IsUnset() { // set explicitly, don't change it. continue } @@ -167,7 +167,7 @@ func updateKVStoreValue(source, target Parameters) error { if err != nil { return errors.Wrapf(err, "could not find %s", shardingEnabledPath) } - if consul != nil { + if !consul.IsUnset() { // Only update configuration if consul is actually configured. ringUsed = true } @@ -177,12 +177,8 @@ func updateKVStoreValue(source, target Parameters) error { if err != nil { return errors.Wrapf(err, "could not find %s", shardingEnabledPath) } - if enabled != nil { - if _, ok := enabled.(string); !ok { - return fmt.Errorf("%s is not a string", shardingEnabledPath) - } - ringUsed = enabled.(string) == "global" // Using of distributor ring was enabled by setting limits.ingestion_rate_strategy to "global". - } + + ringUsed = enabled.AsString() == "global" // Using of distributor ring was enabled by setting limits.ingestion_rate_strategy to "global". default: enabled, err := source.GetValue(shardingEnabledPath) @@ -190,12 +186,7 @@ func updateKVStoreValue(source, target Parameters) error { return errors.Wrapf(err, "could not find %s", shardingEnabledPath) } - if enabled != nil { - if _, ok := enabled.(bool); !ok { - return fmt.Errorf("%s is not a boolean", shardingEnabledPath) - } - ringUsed = enabled.(bool) - } + ringUsed = enabled.AsBool() } // If ring is not used, ignore this KV store config. @@ -208,7 +199,7 @@ func updateKVStoreValue(source, target Parameters) error { // 2) Ring is actually used // => We must set "consul" in new config. - err = target.SetValue(targetStorePath, "consul") + err = target.SetValue(targetStorePath, StringValue("consul")) if err != nil { return errors.Wrapf(err, "failed to update %s", targetStorePath) } @@ -222,7 +213,7 @@ func alertmanagerURLMapperFunc(source, target Parameters) error { if err != nil { return errors.Wrap(err, "could not convert ruler.enable_alertmanager_discovery") } - if amDiscovery == nil || !amDiscovery.(bool) { + if !amDiscovery.AsBool() { return nil } @@ -231,11 +222,11 @@ func alertmanagerURLMapperFunc(source, target Parameters) error { return errors.Wrap(err, "could not get ruler.alertmanager_url") } - amURLs := strings.Split(amURL.(string), ",") + amURLs := strings.Split(amURL.AsString(), ",") for i := range amURLs { amURLs[i] = "dnssrvnoa+" + amURLs[i] } - return target.SetValue("ruler.alertmanager_url", strings.Join(amURLs, ",")) + return target.SetValue("ruler.alertmanager_url", StringValue(strings.Join(amURLs, ","))) } // rulerStorageMapperFunc returns a MapperFunc that maps alertmanager.storage and alertmanager_storage to alertmanager_storage. @@ -320,7 +311,7 @@ func differentFromDefault(p Parameters, path string) bool { val, err1 := p.GetValue(path) defaultVal, err2 := p.GetDefaultValue(path) - return err1 == nil && err2 == nil && val != nil && !reflect.DeepEqual(val, defaultVal) + return err1 == nil && err2 == nil && !val.IsUnset() && !val.Equals(defaultVal) } func mapDotStorage(pathRenames map[string]string, source, target Parameters) error { @@ -357,9 +348,9 @@ func mapS3SSE(prefix string) MapperFunc { if err != nil { return err } - sseWasEnabled, _ := sseWasEnabledVal.(bool) - if sseWasEnabled && target.MustGetValue(sseTypePath) == nil { - return target.SetValue(sseTypePath, s3.SSES3) + sseWasEnabled := sseWasEnabledVal.AsBool() + if sseWasEnabled && target.MustGetValue(sseTypePath).IsUnset() { + return target.SetValue(sseTypePath, StringValue(s3.SSES3)) } return nil @@ -381,7 +372,7 @@ func mapRulerAlertmanagerS3URL(dotStoragePath, storagePath string) MapperFunc { } s3URLVal, _ := source.GetValue(oldS3URLPath) - s3URL, _ := s3URLVal.(flagext.URLValue) + s3URL := s3URLVal.AsURL() if s3URL.URL == nil { return nil } @@ -393,12 +384,12 @@ func mapRulerAlertmanagerS3URL(dotStoragePath, storagePath string) MapperFunc { password, _ := s3URL.User.Password() setIfNonEmpty := func(p Parameters, path, val string) error { currentVal, _ := target.GetValue(path) - currentStr, _ := currentVal.(string) + currentStr := currentVal.AsString() if val == "" || currentStr != "" { // Values set by the user take precedence over ones in the URL return nil } - err := target.SetValue(path, val) + err := target.SetValue(path, StringValue(val)) if err != nil { return err } @@ -414,10 +405,9 @@ func mapRulerAlertmanagerS3URL(dotStoragePath, storagePath string) MapperFunc { if err != nil { return err } - } - err := target.SetValue(newS3EndpointPath, s3URL.Host) + err := target.SetValue(newS3EndpointPath, StringValue(s3URL.Host)) if err != nil { return err } @@ -438,14 +428,14 @@ func mapRulerAlertmanagerS3Buckets(dotStoragePath, storagePath string) Mapper { } bucketNamesVal, _ := source.GetValue(oldBucketNamesPath) - bucketNames, _ := bucketNamesVal.(string) + bucketNames := bucketNamesVal.AsString() if strings.Contains(bucketNames, ",") { return errors.New(oldBucketNamesPath + ": multiple bucket names cannot be converted, please provide only a single bucket name") } if bucketNames == "" { s3URLVal, _ := source.GetValue(oldS3URLPath) - s3URL, _ := s3URLVal.(flagext.URLValue) + s3URL := s3URLVal.AsURL() if s3URL.URL != nil { bucketNames = strings.TrimPrefix(s3URL.Path, "/") } @@ -454,7 +444,7 @@ func mapRulerAlertmanagerS3Buckets(dotStoragePath, storagePath string) Mapper { return nil } - return target.SetValue(newS3BucketPath, bucketNames) + return target.SetValue(newS3BucketPath, StringValue(bucketNames)) }) } @@ -470,20 +460,20 @@ func mapMemcachedAddresses(source, target Parameters) error { if err != nil { return err } - if presetAddresses, _ := presetAddressesVal.(string); presetAddresses != "" { + if presetAddressesVal.AsString() != "" { return nil // respect already set values of addresses } service, hostname := source.MustGetValue(oldPrefix+".service"), source.MustGetValue(oldPrefix+".host") - if service == nil || hostname == nil { + if service.IsUnset() || hostname.IsUnset() { return nil } - newAddress := fmt.Sprintf("dnssrvnoa+_%s._tcp.%s", service, hostname) + newAddress := fmt.Sprintf("dnssrvnoa+_%s._tcp.%s", service.AsString(), hostname.AsString()) - return target.SetValue(newPrefix+".addresses", newAddress) + return target.SetValue(newPrefix+".addresses", StringValue(newAddress)) } -func mapInstanceInterfaceNames(source, target Parameters) error { +func mapCortexInstanceInterfaceNames() Mapper { ifaceNames := map[string]string{ "alertmanager.sharding_ring.instance_interface_names": "alertmanager.sharding_ring.instance_interface_names", "compactor.sharding_ring.instance_interface_names": "compactor.sharding_ring.instance_interface_names", @@ -493,27 +483,32 @@ func mapInstanceInterfaceNames(source, target Parameters) error { "ruler.ring.instance_interface_names": "ruler.ring.instance_interface_names", "store_gateway.sharding_ring.instance_interface_names": "store_gateway.sharding_ring.instance_interface_names", } + return mapInstanceInterfaceNames(ifaceNames) +} - errs := multierror.New() - for sourcePath, targetPath := range ifaceNames { - // We want to update these interface_names to use the new autodetection in mimir - // if and only if they match the old default AND the user has provided -update-defaults. - // To do that we set the new default to nil. If -update-defaults is set, it will replace the - // [eth0, en0] default value with nil. pruneNils will then delete that nil parameter. - err := target.SetDefaultValue(targetPath, nil) - if err != nil { - errs.Add(err) - continue - } - instanceNamesVal, _ := source.GetValue(sourcePath) - if instanceNamesVal != nil { - // The user has set the value to something, we want to keep that - errs.Add(target.SetValue(targetPath, instanceNamesVal)) - continue +func mapInstanceInterfaceNames(ifaceNames map[string]string) Mapper { + return MapperFunc(func(source, target Parameters) error { + errs := multierror.New() + for sourcePath, targetPath := range ifaceNames { + // We want to update these interface_names to use the new autodetection in mimir + // if and only if they match the old default AND the user has provided -update-defaults. + // To do that we set the new default to nil. If -update-defaults is set, it will replace the + // [eth0, en0] default value with nil. pruneNils will then delete that nil parameter. + err := target.SetDefaultValue(targetPath, Nil) + if err != nil { + errs.Add(err) + continue + } + instanceNamesVal, _ := source.GetValue(sourcePath) + if !instanceNamesVal.IsUnset() { + // The user has set the value to something, we want to keep that + errs.Add(target.SetValue(targetPath, instanceNamesVal)) + continue + } + errs.Add(target.Delete(targetPath)) } - errs.Add(target.Delete(targetPath)) - } - return errs.Err() + return errs.Err() + }) } func mapServerHTTPListenPort(source, target Parameters) error { @@ -522,11 +517,11 @@ func mapServerHTTPListenPort(source, target Parameters) error { return err } // If the port wasn't set, or it was set to the default - if portVal == nil || !differentFromDefault(source, "server.http_listen_port") { - err = target.SetValue("server.http_listen_port", 80) + if portVal.IsUnset() || !differentFromDefault(source, "server.http_listen_port") { + err = target.SetValue("server.http_listen_port", IntValue(80)) // We set the default after the value itself because when mapping defaults // calling `SetValue` actually modifies the default value. So we want to retain the target default as it is. - err2 := target.SetDefaultValue("server.http_listen_port", 8080) + err2 := target.SetDefaultValue("server.http_listen_port", IntValue(8080)) return multierror.New(err, err2).Err() } @@ -1024,7 +1019,7 @@ var removedConfigPaths = []string{ "store_gateway.sharding_strategy", // -store-gateway.sharding-strategy } -// CLI options removed since Cortex 1.11.0. These flags only existed as CLI Flags, and were not included in YAML Config. +// CLI options removed since Cortex 1.10.0. These flags only existed as CLI Flags, and were not included in YAML Config. var removedCLIOptions = []string{ "event.sample-rate", "frontend.cache-split-interval", diff --git a/pkg/mimirtool/config/descriptors/gem-v1.7.0-flags-only.json b/pkg/mimirtool/config/descriptors/gem-v1.7.0-flags-only.json new file mode 100644 index 0000000000..c5fcfb7901 --- /dev/null +++ b/pkg/mimirtool/config/descriptors/gem-v1.7.0-flags-only.json @@ -0,0 +1,80 @@ +{ + "kind": "block", + "name": "", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "schema-config-file", + "required": false, + "desc": "The path to the schema config file. The schema config is used only when running Cortex with the chunks storage.", + "fieldDefaultValue": "", + "fieldFlag": "schema-config-file", + "fieldType": "string" + }, + { + "kind": "field", + "name": "ingester-chunk-encoding", + "required": false, + "desc": "Encoding version to use for chunks.", + "fieldDefaultValue": "", + "fieldFlag": "ingester.chunk-encoding", + "fieldType": "string" + }, + { + "kind": "field", + "name": "querier-query-parallelism", + "required": false, + "desc": "Max subqueries run in parallel per higher-level query.", + "fieldDefaultValue": 100, + "fieldFlag": "querier.query-parallelism", + "fieldType": "int" + }, + { + "kind": "field", + "name": "config-file", + "required": false, + "desc": "Configuration file to load.", + "fieldDefaultValue": "", + "fieldFlag": "config.file", + "fieldType": "string" + }, + { + "kind": "field", + "name": "config-expand-env", + "required": false, + "desc": "Expands ${var} or $var in config according to the values of the environment variables.", + "fieldDefaultValue": "", + "fieldFlag": "config.expand-env", + "fieldType": "string" + }, + { + "kind": "field", + "name": "mem-ballast-size-bytes", + "required": false, + "desc": "Size of memory ballast to allocate.", + "fieldDefaultValue": 0, + "fieldFlag": "mem-ballast-size-bytes", + "fieldType": "int" + }, + { + "kind": "field", + "name": "debug-mutex-profile-fraction", + "required": false, + "desc": "Fraction of mutex contention events that are reported in the mutex profile. On average 1/rate events are reported. 0 to disable.", + "fieldDefaultValue": 0, + "fieldFlag": "debug.mutex-profile-fraction", + "fieldType": "int" + }, + { + "kind": "field", + "name": "debug-block-profile-rate", + "required": false, + "desc": "Fraction of goroutine blocking events that are reported in the blocking profile. 1 to include every blocking event in the profile, 0 to disable.", + "fieldDefaultValue": 0, + "fieldFlag": "debug.block-profile-rate", + "fieldType": "int" + } + ] +} diff --git a/pkg/mimirtool/config/descriptors/gem-v1.7.0.json b/pkg/mimirtool/config/descriptors/gem-v1.7.0.json new file mode 100644 index 0000000000..13a2995840 --- /dev/null +++ b/pkg/mimirtool/config/descriptors/gem-v1.7.0.json @@ -0,0 +1,18480 @@ +{ + "kind": "block", + "name": "", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "target", + "required": false, + "desc": "Comma-separated list of modules to load. The alias 'all' can be used in the list to load a number of core modules and will enable single-binary mode. Use '-modules' command line flag to get a list of available modules, and to see which modules are included in 'all'.", + "fieldValue": null, + "fieldDefaultValue": "all", + "fieldFlag": "target", + "fieldType": "string" + }, + { + "kind": "field", + "name": "auth_enabled", + "required": false, + "desc": "Set to false to disable auth.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "auth.enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "http_prefix", + "required": false, + "desc": "HTTP path prefix for API.", + "fieldValue": null, + "fieldDefaultValue": "/api/prom", + "fieldFlag": "http.prefix", + "fieldType": "string" + }, + { + "kind": "block", + "name": "api", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "response_compression_enabled", + "required": false, + "desc": "Use GZIP compression for API responses. Some endpoints serve large YAML or JSON blobs which can benefit from compression.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "api.response-compression-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "skip_label_name_validation_header_enabled", + "required": false, + "desc": "Allows to skip label name validation via header on the http write path. Use with caution as it breaks PromQL. Allowing this for external clients allows any client to send invalid label names. After enabling it, requests with X-Mimir-SkipLabelNameValidation HTTP header set to true will not have label names validated.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "api.skip-label-name-validation-header-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "alertmanager_http_prefix", + "required": false, + "desc": "HTTP URL path under which the Alertmanager ui and api will be served.", + "fieldValue": null, + "fieldDefaultValue": "/alertmanager", + "fieldFlag": "http.alertmanager-http-prefix", + "fieldType": "string" + }, + { + "kind": "field", + "name": "prometheus_http_prefix", + "required": false, + "desc": "HTTP URL path under which the Prometheus api will be served.", + "fieldValue": null, + "fieldDefaultValue": "/prometheus", + "fieldFlag": "http.prometheus-http-prefix", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "server", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "http_listen_network", + "required": false, + "desc": "HTTP server listen network, default tcp", + "fieldValue": null, + "fieldDefaultValue": "tcp", + "fieldFlag": "server.http-listen-network", + "fieldType": "string" + }, + { + "kind": "field", + "name": "http_listen_address", + "required": false, + "desc": "HTTP server listen address.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "server.http-listen-address", + "fieldType": "string" + }, + { + "kind": "field", + "name": "http_listen_port", + "required": false, + "desc": "HTTP server listen port.", + "fieldValue": null, + "fieldDefaultValue": 80, + "fieldFlag": "server.http-listen-port", + "fieldType": "int" + }, + { + "kind": "field", + "name": "http_listen_conn_limit", + "required": false, + "desc": "Maximum number of simultaneous http connections, \u003c=0 to disable", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "server.http-conn-limit", + "fieldType": "int" + }, + { + "kind": "field", + "name": "grpc_listen_network", + "required": false, + "desc": "gRPC server listen network", + "fieldValue": null, + "fieldDefaultValue": "tcp", + "fieldFlag": "server.grpc-listen-network", + "fieldType": "string" + }, + { + "kind": "field", + "name": "grpc_listen_address", + "required": false, + "desc": "gRPC server listen address.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "server.grpc-listen-address", + "fieldType": "string" + }, + { + "kind": "field", + "name": "grpc_listen_port", + "required": false, + "desc": "gRPC server listen port.", + "fieldValue": null, + "fieldDefaultValue": 9095, + "fieldFlag": "server.grpc-listen-port", + "fieldType": "int" + }, + { + "kind": "field", + "name": "grpc_listen_conn_limit", + "required": false, + "desc": "Maximum number of simultaneous grpc connections, \u003c=0 to disable", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "server.grpc-conn-limit", + "fieldType": "int" + }, + { + "kind": "block", + "name": "http_tls_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "cert_file", + "required": false, + "desc": "HTTP server cert path.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "server.http-tls-cert-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "key_file", + "required": false, + "desc": "HTTP server key path.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "server.http-tls-key-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "client_auth_type", + "required": false, + "desc": "HTTP TLS Client Auth type.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "server.http-tls-client-auth", + "fieldType": "string" + }, + { + "kind": "field", + "name": "client_ca_file", + "required": false, + "desc": "HTTP TLS Client CA path.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "server.http-tls-ca-path", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "grpc_tls_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "cert_file", + "required": false, + "desc": "GRPC TLS server cert path.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "server.grpc-tls-cert-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "key_file", + "required": false, + "desc": "GRPC TLS server key path.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "server.grpc-tls-key-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "client_auth_type", + "required": false, + "desc": "GRPC TLS Client Auth type.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "server.grpc-tls-client-auth", + "fieldType": "string" + }, + { + "kind": "field", + "name": "client_ca_file", + "required": false, + "desc": "GRPC TLS Client CA path.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "server.grpc-tls-ca-path", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "register_instrumentation", + "required": false, + "desc": "Register the intrumentation handlers (/metrics etc).", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "server.register-instrumentation", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "graceful_shutdown_timeout", + "required": false, + "desc": "Timeout for graceful shutdowns", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "server.graceful-shutdown-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "http_server_read_timeout", + "required": false, + "desc": "Read timeout for HTTP server", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "server.http-read-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "http_server_write_timeout", + "required": false, + "desc": "Write timeout for HTTP server", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "server.http-write-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "http_server_idle_timeout", + "required": false, + "desc": "Idle timeout for HTTP server", + "fieldValue": null, + "fieldDefaultValue": 120000000000, + "fieldFlag": "server.http-idle-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "grpc_server_max_recv_msg_size", + "required": false, + "desc": "Limit on the size of a gRPC message this server can receive (bytes).", + "fieldValue": null, + "fieldDefaultValue": 4194304, + "fieldFlag": "server.grpc-max-recv-msg-size-bytes", + "fieldType": "int" + }, + { + "kind": "field", + "name": "grpc_server_max_send_msg_size", + "required": false, + "desc": "Limit on the size of a gRPC message this server can send (bytes).", + "fieldValue": null, + "fieldDefaultValue": 4194304, + "fieldFlag": "server.grpc-max-send-msg-size-bytes", + "fieldType": "int" + }, + { + "kind": "field", + "name": "grpc_server_max_concurrent_streams", + "required": false, + "desc": "Limit on the number of concurrent streams for gRPC calls (0 = unlimited)", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "server.grpc-max-concurrent-streams", + "fieldType": "int" + }, + { + "kind": "field", + "name": "grpc_server_max_connection_idle", + "required": false, + "desc": "The duration after which an idle connection should be closed. Default: infinity", + "fieldValue": null, + "fieldDefaultValue": 9223372036854775807, + "fieldFlag": "server.grpc.keepalive.max-connection-idle", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "grpc_server_max_connection_age", + "required": false, + "desc": "The duration for the maximum amount of time a connection may exist before it will be closed. Default: infinity", + "fieldValue": null, + "fieldDefaultValue": 9223372036854775807, + "fieldFlag": "server.grpc.keepalive.max-connection-age", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "grpc_server_max_connection_age_grace", + "required": false, + "desc": "An additive period after max-connection-age after which the connection will be forcibly closed. Default: infinity", + "fieldValue": null, + "fieldDefaultValue": 9223372036854775807, + "fieldFlag": "server.grpc.keepalive.max-connection-age-grace", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "grpc_server_keepalive_time", + "required": false, + "desc": "Duration after which a keepalive probe is sent in case of no activity over the connection., Default: 2h", + "fieldValue": null, + "fieldDefaultValue": 7200000000000, + "fieldFlag": "server.grpc.keepalive.time", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "grpc_server_keepalive_timeout", + "required": false, + "desc": "After having pinged for keepalive check, the duration after which an idle connection should be closed, Default: 20s", + "fieldValue": null, + "fieldDefaultValue": 20000000000, + "fieldFlag": "server.grpc.keepalive.timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "grpc_server_min_time_between_pings", + "required": false, + "desc": "Minimum amount of time a client should wait before sending a keepalive ping. If client sends keepalive ping more often, server will send GOAWAY and close the connection.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "server.grpc.keepalive.min-time-between-pings", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "grpc_server_ping_without_stream_allowed", + "required": false, + "desc": "If true, server allows keepalive pings even when there are no active streams(RPCs). If false, and client sends ping when there are no active streams, server will send GOAWAY and close the connection.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "server.grpc.keepalive.ping-without-stream-allowed", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "log_format", + "required": false, + "desc": "Output log messages in the given format. Valid formats: [logfmt, json]", + "fieldValue": null, + "fieldDefaultValue": "logfmt", + "fieldFlag": "log.format", + "fieldType": "string" + }, + { + "kind": "field", + "name": "log_level", + "required": false, + "desc": "Only log messages with the given severity or above. Valid levels: [debug, info, warn, error]", + "fieldValue": null, + "fieldDefaultValue": "info", + "fieldFlag": "log.level", + "fieldType": "string" + }, + { + "kind": "field", + "name": "log_source_ips_enabled", + "required": false, + "desc": "Optionally log the source IPs.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "server.log-source-ips-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "log_source_ips_header", + "required": false, + "desc": "Header field storing the source IPs. Only used if server.log-source-ips-enabled is true. If not set the default Forwarded, X-Real-IP and X-Forwarded-For headers are used", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "server.log-source-ips-header", + "fieldType": "string" + }, + { + "kind": "field", + "name": "log_source_ips_regex", + "required": false, + "desc": "Regex for matching the source IPs. Only used if server.log-source-ips-enabled is true. If not set the default Forwarded, X-Real-IP and X-Forwarded-For headers are used", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "server.log-source-ips-regex", + "fieldType": "string" + }, + { + "kind": "field", + "name": "http_path_prefix", + "required": false, + "desc": "Base path to serve all API routes from (e.g. /v1/)", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "server.path-prefix", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "distributor", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "pool", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "client_cleanup_period", + "required": false, + "desc": "How frequently to clean up clients for ingesters that have gone away.", + "fieldValue": null, + "fieldDefaultValue": 15000000000, + "fieldFlag": "distributor.client-cleanup-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "health_check_ingesters", + "required": false, + "desc": "Run a health check on each ingester client during periodic cleanup.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "distributor.health-check-ingesters", + "fieldType": "boolean" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "ha_tracker", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "enable_ha_tracker", + "required": false, + "desc": "Enable the distributors HA tracker so that it can accept samples from Prometheus HA replicas gracefully (requires labels).", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "distributor.ha-tracker.enable", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "ha_tracker_update_timeout", + "required": false, + "desc": "Update the timestamp in the KV store for a given cluster/replica only after this amount of time has passed since the current stored timestamp.", + "fieldValue": null, + "fieldDefaultValue": 15000000000, + "fieldFlag": "distributor.ha-tracker.update-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "ha_tracker_update_timeout_jitter_max", + "required": false, + "desc": "Maximum jitter applied to the update timeout, in order to spread the HA heartbeats over time.", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "distributor.ha-tracker.update-timeout-jitter-max", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "ha_tracker_failover_timeout", + "required": false, + "desc": "If we don't receive any samples from the accepted replica for a cluster in this amount of time we will failover to the next replica we receive a sample from. This value must be greater than the update timeout", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "distributor.ha-tracker.failover-timeout", + "fieldType": "duration" + }, + { + "kind": "block", + "name": "kvstore", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "store", + "required": false, + "desc": "Backend storage to use for the ring. Supported values are: consul, etcd, inmemory, memberlist, multi.", + "fieldValue": null, + "fieldDefaultValue": "consul", + "fieldFlag": "distributor.ha-tracker.store", + "fieldType": "string" + }, + { + "kind": "field", + "name": "prefix", + "required": false, + "desc": "The prefix for the keys in the store. Should end with a /.", + "fieldValue": null, + "fieldDefaultValue": "ha-tracker/", + "fieldFlag": "distributor.ha-tracker.prefix", + "fieldType": "string" + }, + { + "kind": "block", + "name": "consul", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "host", + "required": false, + "desc": "Hostname and port of Consul.", + "fieldValue": null, + "fieldDefaultValue": "localhost:8500", + "fieldFlag": "distributor.ha-tracker.consul.hostname", + "fieldType": "string" + }, + { + "kind": "field", + "name": "acl_token", + "required": false, + "desc": "ACL Token used to interact with Consul.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ha-tracker.consul.acl-token", + "fieldType": "string" + }, + { + "kind": "field", + "name": "http_client_timeout", + "required": false, + "desc": "HTTP timeout when talking to Consul", + "fieldValue": null, + "fieldDefaultValue": 20000000000, + "fieldFlag": "distributor.ha-tracker.consul.client-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "consistent_reads", + "required": false, + "desc": "Enable consistent reads to Consul.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "distributor.ha-tracker.consul.consistent-reads", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "watch_rate_limit", + "required": false, + "desc": "Rate limit when watching key or prefix in Consul, in requests per second. 0 disables the rate limit.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "distributor.ha-tracker.consul.watch-rate-limit", + "fieldType": "float" + }, + { + "kind": "field", + "name": "watch_burst_size", + "required": false, + "desc": "Burst size used in rate limit. Values less than 1 are treated as 1.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "distributor.ha-tracker.consul.watch-burst-size", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "etcd", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoints", + "required": false, + "desc": "The etcd endpoints to connect to.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "distributor.ha-tracker.etcd.endpoints", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "dial_timeout", + "required": false, + "desc": "The dial timeout for the etcd connection.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "distributor.ha-tracker.etcd.dial-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "The maximum number of retries to do for failed ops.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "distributor.ha-tracker.etcd.max-retries", + "fieldType": "int" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "distributor.ha-tracker.etcd.tls-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ha-tracker.etcd.tls-cert-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ha-tracker.etcd.tls-key-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ha-tracker.etcd.tls-ca-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ha-tracker.etcd.tls-server-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "distributor.ha-tracker.etcd.tls-insecure-skip-verify", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "username", + "required": false, + "desc": "Etcd username.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ha-tracker.etcd.username", + "fieldType": "string" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "Etcd password.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ha-tracker.etcd.password", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "multi", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "primary", + "required": false, + "desc": "Primary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ha-tracker.multi.primary", + "fieldType": "string" + }, + { + "kind": "field", + "name": "secondary", + "required": false, + "desc": "Secondary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ha-tracker.multi.secondary", + "fieldType": "string" + }, + { + "kind": "field", + "name": "mirror_enabled", + "required": false, + "desc": "Mirror writes to secondary store.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "distributor.ha-tracker.multi.mirror-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "mirror_timeout", + "required": false, + "desc": "Timeout for storing value to secondary store.", + "fieldValue": null, + "fieldDefaultValue": 2000000000, + "fieldFlag": "distributor.ha-tracker.multi.mirror-timeout", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "max_recv_msg_size", + "required": false, + "desc": "remote_write API max receive message size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 104857600, + "fieldFlag": "distributor.max-recv-msg-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "remote_timeout", + "required": false, + "desc": "Timeout for downstream ingesters.", + "fieldValue": null, + "fieldDefaultValue": 2000000000, + "fieldFlag": "distributor.remote-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "extra_queue_delay", + "required": false, + "desc": "Time to wait before sending more than the minimum successful query requests.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "distributor.extra-query-delay", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "sharding_strategy", + "required": false, + "desc": "The sharding strategy to use. Supported values are: default, shuffle-sharding.", + "fieldValue": null, + "fieldDefaultValue": "default", + "fieldFlag": "distributor.sharding-strategy", + "fieldType": "string" + }, + { + "kind": "field", + "name": "shard_by_all_labels", + "required": false, + "desc": "Distribute samples based on all labels, as opposed to solely by user and metric name.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "distributor.shard-by-all-labels", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "extend_writes", + "required": false, + "desc": "Try writing to an additional ingester in the presence of an ingester not in the ACTIVE state. It is useful to disable this along with -ingester.unregister-on-shutdown=false in order to not spread samples to extra ingesters during rolling restarts with consistent naming.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "distributor.extend-writes", + "fieldType": "boolean" + }, + { + "kind": "block", + "name": "ring", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "kvstore", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "store", + "required": false, + "desc": "Backend storage to use for the ring. Supported values are: consul, etcd, inmemory, memberlist, multi.", + "fieldValue": null, + "fieldDefaultValue": "consul", + "fieldFlag": "distributor.ring.store", + "fieldType": "string" + }, + { + "kind": "field", + "name": "prefix", + "required": false, + "desc": "The prefix for the keys in the store. Should end with a /.", + "fieldValue": null, + "fieldDefaultValue": "collectors/", + "fieldFlag": "distributor.ring.prefix", + "fieldType": "string" + }, + { + "kind": "block", + "name": "consul", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "host", + "required": false, + "desc": "Hostname and port of Consul.", + "fieldValue": null, + "fieldDefaultValue": "localhost:8500", + "fieldFlag": "distributor.ring.consul.hostname", + "fieldType": "string" + }, + { + "kind": "field", + "name": "acl_token", + "required": false, + "desc": "ACL Token used to interact with Consul.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ring.consul.acl-token", + "fieldType": "string" + }, + { + "kind": "field", + "name": "http_client_timeout", + "required": false, + "desc": "HTTP timeout when talking to Consul", + "fieldValue": null, + "fieldDefaultValue": 20000000000, + "fieldFlag": "distributor.ring.consul.client-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "consistent_reads", + "required": false, + "desc": "Enable consistent reads to Consul.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "distributor.ring.consul.consistent-reads", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "watch_rate_limit", + "required": false, + "desc": "Rate limit when watching key or prefix in Consul, in requests per second. 0 disables the rate limit.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "distributor.ring.consul.watch-rate-limit", + "fieldType": "float" + }, + { + "kind": "field", + "name": "watch_burst_size", + "required": false, + "desc": "Burst size used in rate limit. Values less than 1 are treated as 1.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "distributor.ring.consul.watch-burst-size", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "etcd", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoints", + "required": false, + "desc": "The etcd endpoints to connect to.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "distributor.ring.etcd.endpoints", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "dial_timeout", + "required": false, + "desc": "The dial timeout for the etcd connection.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "distributor.ring.etcd.dial-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "The maximum number of retries to do for failed ops.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "distributor.ring.etcd.max-retries", + "fieldType": "int" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "distributor.ring.etcd.tls-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ring.etcd.tls-cert-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ring.etcd.tls-key-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ring.etcd.tls-ca-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ring.etcd.tls-server-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "distributor.ring.etcd.tls-insecure-skip-verify", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "username", + "required": false, + "desc": "Etcd username.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ring.etcd.username", + "fieldType": "string" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "Etcd password.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ring.etcd.password", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "multi", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "primary", + "required": false, + "desc": "Primary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ring.multi.primary", + "fieldType": "string" + }, + { + "kind": "field", + "name": "secondary", + "required": false, + "desc": "Secondary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ring.multi.secondary", + "fieldType": "string" + }, + { + "kind": "field", + "name": "mirror_enabled", + "required": false, + "desc": "Mirror writes to secondary store.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "distributor.ring.multi.mirror-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "mirror_timeout", + "required": false, + "desc": "Timeout for storing value to secondary store.", + "fieldValue": null, + "fieldDefaultValue": 2000000000, + "fieldFlag": "distributor.ring.multi.mirror-timeout", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "heartbeat_period", + "required": false, + "desc": "Period at which to heartbeat to the ring. 0 = disabled.", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "distributor.ring.heartbeat-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "heartbeat_timeout", + "required": false, + "desc": "The heartbeat timeout after which distributors are considered unhealthy within the ring. 0 = never (timeout disabled).", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "distributor.ring.heartbeat-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "instance_interface_names", + "required": false, + "desc": "Name of network interface to read address from.", + "fieldValue": null, + "fieldDefaultValue": [ + "eth0", + "en0" + ], + "fieldFlag": "distributor.ring.instance-interface-names", + "fieldType": "list of string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "instance_limits", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "max_ingestion_rate", + "required": false, + "desc": "Max ingestion rate (samples/sec) that this distributor will accept. This limit is per-distributor, not per-tenant. Additional push requests will be rejected. Current ingestion rate is computed as exponentially weighted moving average, updated every second. 0 = unlimited.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "distributor.instance-limits.max-ingestion-rate", + "fieldType": "float" + }, + { + "kind": "field", + "name": "max_inflight_push_requests", + "required": false, + "desc": "Max inflight push requests that this distributor can handle. This limit is per-distributor, not per-tenant. Additional requests will be rejected. 0 = unlimited.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "distributor.instance-limits.max-inflight-push-requests", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "querier", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "iterators", + "required": false, + "desc": "Use iterators to execute query, as opposed to fully materialising the series in memory.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "querier.iterators", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "batch_iterators", + "required": false, + "desc": "Use batch iterators to execute query, as opposed to fully materialising the series in memory. Takes precedent over the -querier.iterators flag.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "querier.batch-iterators", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "query_ingesters_within", + "required": false, + "desc": "Maximum lookback beyond which queries are not sent to ingester. 0 means all queries are sent to ingester.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "querier.query-ingesters-within", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "query_store_for_labels_enabled", + "required": false, + "desc": "Query long-term store for series, label values and label names APIs. Works only with blocks engine.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "querier.query-store-for-labels-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "query_label_names_with_matchers_enabled", + "required": false, + "desc": "True to enable queriers to use an optimized implementation which passes down to ingesters the label matchers when running the label names API. Can be enabled once all ingesters run a version \u003e= the one where this option has been introduced.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "querier.query-label-names-with-matchers-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "query_store_after", + "required": false, + "desc": "The time after which a metric should be queried from storage and not just ingesters. 0 means all queries are sent to store. When running the blocks storage, if this option is enabled, the time range of the query sent to the store will be manipulated to ensure the query end is not more recent than 'now - query-store-after'.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "querier.query-store-after", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_query_into_future", + "required": false, + "desc": "Maximum duration into the future you can query. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 600000000000, + "fieldFlag": "querier.max-query-into-future", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "store_gateway_addresses", + "required": false, + "desc": "Comma separated list of store-gateway addresses in DNS Service Discovery format. This option should be set when using the blocks storage and the store-gateway sharding is disabled (when enabled, the store-gateway instances form a ring and addresses are picked from the ring).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "querier.store-gateway-addresses", + "fieldType": "string" + }, + { + "kind": "block", + "name": "store_gateway_client", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS for gRPC client connecting to store-gateway.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "querier.store-gateway-client.tls-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "querier.store-gateway-client.tls-cert-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "querier.store-gateway-client.tls-key-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "querier.store-gateway-client.tls-ca-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "querier.store-gateway-client.tls-server-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "querier.store-gateway-client.tls-insecure-skip-verify", + "fieldType": "boolean" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "second_store_engine", + "required": false, + "desc": "Second store engine to use for querying. Empty = disabled.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "querier.second-store-engine", + "fieldType": "string" + }, + { + "kind": "field", + "name": "use_second_store_before_time", + "required": false, + "desc": "If specified, second store is only used for queries before this timestamp. Default value 0 means secondary store is always queried.", + "fieldValue": null, + "fieldDefaultValue": {}, + "fieldFlag": "querier.use-second-store-before-time", + "fieldType": "time" + }, + { + "kind": "field", + "name": "shuffle_sharding_ingesters_lookback_period", + "required": false, + "desc": "When distributor's sharding strategy is shuffle-sharding and this setting is \u003e 0, queriers fetch in-memory series from the minimum set of required ingesters, selecting only ingesters which may have received series since 'now - lookback period'. The lookback period should be greater or equal than the configured 'query store after' and 'query ingesters within'. If this setting is 0, queriers always query all ingesters (ingesters shuffle sharding on read path is disabled).", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "querier.shuffle-sharding-ingesters-lookback-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_concurrent", + "required": false, + "desc": "The maximum number of concurrent queries. This config option should be set on query-frontend too when query sharding is enabled.", + "fieldValue": null, + "fieldDefaultValue": 20, + "fieldFlag": "querier.max-concurrent", + "fieldType": "int" + }, + { + "kind": "field", + "name": "timeout", + "required": false, + "desc": "The timeout for a query. This config option should be set on query-frontend too when query sharding is enabled.", + "fieldValue": null, + "fieldDefaultValue": 120000000000, + "fieldFlag": "querier.timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_samples", + "required": false, + "desc": "Maximum number of samples a single query can load into memory. This config option should be set on query-frontend too when query sharding is enabled.", + "fieldValue": null, + "fieldDefaultValue": 50000000, + "fieldFlag": "querier.max-samples", + "fieldType": "int" + }, + { + "kind": "field", + "name": "at_modifier_enabled", + "required": false, + "desc": "Enable the @ modifier in PromQL. This config option should be set on query-frontend too when query sharding is enabled.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "querier.at-modifier-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "default_evaluation_interval", + "required": false, + "desc": "The default evaluation interval or step size for subqueries. This config option should be set on query-frontend too when query sharding is enabled.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "querier.default-evaluation-interval", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "active_query_tracker_dir", + "required": false, + "desc": "Active query tracker monitors active queries, and writes them to the file in given directory. If any queries are discovered in this file during startup, it will log them to the log file. Setting to empty value disables active query tracker, which also disables -querier.max-concurrent option. This config option should be set on query-frontend too when query sharding is enabled.", + "fieldValue": null, + "fieldDefaultValue": "./active-query-tracker", + "fieldFlag": "querier.active-query-tracker-dir", + "fieldType": "string" + }, + { + "kind": "field", + "name": "lookback_delta", + "required": false, + "desc": "Time since the last sample after which a time series is considered stale and ignored by expression evaluations. This config option should be set on query-frontend too when query sharding is enabled.", + "fieldValue": null, + "fieldDefaultValue": 300000000000, + "fieldFlag": "querier.lookback-delta", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "ingester_client", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "grpc_client_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "max_recv_msg_size", + "required": false, + "desc": "gRPC client max receive message size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 104857600, + "fieldFlag": "ingester.client.grpc-max-recv-msg-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_send_msg_size", + "required": false, + "desc": "gRPC client max send message size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 16777216, + "fieldFlag": "ingester.client.grpc-max-send-msg-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "grpc_compression", + "required": false, + "desc": "Use compression when sending messages. Supported values are: 'gzip', 'snappy' and '' (disable compression)", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.client.grpc-compression", + "fieldType": "string" + }, + { + "kind": "field", + "name": "rate_limit", + "required": false, + "desc": "Rate limit for gRPC client; 0 means disabled.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ingester.client.grpc-client-rate-limit", + "fieldType": "float" + }, + { + "kind": "field", + "name": "rate_limit_burst", + "required": false, + "desc": "Rate limit burst for gRPC client.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ingester.client.grpc-client-rate-limit-burst", + "fieldType": "int" + }, + { + "kind": "field", + "name": "backoff_on_ratelimits", + "required": false, + "desc": "Enable backoff and retry when we hit ratelimits.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ingester.client.backoff-on-ratelimits", + "fieldType": "boolean" + }, + { + "kind": "block", + "name": "backoff_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "min_period", + "required": false, + "desc": "Minimum delay when backing off.", + "fieldValue": null, + "fieldDefaultValue": 100000000, + "fieldFlag": "ingester.client.backoff-min-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_period", + "required": false, + "desc": "Maximum delay when backing off.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "ingester.client.backoff-max-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Number of times to backoff and retry before failing.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "ingester.client.backoff-retries", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ingester.client.tls-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.client.tls-cert-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.client.tls-key-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.client.tls-ca-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.client.tls-server-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ingester.client.tls-insecure-skip-verify", + "fieldType": "boolean" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "ingester", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "walconfig", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "wal_enabled", + "required": false, + "desc": "Enable writing of ingested data into WAL.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ingester.wal-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "checkpoint_enabled", + "required": false, + "desc": "Enable checkpointing of in-memory chunks. It should always be true when using normally. Set it to false iff you are doing some small tests as there is no mechanism to delete the old WAL yet if checkpoint is disabled.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "ingester.checkpoint-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "recover_from_wal", + "required": false, + "desc": "Recover data from existing WAL irrespective of WAL enabled/disabled.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ingester.recover-from-wal", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "wal_dir", + "required": false, + "desc": "Directory to store the WAL and/or recover from WAL.", + "fieldValue": null, + "fieldDefaultValue": "wal", + "fieldFlag": "ingester.wal-dir", + "fieldType": "string" + }, + { + "kind": "field", + "name": "checkpoint_duration", + "required": false, + "desc": "Interval at which checkpoints should be created.", + "fieldValue": null, + "fieldDefaultValue": 1800000000000, + "fieldFlag": "ingester.checkpoint-duration", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "flush_on_shutdown_with_wal_enabled", + "required": false, + "desc": "When WAL is enabled, should chunks be flushed to long-term storage on shutdown. Useful eg. for migration to blocks engine.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ingester.flush-on-shutdown-with-wal-enabled", + "fieldType": "boolean" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "lifecycler", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "ring", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "kvstore", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "store", + "required": false, + "desc": "Backend storage to use for the ring. Supported values are: consul, etcd, inmemory, memberlist, multi.", + "fieldValue": null, + "fieldDefaultValue": "consul", + "fieldFlag": "ring.store", + "fieldType": "string" + }, + { + "kind": "field", + "name": "prefix", + "required": false, + "desc": "The prefix for the keys in the store. Should end with a /.", + "fieldValue": null, + "fieldDefaultValue": "collectors/", + "fieldFlag": "ring.prefix", + "fieldType": "string" + }, + { + "kind": "block", + "name": "consul", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "host", + "required": false, + "desc": "Hostname and port of Consul.", + "fieldValue": null, + "fieldDefaultValue": "localhost:8500", + "fieldFlag": "consul.hostname", + "fieldType": "string" + }, + { + "kind": "field", + "name": "acl_token", + "required": false, + "desc": "ACL Token used to interact with Consul.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "consul.acl-token", + "fieldType": "string" + }, + { + "kind": "field", + "name": "http_client_timeout", + "required": false, + "desc": "HTTP timeout when talking to Consul", + "fieldValue": null, + "fieldDefaultValue": 20000000000, + "fieldFlag": "consul.client-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "consistent_reads", + "required": false, + "desc": "Enable consistent reads to Consul.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "consul.consistent-reads", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "watch_rate_limit", + "required": false, + "desc": "Rate limit when watching key or prefix in Consul, in requests per second. 0 disables the rate limit.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "consul.watch-rate-limit", + "fieldType": "float" + }, + { + "kind": "field", + "name": "watch_burst_size", + "required": false, + "desc": "Burst size used in rate limit. Values less than 1 are treated as 1.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "consul.watch-burst-size", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "etcd", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoints", + "required": false, + "desc": "The etcd endpoints to connect to.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "etcd.endpoints", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "dial_timeout", + "required": false, + "desc": "The dial timeout for the etcd connection.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "etcd.dial-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "The maximum number of retries to do for failed ops.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "etcd.max-retries", + "fieldType": "int" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "etcd.tls-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "etcd.tls-cert-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "etcd.tls-key-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "etcd.tls-ca-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "etcd.tls-server-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "etcd.tls-insecure-skip-verify", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "username", + "required": false, + "desc": "Etcd username.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "etcd.username", + "fieldType": "string" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "Etcd password.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "etcd.password", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "multi", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "primary", + "required": false, + "desc": "Primary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "multi.primary", + "fieldType": "string" + }, + { + "kind": "field", + "name": "secondary", + "required": false, + "desc": "Secondary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "multi.secondary", + "fieldType": "string" + }, + { + "kind": "field", + "name": "mirror_enabled", + "required": false, + "desc": "Mirror writes to secondary store.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "multi.mirror-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "mirror_timeout", + "required": false, + "desc": "Timeout for storing value to secondary store.", + "fieldValue": null, + "fieldDefaultValue": 2000000000, + "fieldFlag": "multi.mirror-timeout", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "heartbeat_timeout", + "required": false, + "desc": "The heartbeat timeout after which ingesters are skipped for reads/writes. 0 = never (timeout disabled).", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "ring.heartbeat-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "replication_factor", + "required": false, + "desc": "The number of ingesters to write to and read from.", + "fieldValue": null, + "fieldDefaultValue": 3, + "fieldFlag": "distributor.replication-factor", + "fieldType": "int" + }, + { + "kind": "field", + "name": "zone_awareness_enabled", + "required": false, + "desc": "True to enable the zone-awareness and replicate ingested samples across different availability zones.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "distributor.zone-awareness-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "excluded_zones", + "required": false, + "desc": "Comma-separated list of zones to exclude from the ring. Instances in excluded zones will be filtered out from the ring.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.excluded-zones", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "num_tokens", + "required": false, + "desc": "Number of tokens for each ingester.", + "fieldValue": null, + "fieldDefaultValue": 128, + "fieldFlag": "ingester.num-tokens", + "fieldType": "int" + }, + { + "kind": "field", + "name": "heartbeat_period", + "required": false, + "desc": "Period at which to heartbeat to consul. 0 = disabled.", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "ingester.heartbeat-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "observe_period", + "required": false, + "desc": "Observe tokens after generating to resolve collisions. Useful when using gossiping ring.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ingester.observe-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "join_after", + "required": false, + "desc": "Period to wait for a claim from another member; will join automatically after this.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ingester.join-after", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "min_ready_duration", + "required": false, + "desc": "Minimum duration to wait after the internal readiness checks have passed but before succeeding the readiness endpoint. This is used to slowdown deployment controllers (eg. Kubernetes) after an instance is ready and before they proceed with a rolling update, to give the rest of the cluster instances enough time to receive ring updates.", + "fieldValue": null, + "fieldDefaultValue": 15000000000, + "fieldFlag": "ingester.min-ready-duration", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "interface_names", + "required": false, + "desc": "Name of network interface to read address from.", + "fieldValue": null, + "fieldDefaultValue": [ + "eth0", + "en0" + ], + "fieldFlag": "ingester.lifecycler.interface", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "final_sleep", + "required": false, + "desc": "Duration to sleep for before exiting, to ensure metrics are scraped.", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "ingester.final-sleep", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "tokens_file_path", + "required": false, + "desc": "File path where tokens are stored. If empty, tokens are not stored at shutdown and restored at startup.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.tokens-file-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "availability_zone", + "required": false, + "desc": "The availability zone where this instance is running.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.availability-zone", + "fieldType": "string" + }, + { + "kind": "field", + "name": "unregister_on_shutdown", + "required": false, + "desc": "Unregister from the ring upon clean shutdown. It can be useful to disable for rolling restarts with consistent naming in conjunction with -distributor.extend-writes=false.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "ingester.unregister-on-shutdown", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "readiness_check_ring_health", + "required": false, + "desc": "When enabled the readiness probe succeeds only after all instances are ACTIVE and healthy in the ring, otherwise only the instance itself is checked. This option should be disabled if in your cluster multiple instances can be rolled out simultaneously, otherwise rolling updates may be slowed down.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "ingester.readiness-check-ring-health", + "fieldType": "boolean" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "max_transfer_retries", + "required": false, + "desc": "Number of times to try and transfer chunks before falling back to flushing. Negative value or zero disables hand-over. This feature is supported only by the chunks storage.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "ingester.max-transfer-retries", + "fieldType": "int" + }, + { + "kind": "field", + "name": "flush_period", + "required": false, + "desc": "Period with which to attempt to flush chunks.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "ingester.flush-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "retain_period", + "required": false, + "desc": "Period chunks will remain in memory after flushing.", + "fieldValue": null, + "fieldDefaultValue": 300000000000, + "fieldFlag": "ingester.retain-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_chunk_idle_time", + "required": false, + "desc": "Maximum chunk idle time before flushing.", + "fieldValue": null, + "fieldDefaultValue": 300000000000, + "fieldFlag": "ingester.max-chunk-idle", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_stale_chunk_idle_time", + "required": false, + "desc": "Maximum chunk idle time for chunks terminating in stale markers before flushing. 0 disables it and a stale series is not flushed until the max-chunk-idle timeout is reached.", + "fieldValue": null, + "fieldDefaultValue": 120000000000, + "fieldFlag": "ingester.max-stale-chunk-idle", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "flush_op_timeout", + "required": false, + "desc": "Timeout for individual flush operations.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "ingester.flush-op-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_chunk_age", + "required": false, + "desc": "Maximum chunk age before flushing.", + "fieldValue": null, + "fieldDefaultValue": 43200000000000, + "fieldFlag": "ingester.max-chunk-age", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "chunk_age_jitter", + "required": false, + "desc": "Range of time to subtract from -ingester.max-chunk-age to spread out flushes", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ingester.chunk-age-jitter", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "concurrent_flushes", + "required": false, + "desc": "Number of concurrent goroutines flushing to dynamodb.", + "fieldValue": null, + "fieldDefaultValue": 50, + "fieldFlag": "ingester.concurrent-flushes", + "fieldType": "int" + }, + { + "kind": "field", + "name": "spread_flushes", + "required": false, + "desc": "If true, spread series flushes across the whole period of -ingester.max-chunk-age.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "ingester.spread-flushes", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "metadata_retain_period", + "required": false, + "desc": "Period at which metadata we have not seen will remain in memory before being deleted.", + "fieldValue": null, + "fieldDefaultValue": 600000000000, + "fieldFlag": "ingester.metadata-retain-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "rate_update_period", + "required": false, + "desc": "Period with which to update the per-user ingestion rates.", + "fieldValue": null, + "fieldDefaultValue": 15000000000, + "fieldFlag": "ingester.rate-update-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "active_series_metrics_enabled", + "required": false, + "desc": "Enable tracking of active series and export them as metrics.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "ingester.active-series-metrics-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "active_series_metrics_update_period", + "required": false, + "desc": "How often to update active series metrics.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "ingester.active-series-metrics-update-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "active_series_metrics_idle_timeout", + "required": false, + "desc": "After what time a series is considered to be inactive.", + "fieldValue": null, + "fieldDefaultValue": 600000000000, + "fieldFlag": "ingester.active-series-metrics-idle-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "active_series_custom_trackers", + "required": false, + "desc": "Additional custom trackers for active metrics. Active series matching a provided matcher (map value) will be exposed in the custom trackers metric labeled using the tracker name (map key).", + "fieldValue": null, + "fieldDefaultValue": {}, + "fieldFlag": "ingester.active-series-custom-trackers", + "fieldType": "map of tracker name (string) to matcher (string)" + }, + { + "kind": "field", + "name": "exemplars_update_period", + "required": false, + "desc": "Period with which to update per-user max exemplars.", + "fieldValue": null, + "fieldDefaultValue": 15000000000, + "fieldFlag": "ingester.exemplars-update-period", + "fieldType": "duration" + }, + { + "kind": "block", + "name": "instance_limits", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "max_ingestion_rate", + "required": false, + "desc": "Max ingestion rate (samples/sec) that ingester will accept. This limit is per-ingester, not per-tenant. Additional push requests will be rejected. Current ingestion rate is computed as exponentially weighted moving average, updated every second. This limit only works when using blocks engine. 0 = unlimited.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ingester.instance-limits.max-ingestion-rate", + "fieldType": "float" + }, + { + "kind": "field", + "name": "max_tenants", + "required": false, + "desc": "Max users that this ingester can hold. Requests from additional users will be rejected. This limit only works when using blocks engine. 0 = unlimited.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ingester.instance-limits.max-tenants", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_series", + "required": false, + "desc": "Max series that this ingester can hold (across all tenants). Requests to create additional series will be rejected. This limit only works when using blocks engine. 0 = unlimited.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ingester.instance-limits.max-series", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_inflight_push_requests", + "required": false, + "desc": "Max inflight push requests that this ingester can handle (across all tenants). Additional requests will be rejected. 0 = unlimited.", + "fieldValue": null, + "fieldDefaultValue": 30000, + "fieldFlag": "ingester.instance-limits.max-inflight-push-requests", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "ignore_series_limit_for_metric_names", + "required": false, + "desc": "Comma-separated list of metric names, for which -ingester.max-series-per-metric and -ingester.max-global-series-per-metric limits will be ignored. Does not affect max-series-per-user or max-global-series-per-metric limits.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.ignore-series-limit-for-metric-names", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "flusher", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "wal_dir", + "required": false, + "desc": "Directory to read WAL from (chunks storage engine only).", + "fieldValue": null, + "fieldDefaultValue": "wal", + "fieldFlag": "flusher.wal-dir", + "fieldType": "string" + }, + { + "kind": "field", + "name": "concurrent_flushes", + "required": false, + "desc": "Number of concurrent goroutines flushing to storage (chunks storage engine only).", + "fieldValue": null, + "fieldDefaultValue": 50, + "fieldFlag": "flusher.concurrent-flushes", + "fieldType": "int" + }, + { + "kind": "field", + "name": "flush_op_timeout", + "required": false, + "desc": "Timeout for individual flush operations (chunks storage engine only).", + "fieldValue": null, + "fieldDefaultValue": 120000000000, + "fieldFlag": "flusher.flush-op-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "exit_after_flush", + "required": false, + "desc": "Stop after flush has finished. If false, process will keep running, doing nothing.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "flusher.exit-after-flush", + "fieldType": "boolean" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "storage", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "engine", + "required": false, + "desc": "The storage engine to use: chunks (deprecated) or blocks.", + "fieldValue": null, + "fieldDefaultValue": "chunks", + "fieldFlag": "store.engine", + "fieldType": "string" + }, + { + "kind": "block", + "name": "aws", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "dynamodb", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "dynamodb_url", + "required": false, + "desc": "DynamoDB endpoint URL with escaped Key and Secret encoded. If only region is specified as a host, proper endpoint will be deduced. Use inmemory:///\u003ctable-name\u003e to use a mock in-memory implementation.", + "fieldValue": null, + "fieldDefaultValue": {}, + "fieldFlag": "dynamodb.url", + "fieldType": "url" + }, + { + "kind": "field", + "name": "api_limit", + "required": false, + "desc": "DynamoDB table management requests per second limit.", + "fieldValue": null, + "fieldDefaultValue": 2, + "fieldFlag": "dynamodb.api-limit", + "fieldType": "float" + }, + { + "kind": "field", + "name": "throttle_limit", + "required": false, + "desc": "DynamoDB rate cap to back off when throttled.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "dynamodb.throttle-limit", + "fieldType": "float" + }, + { + "kind": "block", + "name": "metrics", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "url", + "required": false, + "desc": "Use metrics-based autoscaling, via this query URL", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "metrics.url", + "fieldType": "string" + }, + { + "kind": "field", + "name": "target_queue_length", + "required": false, + "desc": "Queue length above which we will scale up capacity", + "fieldValue": null, + "fieldDefaultValue": 100000, + "fieldFlag": "metrics.target-queue-length", + "fieldType": "int" + }, + { + "kind": "field", + "name": "scale_up_factor", + "required": false, + "desc": "Scale up capacity by this multiple", + "fieldValue": null, + "fieldDefaultValue": 1.3, + "fieldFlag": "metrics.scale-up-factor", + "fieldType": "float" + }, + { + "kind": "field", + "name": "ignore_throttle_below", + "required": false, + "desc": "Ignore throttling below this level (rate per second)", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "metrics.ignore-throttle-below", + "fieldType": "float" + }, + { + "kind": "field", + "name": "queue_length_query", + "required": false, + "desc": "query to fetch ingester queue length", + "fieldValue": null, + "fieldDefaultValue": "sum(avg_over_time(cortex_ingester_flush_queue_length{job=\"cortex/ingester\"}[2m]))", + "fieldFlag": "metrics.queue-length-query", + "fieldType": "string" + }, + { + "kind": "field", + "name": "write_throttle_query", + "required": false, + "desc": "query to fetch throttle rates per table", + "fieldValue": null, + "fieldDefaultValue": "sum(rate(cortex_dynamo_throttled_total{operation=\"DynamoDB.BatchWriteItem\"}[1m])) by (table) \u003e 0", + "fieldFlag": "metrics.write-throttle-query", + "fieldType": "string" + }, + { + "kind": "field", + "name": "write_usage_query", + "required": false, + "desc": "query to fetch write capacity usage per table", + "fieldValue": null, + "fieldDefaultValue": "sum(rate(cortex_dynamo_consumed_capacity_total{operation=\"DynamoDB.BatchWriteItem\"}[15m])) by (table) \u003e 0", + "fieldFlag": "metrics.usage-query", + "fieldType": "string" + }, + { + "kind": "field", + "name": "read_usage_query", + "required": false, + "desc": "query to fetch read capacity usage per table", + "fieldValue": null, + "fieldDefaultValue": "sum(rate(cortex_dynamo_consumed_capacity_total{operation=\"DynamoDB.QueryPages\"}[1h])) by (table) \u003e 0", + "fieldFlag": "metrics.read-usage-query", + "fieldType": "string" + }, + { + "kind": "field", + "name": "read_error_query", + "required": false, + "desc": "query to fetch read errors per table", + "fieldValue": null, + "fieldDefaultValue": "sum(increase(cortex_dynamo_failures_total{operation=\"DynamoDB.QueryPages\",error=\"ProvisionedThroughputExceededException\"}[1m])) by (table) \u003e 0", + "fieldFlag": "metrics.read-error-query", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "chunk_gang_size", + "required": false, + "desc": "Number of chunks to group together to parallelize fetches (zero to disable)", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "dynamodb.chunk-gang-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "chunk_get_max_parallelism", + "required": false, + "desc": "Max number of chunk-get operations to start in parallel", + "fieldValue": null, + "fieldDefaultValue": 32, + "fieldFlag": "dynamodb.chunk.get-max-parallelism", + "fieldType": "int" + }, + { + "kind": "block", + "name": "backoff_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "min_period", + "required": false, + "desc": "Minimum backoff time", + "fieldValue": null, + "fieldDefaultValue": 100000000, + "fieldFlag": "dynamodb.min-backoff", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_period", + "required": false, + "desc": "Maximum backoff time", + "fieldValue": null, + "fieldDefaultValue": 50000000000, + "fieldFlag": "dynamodb.max-backoff", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Maximum number of times to retry an operation", + "fieldValue": null, + "fieldDefaultValue": 20, + "fieldFlag": "dynamodb.max-retries", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "s3", + "required": false, + "desc": "S3 endpoint URL with escaped Key and Secret encoded. If only region is specified as a host, proper endpoint will be deduced. Use inmemory:///\u003cbucket-name\u003e to use a mock in-memory implementation.", + "fieldValue": null, + "fieldDefaultValue": {}, + "fieldFlag": "s3.url", + "fieldType": "url" + }, + { + "kind": "field", + "name": "s3forcepathstyle", + "required": false, + "desc": "Set this to `true` to force the request to use path-style addressing.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "s3.force-path-style", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "bucketnames", + "required": false, + "desc": "Comma separated list of bucket names to evenly distribute chunks over. Overrides any buckets specified in s3.url flag", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "s3.buckets", + "fieldType": "string" + }, + { + "kind": "field", + "name": "endpoint", + "required": false, + "desc": "S3 Endpoint to connect to.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "s3.endpoint", + "fieldType": "string" + }, + { + "kind": "field", + "name": "region", + "required": false, + "desc": "AWS region to use.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "s3.region", + "fieldType": "string" + }, + { + "kind": "field", + "name": "access_key_id", + "required": false, + "desc": "AWS Access Key ID", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "s3.access-key-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "secret_access_key", + "required": false, + "desc": "AWS Secret Access Key", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "s3.secret-access-key", + "fieldType": "string" + }, + { + "kind": "field", + "name": "insecure", + "required": false, + "desc": "Disable https on s3 connection.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "s3.insecure", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "sse_encryption", + "required": false, + "desc": "Enable AWS Server Side Encryption [Deprecated: Use .sse instead. if s3.sse-encryption is enabled, it assumes .sse.type SSE-S3]", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "s3.sse-encryption", + "fieldType": "boolean" + }, + { + "kind": "block", + "name": "http_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "idle_conn_timeout", + "required": false, + "desc": "The maximum amount of time an idle connection will be held open.", + "fieldValue": null, + "fieldDefaultValue": 90000000000, + "fieldFlag": "s3.http.idle-conn-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "response_header_timeout", + "required": false, + "desc": "If non-zero, specifies the amount of time to wait for a server's response headers after fully writing the request.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "s3.http.response-header-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "insecure_skip_verify", + "required": false, + "desc": "Set to false to skip verifying the certificate chain and hostname.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "s3.http.insecure-skip-verify", + "fieldType": "boolean" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "signature_version", + "required": false, + "desc": "The signature version to use for authenticating against S3. Supported values are: v4, v2.", + "fieldValue": null, + "fieldDefaultValue": "v4", + "fieldFlag": "s3.signature-version", + "fieldType": "string" + }, + { + "kind": "block", + "name": "sse", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "type", + "required": false, + "desc": "Enable AWS Server Side Encryption. Supported values: SSE-KMS, SSE-S3.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "s3.sse.type", + "fieldType": "string" + }, + { + "kind": "field", + "name": "kms_key_id", + "required": false, + "desc": "KMS Key ID used to encrypt objects in S3", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "s3.sse.kms-key-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "kms_encryption_context", + "required": false, + "desc": "KMS Encryption Context used for object encryption. It expects JSON formatted string.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "s3.sse.kms-encryption-context", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "azure", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "environment", + "required": false, + "desc": "Azure Cloud environment. Supported values are: AzureGlobal, AzureChinaCloud, AzureGermanCloud, AzureUSGovernment.", + "fieldValue": null, + "fieldDefaultValue": "AzureGlobal", + "fieldFlag": "azure.environment", + "fieldType": "string" + }, + { + "kind": "field", + "name": "container_name", + "required": false, + "desc": "Name of the blob container used to store chunks. This container must be created prior to execution.", + "fieldValue": null, + "fieldDefaultValue": "cortex", + "fieldFlag": "azure.container-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "account_name", + "required": false, + "desc": "The Microsoft Azure account name to be used", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "azure.account-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "account_key", + "required": false, + "desc": "The Microsoft Azure account key to use.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "azure.account-key", + "fieldType": "string" + }, + { + "kind": "field", + "name": "download_buffer_size", + "required": false, + "desc": "Preallocated buffer size for downloads.", + "fieldValue": null, + "fieldDefaultValue": 512000, + "fieldFlag": "azure.download-buffer-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "upload_buffer_size", + "required": false, + "desc": "Preallocated buffer size for uploads.", + "fieldValue": null, + "fieldDefaultValue": 256000, + "fieldFlag": "azure.upload-buffer-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "upload_buffer_count", + "required": false, + "desc": "Number of buffers used to used to upload a chunk.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "azure.download-buffer-count", + "fieldType": "int" + }, + { + "kind": "field", + "name": "request_timeout", + "required": false, + "desc": "Timeout for requests made against azure blob storage.", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "azure.request-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Number of retries for a request which times out.", + "fieldValue": null, + "fieldDefaultValue": 5, + "fieldFlag": "azure.max-retries", + "fieldType": "int" + }, + { + "kind": "field", + "name": "min_retry_delay", + "required": false, + "desc": "Minimum time to wait before retrying a request.", + "fieldValue": null, + "fieldDefaultValue": 10000000, + "fieldFlag": "azure.min-retry-delay", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_retry_delay", + "required": false, + "desc": "Maximum time to wait before retrying a request.", + "fieldValue": null, + "fieldDefaultValue": 500000000, + "fieldFlag": "azure.max-retry-delay", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "bigtable", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "project", + "required": false, + "desc": "Bigtable project ID.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "bigtable.project", + "fieldType": "string" + }, + { + "kind": "field", + "name": "instance", + "required": false, + "desc": "Bigtable instance ID. Please refer to https://cloud.google.com/docs/authentication/production for more information about how to configure authentication.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "bigtable.instance", + "fieldType": "string" + }, + { + "kind": "block", + "name": "grpc_client_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "max_recv_msg_size", + "required": false, + "desc": "gRPC client max receive message size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 104857600, + "fieldFlag": "bigtable.grpc-max-recv-msg-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_send_msg_size", + "required": false, + "desc": "gRPC client max send message size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 16777216, + "fieldFlag": "bigtable.grpc-max-send-msg-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "grpc_compression", + "required": false, + "desc": "Use compression when sending messages. Supported values are: 'gzip', 'snappy' and '' (disable compression)", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "bigtable.grpc-compression", + "fieldType": "string" + }, + { + "kind": "field", + "name": "rate_limit", + "required": false, + "desc": "Rate limit for gRPC client; 0 means disabled.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "bigtable.grpc-client-rate-limit", + "fieldType": "float" + }, + { + "kind": "field", + "name": "rate_limit_burst", + "required": false, + "desc": "Rate limit burst for gRPC client.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "bigtable.grpc-client-rate-limit-burst", + "fieldType": "int" + }, + { + "kind": "field", + "name": "backoff_on_ratelimits", + "required": false, + "desc": "Enable backoff and retry when we hit ratelimits.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "bigtable.backoff-on-ratelimits", + "fieldType": "boolean" + }, + { + "kind": "block", + "name": "backoff_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "min_period", + "required": false, + "desc": "Minimum delay when backing off.", + "fieldValue": null, + "fieldDefaultValue": 100000000, + "fieldFlag": "bigtable.backoff-min-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_period", + "required": false, + "desc": "Maximum delay when backing off.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "bigtable.backoff-max-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Number of times to backoff and retry before failing.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "bigtable.backoff-retries", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "bigtable.tls-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "bigtable.tls-cert-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "bigtable.tls-key-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "bigtable.tls-ca-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "bigtable.tls-server-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "bigtable.tls-insecure-skip-verify", + "fieldType": "boolean" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "table_cache_enabled", + "required": false, + "desc": "If enabled, once a tables info is fetched, it is cached.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "bigtable.table-cache.enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "table_cache_expiration", + "required": false, + "desc": "Duration to cache tables before checking again.", + "fieldValue": null, + "fieldDefaultValue": 1800000000000, + "fieldFlag": "bigtable.table-cache.expiration", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "gcs", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "bucket_name", + "required": false, + "desc": "Name of GCS bucket. Please refer to https://cloud.google.com/docs/authentication/production for more information about how to configure authentication.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gcs.bucketname", + "fieldType": "string" + }, + { + "kind": "field", + "name": "chunk_buffer_size", + "required": false, + "desc": "The size of the buffer that GCS client for each PUT request. 0 to disable buffering.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "gcs.chunk-buffer-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "request_timeout", + "required": false, + "desc": "The duration after which the requests to GCS should be timed out.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "gcs.request-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "enable_opencensus", + "required": false, + "desc": "Enabled OpenCensus (OC) instrumentation for all requests.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "gcs.enable-opencensus", + "fieldType": "boolean" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "cassandra", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "addresses", + "required": false, + "desc": "Comma-separated hostnames or IPs of Cassandra instances.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "cassandra.addresses", + "fieldType": "string" + }, + { + "kind": "field", + "name": "port", + "required": false, + "desc": "Port that Cassandra is running on", + "fieldValue": null, + "fieldDefaultValue": 9042, + "fieldFlag": "cassandra.port", + "fieldType": "int" + }, + { + "kind": "field", + "name": "keyspace", + "required": false, + "desc": "Keyspace to use in Cassandra.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "cassandra.keyspace", + "fieldType": "string" + }, + { + "kind": "field", + "name": "consistency", + "required": false, + "desc": "Consistency level for Cassandra.", + "fieldValue": null, + "fieldDefaultValue": "QUORUM", + "fieldFlag": "cassandra.consistency", + "fieldType": "string" + }, + { + "kind": "field", + "name": "replication_factor", + "required": false, + "desc": "Replication factor to use in Cassandra.", + "fieldValue": null, + "fieldDefaultValue": 3, + "fieldFlag": "cassandra.replication-factor", + "fieldType": "int" + }, + { + "kind": "field", + "name": "disable_initial_host_lookup", + "required": false, + "desc": "Instruct the cassandra driver to not attempt to get host info from the system.peers table.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "cassandra.disable-initial-host-lookup", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "SSL", + "required": false, + "desc": "Use SSL when connecting to cassandra instances.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "cassandra.ssl", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "host_verification", + "required": false, + "desc": "Require SSL certificate validation.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "cassandra.host-verification", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "host_selection_policy", + "required": false, + "desc": "Policy for selecting Cassandra host. Supported values are: round-robin, token-aware.", + "fieldValue": null, + "fieldDefaultValue": "round-robin", + "fieldFlag": "cassandra.host-selection-policy", + "fieldType": "string" + }, + { + "kind": "field", + "name": "CA_path", + "required": false, + "desc": "Path to certificate file to verify the peer.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "cassandra.ca-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to certificate file used by TLS.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "cassandra.tls-cert-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to private key file used by TLS.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "cassandra.tls-key-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "auth", + "required": false, + "desc": "Enable password authentication when connecting to cassandra.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "cassandra.auth", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "username", + "required": false, + "desc": "Username to use when connecting to cassandra.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "cassandra.username", + "fieldType": "string" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "Password to use when connecting to cassandra.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "cassandra.password", + "fieldType": "string" + }, + { + "kind": "field", + "name": "password_file", + "required": false, + "desc": "File containing password to use when connecting to cassandra.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "cassandra.password-file", + "fieldType": "string" + }, + { + "kind": "field", + "name": "custom_authenticators", + "required": false, + "desc": "If set, when authenticating with cassandra a custom authenticator will be expected during the handshake. This flag can be set multiple times.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "cassandra.custom-authenticator", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "timeout", + "required": false, + "desc": "Timeout when connecting to cassandra.", + "fieldValue": null, + "fieldDefaultValue": 2000000000, + "fieldFlag": "cassandra.timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "connect_timeout", + "required": false, + "desc": "Initial connection timeout, used during initial dial to server.", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "cassandra.connect-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "reconnect_interval", + "required": false, + "desc": "Interval to retry connecting to cassandra nodes marked as DOWN.", + "fieldValue": null, + "fieldDefaultValue": 1000000000, + "fieldFlag": "cassandra.reconnent-interval", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Number of retries to perform on a request. Set to 0 to disable retries.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "cassandra.max-retries", + "fieldType": "int" + }, + { + "kind": "field", + "name": "retry_max_backoff", + "required": false, + "desc": "Maximum time to wait before retrying a failed request.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "cassandra.retry-max-backoff", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "retry_min_backoff", + "required": false, + "desc": "Minimum time to wait before retrying a failed request.", + "fieldValue": null, + "fieldDefaultValue": 100000000, + "fieldFlag": "cassandra.retry-min-backoff", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "query_concurrency", + "required": false, + "desc": "Limit number of concurrent queries to Cassandra. Set to 0 to disable the limit.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "cassandra.query-concurrency", + "fieldType": "int" + }, + { + "kind": "field", + "name": "num_connections", + "required": false, + "desc": "Number of TCP connections per host.", + "fieldValue": null, + "fieldDefaultValue": 2, + "fieldFlag": "cassandra.num-connections", + "fieldType": "int" + }, + { + "kind": "field", + "name": "convict_hosts_on_failure", + "required": false, + "desc": "Convict hosts of being down on failure.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "cassandra.convict-hosts-on-failure", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "table_options", + "required": false, + "desc": "Table options used to create index or chunk tables. This value is used as plain text in the table `WITH` like this, \"CREATE TABLE \u003cgenerated_by_cortex\u003e (...) WITH \u003ccassandra.table-options\u003e\". For details, see https://cortexmetrics.io/docs/production/cassandra. By default it will use the default table options of your Cassandra cluster.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "cassandra.table-options", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "boltdb", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "directory", + "required": false, + "desc": "Location of BoltDB index files.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "boltdb.dir", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "filesystem", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "directory", + "required": false, + "desc": "Directory to store chunks in.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "local.chunk-directory", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "swift", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "auth_version", + "required": false, + "desc": "OpenStack Swift authentication API version. 0 to autodetect.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "swift.auth-version", + "fieldType": "int" + }, + { + "kind": "field", + "name": "auth_url", + "required": false, + "desc": "OpenStack Swift authentication URL", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "swift.auth-url", + "fieldType": "string" + }, + { + "kind": "field", + "name": "username", + "required": false, + "desc": "OpenStack Swift username.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "swift.username", + "fieldType": "string" + }, + { + "kind": "field", + "name": "user_domain_name", + "required": false, + "desc": "OpenStack Swift user's domain name.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "swift.user-domain-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "user_domain_id", + "required": false, + "desc": "OpenStack Swift user's domain ID.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "swift.user-domain-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "user_id", + "required": false, + "desc": "OpenStack Swift user ID.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "swift.user-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "OpenStack Swift API key.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "swift.password", + "fieldType": "string" + }, + { + "kind": "field", + "name": "domain_id", + "required": false, + "desc": "OpenStack Swift user's domain ID.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "swift.domain-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "domain_name", + "required": false, + "desc": "OpenStack Swift user's domain name.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "swift.domain-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_id", + "required": false, + "desc": "OpenStack Swift project ID (v2,v3 auth only).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "swift.project-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_name", + "required": false, + "desc": "OpenStack Swift project name (v2,v3 auth only).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "swift.project-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_domain_id", + "required": false, + "desc": "ID of the OpenStack Swift project's domain (v3 auth only), only needed if it differs the from user domain.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "swift.project-domain-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_domain_name", + "required": false, + "desc": "Name of the OpenStack Swift project's domain (v3 auth only), only needed if it differs from the user domain.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "swift.project-domain-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "region_name", + "required": false, + "desc": "OpenStack Swift Region to use (v2,v3 auth only).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "swift.region-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "container_name", + "required": false, + "desc": "Name of the OpenStack Swift container to put chunks in.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "swift.container-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Max retries on requests error.", + "fieldValue": null, + "fieldDefaultValue": 3, + "fieldFlag": "swift.max-retries", + "fieldType": "int" + }, + { + "kind": "field", + "name": "connect_timeout", + "required": false, + "desc": "Time after which a connection attempt is aborted.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "swift.connect-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "request_timeout", + "required": false, + "desc": "Time after which an idle request is aborted. The timeout watchdog is reset each time some data is received, so the timeout triggers after X time no data is received on a request.", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "swift.request-timeout", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "index_cache_validity", + "required": false, + "desc": "Cache validity for active index entries. Should be no higher than -ingester.max-chunk-idle.", + "fieldValue": null, + "fieldDefaultValue": 300000000000, + "fieldFlag": "store.index-cache-validity", + "fieldType": "duration" + }, + { + "kind": "block", + "name": "index_queries_cache_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "enable_fifocache", + "required": false, + "desc": "Cache config for index entry reading. Enable in-memory cache.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "store.index-cache-read.cache.enable-fifocache", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "default_validity", + "required": false, + "desc": "Cache config for index entry reading. The default validity of entries for caches unless overridden.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store.index-cache-read.default-validity", + "fieldType": "duration" + }, + { + "kind": "block", + "name": "background", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "writeback_goroutines", + "required": false, + "desc": "Cache config for index entry reading. At what concurrency to write back to cache.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "store.index-cache-read.background.write-back-concurrency", + "fieldType": "int" + }, + { + "kind": "field", + "name": "writeback_buffer", + "required": false, + "desc": "Cache config for index entry reading. How many key batches to buffer for background write-back.", + "fieldValue": null, + "fieldDefaultValue": 10000, + "fieldFlag": "store.index-cache-read.background.write-back-buffer", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "memcached", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "expiration", + "required": false, + "desc": "Cache config for index entry reading. How long keys stay in the memcache.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store.index-cache-read.memcached.expiration", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "batch_size", + "required": false, + "desc": "Cache config for index entry reading. How many keys to fetch in each batch.", + "fieldValue": null, + "fieldDefaultValue": 1024, + "fieldFlag": "store.index-cache-read.memcached.batchsize", + "fieldType": "int" + }, + { + "kind": "field", + "name": "parallelism", + "required": false, + "desc": "Cache config for index entry reading. Maximum active requests to memcache.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "store.index-cache-read.memcached.parallelism", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "memcached_client", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "host", + "required": false, + "desc": "Cache config for index entry reading. Hostname for memcached service to use. If empty and if addresses is unset, no memcached will be used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store.index-cache-read.memcached.hostname", + "fieldType": "string" + }, + { + "kind": "field", + "name": "service", + "required": false, + "desc": "Cache config for index entry reading. SRV service used to discover memcache servers.", + "fieldValue": null, + "fieldDefaultValue": "memcached", + "fieldFlag": "store.index-cache-read.memcached.service", + "fieldType": "string" + }, + { + "kind": "field", + "name": "addresses", + "required": false, + "desc": "Cache config for index entry reading. EXPERIMENTAL: Comma separated addresses list in DNS Service Discovery format: https://cortexmetrics.io/docs/configuration/arguments/#dns-service-discovery", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store.index-cache-read.memcached.addresses", + "fieldType": "string" + }, + { + "kind": "field", + "name": "timeout", + "required": false, + "desc": "Cache config for index entry reading. Maximum time to wait before giving up on memcached requests.", + "fieldValue": null, + "fieldDefaultValue": 100000000, + "fieldFlag": "store.index-cache-read.memcached.timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_idle_conns", + "required": false, + "desc": "Cache config for index entry reading. Maximum number of idle connections in pool.", + "fieldValue": null, + "fieldDefaultValue": 16, + "fieldFlag": "store.index-cache-read.memcached.max-idle-conns", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_item_size", + "required": false, + "desc": "Cache config for index entry reading. The maximum size of an item stored in memcached. Bigger items are not stored. If set to 0, no maximum size is enforced.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store.index-cache-read.memcached.max-item-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "update_interval", + "required": false, + "desc": "Cache config for index entry reading. Period with which to poll DNS for memcache servers.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "store.index-cache-read.memcached.update-interval", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "consistent_hash", + "required": false, + "desc": "Cache config for index entry reading. Use consistent hashing to distribute to memcache servers.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "store.index-cache-read.memcached.consistent-hash", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "circuit_breaker_consecutive_failures", + "required": false, + "desc": "Cache config for index entry reading. Trip circuit-breaker after this number of consecutive dial failures (if zero then circuit-breaker is disabled).", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "store.index-cache-read.memcached.circuit-breaker-consecutive-failures", + "fieldType": "int" + }, + { + "kind": "field", + "name": "circuit_breaker_timeout", + "required": false, + "desc": "Cache config for index entry reading. Duration circuit-breaker remains open after tripping (if zero then 60 seconds is used).", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "store.index-cache-read.memcached.circuit-breaker-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "circuit_breaker_interval", + "required": false, + "desc": "Cache config for index entry reading. Reset circuit-breaker counts after this long (if zero then never reset).", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "store.index-cache-read.memcached.circuit-breaker-interval", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "redis", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoint", + "required": false, + "desc": "Cache config for index entry reading. Redis Server endpoint to use for caching. A comma-separated list of endpoints for Redis Cluster or Redis Sentinel. If empty, no redis will be used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store.index-cache-read.redis.endpoint", + "fieldType": "string" + }, + { + "kind": "field", + "name": "master_name", + "required": false, + "desc": "Cache config for index entry reading. Redis Sentinel master name. An empty string for Redis Server or Redis Cluster.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store.index-cache-read.redis.master-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "timeout", + "required": false, + "desc": "Cache config for index entry reading. Maximum time to wait before giving up on redis requests.", + "fieldValue": null, + "fieldDefaultValue": 500000000, + "fieldFlag": "store.index-cache-read.redis.timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "expiration", + "required": false, + "desc": "Cache config for index entry reading. How long keys stay in the redis.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store.index-cache-read.redis.expiration", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "db", + "required": false, + "desc": "Cache config for index entry reading. Database index.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store.index-cache-read.redis.db", + "fieldType": "int" + }, + { + "kind": "field", + "name": "pool_size", + "required": false, + "desc": "Cache config for index entry reading. Maximum number of connections in the pool.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store.index-cache-read.redis.pool-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "Cache config for index entry reading. Password to use when connecting to redis.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store.index-cache-read.redis.password", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Cache config for index entry reading. Enable connecting to redis with TLS.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "store.index-cache-read.redis.tls-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Cache config for index entry reading. Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "store.index-cache-read.redis.tls-insecure-skip-verify", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "idle_timeout", + "required": false, + "desc": "Cache config for index entry reading. Close connections after remaining idle for this duration. If the value is zero, then idle connections are not closed.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store.index-cache-read.redis.idle-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_connection_age", + "required": false, + "desc": "Cache config for index entry reading. Close connections older than this duration. If the value is zero, then the pool does not close connections based on age.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store.index-cache-read.redis.max-connection-age", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "fifocache", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "max_size_bytes", + "required": false, + "desc": "Cache config for index entry reading. Maximum memory size of the cache in bytes. A unit suffix (KB, MB, GB) may be applied.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store.index-cache-read.fifocache.max-size-bytes", + "fieldType": "string" + }, + { + "kind": "field", + "name": "max_size_items", + "required": false, + "desc": "Cache config for index entry reading. Maximum number of entries in the cache.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store.index-cache-read.fifocache.max-size-items", + "fieldType": "int" + }, + { + "kind": "field", + "name": "validity", + "required": false, + "desc": "Cache config for index entry reading. The expiry duration for the cache.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store.index-cache-read.fifocache.duration", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "size", + "required": false, + "desc": "Deprecated (use max-size-items or max-size-bytes instead): Cache config for index entry reading. The number of entries to cache. ", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store.index-cache-read.fifocache.size", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "delete_store", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "store", + "required": false, + "desc": "Store for keeping delete request", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "deletes.store", + "fieldType": "string" + }, + { + "kind": "field", + "name": "requests_table_name", + "required": false, + "desc": "Name of the table which stores delete requests", + "fieldValue": null, + "fieldDefaultValue": "delete_requests", + "fieldFlag": "deletes.requests-table-name", + "fieldType": "string" + }, + { + "kind": "block", + "name": "table_provisioning", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "enable_ondemand_throughput_mode", + "required": false, + "desc": "Enables on demand throughput provisioning for the storage provider (if supported). Applies only to tables which are not autoscaled. Supported by DynamoDB", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "deletes.table.enable-ondemand-throughput-mode", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "provisioned_write_throughput", + "required": false, + "desc": "Table default write throughput. Supported by DynamoDB", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "deletes.table.write-throughput", + "fieldType": "int" + }, + { + "kind": "field", + "name": "provisioned_read_throughput", + "required": false, + "desc": "Table default read throughput. Supported by DynamoDB", + "fieldValue": null, + "fieldDefaultValue": 300, + "fieldFlag": "deletes.table.read-throughput", + "fieldType": "int" + }, + { + "kind": "block", + "name": "write_scale", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "enabled", + "required": false, + "desc": "Should we enable autoscale for the table.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "deletes.table.write-throughput.scale.enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "role_arn", + "required": false, + "desc": "AWS AutoScaling role ARN", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "deletes.table.write-throughput.scale.role-arn", + "fieldType": "string" + }, + { + "kind": "field", + "name": "min_capacity", + "required": false, + "desc": "DynamoDB minimum provision capacity.", + "fieldValue": null, + "fieldDefaultValue": 3000, + "fieldFlag": "deletes.table.write-throughput.scale.min-capacity", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_capacity", + "required": false, + "desc": "DynamoDB maximum provision capacity.", + "fieldValue": null, + "fieldDefaultValue": 6000, + "fieldFlag": "deletes.table.write-throughput.scale.max-capacity", + "fieldType": "int" + }, + { + "kind": "field", + "name": "out_cooldown", + "required": false, + "desc": "DynamoDB minimum seconds between each autoscale up.", + "fieldValue": null, + "fieldDefaultValue": 1800, + "fieldFlag": "deletes.table.write-throughput.scale.out-cooldown", + "fieldType": "int" + }, + { + "kind": "field", + "name": "in_cooldown", + "required": false, + "desc": "DynamoDB minimum seconds between each autoscale down.", + "fieldValue": null, + "fieldDefaultValue": 1800, + "fieldFlag": "deletes.table.write-throughput.scale.in-cooldown", + "fieldType": "int" + }, + { + "kind": "field", + "name": "target", + "required": false, + "desc": "DynamoDB target ratio of consumed capacity to provisioned capacity.", + "fieldValue": null, + "fieldDefaultValue": 80, + "fieldFlag": "deletes.table.write-throughput.scale.target-value", + "fieldType": "float" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "read_scale", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "enabled", + "required": false, + "desc": "Should we enable autoscale for the table.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "deletes.table.read-throughput.scale.enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "role_arn", + "required": false, + "desc": "AWS AutoScaling role ARN", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "deletes.table.read-throughput.scale.role-arn", + "fieldType": "string" + }, + { + "kind": "field", + "name": "min_capacity", + "required": false, + "desc": "DynamoDB minimum provision capacity.", + "fieldValue": null, + "fieldDefaultValue": 3000, + "fieldFlag": "deletes.table.read-throughput.scale.min-capacity", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_capacity", + "required": false, + "desc": "DynamoDB maximum provision capacity.", + "fieldValue": null, + "fieldDefaultValue": 6000, + "fieldFlag": "deletes.table.read-throughput.scale.max-capacity", + "fieldType": "int" + }, + { + "kind": "field", + "name": "out_cooldown", + "required": false, + "desc": "DynamoDB minimum seconds between each autoscale up.", + "fieldValue": null, + "fieldDefaultValue": 1800, + "fieldFlag": "deletes.table.read-throughput.scale.out-cooldown", + "fieldType": "int" + }, + { + "kind": "field", + "name": "in_cooldown", + "required": false, + "desc": "DynamoDB minimum seconds between each autoscale down.", + "fieldValue": null, + "fieldDefaultValue": 1800, + "fieldFlag": "deletes.table.read-throughput.scale.in-cooldown", + "fieldType": "int" + }, + { + "kind": "field", + "name": "target", + "required": false, + "desc": "DynamoDB target ratio of consumed capacity to provisioned capacity.", + "fieldValue": null, + "fieldDefaultValue": 80, + "fieldFlag": "deletes.table.read-throughput.scale.target-value", + "fieldType": "float" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "tags", + "required": false, + "desc": "Tag (of the form key=value) to be added to the tables. Supported by DynamoDB", + "fieldValue": null, + "fieldDefaultValue": {}, + "fieldFlag": "deletes.table.tags", + "fieldType": "map of string to string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "grpc_store", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "server_address", + "required": false, + "desc": "Hostname or IP of the gRPC store instance.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "grpc-store.server-address", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "chunk_store", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "chunk_cache_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "enable_fifocache", + "required": false, + "desc": "Cache config for chunks. Enable in-memory cache.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "store.chunks-cache.cache.enable-fifocache", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "default_validity", + "required": false, + "desc": "Cache config for chunks. The default validity of entries for caches unless overridden.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store.chunks-cache.default-validity", + "fieldType": "duration" + }, + { + "kind": "block", + "name": "background", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "writeback_goroutines", + "required": false, + "desc": "Cache config for chunks. At what concurrency to write back to cache.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "store.chunks-cache.background.write-back-concurrency", + "fieldType": "int" + }, + { + "kind": "field", + "name": "writeback_buffer", + "required": false, + "desc": "Cache config for chunks. How many key batches to buffer for background write-back.", + "fieldValue": null, + "fieldDefaultValue": 10000, + "fieldFlag": "store.chunks-cache.background.write-back-buffer", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "memcached", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "expiration", + "required": false, + "desc": "Cache config for chunks. How long keys stay in the memcache.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store.chunks-cache.memcached.expiration", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "batch_size", + "required": false, + "desc": "Cache config for chunks. How many keys to fetch in each batch.", + "fieldValue": null, + "fieldDefaultValue": 1024, + "fieldFlag": "store.chunks-cache.memcached.batchsize", + "fieldType": "int" + }, + { + "kind": "field", + "name": "parallelism", + "required": false, + "desc": "Cache config for chunks. Maximum active requests to memcache.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "store.chunks-cache.memcached.parallelism", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "memcached_client", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "host", + "required": false, + "desc": "Cache config for chunks. Hostname for memcached service to use. If empty and if addresses is unset, no memcached will be used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store.chunks-cache.memcached.hostname", + "fieldType": "string" + }, + { + "kind": "field", + "name": "service", + "required": false, + "desc": "Cache config for chunks. SRV service used to discover memcache servers.", + "fieldValue": null, + "fieldDefaultValue": "memcached", + "fieldFlag": "store.chunks-cache.memcached.service", + "fieldType": "string" + }, + { + "kind": "field", + "name": "addresses", + "required": false, + "desc": "Cache config for chunks. EXPERIMENTAL: Comma separated addresses list in DNS Service Discovery format: https://cortexmetrics.io/docs/configuration/arguments/#dns-service-discovery", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store.chunks-cache.memcached.addresses", + "fieldType": "string" + }, + { + "kind": "field", + "name": "timeout", + "required": false, + "desc": "Cache config for chunks. Maximum time to wait before giving up on memcached requests.", + "fieldValue": null, + "fieldDefaultValue": 100000000, + "fieldFlag": "store.chunks-cache.memcached.timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_idle_conns", + "required": false, + "desc": "Cache config for chunks. Maximum number of idle connections in pool.", + "fieldValue": null, + "fieldDefaultValue": 16, + "fieldFlag": "store.chunks-cache.memcached.max-idle-conns", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_item_size", + "required": false, + "desc": "Cache config for chunks. The maximum size of an item stored in memcached. Bigger items are not stored. If set to 0, no maximum size is enforced.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store.chunks-cache.memcached.max-item-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "update_interval", + "required": false, + "desc": "Cache config for chunks. Period with which to poll DNS for memcache servers.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "store.chunks-cache.memcached.update-interval", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "consistent_hash", + "required": false, + "desc": "Cache config for chunks. Use consistent hashing to distribute to memcache servers.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "store.chunks-cache.memcached.consistent-hash", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "circuit_breaker_consecutive_failures", + "required": false, + "desc": "Cache config for chunks. Trip circuit-breaker after this number of consecutive dial failures (if zero then circuit-breaker is disabled).", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "store.chunks-cache.memcached.circuit-breaker-consecutive-failures", + "fieldType": "int" + }, + { + "kind": "field", + "name": "circuit_breaker_timeout", + "required": false, + "desc": "Cache config for chunks. Duration circuit-breaker remains open after tripping (if zero then 60 seconds is used).", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "store.chunks-cache.memcached.circuit-breaker-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "circuit_breaker_interval", + "required": false, + "desc": "Cache config for chunks. Reset circuit-breaker counts after this long (if zero then never reset).", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "store.chunks-cache.memcached.circuit-breaker-interval", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "redis", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoint", + "required": false, + "desc": "Cache config for chunks. Redis Server endpoint to use for caching. A comma-separated list of endpoints for Redis Cluster or Redis Sentinel. If empty, no redis will be used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store.chunks-cache.redis.endpoint", + "fieldType": "string" + }, + { + "kind": "field", + "name": "master_name", + "required": false, + "desc": "Cache config for chunks. Redis Sentinel master name. An empty string for Redis Server or Redis Cluster.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store.chunks-cache.redis.master-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "timeout", + "required": false, + "desc": "Cache config for chunks. Maximum time to wait before giving up on redis requests.", + "fieldValue": null, + "fieldDefaultValue": 500000000, + "fieldFlag": "store.chunks-cache.redis.timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "expiration", + "required": false, + "desc": "Cache config for chunks. How long keys stay in the redis.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store.chunks-cache.redis.expiration", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "db", + "required": false, + "desc": "Cache config for chunks. Database index.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store.chunks-cache.redis.db", + "fieldType": "int" + }, + { + "kind": "field", + "name": "pool_size", + "required": false, + "desc": "Cache config for chunks. Maximum number of connections in the pool.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store.chunks-cache.redis.pool-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "Cache config for chunks. Password to use when connecting to redis.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store.chunks-cache.redis.password", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Cache config for chunks. Enable connecting to redis with TLS.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "store.chunks-cache.redis.tls-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Cache config for chunks. Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "store.chunks-cache.redis.tls-insecure-skip-verify", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "idle_timeout", + "required": false, + "desc": "Cache config for chunks. Close connections after remaining idle for this duration. If the value is zero, then idle connections are not closed.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store.chunks-cache.redis.idle-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_connection_age", + "required": false, + "desc": "Cache config for chunks. Close connections older than this duration. If the value is zero, then the pool does not close connections based on age.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store.chunks-cache.redis.max-connection-age", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "fifocache", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "max_size_bytes", + "required": false, + "desc": "Cache config for chunks. Maximum memory size of the cache in bytes. A unit suffix (KB, MB, GB) may be applied.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store.chunks-cache.fifocache.max-size-bytes", + "fieldType": "string" + }, + { + "kind": "field", + "name": "max_size_items", + "required": false, + "desc": "Cache config for chunks. Maximum number of entries in the cache.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store.chunks-cache.fifocache.max-size-items", + "fieldType": "int" + }, + { + "kind": "field", + "name": "validity", + "required": false, + "desc": "Cache config for chunks. The expiry duration for the cache.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store.chunks-cache.fifocache.duration", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "size", + "required": false, + "desc": "Deprecated (use max-size-items or max-size-bytes instead): Cache config for chunks. The number of entries to cache. ", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store.chunks-cache.fifocache.size", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "write_dedupe_cache_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "enable_fifocache", + "required": false, + "desc": "Cache config for index entry writing. Enable in-memory cache.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "store.index-cache-write.cache.enable-fifocache", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "default_validity", + "required": false, + "desc": "Cache config for index entry writing. The default validity of entries for caches unless overridden.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store.index-cache-write.default-validity", + "fieldType": "duration" + }, + { + "kind": "block", + "name": "background", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "writeback_goroutines", + "required": false, + "desc": "Cache config for index entry writing. At what concurrency to write back to cache.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "store.index-cache-write.background.write-back-concurrency", + "fieldType": "int" + }, + { + "kind": "field", + "name": "writeback_buffer", + "required": false, + "desc": "Cache config for index entry writing. How many key batches to buffer for background write-back.", + "fieldValue": null, + "fieldDefaultValue": 10000, + "fieldFlag": "store.index-cache-write.background.write-back-buffer", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "memcached", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "expiration", + "required": false, + "desc": "Cache config for index entry writing. How long keys stay in the memcache.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store.index-cache-write.memcached.expiration", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "batch_size", + "required": false, + "desc": "Cache config for index entry writing. How many keys to fetch in each batch.", + "fieldValue": null, + "fieldDefaultValue": 1024, + "fieldFlag": "store.index-cache-write.memcached.batchsize", + "fieldType": "int" + }, + { + "kind": "field", + "name": "parallelism", + "required": false, + "desc": "Cache config for index entry writing. Maximum active requests to memcache.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "store.index-cache-write.memcached.parallelism", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "memcached_client", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "host", + "required": false, + "desc": "Cache config for index entry writing. Hostname for memcached service to use. If empty and if addresses is unset, no memcached will be used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store.index-cache-write.memcached.hostname", + "fieldType": "string" + }, + { + "kind": "field", + "name": "service", + "required": false, + "desc": "Cache config for index entry writing. SRV service used to discover memcache servers.", + "fieldValue": null, + "fieldDefaultValue": "memcached", + "fieldFlag": "store.index-cache-write.memcached.service", + "fieldType": "string" + }, + { + "kind": "field", + "name": "addresses", + "required": false, + "desc": "Cache config for index entry writing. EXPERIMENTAL: Comma separated addresses list in DNS Service Discovery format: https://cortexmetrics.io/docs/configuration/arguments/#dns-service-discovery", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store.index-cache-write.memcached.addresses", + "fieldType": "string" + }, + { + "kind": "field", + "name": "timeout", + "required": false, + "desc": "Cache config for index entry writing. Maximum time to wait before giving up on memcached requests.", + "fieldValue": null, + "fieldDefaultValue": 100000000, + "fieldFlag": "store.index-cache-write.memcached.timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_idle_conns", + "required": false, + "desc": "Cache config for index entry writing. Maximum number of idle connections in pool.", + "fieldValue": null, + "fieldDefaultValue": 16, + "fieldFlag": "store.index-cache-write.memcached.max-idle-conns", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_item_size", + "required": false, + "desc": "Cache config for index entry writing. The maximum size of an item stored in memcached. Bigger items are not stored. If set to 0, no maximum size is enforced.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store.index-cache-write.memcached.max-item-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "update_interval", + "required": false, + "desc": "Cache config for index entry writing. Period with which to poll DNS for memcache servers.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "store.index-cache-write.memcached.update-interval", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "consistent_hash", + "required": false, + "desc": "Cache config for index entry writing. Use consistent hashing to distribute to memcache servers.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "store.index-cache-write.memcached.consistent-hash", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "circuit_breaker_consecutive_failures", + "required": false, + "desc": "Cache config for index entry writing. Trip circuit-breaker after this number of consecutive dial failures (if zero then circuit-breaker is disabled).", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "store.index-cache-write.memcached.circuit-breaker-consecutive-failures", + "fieldType": "int" + }, + { + "kind": "field", + "name": "circuit_breaker_timeout", + "required": false, + "desc": "Cache config for index entry writing. Duration circuit-breaker remains open after tripping (if zero then 60 seconds is used).", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "store.index-cache-write.memcached.circuit-breaker-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "circuit_breaker_interval", + "required": false, + "desc": "Cache config for index entry writing. Reset circuit-breaker counts after this long (if zero then never reset).", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "store.index-cache-write.memcached.circuit-breaker-interval", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "redis", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoint", + "required": false, + "desc": "Cache config for index entry writing. Redis Server endpoint to use for caching. A comma-separated list of endpoints for Redis Cluster or Redis Sentinel. If empty, no redis will be used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store.index-cache-write.redis.endpoint", + "fieldType": "string" + }, + { + "kind": "field", + "name": "master_name", + "required": false, + "desc": "Cache config for index entry writing. Redis Sentinel master name. An empty string for Redis Server or Redis Cluster.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store.index-cache-write.redis.master-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "timeout", + "required": false, + "desc": "Cache config for index entry writing. Maximum time to wait before giving up on redis requests.", + "fieldValue": null, + "fieldDefaultValue": 500000000, + "fieldFlag": "store.index-cache-write.redis.timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "expiration", + "required": false, + "desc": "Cache config for index entry writing. How long keys stay in the redis.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store.index-cache-write.redis.expiration", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "db", + "required": false, + "desc": "Cache config for index entry writing. Database index.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store.index-cache-write.redis.db", + "fieldType": "int" + }, + { + "kind": "field", + "name": "pool_size", + "required": false, + "desc": "Cache config for index entry writing. Maximum number of connections in the pool.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store.index-cache-write.redis.pool-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "Cache config for index entry writing. Password to use when connecting to redis.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store.index-cache-write.redis.password", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Cache config for index entry writing. Enable connecting to redis with TLS.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "store.index-cache-write.redis.tls-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Cache config for index entry writing. Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "store.index-cache-write.redis.tls-insecure-skip-verify", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "idle_timeout", + "required": false, + "desc": "Cache config for index entry writing. Close connections after remaining idle for this duration. If the value is zero, then idle connections are not closed.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store.index-cache-write.redis.idle-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_connection_age", + "required": false, + "desc": "Cache config for index entry writing. Close connections older than this duration. If the value is zero, then the pool does not close connections based on age.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store.index-cache-write.redis.max-connection-age", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "fifocache", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "max_size_bytes", + "required": false, + "desc": "Cache config for index entry writing. Maximum memory size of the cache in bytes. A unit suffix (KB, MB, GB) may be applied.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store.index-cache-write.fifocache.max-size-bytes", + "fieldType": "string" + }, + { + "kind": "field", + "name": "max_size_items", + "required": false, + "desc": "Cache config for index entry writing. Maximum number of entries in the cache.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store.index-cache-write.fifocache.max-size-items", + "fieldType": "int" + }, + { + "kind": "field", + "name": "validity", + "required": false, + "desc": "Cache config for index entry writing. The expiry duration for the cache.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store.index-cache-write.fifocache.duration", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "size", + "required": false, + "desc": "Deprecated (use max-size-items or max-size-bytes instead): Cache config for index entry writing. The number of entries to cache. ", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store.index-cache-write.fifocache.size", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "cache_lookups_older_than", + "required": false, + "desc": "Cache index entries older than this period. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store.cache-lookups-older-than", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "limits", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "ingestion_rate", + "required": false, + "desc": "Per-user ingestion rate limit in samples per second.", + "fieldValue": null, + "fieldDefaultValue": 25000, + "fieldFlag": "distributor.ingestion-rate-limit", + "fieldType": "float" + }, + { + "kind": "field", + "name": "ingestion_rate_strategy", + "required": false, + "desc": "Whether the ingestion rate limit should be applied individually to each distributor instance (local), or evenly shared across the cluster (global).", + "fieldValue": null, + "fieldDefaultValue": "local", + "fieldFlag": "distributor.ingestion-rate-limit-strategy", + "fieldType": "string" + }, + { + "kind": "field", + "name": "ingestion_burst_size", + "required": false, + "desc": "Per-user allowed ingestion burst size (in number of samples).", + "fieldValue": null, + "fieldDefaultValue": 50000, + "fieldFlag": "distributor.ingestion-burst-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "accept_ha_samples", + "required": false, + "desc": "Flag to enable, for all users, handling of samples with external labels identifying replicas in an HA Prometheus setup.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "distributor.ha-tracker.enable-for-all-users", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "ha_cluster_label", + "required": false, + "desc": "Prometheus label to look for in samples to identify a Prometheus HA cluster.", + "fieldValue": null, + "fieldDefaultValue": "cluster", + "fieldFlag": "distributor.ha-tracker.cluster", + "fieldType": "string" + }, + { + "kind": "field", + "name": "ha_replica_label", + "required": false, + "desc": "Prometheus label to look for in samples to identify a Prometheus HA replica.", + "fieldValue": null, + "fieldDefaultValue": "__replica__", + "fieldFlag": "distributor.ha-tracker.replica", + "fieldType": "string" + }, + { + "kind": "field", + "name": "ha_max_clusters", + "required": false, + "desc": "Maximum number of clusters that HA tracker will keep track of for single user. 0 to disable the limit.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "distributor.ha-tracker.max-clusters", + "fieldType": "int" + }, + { + "kind": "field", + "name": "drop_labels", + "required": false, + "desc": "This flag can be used to specify label names that to drop during sample ingestion within the distributor and can be repeated in order to drop multiple labels.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "distributor.drop-label", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "max_label_name_length", + "required": false, + "desc": "Maximum length accepted for label names", + "fieldValue": null, + "fieldDefaultValue": 1024, + "fieldFlag": "validation.max-length-label-name", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_label_value_length", + "required": false, + "desc": "Maximum length accepted for label value. This setting also applies to the metric name", + "fieldValue": null, + "fieldDefaultValue": 2048, + "fieldFlag": "validation.max-length-label-value", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_label_names_per_series", + "required": false, + "desc": "Maximum number of label names per series.", + "fieldValue": null, + "fieldDefaultValue": 30, + "fieldFlag": "validation.max-label-names-per-series", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_metadata_length", + "required": false, + "desc": "Maximum length accepted for metric metadata. Metadata refers to Metric Name, HELP and UNIT.", + "fieldValue": null, + "fieldDefaultValue": 1024, + "fieldFlag": "validation.max-metadata-length", + "fieldType": "int" + }, + { + "kind": "field", + "name": "reject_old_samples", + "required": false, + "desc": "Reject old samples.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "validation.reject-old-samples", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "reject_old_samples_max_age", + "required": false, + "desc": "Maximum accepted sample age before rejecting.", + "fieldValue": null, + "fieldDefaultValue": 1209600000000000, + "fieldFlag": "validation.reject-old-samples.max-age", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "creation_grace_period", + "required": false, + "desc": "Duration which table will be created/deleted before/after it's needed; we won't accept sample from before this time.", + "fieldValue": null, + "fieldDefaultValue": 600000000000, + "fieldFlag": "validation.create-grace-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "enforce_metadata_metric_name", + "required": false, + "desc": "Enforce every metadata has a metric name.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "validation.enforce-metadata-metric-name", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "enforce_metric_name", + "required": false, + "desc": "Enforce every sample has a metric name.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "validation.enforce-metric-name", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "ingestion_tenant_shard_size", + "required": false, + "desc": "The tenant's shard size when the shuffle-sharding strategy is used. Must be set both on ingesters and distributors. When this setting is specified in the per-tenant overrides, a value of 0 disables shuffle sharding for the tenant.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "distributor.ingestion-tenant-shard-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "metric_relabel_configs", + "required": false, + "desc": "List of metric relabel configurations. Note that in most situations, it is more effective to use metrics relabeling directly in the Prometheus server, e.g. remote_write.write_relabel_configs.", + "fieldValue": null, + "fieldDefaultValue": null, + "fieldType": "relabel_config..." + }, + { + "kind": "field", + "name": "max_series_per_query", + "required": false, + "desc": "The maximum number of series for which a query can fetch samples from each ingester. This limit is enforced only in the ingesters (when querying samples not flushed to the storage yet) and it's a per-instance limit. This limit is ignored when using blocks storage. When running with blocks storage use -querier.max-fetched-series-per-query limit instead.", + "fieldValue": null, + "fieldDefaultValue": 100000, + "fieldFlag": "ingester.max-series-per-query", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_series_per_user", + "required": false, + "desc": "The maximum number of active series per user, per ingester. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 5000000, + "fieldFlag": "ingester.max-series-per-user", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_series_per_metric", + "required": false, + "desc": "The maximum number of active series per metric name, per ingester. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 50000, + "fieldFlag": "ingester.max-series-per-metric", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_global_series_per_user", + "required": false, + "desc": "The maximum number of active series per user, across the cluster before replication. 0 to disable. Supported only if -distributor.shard-by-all-labels is true.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ingester.max-global-series-per-user", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_global_series_per_metric", + "required": false, + "desc": "The maximum number of active series per metric name, across the cluster before replication. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ingester.max-global-series-per-metric", + "fieldType": "int" + }, + { + "kind": "field", + "name": "min_chunk_length", + "required": false, + "desc": "Minimum number of samples in an idle chunk to flush it to the store. Use with care, if chunks are less than this size they will be discarded. This option is ignored when using blocks storage. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ingester.min-chunk-length", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_metadata_per_user", + "required": false, + "desc": "The maximum number of active metrics with metadata per user, per ingester. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 8000, + "fieldFlag": "ingester.max-metadata-per-user", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_metadata_per_metric", + "required": false, + "desc": "The maximum number of metadata per metric, per ingester. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "ingester.max-metadata-per-metric", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_global_metadata_per_user", + "required": false, + "desc": "The maximum number of active metrics with metadata per user, across the cluster. 0 to disable. Supported only if -distributor.shard-by-all-labels is true.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ingester.max-global-metadata-per-user", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_global_metadata_per_metric", + "required": false, + "desc": "The maximum number of metadata per metric, across the cluster. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ingester.max-global-metadata-per-metric", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_global_exemplars_per_user", + "required": false, + "desc": "The maximum number of exemplars in memory, across the cluster. 0 to disable exemplars ingestion.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ingester.max-global-exemplars-per-user", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_chunks_per_query", + "required": false, + "desc": "Deprecated. Use -querier.max-fetched-chunks-per-query CLI flag and its respective YAML config option instead. Maximum number of chunks that can be fetched in a single query. This limit is enforced when fetching chunks from the long-term storage only. When using chunks storage, this limit is enforced in the querier and ruler, while when using blocks storage this limit is enforced in the querier, ruler and store-gateway. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 2000000, + "fieldFlag": "store.query-chunk-limit", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_fetched_chunks_per_query", + "required": false, + "desc": "Maximum number of chunks that can be fetched in a single query from ingesters and long-term storage. This limit is enforced in the querier, ruler and store-gateway. Takes precedence over the deprecated -store.query-chunk-limit. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "querier.max-fetched-chunks-per-query", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_fetched_series_per_query", + "required": false, + "desc": "The maximum number of unique series for which a query can fetch samples from each ingesters and blocks storage. This limit is enforced in the querier only when running with blocks storage. 0 to disable", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "querier.max-fetched-series-per-query", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_fetched_chunk_bytes_per_query", + "required": false, + "desc": "The maximum size of all chunks in bytes that a query can fetch from each ingester and storage. This limit is enforced in the querier and ruler only when running with blocks storage. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "querier.max-fetched-chunk-bytes-per-query", + "fieldType": "int" + }, + { + "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.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "querier.max-query-lookback", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_query_length", + "required": false, + "desc": "Limit the query time range (end - start time). This limit is enforced in the query-frontend (on the received query), in the querier (on the query possibly split by the query-frontend) and in the chunks storage. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store.max-query-length", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_query_parallelism", + "required": false, + "desc": "Maximum number of split queries will be scheduled in parallel by the frontend.", + "fieldValue": null, + "fieldDefaultValue": 14, + "fieldFlag": "querier.max-query-parallelism", + "fieldType": "int" + }, + { + "kind": "field", + "name": "cardinality_limit", + "required": false, + "desc": "Cardinality limit for index queries. This limit is ignored when using blocks storage. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 100000, + "fieldFlag": "store.cardinality-limit", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_cache_freshness", + "required": false, + "desc": "Most recent allowed cacheable result per-tenant, to prevent caching very recent results that might still be in flux.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "frontend.max-cache-freshness", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_queriers_per_tenant", + "required": false, + "desc": "Maximum number of queriers that can handle requests for a single tenant. If set to 0 or value higher than number of available queriers, *all* queriers will handle requests for the tenant. Each frontend (or query-scheduler, if used) will select the same set of queriers for the same tenant (given that all queriers are connected to all frontends / query-schedulers). This option only works with queriers connecting to the query-frontend / query-scheduler, not when using downstream URL.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "frontend.max-queriers-per-tenant", + "fieldType": "int" + }, + { + "kind": "field", + "name": "query_sharding_total_shards", + "required": false, + "desc": "The amount of shards to use when doing parallelisation via query sharding by tenant. 0 to disable query sharding for tenant. Query sharding implementation will adjust the number of query shards based on compactor shards used by split-and-merge compaction strategy. This allows querier to not search the blocks which cannot possibly have the series for given query shard.", + "fieldValue": null, + "fieldDefaultValue": 16, + "fieldFlag": "frontend.query-sharding-total-shards", + "fieldType": "int" + }, + { + "kind": "field", + "name": "query_sharding_max_sharded_queries", + "required": false, + "desc": "The max number of sharded queries that can be run for a given received query. 0 to disable limit.", + "fieldValue": null, + "fieldDefaultValue": 128, + "fieldFlag": "frontend.query-sharding-max-sharded-queries", + "fieldType": "int" + }, + { + "kind": "field", + "name": "cardinality_analysis_enabled", + "required": false, + "desc": "Enables endpoints used for cardinality analysis.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "querier.cardinality-analysis-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "label_names_and_values_results_max_size_bytes", + "required": false, + "desc": "Maximum size in bytes of distinct label names and values. When querier receives response from ingester, it merges the response with responses from other ingesters. This maximum size limit is applied to the merged(distinct) results. If the limit is reached, an error is returned.", + "fieldValue": null, + "fieldDefaultValue": 419430400, + "fieldFlag": "querier.label-names-and-values-results-max-size-bytes", + "fieldType": "int" + }, + { + "kind": "field", + "name": "label_values_max_cardinality_label_names_per_request", + "required": false, + "desc": "Maximum number of label names allowed to be queried in a single /api/v1/cardinality/label_values API call.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "querier.label-values-max-cardinality-label-names-per-request", + "fieldType": "int" + }, + { + "kind": "field", + "name": "ruler_evaluation_delay_duration", + "required": false, + "desc": "Duration to delay the evaluation of rules to ensure the underlying metrics have been pushed.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ruler.evaluation-delay-duration", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "ruler_tenant_shard_size", + "required": false, + "desc": "The tenant's shard size when the shuffle-sharding strategy is used by ruler. When this setting is specified in the per-tenant overrides, a value of 0 disables shuffle sharding for the tenant.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ruler.tenant-shard-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "ruler_max_rules_per_rule_group", + "required": false, + "desc": "Maximum number of rules per rule group per-tenant. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ruler.max-rules-per-rule-group", + "fieldType": "int" + }, + { + "kind": "field", + "name": "ruler_max_rule_groups_per_tenant", + "required": false, + "desc": "Maximum number of rule groups per-tenant. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ruler.max-rule-groups-per-tenant", + "fieldType": "int" + }, + { + "kind": "field", + "name": "store_gateway_tenant_shard_size", + "required": false, + "desc": "The tenant's shard size when the shuffle-sharding strategy is used. Must be set when the store-gateway sharding is enabled with the shuffle-sharding strategy. When this setting is specified in the per-tenant overrides, a value of 0 disables shuffle sharding for the tenant.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store-gateway.tenant-shard-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "compactor_blocks_retention_period", + "required": false, + "desc": "Delete blocks containing samples older than the specified retention period. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "compactor.blocks-retention-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "compactor_split_and_merge_shards", + "required": false, + "desc": "The number of shards to use when splitting blocks. This config option is used only when split-and-merge compaction strategy is in use. 0 to disable splitting but keep using the split-and-merge compaction strategy.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "compactor.split-and-merge-shards", + "fieldType": "int" + }, + { + "kind": "field", + "name": "compactor_split_groups", + "required": false, + "desc": "Number of groups that blocks for splitting should be grouped into. Each group of blocks is then split separately. Number of output split shards is controlled by -compactor.split-and-merge-shards. Only used when split-and-merge compaction strategy is in used.", + "fieldValue": null, + "fieldDefaultValue": 4, + "fieldFlag": "compactor.split-groups", + "fieldType": "int" + }, + { + "kind": "field", + "name": "compactor_tenant_shard_size", + "required": false, + "desc": "Max number of compactors that can compact blocks for single tenant. Only used when split-and-merge compaction strategy is in use. 0 to disable the limit and use all compactors.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "compactor.compactor-tenant-shard-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "s3_sse_type", + "required": false, + "desc": "S3 server-side encryption type. Required to enable server-side encryption overrides for a specific tenant. If not set, the default S3 client settings are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldType": "string" + }, + { + "kind": "field", + "name": "s3_sse_kms_key_id", + "required": false, + "desc": "S3 server-side encryption KMS Key ID. Ignored if the SSE type override is not set.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldType": "string" + }, + { + "kind": "field", + "name": "s3_sse_kms_encryption_context", + "required": false, + "desc": "S3 server-side encryption KMS encryption context. If unset and the key ID override is set, the encryption context will not be provided to S3. Ignored if the SSE type override is not set.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldType": "string" + }, + { + "kind": "field", + "name": "alertmanager_receivers_firewall_block_cidr_networks", + "required": false, + "desc": "Comma-separated list of network CIDRs to block in Alertmanager receiver integrations.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.receivers-firewall-block-cidr-networks", + "fieldType": "string" + }, + { + "kind": "field", + "name": "alertmanager_receivers_firewall_block_private_addresses", + "required": false, + "desc": "True to block private and local addresses in Alertmanager receiver integrations. It blocks private addresses defined by RFC 1918 (IPv4 addresses) and RFC 4193 (IPv6 addresses), as well as loopback, local unicast and local multicast addresses.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "alertmanager.receivers-firewall-block-private-addresses", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "alertmanager_notification_rate_limit", + "required": false, + "desc": "Per-user rate limit for sending notifications from Alertmanager in notifications/sec. 0 = rate limit disabled. Negative value = no notifications are allowed.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "alertmanager.notification-rate-limit", + "fieldType": "float" + }, + { + "kind": "field", + "name": "alertmanager_notification_rate_limit_per_integration", + "required": false, + "desc": "Per-integration notification rate limits. Value is a map, where each key is integration name and value is a rate-limit (float). On command line, this map is given in JSON format. Rate limit has the same meaning as -alertmanager.notification-rate-limit, but only applies for specific integration. Allowed integration names: webhook, email, pagerduty, opsgenie, wechat, slack, victorops, pushover, sns.", + "fieldValue": null, + "fieldDefaultValue": {}, + "fieldFlag": "alertmanager.notification-rate-limit-per-integration", + "fieldType": "map of string to float64" + }, + { + "kind": "field", + "name": "alertmanager_max_config_size_bytes", + "required": false, + "desc": "Maximum size of configuration file for Alertmanager that tenant can upload via Alertmanager API. 0 = no limit.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "alertmanager.max-config-size-bytes", + "fieldType": "int" + }, + { + "kind": "field", + "name": "alertmanager_max_templates_count", + "required": false, + "desc": "Maximum number of templates in tenant's Alertmanager configuration uploaded via Alertmanager API. 0 = no limit.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "alertmanager.max-templates-count", + "fieldType": "int" + }, + { + "kind": "field", + "name": "alertmanager_max_template_size_bytes", + "required": false, + "desc": "Maximum size of single template in tenant's Alertmanager configuration uploaded via Alertmanager API. 0 = no limit.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "alertmanager.max-template-size-bytes", + "fieldType": "int" + }, + { + "kind": "field", + "name": "alertmanager_max_dispatcher_aggregation_groups", + "required": false, + "desc": "Maximum number of aggregation groups in Alertmanager's dispatcher that a tenant can have. Each active aggregation group uses single goroutine. When the limit is reached, dispatcher will not dispatch alerts that belong to additional aggregation groups, but existing groups will keep working properly. 0 = no limit.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "alertmanager.max-dispatcher-aggregation-groups", + "fieldType": "int" + }, + { + "kind": "field", + "name": "alertmanager_max_alerts_count", + "required": false, + "desc": "Maximum number of alerts that a single user can have. Inserting more alerts will fail with a log message and metric increment. 0 = no limit.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "alertmanager.max-alerts-count", + "fieldType": "int" + }, + { + "kind": "field", + "name": "alertmanager_max_alerts_size_bytes", + "required": false, + "desc": "Maximum total size of alerts that a single user can have, alert size is the sum of the bytes of its labels, annotations and generatorURL. Inserting more alerts will fail with a log message and metric increment. 0 = no limit.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "alertmanager.max-alerts-size-bytes", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "frontend_worker", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "frontend_address", + "required": false, + "desc": "Address of query frontend service, in host:port format. If -querier.scheduler-address is set as well, querier will use scheduler instead. Only one of -querier.frontend-address or -querier.scheduler-address can be set. If neither is set, queries are only received via HTTP endpoint.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "querier.frontend-address", + "fieldType": "string" + }, + { + "kind": "field", + "name": "scheduler_address", + "required": false, + "desc": "Hostname (and port) of scheduler that querier will periodically resolve, connect to and receive queries from. Only one of -querier.frontend-address or -querier.scheduler-address can be set. If neither is set, queries are only received via HTTP endpoint.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "querier.scheduler-address", + "fieldType": "string" + }, + { + "kind": "field", + "name": "dns_lookup_duration", + "required": false, + "desc": "How often to query DNS for query-frontend or query-scheduler address.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "querier.dns-lookup-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "parallelism", + "required": false, + "desc": "Number of simultaneous queries to process per query-frontend or query-scheduler.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "querier.worker-parallelism", + "fieldType": "int" + }, + { + "kind": "field", + "name": "match_max_concurrent", + "required": false, + "desc": "Force worker concurrency to match the -querier.max-concurrent option. Overrides querier.worker-parallelism.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "querier.worker-match-max-concurrent", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "id", + "required": false, + "desc": "Querier ID, sent to frontend service to identify requests from the same querier. Defaults to hostname.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "querier.id", + "fieldType": "string" + }, + { + "kind": "block", + "name": "grpc_client_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "max_recv_msg_size", + "required": false, + "desc": "gRPC client max receive message size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 104857600, + "fieldFlag": "querier.frontend-client.grpc-max-recv-msg-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_send_msg_size", + "required": false, + "desc": "gRPC client max send message size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 16777216, + "fieldFlag": "querier.frontend-client.grpc-max-send-msg-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "grpc_compression", + "required": false, + "desc": "Use compression when sending messages. Supported values are: 'gzip', 'snappy' and '' (disable compression)", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "querier.frontend-client.grpc-compression", + "fieldType": "string" + }, + { + "kind": "field", + "name": "rate_limit", + "required": false, + "desc": "Rate limit for gRPC client; 0 means disabled.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "querier.frontend-client.grpc-client-rate-limit", + "fieldType": "float" + }, + { + "kind": "field", + "name": "rate_limit_burst", + "required": false, + "desc": "Rate limit burst for gRPC client.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "querier.frontend-client.grpc-client-rate-limit-burst", + "fieldType": "int" + }, + { + "kind": "field", + "name": "backoff_on_ratelimits", + "required": false, + "desc": "Enable backoff and retry when we hit ratelimits.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "querier.frontend-client.backoff-on-ratelimits", + "fieldType": "boolean" + }, + { + "kind": "block", + "name": "backoff_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "min_period", + "required": false, + "desc": "Minimum delay when backing off.", + "fieldValue": null, + "fieldDefaultValue": 100000000, + "fieldFlag": "querier.frontend-client.backoff-min-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_period", + "required": false, + "desc": "Maximum delay when backing off.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "querier.frontend-client.backoff-max-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Number of times to backoff and retry before failing.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "querier.frontend-client.backoff-retries", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "querier.frontend-client.tls-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "querier.frontend-client.tls-cert-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "querier.frontend-client.tls-key-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "querier.frontend-client.tls-ca-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "querier.frontend-client.tls-server-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "querier.frontend-client.tls-insecure-skip-verify", + "fieldType": "boolean" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "frontend", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "log_queries_longer_than", + "required": false, + "desc": "Log queries that are slower than the specified duration. Set to 0 to disable. Set to \u003c 0 to enable on all queries.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "frontend.log-queries-longer-than", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_body_size", + "required": false, + "desc": "Max body size for downstream prometheus.", + "fieldValue": null, + "fieldDefaultValue": 10485760, + "fieldFlag": "frontend.max-body-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "query_stats_enabled", + "required": false, + "desc": "False to disable query statistics tracking. When enabled, a message with some statistics is logged for every query.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "frontend.query-stats-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "max_outstanding_per_tenant", + "required": false, + "desc": "Maximum number of outstanding requests per tenant per frontend; requests beyond this error with HTTP 429.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "querier.max-outstanding-requests-per-tenant", + "fieldType": "int" + }, + { + "kind": "field", + "name": "querier_forget_delay", + "required": false, + "desc": "If a querier disconnects without sending notification about graceful shutdown, the query-frontend will keep the querier in the tenant's shard until the forget delay has passed. This feature is useful to reduce the blast radius when shuffle-sharding is enabled.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "query-frontend.querier-forget-delay", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "scheduler_address", + "required": false, + "desc": "DNS hostname used for finding query-schedulers.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "frontend.scheduler-address", + "fieldType": "string" + }, + { + "kind": "field", + "name": "scheduler_dns_lookup_period", + "required": false, + "desc": "How often to resolve the scheduler-address, in order to look for new query-scheduler instances.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "frontend.scheduler-dns-lookup-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "scheduler_worker_concurrency", + "required": false, + "desc": "Number of concurrent workers forwarding queries to single query-scheduler.", + "fieldValue": null, + "fieldDefaultValue": 5, + "fieldFlag": "frontend.scheduler-worker-concurrency", + "fieldType": "int" + }, + { + "kind": "block", + "name": "grpc_client_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "max_recv_msg_size", + "required": false, + "desc": "gRPC client max receive message size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 104857600, + "fieldFlag": "frontend.grpc-client-config.grpc-max-recv-msg-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_send_msg_size", + "required": false, + "desc": "gRPC client max send message size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 16777216, + "fieldFlag": "frontend.grpc-client-config.grpc-max-send-msg-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "grpc_compression", + "required": false, + "desc": "Use compression when sending messages. Supported values are: 'gzip', 'snappy' and '' (disable compression)", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "frontend.grpc-client-config.grpc-compression", + "fieldType": "string" + }, + { + "kind": "field", + "name": "rate_limit", + "required": false, + "desc": "Rate limit for gRPC client; 0 means disabled.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "frontend.grpc-client-config.grpc-client-rate-limit", + "fieldType": "float" + }, + { + "kind": "field", + "name": "rate_limit_burst", + "required": false, + "desc": "Rate limit burst for gRPC client.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "frontend.grpc-client-config.grpc-client-rate-limit-burst", + "fieldType": "int" + }, + { + "kind": "field", + "name": "backoff_on_ratelimits", + "required": false, + "desc": "Enable backoff and retry when we hit ratelimits.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "frontend.grpc-client-config.backoff-on-ratelimits", + "fieldType": "boolean" + }, + { + "kind": "block", + "name": "backoff_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "min_period", + "required": false, + "desc": "Minimum delay when backing off.", + "fieldValue": null, + "fieldDefaultValue": 100000000, + "fieldFlag": "frontend.grpc-client-config.backoff-min-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_period", + "required": false, + "desc": "Maximum delay when backing off.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "frontend.grpc-client-config.backoff-max-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Number of times to backoff and retry before failing.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "frontend.grpc-client-config.backoff-retries", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "frontend.grpc-client-config.tls-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "frontend.grpc-client-config.tls-cert-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "frontend.grpc-client-config.tls-key-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "frontend.grpc-client-config.tls-ca-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "frontend.grpc-client-config.tls-server-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "frontend.grpc-client-config.tls-insecure-skip-verify", + "fieldType": "boolean" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "instance_interface_names", + "required": false, + "desc": "Name of network interface to read address from. This address is sent to query-scheduler and querier, which uses it to send the query response back to query-frontend.", + "fieldValue": null, + "fieldDefaultValue": [ + "eth0", + "en0" + ], + "fieldFlag": "frontend.instance-interface-names", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "downstream_url", + "required": false, + "desc": "URL of downstream Prometheus.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "frontend.downstream-url", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "query_range", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "split_queries_by_interval", + "required": false, + "desc": "Split queries by an interval and execute in parallel, 0 disables it. You should use an a multiple of 24 hours (same as the storage bucketing scheme), to avoid queriers downloading and processing the same chunks. This also determines how cache keys are chosen when result caching is enabled", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "querier.split-queries-by-interval", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "align_queries_with_step", + "required": false, + "desc": "Mutate incoming queries to align their start and end with their step.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "querier.align-querier-with-step", + "fieldType": "boolean" + }, + { + "kind": "block", + "name": "results_cache", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "cache", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "enable_fifocache", + "required": false, + "desc": "Enable in-memory cache.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "frontend.cache.enable-fifocache", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "default_validity", + "required": false, + "desc": "The default validity of entries for caches unless overridden.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "frontend.default-validity", + "fieldType": "duration" + }, + { + "kind": "block", + "name": "background", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "writeback_goroutines", + "required": false, + "desc": "At what concurrency to write back to cache.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "frontend.background.write-back-concurrency", + "fieldType": "int" + }, + { + "kind": "field", + "name": "writeback_buffer", + "required": false, + "desc": "How many key batches to buffer for background write-back.", + "fieldValue": null, + "fieldDefaultValue": 10000, + "fieldFlag": "frontend.background.write-back-buffer", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "memcached", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "expiration", + "required": false, + "desc": "How long keys stay in the memcache.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "frontend.memcached.expiration", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "batch_size", + "required": false, + "desc": "How many keys to fetch in each batch.", + "fieldValue": null, + "fieldDefaultValue": 1024, + "fieldFlag": "frontend.memcached.batchsize", + "fieldType": "int" + }, + { + "kind": "field", + "name": "parallelism", + "required": false, + "desc": "Maximum active requests to memcache.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "frontend.memcached.parallelism", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "memcached_client", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "host", + "required": false, + "desc": "Hostname for memcached service to use. If empty and if addresses is unset, no memcached will be used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "frontend.memcached.hostname", + "fieldType": "string" + }, + { + "kind": "field", + "name": "service", + "required": false, + "desc": "SRV service used to discover memcache servers.", + "fieldValue": null, + "fieldDefaultValue": "memcached", + "fieldFlag": "frontend.memcached.service", + "fieldType": "string" + }, + { + "kind": "field", + "name": "addresses", + "required": false, + "desc": "EXPERIMENTAL: Comma separated addresses list in DNS Service Discovery format: https://cortexmetrics.io/docs/configuration/arguments/#dns-service-discovery", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "frontend.memcached.addresses", + "fieldType": "string" + }, + { + "kind": "field", + "name": "timeout", + "required": false, + "desc": "Maximum time to wait before giving up on memcached requests.", + "fieldValue": null, + "fieldDefaultValue": 100000000, + "fieldFlag": "frontend.memcached.timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_idle_conns", + "required": false, + "desc": "Maximum number of idle connections in pool.", + "fieldValue": null, + "fieldDefaultValue": 16, + "fieldFlag": "frontend.memcached.max-idle-conns", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_item_size", + "required": false, + "desc": "The maximum size of an item stored in memcached. Bigger items are not stored. If set to 0, no maximum size is enforced.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "frontend.memcached.max-item-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "update_interval", + "required": false, + "desc": "Period with which to poll DNS for memcache servers.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "frontend.memcached.update-interval", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "consistent_hash", + "required": false, + "desc": "Use consistent hashing to distribute to memcache servers.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "frontend.memcached.consistent-hash", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "circuit_breaker_consecutive_failures", + "required": false, + "desc": "Trip circuit-breaker after this number of consecutive dial failures (if zero then circuit-breaker is disabled).", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "frontend.memcached.circuit-breaker-consecutive-failures", + "fieldType": "int" + }, + { + "kind": "field", + "name": "circuit_breaker_timeout", + "required": false, + "desc": "Duration circuit-breaker remains open after tripping (if zero then 60 seconds is used).", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "frontend.memcached.circuit-breaker-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "circuit_breaker_interval", + "required": false, + "desc": "Reset circuit-breaker counts after this long (if zero then never reset).", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "frontend.memcached.circuit-breaker-interval", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "redis", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoint", + "required": false, + "desc": "Redis Server endpoint to use for caching. A comma-separated list of endpoints for Redis Cluster or Redis Sentinel. If empty, no redis will be used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "frontend.redis.endpoint", + "fieldType": "string" + }, + { + "kind": "field", + "name": "master_name", + "required": false, + "desc": "Redis Sentinel master name. An empty string for Redis Server or Redis Cluster.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "frontend.redis.master-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "timeout", + "required": false, + "desc": "Maximum time to wait before giving up on redis requests.", + "fieldValue": null, + "fieldDefaultValue": 500000000, + "fieldFlag": "frontend.redis.timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "expiration", + "required": false, + "desc": "How long keys stay in the redis.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "frontend.redis.expiration", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "db", + "required": false, + "desc": "Database index.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "frontend.redis.db", + "fieldType": "int" + }, + { + "kind": "field", + "name": "pool_size", + "required": false, + "desc": "Maximum number of connections in the pool.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "frontend.redis.pool-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "Password to use when connecting to redis.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "frontend.redis.password", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable connecting to redis with TLS.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "frontend.redis.tls-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "frontend.redis.tls-insecure-skip-verify", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "idle_timeout", + "required": false, + "desc": "Close connections after remaining idle for this duration. If the value is zero, then idle connections are not closed.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "frontend.redis.idle-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_connection_age", + "required": false, + "desc": "Close connections older than this duration. If the value is zero, then the pool does not close connections based on age.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "frontend.redis.max-connection-age", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "fifocache", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "max_size_bytes", + "required": false, + "desc": "Maximum memory size of the cache in bytes. A unit suffix (KB, MB, GB) may be applied.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "frontend.fifocache.max-size-bytes", + "fieldType": "string" + }, + { + "kind": "field", + "name": "max_size_items", + "required": false, + "desc": "Maximum number of entries in the cache.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "frontend.fifocache.max-size-items", + "fieldType": "int" + }, + { + "kind": "field", + "name": "validity", + "required": false, + "desc": "The expiry duration for the cache.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "frontend.fifocache.duration", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "size", + "required": false, + "desc": "Deprecated (use max-size-items or max-size-bytes instead): The number of entries to cache. ", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "frontend.fifocache.size", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "compression", + "required": false, + "desc": "Use compression in results cache. Supported values are: 'snappy' and '' (disable compression).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "frontend.compression", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "cache_results", + "required": false, + "desc": "Cache query results.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "querier.cache-results", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Maximum number of retries for a single request; beyond this, the downstream error is returned.", + "fieldValue": null, + "fieldDefaultValue": 5, + "fieldFlag": "querier.max-retries-per-request", + "fieldType": "int" + }, + { + "kind": "field", + "name": "parallelize_shardable_queries", + "required": false, + "desc": "Perform query parallelizations based on storage sharding configuration and query ASTs. This feature is supported only by the blocks storage engine.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "query-frontend.parallelize-shardable-queries", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "cache_unaligned_requests", + "required": false, + "desc": "Cache requests that are not step-aligned.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "query-frontend.cache-unaligned-requests", + "fieldType": "boolean" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "table_manager", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "throughput_updates_disabled", + "required": false, + "desc": "If true, disable all changes to DB capacity", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "table-manager.throughput-updates-disabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "retention_deletes_enabled", + "required": false, + "desc": "If true, enables retention deletes of DB tables", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "table-manager.retention-deletes-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "retention_period", + "required": false, + "desc": "Tables older than this retention period are deleted. Must be either 0 (disabled) or a multiple of 24h. When enabled, be aware this setting is destructive to data!", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "table-manager.retention-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "poll_interval", + "required": false, + "desc": "How frequently to poll backend to learn our capacity.", + "fieldValue": null, + "fieldDefaultValue": 120000000000, + "fieldFlag": "table-manager.poll-interval", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "creation_grace_period", + "required": false, + "desc": "Periodic tables grace period (duration which table will be created/deleted before/after it's needed).", + "fieldValue": null, + "fieldDefaultValue": 600000000000, + "fieldFlag": "table-manager.periodic-table.grace-period", + "fieldType": "duration" + }, + { + "kind": "block", + "name": "index_tables_provisioning", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "enable_ondemand_throughput_mode", + "required": false, + "desc": "Enables on demand throughput provisioning for the storage provider (if supported). Applies only to tables which are not autoscaled. Supported by DynamoDB", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "table-manager.index-table.enable-ondemand-throughput-mode", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "provisioned_write_throughput", + "required": false, + "desc": "Table default write throughput. Supported by DynamoDB", + "fieldValue": null, + "fieldDefaultValue": 1000, + "fieldFlag": "table-manager.index-table.write-throughput", + "fieldType": "int" + }, + { + "kind": "field", + "name": "provisioned_read_throughput", + "required": false, + "desc": "Table default read throughput. Supported by DynamoDB", + "fieldValue": null, + "fieldDefaultValue": 300, + "fieldFlag": "table-manager.index-table.read-throughput", + "fieldType": "int" + }, + { + "kind": "block", + "name": "write_scale", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "enabled", + "required": false, + "desc": "Should we enable autoscale for the table.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "table-manager.index-table.write-throughput.scale.enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "role_arn", + "required": false, + "desc": "AWS AutoScaling role ARN", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "table-manager.index-table.write-throughput.scale.role-arn", + "fieldType": "string" + }, + { + "kind": "field", + "name": "min_capacity", + "required": false, + "desc": "DynamoDB minimum provision capacity.", + "fieldValue": null, + "fieldDefaultValue": 3000, + "fieldFlag": "table-manager.index-table.write-throughput.scale.min-capacity", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_capacity", + "required": false, + "desc": "DynamoDB maximum provision capacity.", + "fieldValue": null, + "fieldDefaultValue": 6000, + "fieldFlag": "table-manager.index-table.write-throughput.scale.max-capacity", + "fieldType": "int" + }, + { + "kind": "field", + "name": "out_cooldown", + "required": false, + "desc": "DynamoDB minimum seconds between each autoscale up.", + "fieldValue": null, + "fieldDefaultValue": 1800, + "fieldFlag": "table-manager.index-table.write-throughput.scale.out-cooldown", + "fieldType": "int" + }, + { + "kind": "field", + "name": "in_cooldown", + "required": false, + "desc": "DynamoDB minimum seconds between each autoscale down.", + "fieldValue": null, + "fieldDefaultValue": 1800, + "fieldFlag": "table-manager.index-table.write-throughput.scale.in-cooldown", + "fieldType": "int" + }, + { + "kind": "field", + "name": "target", + "required": false, + "desc": "DynamoDB target ratio of consumed capacity to provisioned capacity.", + "fieldValue": null, + "fieldDefaultValue": 80, + "fieldFlag": "table-manager.index-table.write-throughput.scale.target-value", + "fieldType": "float" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "read_scale", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "enabled", + "required": false, + "desc": "Should we enable autoscale for the table.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "table-manager.index-table.read-throughput.scale.enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "role_arn", + "required": false, + "desc": "AWS AutoScaling role ARN", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "table-manager.index-table.read-throughput.scale.role-arn", + "fieldType": "string" + }, + { + "kind": "field", + "name": "min_capacity", + "required": false, + "desc": "DynamoDB minimum provision capacity.", + "fieldValue": null, + "fieldDefaultValue": 3000, + "fieldFlag": "table-manager.index-table.read-throughput.scale.min-capacity", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_capacity", + "required": false, + "desc": "DynamoDB maximum provision capacity.", + "fieldValue": null, + "fieldDefaultValue": 6000, + "fieldFlag": "table-manager.index-table.read-throughput.scale.max-capacity", + "fieldType": "int" + }, + { + "kind": "field", + "name": "out_cooldown", + "required": false, + "desc": "DynamoDB minimum seconds between each autoscale up.", + "fieldValue": null, + "fieldDefaultValue": 1800, + "fieldFlag": "table-manager.index-table.read-throughput.scale.out-cooldown", + "fieldType": "int" + }, + { + "kind": "field", + "name": "in_cooldown", + "required": false, + "desc": "DynamoDB minimum seconds between each autoscale down.", + "fieldValue": null, + "fieldDefaultValue": 1800, + "fieldFlag": "table-manager.index-table.read-throughput.scale.in-cooldown", + "fieldType": "int" + }, + { + "kind": "field", + "name": "target", + "required": false, + "desc": "DynamoDB target ratio of consumed capacity to provisioned capacity.", + "fieldValue": null, + "fieldDefaultValue": 80, + "fieldFlag": "table-manager.index-table.read-throughput.scale.target-value", + "fieldType": "float" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "enable_inactive_throughput_on_demand_mode", + "required": false, + "desc": "Enables on demand throughput provisioning for the storage provider (if supported). Applies only to tables which are not autoscaled. Supported by DynamoDB", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "table-manager.index-table.inactive-enable-ondemand-throughput-mode", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "inactive_write_throughput", + "required": false, + "desc": "Table write throughput for inactive tables. Supported by DynamoDB", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "table-manager.index-table.inactive-write-throughput", + "fieldType": "int" + }, + { + "kind": "field", + "name": "inactive_read_throughput", + "required": false, + "desc": "Table read throughput for inactive tables. Supported by DynamoDB", + "fieldValue": null, + "fieldDefaultValue": 300, + "fieldFlag": "table-manager.index-table.inactive-read-throughput", + "fieldType": "int" + }, + { + "kind": "block", + "name": "inactive_write_scale", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "enabled", + "required": false, + "desc": "Should we enable autoscale for the table.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "table-manager.index-table.inactive-write-throughput.scale.enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "role_arn", + "required": false, + "desc": "AWS AutoScaling role ARN", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "table-manager.index-table.inactive-write-throughput.scale.role-arn", + "fieldType": "string" + }, + { + "kind": "field", + "name": "min_capacity", + "required": false, + "desc": "DynamoDB minimum provision capacity.", + "fieldValue": null, + "fieldDefaultValue": 3000, + "fieldFlag": "table-manager.index-table.inactive-write-throughput.scale.min-capacity", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_capacity", + "required": false, + "desc": "DynamoDB maximum provision capacity.", + "fieldValue": null, + "fieldDefaultValue": 6000, + "fieldFlag": "table-manager.index-table.inactive-write-throughput.scale.max-capacity", + "fieldType": "int" + }, + { + "kind": "field", + "name": "out_cooldown", + "required": false, + "desc": "DynamoDB minimum seconds between each autoscale up.", + "fieldValue": null, + "fieldDefaultValue": 1800, + "fieldFlag": "table-manager.index-table.inactive-write-throughput.scale.out-cooldown", + "fieldType": "int" + }, + { + "kind": "field", + "name": "in_cooldown", + "required": false, + "desc": "DynamoDB minimum seconds between each autoscale down.", + "fieldValue": null, + "fieldDefaultValue": 1800, + "fieldFlag": "table-manager.index-table.inactive-write-throughput.scale.in-cooldown", + "fieldType": "int" + }, + { + "kind": "field", + "name": "target", + "required": false, + "desc": "DynamoDB target ratio of consumed capacity to provisioned capacity.", + "fieldValue": null, + "fieldDefaultValue": 80, + "fieldFlag": "table-manager.index-table.inactive-write-throughput.scale.target-value", + "fieldType": "float" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "inactive_read_scale", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "enabled", + "required": false, + "desc": "Should we enable autoscale for the table.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "table-manager.index-table.inactive-read-throughput.scale.enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "role_arn", + "required": false, + "desc": "AWS AutoScaling role ARN", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "table-manager.index-table.inactive-read-throughput.scale.role-arn", + "fieldType": "string" + }, + { + "kind": "field", + "name": "min_capacity", + "required": false, + "desc": "DynamoDB minimum provision capacity.", + "fieldValue": null, + "fieldDefaultValue": 3000, + "fieldFlag": "table-manager.index-table.inactive-read-throughput.scale.min-capacity", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_capacity", + "required": false, + "desc": "DynamoDB maximum provision capacity.", + "fieldValue": null, + "fieldDefaultValue": 6000, + "fieldFlag": "table-manager.index-table.inactive-read-throughput.scale.max-capacity", + "fieldType": "int" + }, + { + "kind": "field", + "name": "out_cooldown", + "required": false, + "desc": "DynamoDB minimum seconds between each autoscale up.", + "fieldValue": null, + "fieldDefaultValue": 1800, + "fieldFlag": "table-manager.index-table.inactive-read-throughput.scale.out-cooldown", + "fieldType": "int" + }, + { + "kind": "field", + "name": "in_cooldown", + "required": false, + "desc": "DynamoDB minimum seconds between each autoscale down.", + "fieldValue": null, + "fieldDefaultValue": 1800, + "fieldFlag": "table-manager.index-table.inactive-read-throughput.scale.in-cooldown", + "fieldType": "int" + }, + { + "kind": "field", + "name": "target", + "required": false, + "desc": "DynamoDB target ratio of consumed capacity to provisioned capacity.", + "fieldValue": null, + "fieldDefaultValue": 80, + "fieldFlag": "table-manager.index-table.inactive-read-throughput.scale.target-value", + "fieldType": "float" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "inactive_write_scale_lastn", + "required": false, + "desc": "Number of last inactive tables to enable write autoscale.", + "fieldValue": null, + "fieldDefaultValue": 4, + "fieldFlag": "table-manager.index-table.inactive-write-throughput.scale-last-n", + "fieldType": "int" + }, + { + "kind": "field", + "name": "inactive_read_scale_lastn", + "required": false, + "desc": "Number of last inactive tables to enable read autoscale.", + "fieldValue": null, + "fieldDefaultValue": 4, + "fieldFlag": "table-manager.index-table.inactive-read-throughput.scale-last-n", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "chunk_tables_provisioning", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "enable_ondemand_throughput_mode", + "required": false, + "desc": "Enables on demand throughput provisioning for the storage provider (if supported). Applies only to tables which are not autoscaled. Supported by DynamoDB", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "table-manager.chunk-table.enable-ondemand-throughput-mode", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "provisioned_write_throughput", + "required": false, + "desc": "Table default write throughput. Supported by DynamoDB", + "fieldValue": null, + "fieldDefaultValue": 1000, + "fieldFlag": "table-manager.chunk-table.write-throughput", + "fieldType": "int" + }, + { + "kind": "field", + "name": "provisioned_read_throughput", + "required": false, + "desc": "Table default read throughput. Supported by DynamoDB", + "fieldValue": null, + "fieldDefaultValue": 300, + "fieldFlag": "table-manager.chunk-table.read-throughput", + "fieldType": "int" + }, + { + "kind": "block", + "name": "write_scale", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "enabled", + "required": false, + "desc": "Should we enable autoscale for the table.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "table-manager.chunk-table.write-throughput.scale.enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "role_arn", + "required": false, + "desc": "AWS AutoScaling role ARN", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "table-manager.chunk-table.write-throughput.scale.role-arn", + "fieldType": "string" + }, + { + "kind": "field", + "name": "min_capacity", + "required": false, + "desc": "DynamoDB minimum provision capacity.", + "fieldValue": null, + "fieldDefaultValue": 3000, + "fieldFlag": "table-manager.chunk-table.write-throughput.scale.min-capacity", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_capacity", + "required": false, + "desc": "DynamoDB maximum provision capacity.", + "fieldValue": null, + "fieldDefaultValue": 6000, + "fieldFlag": "table-manager.chunk-table.write-throughput.scale.max-capacity", + "fieldType": "int" + }, + { + "kind": "field", + "name": "out_cooldown", + "required": false, + "desc": "DynamoDB minimum seconds between each autoscale up.", + "fieldValue": null, + "fieldDefaultValue": 1800, + "fieldFlag": "table-manager.chunk-table.write-throughput.scale.out-cooldown", + "fieldType": "int" + }, + { + "kind": "field", + "name": "in_cooldown", + "required": false, + "desc": "DynamoDB minimum seconds between each autoscale down.", + "fieldValue": null, + "fieldDefaultValue": 1800, + "fieldFlag": "table-manager.chunk-table.write-throughput.scale.in-cooldown", + "fieldType": "int" + }, + { + "kind": "field", + "name": "target", + "required": false, + "desc": "DynamoDB target ratio of consumed capacity to provisioned capacity.", + "fieldValue": null, + "fieldDefaultValue": 80, + "fieldFlag": "table-manager.chunk-table.write-throughput.scale.target-value", + "fieldType": "float" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "read_scale", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "enabled", + "required": false, + "desc": "Should we enable autoscale for the table.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "table-manager.chunk-table.read-throughput.scale.enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "role_arn", + "required": false, + "desc": "AWS AutoScaling role ARN", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "table-manager.chunk-table.read-throughput.scale.role-arn", + "fieldType": "string" + }, + { + "kind": "field", + "name": "min_capacity", + "required": false, + "desc": "DynamoDB minimum provision capacity.", + "fieldValue": null, + "fieldDefaultValue": 3000, + "fieldFlag": "table-manager.chunk-table.read-throughput.scale.min-capacity", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_capacity", + "required": false, + "desc": "DynamoDB maximum provision capacity.", + "fieldValue": null, + "fieldDefaultValue": 6000, + "fieldFlag": "table-manager.chunk-table.read-throughput.scale.max-capacity", + "fieldType": "int" + }, + { + "kind": "field", + "name": "out_cooldown", + "required": false, + "desc": "DynamoDB minimum seconds between each autoscale up.", + "fieldValue": null, + "fieldDefaultValue": 1800, + "fieldFlag": "table-manager.chunk-table.read-throughput.scale.out-cooldown", + "fieldType": "int" + }, + { + "kind": "field", + "name": "in_cooldown", + "required": false, + "desc": "DynamoDB minimum seconds between each autoscale down.", + "fieldValue": null, + "fieldDefaultValue": 1800, + "fieldFlag": "table-manager.chunk-table.read-throughput.scale.in-cooldown", + "fieldType": "int" + }, + { + "kind": "field", + "name": "target", + "required": false, + "desc": "DynamoDB target ratio of consumed capacity to provisioned capacity.", + "fieldValue": null, + "fieldDefaultValue": 80, + "fieldFlag": "table-manager.chunk-table.read-throughput.scale.target-value", + "fieldType": "float" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "enable_inactive_throughput_on_demand_mode", + "required": false, + "desc": "Enables on demand throughput provisioning for the storage provider (if supported). Applies only to tables which are not autoscaled. Supported by DynamoDB", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "table-manager.chunk-table.inactive-enable-ondemand-throughput-mode", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "inactive_write_throughput", + "required": false, + "desc": "Table write throughput for inactive tables. Supported by DynamoDB", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "table-manager.chunk-table.inactive-write-throughput", + "fieldType": "int" + }, + { + "kind": "field", + "name": "inactive_read_throughput", + "required": false, + "desc": "Table read throughput for inactive tables. Supported by DynamoDB", + "fieldValue": null, + "fieldDefaultValue": 300, + "fieldFlag": "table-manager.chunk-table.inactive-read-throughput", + "fieldType": "int" + }, + { + "kind": "block", + "name": "inactive_write_scale", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "enabled", + "required": false, + "desc": "Should we enable autoscale for the table.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "table-manager.chunk-table.inactive-write-throughput.scale.enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "role_arn", + "required": false, + "desc": "AWS AutoScaling role ARN", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "table-manager.chunk-table.inactive-write-throughput.scale.role-arn", + "fieldType": "string" + }, + { + "kind": "field", + "name": "min_capacity", + "required": false, + "desc": "DynamoDB minimum provision capacity.", + "fieldValue": null, + "fieldDefaultValue": 3000, + "fieldFlag": "table-manager.chunk-table.inactive-write-throughput.scale.min-capacity", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_capacity", + "required": false, + "desc": "DynamoDB maximum provision capacity.", + "fieldValue": null, + "fieldDefaultValue": 6000, + "fieldFlag": "table-manager.chunk-table.inactive-write-throughput.scale.max-capacity", + "fieldType": "int" + }, + { + "kind": "field", + "name": "out_cooldown", + "required": false, + "desc": "DynamoDB minimum seconds between each autoscale up.", + "fieldValue": null, + "fieldDefaultValue": 1800, + "fieldFlag": "table-manager.chunk-table.inactive-write-throughput.scale.out-cooldown", + "fieldType": "int" + }, + { + "kind": "field", + "name": "in_cooldown", + "required": false, + "desc": "DynamoDB minimum seconds between each autoscale down.", + "fieldValue": null, + "fieldDefaultValue": 1800, + "fieldFlag": "table-manager.chunk-table.inactive-write-throughput.scale.in-cooldown", + "fieldType": "int" + }, + { + "kind": "field", + "name": "target", + "required": false, + "desc": "DynamoDB target ratio of consumed capacity to provisioned capacity.", + "fieldValue": null, + "fieldDefaultValue": 80, + "fieldFlag": "table-manager.chunk-table.inactive-write-throughput.scale.target-value", + "fieldType": "float" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "inactive_read_scale", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "enabled", + "required": false, + "desc": "Should we enable autoscale for the table.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "table-manager.chunk-table.inactive-read-throughput.scale.enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "role_arn", + "required": false, + "desc": "AWS AutoScaling role ARN", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "table-manager.chunk-table.inactive-read-throughput.scale.role-arn", + "fieldType": "string" + }, + { + "kind": "field", + "name": "min_capacity", + "required": false, + "desc": "DynamoDB minimum provision capacity.", + "fieldValue": null, + "fieldDefaultValue": 3000, + "fieldFlag": "table-manager.chunk-table.inactive-read-throughput.scale.min-capacity", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_capacity", + "required": false, + "desc": "DynamoDB maximum provision capacity.", + "fieldValue": null, + "fieldDefaultValue": 6000, + "fieldFlag": "table-manager.chunk-table.inactive-read-throughput.scale.max-capacity", + "fieldType": "int" + }, + { + "kind": "field", + "name": "out_cooldown", + "required": false, + "desc": "DynamoDB minimum seconds between each autoscale up.", + "fieldValue": null, + "fieldDefaultValue": 1800, + "fieldFlag": "table-manager.chunk-table.inactive-read-throughput.scale.out-cooldown", + "fieldType": "int" + }, + { + "kind": "field", + "name": "in_cooldown", + "required": false, + "desc": "DynamoDB minimum seconds between each autoscale down.", + "fieldValue": null, + "fieldDefaultValue": 1800, + "fieldFlag": "table-manager.chunk-table.inactive-read-throughput.scale.in-cooldown", + "fieldType": "int" + }, + { + "kind": "field", + "name": "target", + "required": false, + "desc": "DynamoDB target ratio of consumed capacity to provisioned capacity.", + "fieldValue": null, + "fieldDefaultValue": 80, + "fieldFlag": "table-manager.chunk-table.inactive-read-throughput.scale.target-value", + "fieldType": "float" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "inactive_write_scale_lastn", + "required": false, + "desc": "Number of last inactive tables to enable write autoscale.", + "fieldValue": null, + "fieldDefaultValue": 4, + "fieldFlag": "table-manager.chunk-table.inactive-write-throughput.scale-last-n", + "fieldType": "int" + }, + { + "kind": "field", + "name": "inactive_read_scale_lastn", + "required": false, + "desc": "Number of last inactive tables to enable read autoscale.", + "fieldValue": null, + "fieldDefaultValue": 4, + "fieldFlag": "table-manager.chunk-table.inactive-read-throughput.scale-last-n", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "blocks_storage", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "backend", + "required": false, + "desc": "Backend storage to use. Supported backends are: s3, gcs, azure, swift, filesystem.", + "fieldValue": null, + "fieldDefaultValue": "s3", + "fieldFlag": "blocks-storage.backend", + "fieldType": "string" + }, + { + "kind": "block", + "name": "s3", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoint", + "required": false, + "desc": "The S3 bucket endpoint. It could be an AWS S3 endpoint listed at https://docs.aws.amazon.com/general/latest/gr/s3.html or the address of an S3-compatible service in hostname:port format.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.s3.endpoint", + "fieldType": "string" + }, + { + "kind": "field", + "name": "region", + "required": false, + "desc": "S3 region. If unset, the client will issue a S3 GetBucketLocation API call to autodetect it.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.s3.region", + "fieldType": "string" + }, + { + "kind": "field", + "name": "bucket_name", + "required": false, + "desc": "S3 bucket name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.s3.bucket-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "secret_access_key", + "required": false, + "desc": "S3 secret access key", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.s3.secret-access-key", + "fieldType": "string" + }, + { + "kind": "field", + "name": "access_key_id", + "required": false, + "desc": "S3 access key ID", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.s3.access-key-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "insecure", + "required": false, + "desc": "If enabled, use http:// for the S3 endpoint instead of https://. This could be useful in local dev/test environments while using an S3-compatible backend storage, like Minio.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "blocks-storage.s3.insecure", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "signature_version", + "required": false, + "desc": "The signature version to use for authenticating against S3. Supported values are: v4, v2.", + "fieldValue": null, + "fieldDefaultValue": "v4", + "fieldFlag": "blocks-storage.s3.signature-version", + "fieldType": "string" + }, + { + "kind": "block", + "name": "sse", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "type", + "required": false, + "desc": "Enable AWS Server Side Encryption. Supported values: SSE-KMS, SSE-S3.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.s3.sse.type", + "fieldType": "string" + }, + { + "kind": "field", + "name": "kms_key_id", + "required": false, + "desc": "KMS Key ID used to encrypt objects in S3", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.s3.sse.kms-key-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "kms_encryption_context", + "required": false, + "desc": "KMS Encryption Context used for object encryption. It expects JSON formatted string.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.s3.sse.kms-encryption-context", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "http", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "idle_conn_timeout", + "required": false, + "desc": "The time an idle connection will remain idle before closing.", + "fieldValue": null, + "fieldDefaultValue": 90000000000, + "fieldFlag": "blocks-storage.s3.http.idle-conn-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "response_header_timeout", + "required": false, + "desc": "The amount of time the client will wait for a servers response headers.", + "fieldValue": null, + "fieldDefaultValue": 120000000000, + "fieldFlag": "blocks-storage.s3.http.response-header-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "insecure_skip_verify", + "required": false, + "desc": "If the client connects to S3 via HTTPS and this option is enabled, the client will accept any certificate and hostname.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "blocks-storage.s3.http.insecure-skip-verify", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_handshake_timeout", + "required": false, + "desc": "Maximum time to wait for a TLS handshake. 0 means no limit.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "blocks-storage.s3.tls-handshake-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "expect_continue_timeout", + "required": false, + "desc": "The time to wait for a server's first response headers after fully writing the request headers if the request has an Expect header. 0 to send the request body immediately.", + "fieldValue": null, + "fieldDefaultValue": 1000000000, + "fieldFlag": "blocks-storage.s3.expect-continue-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_idle_connections", + "required": false, + "desc": "Maximum number of idle (keep-alive) connections across all hosts. 0 means no limit.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "blocks-storage.s3.max-idle-connections", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_idle_connections_per_host", + "required": false, + "desc": "Maximum number of idle (keep-alive) connections to keep per-host. If 0, a built-in default value is used.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "blocks-storage.s3.max-idle-connections-per-host", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_connections_per_host", + "required": false, + "desc": "Maximum number of connections per host. 0 means no limit.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "blocks-storage.s3.max-connections-per-host", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "gcs", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "bucket_name", + "required": false, + "desc": "GCS bucket name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.gcs.bucket-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "service_account", + "required": false, + "desc": "JSON representing either a Google Developers Console client_credentials.json file or a Google Developers service account key file. If empty, fallback to Google default logic.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.gcs.service-account", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "azure", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "account_name", + "required": false, + "desc": "Azure storage account name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.azure.account-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "account_key", + "required": false, + "desc": "Azure storage account key", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.azure.account-key", + "fieldType": "string" + }, + { + "kind": "field", + "name": "container_name", + "required": false, + "desc": "Azure storage container name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.azure.container-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "endpoint_suffix", + "required": false, + "desc": "Azure storage endpoint suffix without schema. The account name will be prefixed to this value to create the FQDN", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.azure.endpoint-suffix", + "fieldType": "string" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Number of retries for recoverable errors", + "fieldValue": null, + "fieldDefaultValue": 20, + "fieldFlag": "blocks-storage.azure.max-retries", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "swift", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "auth_version", + "required": false, + "desc": "OpenStack Swift authentication API version. 0 to autodetect.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "blocks-storage.swift.auth-version", + "fieldType": "int" + }, + { + "kind": "field", + "name": "auth_url", + "required": false, + "desc": "OpenStack Swift authentication URL", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.auth-url", + "fieldType": "string" + }, + { + "kind": "field", + "name": "username", + "required": false, + "desc": "OpenStack Swift username.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.username", + "fieldType": "string" + }, + { + "kind": "field", + "name": "user_domain_name", + "required": false, + "desc": "OpenStack Swift user's domain name.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.user-domain-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "user_domain_id", + "required": false, + "desc": "OpenStack Swift user's domain ID.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.user-domain-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "user_id", + "required": false, + "desc": "OpenStack Swift user ID.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.user-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "OpenStack Swift API key.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.password", + "fieldType": "string" + }, + { + "kind": "field", + "name": "domain_id", + "required": false, + "desc": "OpenStack Swift user's domain ID.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.domain-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "domain_name", + "required": false, + "desc": "OpenStack Swift user's domain name.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.domain-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_id", + "required": false, + "desc": "OpenStack Swift project ID (v2,v3 auth only).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.project-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_name", + "required": false, + "desc": "OpenStack Swift project name (v2,v3 auth only).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.project-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_domain_id", + "required": false, + "desc": "ID of the OpenStack Swift project's domain (v3 auth only), only needed if it differs the from user domain.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.project-domain-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_domain_name", + "required": false, + "desc": "Name of the OpenStack Swift project's domain (v3 auth only), only needed if it differs from the user domain.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.project-domain-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "region_name", + "required": false, + "desc": "OpenStack Swift Region to use (v2,v3 auth only).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.region-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "container_name", + "required": false, + "desc": "Name of the OpenStack Swift container to put chunks in.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.container-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Max retries on requests error.", + "fieldValue": null, + "fieldDefaultValue": 3, + "fieldFlag": "blocks-storage.swift.max-retries", + "fieldType": "int" + }, + { + "kind": "field", + "name": "connect_timeout", + "required": false, + "desc": "Time after which a connection attempt is aborted.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "blocks-storage.swift.connect-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "request_timeout", + "required": false, + "desc": "Time after which an idle request is aborted. The timeout watchdog is reset each time some data is received, so the timeout triggers after X time no data is received on a request.", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "blocks-storage.swift.request-timeout", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "filesystem", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "dir", + "required": false, + "desc": "Local filesystem storage directory.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.filesystem.dir", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "bucket_store", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "sync_dir", + "required": false, + "desc": "Directory to store synchronized TSDB index headers.", + "fieldValue": null, + "fieldDefaultValue": "tsdb-sync", + "fieldFlag": "blocks-storage.bucket-store.sync-dir", + "fieldType": "string" + }, + { + "kind": "field", + "name": "sync_interval", + "required": false, + "desc": "How frequently to scan the bucket, or to refresh the bucket index (if enabled), in order to look for changes (new blocks shipped by ingesters and blocks deleted by retention or compaction).", + "fieldValue": null, + "fieldDefaultValue": 900000000000, + "fieldFlag": "blocks-storage.bucket-store.sync-interval", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_concurrent", + "required": false, + "desc": "Max number of concurrent queries to execute against the long-term storage. The limit is shared across all tenants.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "blocks-storage.bucket-store.max-concurrent", + "fieldType": "int" + }, + { + "kind": "field", + "name": "tenant_sync_concurrency", + "required": false, + "desc": "Maximum number of concurrent tenants synching blocks.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "blocks-storage.bucket-store.tenant-sync-concurrency", + "fieldType": "int" + }, + { + "kind": "field", + "name": "block_sync_concurrency", + "required": false, + "desc": "Maximum number of concurrent blocks synching per tenant.", + "fieldValue": null, + "fieldDefaultValue": 20, + "fieldFlag": "blocks-storage.bucket-store.block-sync-concurrency", + "fieldType": "int" + }, + { + "kind": "field", + "name": "meta_sync_concurrency", + "required": false, + "desc": "Number of Go routines to use when syncing block meta files from object storage per tenant.", + "fieldValue": null, + "fieldDefaultValue": 20, + "fieldFlag": "blocks-storage.bucket-store.meta-sync-concurrency", + "fieldType": "int" + }, + { + "kind": "field", + "name": "consistency_delay", + "required": false, + "desc": "Minimum age of a block before it's being read. Set it to safe value (e.g 30m) if your object storage is eventually consistent. GCS and S3 are (roughly) strongly consistent.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "blocks-storage.bucket-store.consistency-delay", + "fieldType": "duration" + }, + { + "kind": "block", + "name": "index_cache", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "backend", + "required": false, + "desc": "The index cache backend type. Supported values: inmemory, memcached.", + "fieldValue": null, + "fieldDefaultValue": "inmemory", + "fieldFlag": "blocks-storage.bucket-store.index-cache.backend", + "fieldType": "string" + }, + { + "kind": "block", + "name": "inmemory", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "max_size_bytes", + "required": false, + "desc": "Maximum size in bytes of in-memory index cache used to speed up blocks index lookups (shared between all tenants).", + "fieldValue": null, + "fieldDefaultValue": 1073741824, + "fieldFlag": "blocks-storage.bucket-store.index-cache.inmemory.max-size-bytes", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "memcached", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "addresses", + "required": false, + "desc": "Comma separated list of memcached addresses. Supported prefixes are: dns+ (looked up as an A/AAAA query), dnssrv+ (looked up as a SRV query, dnssrvnoa+ (looked up as a SRV query, with no A/AAAA lookup made after that).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.bucket-store.index-cache.memcached.addresses", + "fieldType": "string" + }, + { + "kind": "field", + "name": "timeout", + "required": false, + "desc": "The socket read/write timeout.", + "fieldValue": null, + "fieldDefaultValue": 100000000, + "fieldFlag": "blocks-storage.bucket-store.index-cache.memcached.timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_idle_connections", + "required": false, + "desc": "The maximum number of idle connections that will be maintained per address.", + "fieldValue": null, + "fieldDefaultValue": 16, + "fieldFlag": "blocks-storage.bucket-store.index-cache.memcached.max-idle-connections", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_async_concurrency", + "required": false, + "desc": "The maximum number of concurrent asynchronous operations can occur.", + "fieldValue": null, + "fieldDefaultValue": 50, + "fieldFlag": "blocks-storage.bucket-store.index-cache.memcached.max-async-concurrency", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_async_buffer_size", + "required": false, + "desc": "The maximum number of enqueued asynchronous operations allowed.", + "fieldValue": null, + "fieldDefaultValue": 10000, + "fieldFlag": "blocks-storage.bucket-store.index-cache.memcached.max-async-buffer-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_get_multi_concurrency", + "required": false, + "desc": "The maximum number of concurrent connections running get operations. If set to 0, concurrency is unlimited.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "blocks-storage.bucket-store.index-cache.memcached.max-get-multi-concurrency", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_get_multi_batch_size", + "required": false, + "desc": "The maximum number of keys a single underlying get operation should run. If more keys are specified, internally keys are split into multiple batches and fetched concurrently, honoring the max concurrency. If set to 0, the max batch size is unlimited.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "blocks-storage.bucket-store.index-cache.memcached.max-get-multi-batch-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_item_size", + "required": false, + "desc": "The maximum size of an item stored in memcached. Bigger items are not stored. If set to 0, no maximum size is enforced.", + "fieldValue": null, + "fieldDefaultValue": 1048576, + "fieldFlag": "blocks-storage.bucket-store.index-cache.memcached.max-item-size", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "chunks_cache", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "backend", + "required": false, + "desc": "Backend for chunks cache, if not empty. Supported values: memcached.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.backend", + "fieldType": "string" + }, + { + "kind": "block", + "name": "memcached", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "addresses", + "required": false, + "desc": "Comma separated list of memcached addresses. Supported prefixes are: dns+ (looked up as an A/AAAA query), dnssrv+ (looked up as a SRV query, dnssrvnoa+ (looked up as a SRV query, with no A/AAAA lookup made after that).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.memcached.addresses", + "fieldType": "string" + }, + { + "kind": "field", + "name": "timeout", + "required": false, + "desc": "The socket read/write timeout.", + "fieldValue": null, + "fieldDefaultValue": 100000000, + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.memcached.timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_idle_connections", + "required": false, + "desc": "The maximum number of idle connections that will be maintained per address.", + "fieldValue": null, + "fieldDefaultValue": 16, + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.memcached.max-idle-connections", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_async_concurrency", + "required": false, + "desc": "The maximum number of concurrent asynchronous operations can occur.", + "fieldValue": null, + "fieldDefaultValue": 50, + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.memcached.max-async-concurrency", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_async_buffer_size", + "required": false, + "desc": "The maximum number of enqueued asynchronous operations allowed.", + "fieldValue": null, + "fieldDefaultValue": 10000, + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.memcached.max-async-buffer-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_get_multi_concurrency", + "required": false, + "desc": "The maximum number of concurrent connections running get operations. If set to 0, concurrency is unlimited.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.memcached.max-get-multi-concurrency", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_get_multi_batch_size", + "required": false, + "desc": "The maximum number of keys a single underlying get operation should run. If more keys are specified, internally keys are split into multiple batches and fetched concurrently, honoring the max concurrency. If set to 0, the max batch size is unlimited.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.memcached.max-get-multi-batch-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_item_size", + "required": false, + "desc": "The maximum size of an item stored in memcached. Bigger items are not stored. If set to 0, no maximum size is enforced.", + "fieldValue": null, + "fieldDefaultValue": 1048576, + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.memcached.max-item-size", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "subrange_size", + "required": false, + "desc": "Size of each subrange that bucket object is split into for better caching.", + "fieldValue": null, + "fieldDefaultValue": 16000, + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.subrange-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_get_range_requests", + "required": false, + "desc": "Maximum number of sub-GetRange requests that a single GetRange request can be split into when fetching chunks. Zero or negative value = unlimited number of sub-requests.", + "fieldValue": null, + "fieldDefaultValue": 3, + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.max-get-range-requests", + "fieldType": "int" + }, + { + "kind": "field", + "name": "attributes_ttl", + "required": false, + "desc": "TTL for caching object attributes for chunks. If the metadata cache is configured, attributes will be stored under this cache backend, otherwise attributes are stored in the chunks cache backend.", + "fieldValue": null, + "fieldDefaultValue": 604800000000000, + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.attributes-ttl", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "attributes_in_memory_max_items", + "required": false, + "desc": "Maximum number of object attribute items to keep in a first level in-memory LRU cache. Metadata will be stored and fetched in-memory before hitting the cache backend. 0 to disable the in-memory cache.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.attributes-in-memory-max-items", + "fieldType": "int" + }, + { + "kind": "field", + "name": "subrange_ttl", + "required": false, + "desc": "TTL for caching individual chunks subranges.", + "fieldValue": null, + "fieldDefaultValue": 86400000000000, + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.subrange-ttl", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "metadata_cache", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "backend", + "required": false, + "desc": "Backend for metadata cache, if not empty. Supported values: memcached.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.backend", + "fieldType": "string" + }, + { + "kind": "block", + "name": "memcached", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "addresses", + "required": false, + "desc": "Comma separated list of memcached addresses. Supported prefixes are: dns+ (looked up as an A/AAAA query), dnssrv+ (looked up as a SRV query, dnssrvnoa+ (looked up as a SRV query, with no A/AAAA lookup made after that).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.memcached.addresses", + "fieldType": "string" + }, + { + "kind": "field", + "name": "timeout", + "required": false, + "desc": "The socket read/write timeout.", + "fieldValue": null, + "fieldDefaultValue": 100000000, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.memcached.timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_idle_connections", + "required": false, + "desc": "The maximum number of idle connections that will be maintained per address.", + "fieldValue": null, + "fieldDefaultValue": 16, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.memcached.max-idle-connections", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_async_concurrency", + "required": false, + "desc": "The maximum number of concurrent asynchronous operations can occur.", + "fieldValue": null, + "fieldDefaultValue": 50, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.memcached.max-async-concurrency", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_async_buffer_size", + "required": false, + "desc": "The maximum number of enqueued asynchronous operations allowed.", + "fieldValue": null, + "fieldDefaultValue": 10000, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.memcached.max-async-buffer-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_get_multi_concurrency", + "required": false, + "desc": "The maximum number of concurrent connections running get operations. If set to 0, concurrency is unlimited.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.memcached.max-get-multi-concurrency", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_get_multi_batch_size", + "required": false, + "desc": "The maximum number of keys a single underlying get operation should run. If more keys are specified, internally keys are split into multiple batches and fetched concurrently, honoring the max concurrency. If set to 0, the max batch size is unlimited.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.memcached.max-get-multi-batch-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_item_size", + "required": false, + "desc": "The maximum size of an item stored in memcached. Bigger items are not stored. If set to 0, no maximum size is enforced.", + "fieldValue": null, + "fieldDefaultValue": 1048576, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.memcached.max-item-size", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "tenants_list_ttl", + "required": false, + "desc": "How long to cache list of tenants in the bucket.", + "fieldValue": null, + "fieldDefaultValue": 900000000000, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.tenants-list-ttl", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "tenant_blocks_list_ttl", + "required": false, + "desc": "How long to cache list of blocks for each tenant.", + "fieldValue": null, + "fieldDefaultValue": 300000000000, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.tenant-blocks-list-ttl", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "chunks_list_ttl", + "required": false, + "desc": "How long to cache list of chunks for a block.", + "fieldValue": null, + "fieldDefaultValue": 86400000000000, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.chunks-list-ttl", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "metafile_exists_ttl", + "required": false, + "desc": "How long to cache information that block metafile exists. Also used for user deletion mark file.", + "fieldValue": null, + "fieldDefaultValue": 7200000000000, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.metafile-exists-ttl", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "metafile_doesnt_exist_ttl", + "required": false, + "desc": "How long to cache information that block metafile doesn't exist. Also used for user deletion mark file.", + "fieldValue": null, + "fieldDefaultValue": 300000000000, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.metafile-doesnt-exist-ttl", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "metafile_content_ttl", + "required": false, + "desc": "How long to cache content of the metafile.", + "fieldValue": null, + "fieldDefaultValue": 86400000000000, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.metafile-content-ttl", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "metafile_max_size_bytes", + "required": false, + "desc": "Maximum size of metafile content to cache in bytes. Caching will be skipped if the content exceeds this size. This is useful to avoid network round trip for large content if the configured caching backend has an hard limit on cached items size (in this case, you should set this limit to the same limit in the caching backend).", + "fieldValue": null, + "fieldDefaultValue": 1048576, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.metafile-max-size-bytes", + "fieldType": "int" + }, + { + "kind": "field", + "name": "metafile_attributes_ttl", + "required": false, + "desc": "How long to cache attributes of the block metafile.", + "fieldValue": null, + "fieldDefaultValue": 604800000000000, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.metafile-attributes-ttl", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "block_index_attributes_ttl", + "required": false, + "desc": "How long to cache attributes of the block index.", + "fieldValue": null, + "fieldDefaultValue": 604800000000000, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.block-index-attributes-ttl", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "bucket_index_content_ttl", + "required": false, + "desc": "How long to cache content of the bucket index.", + "fieldValue": null, + "fieldDefaultValue": 300000000000, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.bucket-index-content-ttl", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "bucket_index_max_size_bytes", + "required": false, + "desc": "Maximum size of bucket index content to cache in bytes. Caching will be skipped if the content exceeds this size. This is useful to avoid network round trip for large content if the configured caching backend has an hard limit on cached items size (in this case, you should set this limit to the same limit in the caching backend).", + "fieldValue": null, + "fieldDefaultValue": 1048576, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.bucket-index-max-size-bytes", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "ignore_deletion_mark_delay", + "required": false, + "desc": "Duration after which the blocks marked for deletion will be filtered out while fetching blocks. The idea of ignore-deletion-marks-delay is to ignore blocks that are marked for deletion with some delay. This ensures store can still serve blocks that are meant to be deleted but do not have a replacement yet. Default is 6h, half of the default value for -compactor.deletion-delay.", + "fieldValue": null, + "fieldDefaultValue": 21600000000000, + "fieldFlag": "blocks-storage.bucket-store.ignore-deletion-marks-delay", + "fieldType": "duration" + }, + { + "kind": "block", + "name": "bucket_index", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "enabled", + "required": false, + "desc": "True to enable querier and store-gateway to discover blocks in the storage via bucket index instead of bucket scanning.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "blocks-storage.bucket-store.bucket-index.enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "update_on_error_interval", + "required": false, + "desc": "How frequently a bucket index, which previously failed to load, should be tried to load again. This option is used only by querier.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "blocks-storage.bucket-store.bucket-index.update-on-error-interval", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "idle_timeout", + "required": false, + "desc": "How long a unused bucket index should be cached. Once this timeout expires, the unused bucket index is removed from the in-memory cache. This option is used only by querier.", + "fieldValue": null, + "fieldDefaultValue": 3600000000000, + "fieldFlag": "blocks-storage.bucket-store.bucket-index.idle-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_stale_period", + "required": false, + "desc": "The maximum allowed age of a bucket index (last updated) before queries start failing because the bucket index is too old. The bucket index is periodically updated by the compactor, while this check is enforced in the querier (at query time).", + "fieldValue": null, + "fieldDefaultValue": 3600000000000, + "fieldFlag": "blocks-storage.bucket-store.bucket-index.max-stale-period", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "max_chunk_pool_bytes", + "required": false, + "desc": "Max size - in bytes - of a chunks pool, used to reduce memory allocations. The pool is shared across all tenants. 0 to disable the limit.", + "fieldValue": null, + "fieldDefaultValue": 2147483648, + "fieldFlag": "blocks-storage.bucket-store.max-chunk-pool-bytes", + "fieldType": "int" + }, + { + "kind": "field", + "name": "series_hash_cache_max_size_bytes", + "required": false, + "desc": "Max size - in bytes - of the in-memory series hash cache. The cache is shared across all tenants and it's used only when query sharding is enabled.", + "fieldValue": null, + "fieldDefaultValue": 1073741824, + "fieldFlag": "blocks-storage.bucket-store.series-hash-cache-max-size-bytes", + "fieldType": "int" + }, + { + "kind": "field", + "name": "index_header_lazy_loading_enabled", + "required": false, + "desc": "If enabled, store-gateway will lazy load an index-header only once required by a query.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "blocks-storage.bucket-store.index-header-lazy-loading-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "index_header_lazy_loading_idle_timeout", + "required": false, + "desc": "If index-header lazy loading is enabled and this setting is \u003e 0, the store-gateway will offload unused index-headers after 'idle timeout' inactivity.", + "fieldValue": null, + "fieldDefaultValue": 1200000000000, + "fieldFlag": "blocks-storage.bucket-store.index-header-lazy-loading-idle-timeout", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "tsdb", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "dir", + "required": false, + "desc": "Local directory to store TSDBs in the ingesters.", + "fieldValue": null, + "fieldDefaultValue": "tsdb", + "fieldFlag": "blocks-storage.tsdb.dir", + "fieldType": "string" + }, + { + "kind": "field", + "name": "block_ranges_period", + "required": false, + "desc": "TSDB blocks range period.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "blocks-storage.tsdb.block-ranges-period", + "fieldType": "list of duration" + }, + { + "kind": "field", + "name": "retention_period", + "required": false, + "desc": "TSDB blocks retention in the ingester before a block is removed. This should be larger than the block_ranges_period and large enough to give store-gateways and queriers enough time to discover newly uploaded blocks.", + "fieldValue": null, + "fieldDefaultValue": 21600000000000, + "fieldFlag": "blocks-storage.tsdb.retention-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "ship_interval", + "required": false, + "desc": "How frequently the TSDB blocks are scanned and new ones are shipped to the storage. 0 means shipping is disabled.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "blocks-storage.tsdb.ship-interval", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "ship_concurrency", + "required": false, + "desc": "Maximum number of tenants concurrently shipping blocks to the storage.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "blocks-storage.tsdb.ship-concurrency", + "fieldType": "int" + }, + { + "kind": "field", + "name": "head_compaction_interval", + "required": false, + "desc": "How frequently ingesters try to compact TSDB head. Block is only created if data covers smallest block range. Must be greater than 0 and max 5 minutes.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "blocks-storage.tsdb.head-compaction-interval", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "head_compaction_concurrency", + "required": false, + "desc": "Maximum number of tenants concurrently compacting TSDB head into a new block", + "fieldValue": null, + "fieldDefaultValue": 5, + "fieldFlag": "blocks-storage.tsdb.head-compaction-concurrency", + "fieldType": "int" + }, + { + "kind": "field", + "name": "head_compaction_idle_timeout", + "required": false, + "desc": "If TSDB head is idle for this duration, it is compacted. Note that up to 25% jitter is added to the value to avoid ingesters compacting concurrently. 0 means disabled.", + "fieldValue": null, + "fieldDefaultValue": 3600000000000, + "fieldFlag": "blocks-storage.tsdb.head-compaction-idle-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "head_chunks_write_buffer_size_bytes", + "required": false, + "desc": "The write buffer size used by the head chunks mapper. Lower values reduce memory utilisation on clusters with a large number of tenants at the cost of increased disk I/O operations.", + "fieldValue": null, + "fieldDefaultValue": 4194304, + "fieldFlag": "blocks-storage.tsdb.head-chunks-write-buffer-size-bytes", + "fieldType": "int" + }, + { + "kind": "field", + "name": "stripe_size", + "required": false, + "desc": "The number of shards of series to use in TSDB (must be a power of 2). Reducing this will decrease memory footprint, but can negatively impact performance.", + "fieldValue": null, + "fieldDefaultValue": 16384, + "fieldFlag": "blocks-storage.tsdb.stripe-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "wal_compression_enabled", + "required": false, + "desc": "True to enable TSDB WAL compression.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "blocks-storage.tsdb.wal-compression-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "wal_segment_size_bytes", + "required": false, + "desc": "TSDB WAL segments files max size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 134217728, + "fieldFlag": "blocks-storage.tsdb.wal-segment-size-bytes", + "fieldType": "int" + }, + { + "kind": "field", + "name": "flush_blocks_on_shutdown", + "required": false, + "desc": "True to flush blocks to storage on shutdown. If false, incomplete blocks will be reused after restart.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "blocks-storage.tsdb.flush-blocks-on-shutdown", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "close_idle_tsdb_timeout", + "required": false, + "desc": "If TSDB has not received any data for this duration, and all blocks from TSDB have been shipped, TSDB is closed and deleted from local disk. If set to positive value, this value should be equal or higher than -querier.query-ingesters-within flag to make sure that TSDB is not closed prematurely, which could cause partial query results. 0 or negative value disables closing of idle TSDB.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "blocks-storage.tsdb.close-idle-tsdb-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "memory_snapshot_on_shutdown", + "required": false, + "desc": "True to enable snapshotting of in-memory TSDB data on disk when shutting down.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "blocks-storage.tsdb.memory-snapshot-on-shutdown", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "series_hash_cache_max_size_bytes", + "required": false, + "desc": "Max size - in bytes - of the in-memory series hash cache. The cache is shared across all tenants and it's used only when query sharding is enabled.", + "fieldValue": null, + "fieldDefaultValue": 1073741824, + "fieldFlag": "blocks-storage.tsdb.series-hash-cache-max-size-bytes", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_tsdb_opening_concurrency_on_startup", + "required": false, + "desc": "limit the number of concurrently opening TSDB's on startup", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "blocks-storage.tsdb.max-tsdb-opening-concurrency-on-startup", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "compactor", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "block_ranges", + "required": false, + "desc": "List of compaction time ranges.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "compactor.block-ranges", + "fieldType": "list of duration" + }, + { + "kind": "field", + "name": "block_sync_concurrency", + "required": false, + "desc": "Number of Go routines to use when syncing block index and chunks files from the long term storage.", + "fieldValue": null, + "fieldDefaultValue": 20, + "fieldFlag": "compactor.block-sync-concurrency", + "fieldType": "int" + }, + { + "kind": "field", + "name": "meta_sync_concurrency", + "required": false, + "desc": "Number of Go routines to use when syncing block meta files from the long term storage.", + "fieldValue": null, + "fieldDefaultValue": 20, + "fieldFlag": "compactor.meta-sync-concurrency", + "fieldType": "int" + }, + { + "kind": "field", + "name": "consistency_delay", + "required": false, + "desc": "Minimum age of fresh (non-compacted) blocks before they are being processed. Malformed blocks older than the maximum of consistency-delay and 48h0m0s will be removed.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "compactor.consistency-delay", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "data_dir", + "required": false, + "desc": "Data directory in which to cache blocks and process compactions", + "fieldValue": null, + "fieldDefaultValue": "./data", + "fieldFlag": "compactor.data-dir", + "fieldType": "string" + }, + { + "kind": "field", + "name": "compaction_interval", + "required": false, + "desc": "The frequency at which the compaction runs", + "fieldValue": null, + "fieldDefaultValue": 3600000000000, + "fieldFlag": "compactor.compaction-interval", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "compaction_retries", + "required": false, + "desc": "How many times to retry a failed compaction within a single compaction run.", + "fieldValue": null, + "fieldDefaultValue": 3, + "fieldFlag": "compactor.compaction-retries", + "fieldType": "int" + }, + { + "kind": "field", + "name": "compaction_concurrency", + "required": false, + "desc": "Max number of concurrent compactions running.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "compactor.compaction-concurrency", + "fieldType": "int" + }, + { + "kind": "field", + "name": "cleanup_interval", + "required": false, + "desc": "How frequently compactor should run blocks cleanup and maintenance, as well as update the bucket index.", + "fieldValue": null, + "fieldDefaultValue": 900000000000, + "fieldFlag": "compactor.cleanup-interval", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "cleanup_concurrency", + "required": false, + "desc": "Max number of tenants for which blocks cleanup and maintenance should run concurrently.", + "fieldValue": null, + "fieldDefaultValue": 20, + "fieldFlag": "compactor.cleanup-concurrency", + "fieldType": "int" + }, + { + "kind": "field", + "name": "deletion_delay", + "required": false, + "desc": "Time before a block marked for deletion is deleted from bucket. If not 0, blocks will be marked for deletion and compactor component will permanently delete blocks marked for deletion from the bucket. If 0, blocks will be deleted straight away. Note that deleting blocks immediately can cause query failures.", + "fieldValue": null, + "fieldDefaultValue": 43200000000000, + "fieldFlag": "compactor.deletion-delay", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "tenant_cleanup_delay", + "required": false, + "desc": "For tenants marked for deletion, this is time between deleting of last block, and doing final cleanup (marker files, debug files) of the tenant.", + "fieldValue": null, + "fieldDefaultValue": 21600000000000, + "fieldFlag": "compactor.tenant-cleanup-delay", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "enabled_tenants", + "required": false, + "desc": "Comma separated list of tenants that can be compacted. If specified, only these tenants will be compacted by compactor, otherwise all tenants can be compacted. Subject to sharding.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "compactor.enabled-tenants", + "fieldType": "string" + }, + { + "kind": "field", + "name": "disabled_tenants", + "required": false, + "desc": "Comma separated list of tenants that cannot be compacted by this compactor. If specified, and compactor would normally pick given tenant for compaction (via -compactor.enabled-tenants or sharding), it will be ignored instead.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "compactor.disabled-tenants", + "fieldType": "string" + }, + { + "kind": "field", + "name": "sharding_enabled", + "required": false, + "desc": "Shard tenants across multiple compactor instances. Sharding is required if you run multiple compactor instances, in order to coordinate compactions and avoid race conditions leading to the same tenant blocks simultaneously compacted by different instances.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "compactor.sharding-enabled", + "fieldType": "boolean" + }, + { + "kind": "block", + "name": "sharding_ring", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "kvstore", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "store", + "required": false, + "desc": "Backend storage to use for the ring. Supported values are: consul, etcd, inmemory, memberlist, multi.", + "fieldValue": null, + "fieldDefaultValue": "consul", + "fieldFlag": "compactor.ring.store", + "fieldType": "string" + }, + { + "kind": "field", + "name": "prefix", + "required": false, + "desc": "The prefix for the keys in the store. Should end with a /.", + "fieldValue": null, + "fieldDefaultValue": "collectors/", + "fieldFlag": "compactor.ring.prefix", + "fieldType": "string" + }, + { + "kind": "block", + "name": "consul", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "host", + "required": false, + "desc": "Hostname and port of Consul.", + "fieldValue": null, + "fieldDefaultValue": "localhost:8500", + "fieldFlag": "compactor.ring.consul.hostname", + "fieldType": "string" + }, + { + "kind": "field", + "name": "acl_token", + "required": false, + "desc": "ACL Token used to interact with Consul.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "compactor.ring.consul.acl-token", + "fieldType": "string" + }, + { + "kind": "field", + "name": "http_client_timeout", + "required": false, + "desc": "HTTP timeout when talking to Consul", + "fieldValue": null, + "fieldDefaultValue": 20000000000, + "fieldFlag": "compactor.ring.consul.client-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "consistent_reads", + "required": false, + "desc": "Enable consistent reads to Consul.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "compactor.ring.consul.consistent-reads", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "watch_rate_limit", + "required": false, + "desc": "Rate limit when watching key or prefix in Consul, in requests per second. 0 disables the rate limit.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "compactor.ring.consul.watch-rate-limit", + "fieldType": "float" + }, + { + "kind": "field", + "name": "watch_burst_size", + "required": false, + "desc": "Burst size used in rate limit. Values less than 1 are treated as 1.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "compactor.ring.consul.watch-burst-size", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "etcd", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoints", + "required": false, + "desc": "The etcd endpoints to connect to.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "compactor.ring.etcd.endpoints", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "dial_timeout", + "required": false, + "desc": "The dial timeout for the etcd connection.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "compactor.ring.etcd.dial-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "The maximum number of retries to do for failed ops.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "compactor.ring.etcd.max-retries", + "fieldType": "int" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "compactor.ring.etcd.tls-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "compactor.ring.etcd.tls-cert-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "compactor.ring.etcd.tls-key-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "compactor.ring.etcd.tls-ca-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "compactor.ring.etcd.tls-server-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "compactor.ring.etcd.tls-insecure-skip-verify", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "username", + "required": false, + "desc": "Etcd username.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "compactor.ring.etcd.username", + "fieldType": "string" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "Etcd password.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "compactor.ring.etcd.password", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "multi", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "primary", + "required": false, + "desc": "Primary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "compactor.ring.multi.primary", + "fieldType": "string" + }, + { + "kind": "field", + "name": "secondary", + "required": false, + "desc": "Secondary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "compactor.ring.multi.secondary", + "fieldType": "string" + }, + { + "kind": "field", + "name": "mirror_enabled", + "required": false, + "desc": "Mirror writes to secondary store.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "compactor.ring.multi.mirror-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "mirror_timeout", + "required": false, + "desc": "Timeout for storing value to secondary store.", + "fieldValue": null, + "fieldDefaultValue": 2000000000, + "fieldFlag": "compactor.ring.multi.mirror-timeout", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "heartbeat_period", + "required": false, + "desc": "Period at which to heartbeat to the ring. 0 = disabled.", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "compactor.ring.heartbeat-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "heartbeat_timeout", + "required": false, + "desc": "The heartbeat timeout after which compactors are considered unhealthy within the ring. 0 = never (timeout disabled).", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "compactor.ring.heartbeat-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "wait_stability_min_duration", + "required": false, + "desc": "Minimum time to wait for ring stability at startup. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "compactor.ring.wait-stability-min-duration", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "wait_stability_max_duration", + "required": false, + "desc": "Maximum time to wait for ring stability at startup. If the compactor ring keeps changing after this period of time, the compactor will start anyway.", + "fieldValue": null, + "fieldDefaultValue": 300000000000, + "fieldFlag": "compactor.ring.wait-stability-max-duration", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "instance_interface_names", + "required": false, + "desc": "Name of network interface to read address from.", + "fieldValue": null, + "fieldDefaultValue": [ + "eth0", + "en0" + ], + "fieldFlag": "compactor.ring.instance-interface-names", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "wait_active_instance_timeout", + "required": false, + "desc": "Timeout for waiting on compactor to become ACTIVE in the ring.", + "fieldValue": null, + "fieldDefaultValue": 600000000000, + "fieldFlag": "compactor.ring.wait-active-instance-timeout", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "compaction_strategy", + "required": false, + "desc": "The compaction strategy to use. Supported values are: default, split-and-merge.", + "fieldValue": null, + "fieldDefaultValue": "default", + "fieldFlag": "compactor.compaction-strategy", + "fieldType": "string" + }, + { + "kind": "field", + "name": "compaction_jobs_order", + "required": false, + "desc": "The sorting to use when deciding which compacton jobs should run first for a given tenant. Changing this setting is not supported by the default compaction strategy. Supported values are: default, split-and-merge.", + "fieldValue": null, + "fieldDefaultValue": "smallest-range-oldest-blocks-first", + "fieldFlag": "compactor.compaction-jobs-order", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "store_gateway", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "sharding_enabled", + "required": false, + "desc": "Shard blocks across multiple store gateway instances. This option needs be set both on the store-gateway and querier when running in microservices mode.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "store-gateway.sharding-enabled", + "fieldType": "boolean" + }, + { + "kind": "block", + "name": "sharding_ring", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "kvstore", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "store", + "required": false, + "desc": "Backend storage to use for the ring. Supported values are: consul, etcd, inmemory, memberlist, multi.", + "fieldValue": null, + "fieldDefaultValue": "consul", + "fieldFlag": "store-gateway.sharding-ring.store", + "fieldType": "string" + }, + { + "kind": "field", + "name": "prefix", + "required": false, + "desc": "The prefix for the keys in the store. Should end with a /.", + "fieldValue": null, + "fieldDefaultValue": "collectors/", + "fieldFlag": "store-gateway.sharding-ring.prefix", + "fieldType": "string" + }, + { + "kind": "block", + "name": "consul", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "host", + "required": false, + "desc": "Hostname and port of Consul.", + "fieldValue": null, + "fieldDefaultValue": "localhost:8500", + "fieldFlag": "store-gateway.sharding-ring.consul.hostname", + "fieldType": "string" + }, + { + "kind": "field", + "name": "acl_token", + "required": false, + "desc": "ACL Token used to interact with Consul.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store-gateway.sharding-ring.consul.acl-token", + "fieldType": "string" + }, + { + "kind": "field", + "name": "http_client_timeout", + "required": false, + "desc": "HTTP timeout when talking to Consul", + "fieldValue": null, + "fieldDefaultValue": 20000000000, + "fieldFlag": "store-gateway.sharding-ring.consul.client-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "consistent_reads", + "required": false, + "desc": "Enable consistent reads to Consul.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "store-gateway.sharding-ring.consul.consistent-reads", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "watch_rate_limit", + "required": false, + "desc": "Rate limit when watching key or prefix in Consul, in requests per second. 0 disables the rate limit.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "store-gateway.sharding-ring.consul.watch-rate-limit", + "fieldType": "float" + }, + { + "kind": "field", + "name": "watch_burst_size", + "required": false, + "desc": "Burst size used in rate limit. Values less than 1 are treated as 1.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "store-gateway.sharding-ring.consul.watch-burst-size", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "etcd", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoints", + "required": false, + "desc": "The etcd endpoints to connect to.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "store-gateway.sharding-ring.etcd.endpoints", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "dial_timeout", + "required": false, + "desc": "The dial timeout for the etcd connection.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "store-gateway.sharding-ring.etcd.dial-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "The maximum number of retries to do for failed ops.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "store-gateway.sharding-ring.etcd.max-retries", + "fieldType": "int" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "store-gateway.sharding-ring.etcd.tls-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store-gateway.sharding-ring.etcd.tls-cert-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store-gateway.sharding-ring.etcd.tls-key-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store-gateway.sharding-ring.etcd.tls-ca-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store-gateway.sharding-ring.etcd.tls-server-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "store-gateway.sharding-ring.etcd.tls-insecure-skip-verify", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "username", + "required": false, + "desc": "Etcd username.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store-gateway.sharding-ring.etcd.username", + "fieldType": "string" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "Etcd password.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store-gateway.sharding-ring.etcd.password", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "multi", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "primary", + "required": false, + "desc": "Primary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store-gateway.sharding-ring.multi.primary", + "fieldType": "string" + }, + { + "kind": "field", + "name": "secondary", + "required": false, + "desc": "Secondary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store-gateway.sharding-ring.multi.secondary", + "fieldType": "string" + }, + { + "kind": "field", + "name": "mirror_enabled", + "required": false, + "desc": "Mirror writes to secondary store.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "store-gateway.sharding-ring.multi.mirror-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "mirror_timeout", + "required": false, + "desc": "Timeout for storing value to secondary store.", + "fieldValue": null, + "fieldDefaultValue": 2000000000, + "fieldFlag": "store-gateway.sharding-ring.multi.mirror-timeout", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "heartbeat_period", + "required": false, + "desc": "Period at which to heartbeat to the ring. 0 = disabled.", + "fieldValue": null, + "fieldDefaultValue": 15000000000, + "fieldFlag": "store-gateway.sharding-ring.heartbeat-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "heartbeat_timeout", + "required": false, + "desc": "The heartbeat timeout after which store gateways are considered unhealthy within the ring. 0 = never (timeout disabled). This option needs be set both on the store-gateway and querier when running in microservices mode.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "store-gateway.sharding-ring.heartbeat-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "replication_factor", + "required": false, + "desc": "The replication factor to use when sharding blocks. This option needs be set both on the store-gateway and querier when running in microservices mode.", + "fieldValue": null, + "fieldDefaultValue": 3, + "fieldFlag": "store-gateway.sharding-ring.replication-factor", + "fieldType": "int" + }, + { + "kind": "field", + "name": "tokens_file_path", + "required": false, + "desc": "File path where tokens are stored. If empty, tokens are not stored at shutdown and restored at startup.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store-gateway.sharding-ring.tokens-file-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "zone_awareness_enabled", + "required": false, + "desc": "True to enable zone-awareness and replicate blocks across different availability zones.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "store-gateway.sharding-ring.zone-awareness-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "wait_stability_min_duration", + "required": false, + "desc": "Minimum time to wait for ring stability at startup. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "store-gateway.sharding-ring.wait-stability-min-duration", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "wait_stability_max_duration", + "required": false, + "desc": "Maximum time to wait for ring stability at startup. If the store-gateway ring keeps changing after this period of time, the store-gateway will start anyway.", + "fieldValue": null, + "fieldDefaultValue": 300000000000, + "fieldFlag": "store-gateway.sharding-ring.wait-stability-max-duration", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "instance_interface_names", + "required": false, + "desc": "Name of network interface to read address from.", + "fieldValue": null, + "fieldDefaultValue": [ + "eth0", + "en0" + ], + "fieldFlag": "store-gateway.sharding-ring.instance-interface-names", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "instance_availability_zone", + "required": false, + "desc": "The availability zone where this instance is running. Required if zone-awareness is enabled.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store-gateway.sharding-ring.instance-availability-zone", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "sharding_strategy", + "required": false, + "desc": "The sharding strategy to use. Supported values are: default, shuffle-sharding.", + "fieldValue": null, + "fieldDefaultValue": "default", + "fieldFlag": "store-gateway.sharding-strategy", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "purger", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "enable", + "required": false, + "desc": "Enable purger to allow deletion of series. Be aware that Delete series feature is still experimental", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "purger.enable", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "num_workers", + "required": false, + "desc": "Number of workers executing delete plans in parallel", + "fieldValue": null, + "fieldDefaultValue": 2, + "fieldFlag": "purger.num-workers", + "fieldType": "int" + }, + { + "kind": "field", + "name": "object_store_type", + "required": false, + "desc": "Name of the object store to use for storing delete plans", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "purger.object-store-type", + "fieldType": "string" + }, + { + "kind": "field", + "name": "delete_request_cancel_period", + "required": false, + "desc": "Allow cancellation of delete request until duration after they are created. Data would be deleted only after delete requests have been older than this duration. Ideally this should be set to at least 24h.", + "fieldValue": null, + "fieldDefaultValue": 86400000000000, + "fieldFlag": "purger.delete-request-cancel-period", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "tenant_federation", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "enabled", + "required": false, + "desc": "If enabled on all services, queries can be federated across multiple tenants. The tenant IDs involved need to be specified separated by a `|` character in the `X-Scope-OrgID` header (experimental).", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "tenant-federation.enabled", + "fieldType": "boolean" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "ruler", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "external_url", + "required": false, + "desc": "URL of alerts return path.", + "fieldValue": null, + "fieldDefaultValue": {}, + "fieldFlag": "ruler.external.url", + "fieldType": "url" + }, + { + "kind": "block", + "name": "ruler_client", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "max_recv_msg_size", + "required": false, + "desc": "gRPC client max receive message size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 104857600, + "fieldFlag": "ruler.client.grpc-max-recv-msg-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_send_msg_size", + "required": false, + "desc": "gRPC client max send message size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 16777216, + "fieldFlag": "ruler.client.grpc-max-send-msg-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "grpc_compression", + "required": false, + "desc": "Use compression when sending messages. Supported values are: 'gzip', 'snappy' and '' (disable compression)", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.client.grpc-compression", + "fieldType": "string" + }, + { + "kind": "field", + "name": "rate_limit", + "required": false, + "desc": "Rate limit for gRPC client; 0 means disabled.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ruler.client.grpc-client-rate-limit", + "fieldType": "float" + }, + { + "kind": "field", + "name": "rate_limit_burst", + "required": false, + "desc": "Rate limit burst for gRPC client.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ruler.client.grpc-client-rate-limit-burst", + "fieldType": "int" + }, + { + "kind": "field", + "name": "backoff_on_ratelimits", + "required": false, + "desc": "Enable backoff and retry when we hit ratelimits.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler.client.backoff-on-ratelimits", + "fieldType": "boolean" + }, + { + "kind": "block", + "name": "backoff_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "min_period", + "required": false, + "desc": "Minimum delay when backing off.", + "fieldValue": null, + "fieldDefaultValue": 100000000, + "fieldFlag": "ruler.client.backoff-min-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_period", + "required": false, + "desc": "Maximum delay when backing off.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "ruler.client.backoff-max-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Number of times to backoff and retry before failing.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "ruler.client.backoff-retries", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler.client.tls-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.client.tls-cert-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.client.tls-key-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.client.tls-ca-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.client.tls-server-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler.client.tls-insecure-skip-verify", + "fieldType": "boolean" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "evaluation_interval", + "required": false, + "desc": "How frequently to evaluate rules", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "ruler.evaluation-interval", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "poll_interval", + "required": false, + "desc": "How frequently to poll for rule changes", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "ruler.poll-interval", + "fieldType": "duration" + }, + { + "kind": "block", + "name": "storage", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "type", + "required": false, + "desc": "Method to use for backend rule storage (azure, gcs, s3, swift, local)", + "fieldValue": null, + "fieldDefaultValue": "local", + "fieldFlag": "ruler.storage.type", + "fieldType": "string" + }, + { + "kind": "block", + "name": "azure", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "environment", + "required": false, + "desc": "Azure Cloud environment. Supported values are: AzureGlobal, AzureChinaCloud, AzureGermanCloud, AzureUSGovernment.", + "fieldValue": null, + "fieldDefaultValue": "AzureGlobal", + "fieldFlag": "ruler.storage.azure.environment", + "fieldType": "string" + }, + { + "kind": "field", + "name": "container_name", + "required": false, + "desc": "Name of the blob container used to store chunks. This container must be created prior to execution.", + "fieldValue": null, + "fieldDefaultValue": "cortex", + "fieldFlag": "ruler.storage.azure.container-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "account_name", + "required": false, + "desc": "The Microsoft Azure account name to be used", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.storage.azure.account-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "account_key", + "required": false, + "desc": "The Microsoft Azure account key to use.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.storage.azure.account-key", + "fieldType": "string" + }, + { + "kind": "field", + "name": "download_buffer_size", + "required": false, + "desc": "Preallocated buffer size for downloads.", + "fieldValue": null, + "fieldDefaultValue": 512000, + "fieldFlag": "ruler.storage.azure.download-buffer-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "upload_buffer_size", + "required": false, + "desc": "Preallocated buffer size for uploads.", + "fieldValue": null, + "fieldDefaultValue": 256000, + "fieldFlag": "ruler.storage.azure.upload-buffer-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "upload_buffer_count", + "required": false, + "desc": "Number of buffers used to used to upload a chunk.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "ruler.storage.azure.download-buffer-count", + "fieldType": "int" + }, + { + "kind": "field", + "name": "request_timeout", + "required": false, + "desc": "Timeout for requests made against azure blob storage.", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "ruler.storage.azure.request-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Number of retries for a request which times out.", + "fieldValue": null, + "fieldDefaultValue": 5, + "fieldFlag": "ruler.storage.azure.max-retries", + "fieldType": "int" + }, + { + "kind": "field", + "name": "min_retry_delay", + "required": false, + "desc": "Minimum time to wait before retrying a request.", + "fieldValue": null, + "fieldDefaultValue": 10000000, + "fieldFlag": "ruler.storage.azure.min-retry-delay", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_retry_delay", + "required": false, + "desc": "Maximum time to wait before retrying a request.", + "fieldValue": null, + "fieldDefaultValue": 500000000, + "fieldFlag": "ruler.storage.azure.max-retry-delay", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "gcs", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "bucket_name", + "required": false, + "desc": "Name of GCS bucket. Please refer to https://cloud.google.com/docs/authentication/production for more information about how to configure authentication.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.storage.gcs.bucketname", + "fieldType": "string" + }, + { + "kind": "field", + "name": "chunk_buffer_size", + "required": false, + "desc": "The size of the buffer that GCS client for each PUT request. 0 to disable buffering.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ruler.storage.gcs.chunk-buffer-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "request_timeout", + "required": false, + "desc": "The duration after which the requests to GCS should be timed out.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ruler.storage.gcs.request-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "enable_opencensus", + "required": false, + "desc": "Enabled OpenCensus (OC) instrumentation for all requests.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "ruler.storage.gcs.enable-opencensus", + "fieldType": "boolean" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "s3", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "s3", + "required": false, + "desc": "S3 endpoint URL with escaped Key and Secret encoded. If only region is specified as a host, proper endpoint will be deduced. Use inmemory:///\u003cbucket-name\u003e to use a mock in-memory implementation.", + "fieldValue": null, + "fieldDefaultValue": {}, + "fieldFlag": "ruler.storage.s3.url", + "fieldType": "url" + }, + { + "kind": "field", + "name": "s3forcepathstyle", + "required": false, + "desc": "Set this to `true` to force the request to use path-style addressing.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler.storage.s3.force-path-style", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "bucketnames", + "required": false, + "desc": "Comma separated list of bucket names to evenly distribute chunks over. Overrides any buckets specified in s3.url flag", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.storage.s3.buckets", + "fieldType": "string" + }, + { + "kind": "field", + "name": "endpoint", + "required": false, + "desc": "S3 Endpoint to connect to.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.storage.s3.endpoint", + "fieldType": "string" + }, + { + "kind": "field", + "name": "region", + "required": false, + "desc": "AWS region to use.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.storage.s3.region", + "fieldType": "string" + }, + { + "kind": "field", + "name": "access_key_id", + "required": false, + "desc": "AWS Access Key ID", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.storage.s3.access-key-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "secret_access_key", + "required": false, + "desc": "AWS Secret Access Key", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.storage.s3.secret-access-key", + "fieldType": "string" + }, + { + "kind": "field", + "name": "insecure", + "required": false, + "desc": "Disable https on s3 connection.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler.storage.s3.insecure", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "sse_encryption", + "required": false, + "desc": "Enable AWS Server Side Encryption [Deprecated: Use .sse instead. if s3.sse-encryption is enabled, it assumes .sse.type SSE-S3]", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler.storage.s3.sse-encryption", + "fieldType": "boolean" + }, + { + "kind": "block", + "name": "http_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "idle_conn_timeout", + "required": false, + "desc": "The maximum amount of time an idle connection will be held open.", + "fieldValue": null, + "fieldDefaultValue": 90000000000, + "fieldFlag": "ruler.storage.s3.http.idle-conn-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "response_header_timeout", + "required": false, + "desc": "If non-zero, specifies the amount of time to wait for a server's response headers after fully writing the request.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ruler.storage.s3.http.response-header-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "insecure_skip_verify", + "required": false, + "desc": "Set to false to skip verifying the certificate chain and hostname.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler.storage.s3.http.insecure-skip-verify", + "fieldType": "boolean" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "signature_version", + "required": false, + "desc": "The signature version to use for authenticating against S3. Supported values are: v4, v2.", + "fieldValue": null, + "fieldDefaultValue": "v4", + "fieldFlag": "ruler.storage.s3.signature-version", + "fieldType": "string" + }, + { + "kind": "block", + "name": "sse", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "type", + "required": false, + "desc": "Enable AWS Server Side Encryption. Supported values: SSE-KMS, SSE-S3.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.storage.s3.sse.type", + "fieldType": "string" + }, + { + "kind": "field", + "name": "kms_key_id", + "required": false, + "desc": "KMS Key ID used to encrypt objects in S3", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.storage.s3.sse.kms-key-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "kms_encryption_context", + "required": false, + "desc": "KMS Encryption Context used for object encryption. It expects JSON formatted string.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.storage.s3.sse.kms-encryption-context", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "swift", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "auth_version", + "required": false, + "desc": "OpenStack Swift authentication API version. 0 to autodetect.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ruler.storage.swift.auth-version", + "fieldType": "int" + }, + { + "kind": "field", + "name": "auth_url", + "required": false, + "desc": "OpenStack Swift authentication URL", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.storage.swift.auth-url", + "fieldType": "string" + }, + { + "kind": "field", + "name": "username", + "required": false, + "desc": "OpenStack Swift username.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.storage.swift.username", + "fieldType": "string" + }, + { + "kind": "field", + "name": "user_domain_name", + "required": false, + "desc": "OpenStack Swift user's domain name.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.storage.swift.user-domain-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "user_domain_id", + "required": false, + "desc": "OpenStack Swift user's domain ID.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.storage.swift.user-domain-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "user_id", + "required": false, + "desc": "OpenStack Swift user ID.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.storage.swift.user-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "OpenStack Swift API key.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.storage.swift.password", + "fieldType": "string" + }, + { + "kind": "field", + "name": "domain_id", + "required": false, + "desc": "OpenStack Swift user's domain ID.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.storage.swift.domain-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "domain_name", + "required": false, + "desc": "OpenStack Swift user's domain name.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.storage.swift.domain-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_id", + "required": false, + "desc": "OpenStack Swift project ID (v2,v3 auth only).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.storage.swift.project-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_name", + "required": false, + "desc": "OpenStack Swift project name (v2,v3 auth only).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.storage.swift.project-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_domain_id", + "required": false, + "desc": "ID of the OpenStack Swift project's domain (v3 auth only), only needed if it differs the from user domain.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.storage.swift.project-domain-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_domain_name", + "required": false, + "desc": "Name of the OpenStack Swift project's domain (v3 auth only), only needed if it differs from the user domain.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.storage.swift.project-domain-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "region_name", + "required": false, + "desc": "OpenStack Swift Region to use (v2,v3 auth only).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.storage.swift.region-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "container_name", + "required": false, + "desc": "Name of the OpenStack Swift container to put chunks in.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.storage.swift.container-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Max retries on requests error.", + "fieldValue": null, + "fieldDefaultValue": 3, + "fieldFlag": "ruler.storage.swift.max-retries", + "fieldType": "int" + }, + { + "kind": "field", + "name": "connect_timeout", + "required": false, + "desc": "Time after which a connection attempt is aborted.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "ruler.storage.swift.connect-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "request_timeout", + "required": false, + "desc": "Time after which an idle request is aborted. The timeout watchdog is reset each time some data is received, so the timeout triggers after X time no data is received on a request.", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "ruler.storage.swift.request-timeout", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "local", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "directory", + "required": false, + "desc": "Directory to scan for rules", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.storage.local.directory", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "rule_path", + "required": false, + "desc": "file path to store temporary rule files for the prometheus rule managers", + "fieldValue": null, + "fieldDefaultValue": "/rules", + "fieldFlag": "ruler.rule-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "alertmanager_url", + "required": false, + "desc": "Comma-separated list of URL(s) of the Alertmanager(s) to send notifications to. Each Alertmanager URL is treated as a separate group in the configuration. Multiple Alertmanagers in HA per group can be supported by using DNS resolution via -ruler.alertmanager-discovery.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.alertmanager-url", + "fieldType": "string" + }, + { + "kind": "field", + "name": "enable_alertmanager_discovery", + "required": false, + "desc": "Use DNS SRV records to discover Alertmanager hosts.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler.alertmanager-discovery", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "alertmanager_refresh_interval", + "required": false, + "desc": "How long to wait between refreshing DNS resolutions of Alertmanager hosts.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "ruler.alertmanager-refresh-interval", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "enable_alertmanager_v2", + "required": false, + "desc": "If enabled requests to Alertmanager will utilize the V2 API.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler.alertmanager-use-v2", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "notification_queue_capacity", + "required": false, + "desc": "Capacity of the queue for notifications to be sent to the Alertmanager.", + "fieldValue": null, + "fieldDefaultValue": 10000, + "fieldFlag": "ruler.notification-queue-capacity", + "fieldType": "int" + }, + { + "kind": "field", + "name": "notification_timeout", + "required": false, + "desc": "HTTP timeout duration when sending notifications to the Alertmanager.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "ruler.notification-timeout", + "fieldType": "duration" + }, + { + "kind": "block", + "name": "alertmanager_client", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.alertmanager-client.tls-cert-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.alertmanager-client.tls-key-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.alertmanager-client.tls-ca-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.alertmanager-client.tls-server-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler.alertmanager-client.tls-insecure-skip-verify", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "basic_auth_username", + "required": false, + "desc": "HTTP Basic authentication username. It overrides the username set in the URL (if any).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.alertmanager-client.basic-auth-username", + "fieldType": "string" + }, + { + "kind": "field", + "name": "basic_auth_password", + "required": false, + "desc": "HTTP Basic authentication password. It overrides the password set in the URL (if any).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.alertmanager-client.basic-auth-password", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "for_outage_tolerance", + "required": false, + "desc": "Max time to tolerate outage for restoring \"for\" state of alert.", + "fieldValue": null, + "fieldDefaultValue": 3600000000000, + "fieldFlag": "ruler.for-outage-tolerance", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "for_grace_period", + "required": false, + "desc": "Minimum duration between alert and restored \"for\" state. This is maintained only for alerts with configured \"for\" time greater than grace period.", + "fieldValue": null, + "fieldDefaultValue": 600000000000, + "fieldFlag": "ruler.for-grace-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "resend_delay", + "required": false, + "desc": "Minimum amount of time to wait before resending an alert to Alertmanager.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "ruler.resend-delay", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "enable_sharding", + "required": false, + "desc": "Distribute rule evaluation using ring backend", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler.enable-sharding", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "sharding_strategy", + "required": false, + "desc": "The sharding strategy to use. Supported values are: default, shuffle-sharding.", + "fieldValue": null, + "fieldDefaultValue": "default", + "fieldFlag": "ruler.sharding-strategy", + "fieldType": "string" + }, + { + "kind": "field", + "name": "search_pending_for", + "required": false, + "desc": "Time to spend searching for a pending ruler when shutting down.", + "fieldValue": null, + "fieldDefaultValue": 300000000000, + "fieldFlag": "ruler.search-pending-for", + "fieldType": "duration" + }, + { + "kind": "block", + "name": "ring", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "kvstore", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "store", + "required": false, + "desc": "Backend storage to use for the ring. Supported values are: consul, etcd, inmemory, memberlist, multi.", + "fieldValue": null, + "fieldDefaultValue": "consul", + "fieldFlag": "ruler.ring.store", + "fieldType": "string" + }, + { + "kind": "field", + "name": "prefix", + "required": false, + "desc": "The prefix for the keys in the store. Should end with a /.", + "fieldValue": null, + "fieldDefaultValue": "rulers/", + "fieldFlag": "ruler.ring.prefix", + "fieldType": "string" + }, + { + "kind": "block", + "name": "consul", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "host", + "required": false, + "desc": "Hostname and port of Consul.", + "fieldValue": null, + "fieldDefaultValue": "localhost:8500", + "fieldFlag": "ruler.ring.consul.hostname", + "fieldType": "string" + }, + { + "kind": "field", + "name": "acl_token", + "required": false, + "desc": "ACL Token used to interact with Consul.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.ring.consul.acl-token", + "fieldType": "string" + }, + { + "kind": "field", + "name": "http_client_timeout", + "required": false, + "desc": "HTTP timeout when talking to Consul", + "fieldValue": null, + "fieldDefaultValue": 20000000000, + "fieldFlag": "ruler.ring.consul.client-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "consistent_reads", + "required": false, + "desc": "Enable consistent reads to Consul.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler.ring.consul.consistent-reads", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "watch_rate_limit", + "required": false, + "desc": "Rate limit when watching key or prefix in Consul, in requests per second. 0 disables the rate limit.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "ruler.ring.consul.watch-rate-limit", + "fieldType": "float" + }, + { + "kind": "field", + "name": "watch_burst_size", + "required": false, + "desc": "Burst size used in rate limit. Values less than 1 are treated as 1.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "ruler.ring.consul.watch-burst-size", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "etcd", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoints", + "required": false, + "desc": "The etcd endpoints to connect to.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "ruler.ring.etcd.endpoints", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "dial_timeout", + "required": false, + "desc": "The dial timeout for the etcd connection.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "ruler.ring.etcd.dial-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "The maximum number of retries to do for failed ops.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "ruler.ring.etcd.max-retries", + "fieldType": "int" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler.ring.etcd.tls-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.ring.etcd.tls-cert-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.ring.etcd.tls-key-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.ring.etcd.tls-ca-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.ring.etcd.tls-server-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler.ring.etcd.tls-insecure-skip-verify", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "username", + "required": false, + "desc": "Etcd username.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.ring.etcd.username", + "fieldType": "string" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "Etcd password.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.ring.etcd.password", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "multi", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "primary", + "required": false, + "desc": "Primary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.ring.multi.primary", + "fieldType": "string" + }, + { + "kind": "field", + "name": "secondary", + "required": false, + "desc": "Secondary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.ring.multi.secondary", + "fieldType": "string" + }, + { + "kind": "field", + "name": "mirror_enabled", + "required": false, + "desc": "Mirror writes to secondary store.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler.ring.multi.mirror-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "mirror_timeout", + "required": false, + "desc": "Timeout for storing value to secondary store.", + "fieldValue": null, + "fieldDefaultValue": 2000000000, + "fieldFlag": "ruler.ring.multi.mirror-timeout", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "heartbeat_period", + "required": false, + "desc": "Period at which to heartbeat to the ring. 0 = disabled.", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "ruler.ring.heartbeat-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "heartbeat_timeout", + "required": false, + "desc": "The heartbeat timeout after which rulers are considered unhealthy within the ring. 0 = never (timeout disabled).", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "ruler.ring.heartbeat-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "instance_interface_names", + "required": false, + "desc": "Name of network interface to read address from.", + "fieldValue": null, + "fieldDefaultValue": [ + "eth0", + "en0" + ], + "fieldFlag": "ruler.ring.instance-interface-names", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "num_tokens", + "required": false, + "desc": "Number of tokens for each ruler.", + "fieldValue": null, + "fieldDefaultValue": 128, + "fieldFlag": "ruler.ring.num-tokens", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "flush_period", + "required": false, + "desc": "Period with which to attempt to flush rule groups.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "ruler.flush-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "enable_api", + "required": false, + "desc": "Enable the ruler api", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "experimental.ruler.enable-api", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "enabled_tenants", + "required": false, + "desc": "Comma separated list of tenants whose rules this ruler can evaluate. If specified, only these tenants will be handled by ruler, otherwise this ruler can process rules from all tenants. Subject to sharding.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.enabled-tenants", + "fieldType": "string" + }, + { + "kind": "field", + "name": "disabled_tenants", + "required": false, + "desc": "Comma separated list of tenants whose rules this ruler cannot evaluate. If specified, a ruler that would normally pick the specified tenant(s) for processing will ignore them instead. Subject to sharding.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.disabled-tenants", + "fieldType": "string" + }, + { + "kind": "field", + "name": "query_stats_enabled", + "required": false, + "desc": "Report the wall time for ruler queries to complete as a per user metric and as an info level log message.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler.query-stats-enabled", + "fieldType": "boolean" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "ruler_storage", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "backend", + "required": false, + "desc": "Backend storage to use. Supported backends are: s3, gcs, azure, swift, filesystem, local.", + "fieldValue": null, + "fieldDefaultValue": "s3", + "fieldFlag": "ruler-storage.backend", + "fieldType": "string" + }, + { + "kind": "block", + "name": "s3", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoint", + "required": false, + "desc": "The S3 bucket endpoint. It could be an AWS S3 endpoint listed at https://docs.aws.amazon.com/general/latest/gr/s3.html or the address of an S3-compatible service in hostname:port format.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.s3.endpoint", + "fieldType": "string" + }, + { + "kind": "field", + "name": "region", + "required": false, + "desc": "S3 region. If unset, the client will issue a S3 GetBucketLocation API call to autodetect it.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.s3.region", + "fieldType": "string" + }, + { + "kind": "field", + "name": "bucket_name", + "required": false, + "desc": "S3 bucket name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.s3.bucket-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "secret_access_key", + "required": false, + "desc": "S3 secret access key", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.s3.secret-access-key", + "fieldType": "string" + }, + { + "kind": "field", + "name": "access_key_id", + "required": false, + "desc": "S3 access key ID", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.s3.access-key-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "insecure", + "required": false, + "desc": "If enabled, use http:// for the S3 endpoint instead of https://. This could be useful in local dev/test environments while using an S3-compatible backend storage, like Minio.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler-storage.s3.insecure", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "signature_version", + "required": false, + "desc": "The signature version to use for authenticating against S3. Supported values are: v4, v2.", + "fieldValue": null, + "fieldDefaultValue": "v4", + "fieldFlag": "ruler-storage.s3.signature-version", + "fieldType": "string" + }, + { + "kind": "block", + "name": "sse", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "type", + "required": false, + "desc": "Enable AWS Server Side Encryption. Supported values: SSE-KMS, SSE-S3.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.s3.sse.type", + "fieldType": "string" + }, + { + "kind": "field", + "name": "kms_key_id", + "required": false, + "desc": "KMS Key ID used to encrypt objects in S3", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.s3.sse.kms-key-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "kms_encryption_context", + "required": false, + "desc": "KMS Encryption Context used for object encryption. It expects JSON formatted string.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.s3.sse.kms-encryption-context", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "http", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "idle_conn_timeout", + "required": false, + "desc": "The time an idle connection will remain idle before closing.", + "fieldValue": null, + "fieldDefaultValue": 90000000000, + "fieldFlag": "ruler-storage.s3.http.idle-conn-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "response_header_timeout", + "required": false, + "desc": "The amount of time the client will wait for a servers response headers.", + "fieldValue": null, + "fieldDefaultValue": 120000000000, + "fieldFlag": "ruler-storage.s3.http.response-header-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "insecure_skip_verify", + "required": false, + "desc": "If the client connects to S3 via HTTPS and this option is enabled, the client will accept any certificate and hostname.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler-storage.s3.http.insecure-skip-verify", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_handshake_timeout", + "required": false, + "desc": "Maximum time to wait for a TLS handshake. 0 means no limit.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "ruler-storage.s3.tls-handshake-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "expect_continue_timeout", + "required": false, + "desc": "The time to wait for a server's first response headers after fully writing the request headers if the request has an Expect header. 0 to send the request body immediately.", + "fieldValue": null, + "fieldDefaultValue": 1000000000, + "fieldFlag": "ruler-storage.s3.expect-continue-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_idle_connections", + "required": false, + "desc": "Maximum number of idle (keep-alive) connections across all hosts. 0 means no limit.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "ruler-storage.s3.max-idle-connections", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_idle_connections_per_host", + "required": false, + "desc": "Maximum number of idle (keep-alive) connections to keep per-host. If 0, a built-in default value is used.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "ruler-storage.s3.max-idle-connections-per-host", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_connections_per_host", + "required": false, + "desc": "Maximum number of connections per host. 0 means no limit.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ruler-storage.s3.max-connections-per-host", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "gcs", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "bucket_name", + "required": false, + "desc": "GCS bucket name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.gcs.bucket-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "service_account", + "required": false, + "desc": "JSON representing either a Google Developers Console client_credentials.json file or a Google Developers service account key file. If empty, fallback to Google default logic.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.gcs.service-account", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "azure", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "account_name", + "required": false, + "desc": "Azure storage account name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.azure.account-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "account_key", + "required": false, + "desc": "Azure storage account key", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.azure.account-key", + "fieldType": "string" + }, + { + "kind": "field", + "name": "container_name", + "required": false, + "desc": "Azure storage container name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.azure.container-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "endpoint_suffix", + "required": false, + "desc": "Azure storage endpoint suffix without schema. The account name will be prefixed to this value to create the FQDN", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.azure.endpoint-suffix", + "fieldType": "string" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Number of retries for recoverable errors", + "fieldValue": null, + "fieldDefaultValue": 20, + "fieldFlag": "ruler-storage.azure.max-retries", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "swift", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "auth_version", + "required": false, + "desc": "OpenStack Swift authentication API version. 0 to autodetect.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ruler-storage.swift.auth-version", + "fieldType": "int" + }, + { + "kind": "field", + "name": "auth_url", + "required": false, + "desc": "OpenStack Swift authentication URL", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.auth-url", + "fieldType": "string" + }, + { + "kind": "field", + "name": "username", + "required": false, + "desc": "OpenStack Swift username.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.username", + "fieldType": "string" + }, + { + "kind": "field", + "name": "user_domain_name", + "required": false, + "desc": "OpenStack Swift user's domain name.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.user-domain-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "user_domain_id", + "required": false, + "desc": "OpenStack Swift user's domain ID.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.user-domain-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "user_id", + "required": false, + "desc": "OpenStack Swift user ID.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.user-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "OpenStack Swift API key.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.password", + "fieldType": "string" + }, + { + "kind": "field", + "name": "domain_id", + "required": false, + "desc": "OpenStack Swift user's domain ID.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.domain-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "domain_name", + "required": false, + "desc": "OpenStack Swift user's domain name.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.domain-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_id", + "required": false, + "desc": "OpenStack Swift project ID (v2,v3 auth only).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.project-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_name", + "required": false, + "desc": "OpenStack Swift project name (v2,v3 auth only).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.project-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_domain_id", + "required": false, + "desc": "ID of the OpenStack Swift project's domain (v3 auth only), only needed if it differs the from user domain.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.project-domain-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_domain_name", + "required": false, + "desc": "Name of the OpenStack Swift project's domain (v3 auth only), only needed if it differs from the user domain.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.project-domain-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "region_name", + "required": false, + "desc": "OpenStack Swift Region to use (v2,v3 auth only).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.region-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "container_name", + "required": false, + "desc": "Name of the OpenStack Swift container to put chunks in.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.container-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Max retries on requests error.", + "fieldValue": null, + "fieldDefaultValue": 3, + "fieldFlag": "ruler-storage.swift.max-retries", + "fieldType": "int" + }, + { + "kind": "field", + "name": "connect_timeout", + "required": false, + "desc": "Time after which a connection attempt is aborted.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "ruler-storage.swift.connect-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "request_timeout", + "required": false, + "desc": "Time after which an idle request is aborted. The timeout watchdog is reset each time some data is received, so the timeout triggers after X time no data is received on a request.", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "ruler-storage.swift.request-timeout", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "filesystem", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "dir", + "required": false, + "desc": "Local filesystem storage directory.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.filesystem.dir", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "local", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "directory", + "required": false, + "desc": "Directory to scan for rules", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.local.directory", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "alertmanager", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "data_dir", + "required": false, + "desc": "Base path for data storage.", + "fieldValue": null, + "fieldDefaultValue": "data/", + "fieldFlag": "alertmanager.storage.path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "retention", + "required": false, + "desc": "How long to keep data for.", + "fieldValue": null, + "fieldDefaultValue": 432000000000000, + "fieldFlag": "alertmanager.storage.retention", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "external_url", + "required": false, + "desc": "The URL under which Alertmanager is externally reachable (for example, if Alertmanager is served via a reverse proxy). Used for generating relative and absolute links back to Alertmanager itself. If the URL has a path portion, it will be used to prefix all HTTP endpoints served by Alertmanager. If omitted, relevant URL components will be derived automatically.", + "fieldValue": null, + "fieldDefaultValue": {}, + "fieldFlag": "alertmanager.web.external-url", + "fieldType": "url" + }, + { + "kind": "field", + "name": "poll_interval", + "required": false, + "desc": "How frequently to poll Alertmanager configs.", + "fieldValue": null, + "fieldDefaultValue": 15000000000, + "fieldFlag": "alertmanager.configs.poll-interval", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_recv_msg_size", + "required": false, + "desc": "Maximum size (bytes) of an accepted HTTP request body.", + "fieldValue": null, + "fieldDefaultValue": 16777216, + "fieldFlag": "alertmanager.max-recv-msg-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "sharding_enabled", + "required": false, + "desc": "Shard tenants across multiple alertmanager instances.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "alertmanager.sharding-enabled", + "fieldType": "boolean" + }, + { + "kind": "block", + "name": "sharding_ring", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "kvstore", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "store", + "required": false, + "desc": "Backend storage to use for the ring. Supported values are: consul, etcd, inmemory, memberlist, multi.", + "fieldValue": null, + "fieldDefaultValue": "consul", + "fieldFlag": "alertmanager.sharding-ring.store", + "fieldType": "string" + }, + { + "kind": "field", + "name": "prefix", + "required": false, + "desc": "The prefix for the keys in the store. Should end with a /.", + "fieldValue": null, + "fieldDefaultValue": "alertmanagers/", + "fieldFlag": "alertmanager.sharding-ring.prefix", + "fieldType": "string" + }, + { + "kind": "block", + "name": "consul", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "host", + "required": false, + "desc": "Hostname and port of Consul.", + "fieldValue": null, + "fieldDefaultValue": "localhost:8500", + "fieldFlag": "alertmanager.sharding-ring.consul.hostname", + "fieldType": "string" + }, + { + "kind": "field", + "name": "acl_token", + "required": false, + "desc": "ACL Token used to interact with Consul.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.sharding-ring.consul.acl-token", + "fieldType": "string" + }, + { + "kind": "field", + "name": "http_client_timeout", + "required": false, + "desc": "HTTP timeout when talking to Consul", + "fieldValue": null, + "fieldDefaultValue": 20000000000, + "fieldFlag": "alertmanager.sharding-ring.consul.client-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "consistent_reads", + "required": false, + "desc": "Enable consistent reads to Consul.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "alertmanager.sharding-ring.consul.consistent-reads", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "watch_rate_limit", + "required": false, + "desc": "Rate limit when watching key or prefix in Consul, in requests per second. 0 disables the rate limit.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "alertmanager.sharding-ring.consul.watch-rate-limit", + "fieldType": "float" + }, + { + "kind": "field", + "name": "watch_burst_size", + "required": false, + "desc": "Burst size used in rate limit. Values less than 1 are treated as 1.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "alertmanager.sharding-ring.consul.watch-burst-size", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "etcd", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoints", + "required": false, + "desc": "The etcd endpoints to connect to.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "alertmanager.sharding-ring.etcd.endpoints", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "dial_timeout", + "required": false, + "desc": "The dial timeout for the etcd connection.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "alertmanager.sharding-ring.etcd.dial-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "The maximum number of retries to do for failed ops.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "alertmanager.sharding-ring.etcd.max-retries", + "fieldType": "int" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "alertmanager.sharding-ring.etcd.tls-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.sharding-ring.etcd.tls-cert-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.sharding-ring.etcd.tls-key-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.sharding-ring.etcd.tls-ca-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.sharding-ring.etcd.tls-server-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "alertmanager.sharding-ring.etcd.tls-insecure-skip-verify", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "username", + "required": false, + "desc": "Etcd username.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.sharding-ring.etcd.username", + "fieldType": "string" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "Etcd password.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.sharding-ring.etcd.password", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "multi", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "primary", + "required": false, + "desc": "Primary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.sharding-ring.multi.primary", + "fieldType": "string" + }, + { + "kind": "field", + "name": "secondary", + "required": false, + "desc": "Secondary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.sharding-ring.multi.secondary", + "fieldType": "string" + }, + { + "kind": "field", + "name": "mirror_enabled", + "required": false, + "desc": "Mirror writes to secondary store.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "alertmanager.sharding-ring.multi.mirror-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "mirror_timeout", + "required": false, + "desc": "Timeout for storing value to secondary store.", + "fieldValue": null, + "fieldDefaultValue": 2000000000, + "fieldFlag": "alertmanager.sharding-ring.multi.mirror-timeout", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "heartbeat_period", + "required": false, + "desc": "Period at which to heartbeat to the ring. 0 = disabled.", + "fieldValue": null, + "fieldDefaultValue": 15000000000, + "fieldFlag": "alertmanager.sharding-ring.heartbeat-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "heartbeat_timeout", + "required": false, + "desc": "The heartbeat timeout after which alertmanagers are considered unhealthy within the ring. 0 = never (timeout disabled).", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "alertmanager.sharding-ring.heartbeat-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "replication_factor", + "required": false, + "desc": "The replication factor to use when sharding the alertmanager.", + "fieldValue": null, + "fieldDefaultValue": 3, + "fieldFlag": "alertmanager.sharding-ring.replication-factor", + "fieldType": "int" + }, + { + "kind": "field", + "name": "zone_awareness_enabled", + "required": false, + "desc": "True to enable zone-awareness and replicate alerts across different availability zones.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "alertmanager.sharding-ring.zone-awareness-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "instance_interface_names", + "required": false, + "desc": "Name of network interface to read address from.", + "fieldValue": null, + "fieldDefaultValue": [ + "eth0", + "en0" + ], + "fieldFlag": "alertmanager.sharding-ring.instance-interface-names", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "instance_availability_zone", + "required": false, + "desc": "The availability zone where this instance is running. Required if zone-awareness is enabled.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.sharding-ring.instance-availability-zone", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "fallback_config_file", + "required": false, + "desc": "Filename of fallback config to use if none specified for instance.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.configs.fallback", + "fieldType": "string" + }, + { + "kind": "field", + "name": "auto_webhook_root", + "required": false, + "desc": "Root of URL to generate if config is http://internal.monitor", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.configs.auto-webhook-root", + "fieldType": "string" + }, + { + "kind": "block", + "name": "storage", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "type", + "required": false, + "desc": "Type of backend to use to store alertmanager configs. Supported values are: \"gcs\", \"s3\", \"local\".", + "fieldValue": null, + "fieldDefaultValue": "local", + "fieldFlag": "alertmanager.storage.type", + "fieldType": "string" + }, + { + "kind": "block", + "name": "azure", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "environment", + "required": false, + "desc": "Azure Cloud environment. Supported values are: AzureGlobal, AzureChinaCloud, AzureGermanCloud, AzureUSGovernment.", + "fieldValue": null, + "fieldDefaultValue": "AzureGlobal", + "fieldFlag": "alertmanager.storage.azure.environment", + "fieldType": "string" + }, + { + "kind": "field", + "name": "container_name", + "required": false, + "desc": "Name of the blob container used to store chunks. This container must be created prior to execution.", + "fieldValue": null, + "fieldDefaultValue": "cortex", + "fieldFlag": "alertmanager.storage.azure.container-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "account_name", + "required": false, + "desc": "The Microsoft Azure account name to be used", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.storage.azure.account-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "account_key", + "required": false, + "desc": "The Microsoft Azure account key to use.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.storage.azure.account-key", + "fieldType": "string" + }, + { + "kind": "field", + "name": "download_buffer_size", + "required": false, + "desc": "Preallocated buffer size for downloads.", + "fieldValue": null, + "fieldDefaultValue": 512000, + "fieldFlag": "alertmanager.storage.azure.download-buffer-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "upload_buffer_size", + "required": false, + "desc": "Preallocated buffer size for uploads.", + "fieldValue": null, + "fieldDefaultValue": 256000, + "fieldFlag": "alertmanager.storage.azure.upload-buffer-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "upload_buffer_count", + "required": false, + "desc": "Number of buffers used to used to upload a chunk.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "alertmanager.storage.azure.download-buffer-count", + "fieldType": "int" + }, + { + "kind": "field", + "name": "request_timeout", + "required": false, + "desc": "Timeout for requests made against azure blob storage.", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "alertmanager.storage.azure.request-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Number of retries for a request which times out.", + "fieldValue": null, + "fieldDefaultValue": 5, + "fieldFlag": "alertmanager.storage.azure.max-retries", + "fieldType": "int" + }, + { + "kind": "field", + "name": "min_retry_delay", + "required": false, + "desc": "Minimum time to wait before retrying a request.", + "fieldValue": null, + "fieldDefaultValue": 10000000, + "fieldFlag": "alertmanager.storage.azure.min-retry-delay", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_retry_delay", + "required": false, + "desc": "Maximum time to wait before retrying a request.", + "fieldValue": null, + "fieldDefaultValue": 500000000, + "fieldFlag": "alertmanager.storage.azure.max-retry-delay", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "gcs", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "bucket_name", + "required": false, + "desc": "Name of GCS bucket. Please refer to https://cloud.google.com/docs/authentication/production for more information about how to configure authentication.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.storage.gcs.bucketname", + "fieldType": "string" + }, + { + "kind": "field", + "name": "chunk_buffer_size", + "required": false, + "desc": "The size of the buffer that GCS client for each PUT request. 0 to disable buffering.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "alertmanager.storage.gcs.chunk-buffer-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "request_timeout", + "required": false, + "desc": "The duration after which the requests to GCS should be timed out.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "alertmanager.storage.gcs.request-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "enable_opencensus", + "required": false, + "desc": "Enabled OpenCensus (OC) instrumentation for all requests.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "alertmanager.storage.gcs.enable-opencensus", + "fieldType": "boolean" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "s3", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "s3", + "required": false, + "desc": "S3 endpoint URL with escaped Key and Secret encoded. If only region is specified as a host, proper endpoint will be deduced. Use inmemory:///\u003cbucket-name\u003e to use a mock in-memory implementation.", + "fieldValue": null, + "fieldDefaultValue": {}, + "fieldFlag": "alertmanager.storage.s3.url", + "fieldType": "url" + }, + { + "kind": "field", + "name": "s3forcepathstyle", + "required": false, + "desc": "Set this to `true` to force the request to use path-style addressing.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "alertmanager.storage.s3.force-path-style", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "bucketnames", + "required": false, + "desc": "Comma separated list of bucket names to evenly distribute chunks over. Overrides any buckets specified in s3.url flag", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.storage.s3.buckets", + "fieldType": "string" + }, + { + "kind": "field", + "name": "endpoint", + "required": false, + "desc": "S3 Endpoint to connect to.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.storage.s3.endpoint", + "fieldType": "string" + }, + { + "kind": "field", + "name": "region", + "required": false, + "desc": "AWS region to use.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.storage.s3.region", + "fieldType": "string" + }, + { + "kind": "field", + "name": "access_key_id", + "required": false, + "desc": "AWS Access Key ID", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.storage.s3.access-key-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "secret_access_key", + "required": false, + "desc": "AWS Secret Access Key", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.storage.s3.secret-access-key", + "fieldType": "string" + }, + { + "kind": "field", + "name": "insecure", + "required": false, + "desc": "Disable https on s3 connection.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "alertmanager.storage.s3.insecure", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "sse_encryption", + "required": false, + "desc": "Enable AWS Server Side Encryption [Deprecated: Use .sse instead. if s3.sse-encryption is enabled, it assumes .sse.type SSE-S3]", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "alertmanager.storage.s3.sse-encryption", + "fieldType": "boolean" + }, + { + "kind": "block", + "name": "http_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "idle_conn_timeout", + "required": false, + "desc": "The maximum amount of time an idle connection will be held open.", + "fieldValue": null, + "fieldDefaultValue": 90000000000, + "fieldFlag": "alertmanager.storage.s3.http.idle-conn-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "response_header_timeout", + "required": false, + "desc": "If non-zero, specifies the amount of time to wait for a server's response headers after fully writing the request.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "alertmanager.storage.s3.http.response-header-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "insecure_skip_verify", + "required": false, + "desc": "Set to false to skip verifying the certificate chain and hostname.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "alertmanager.storage.s3.http.insecure-skip-verify", + "fieldType": "boolean" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "signature_version", + "required": false, + "desc": "The signature version to use for authenticating against S3. Supported values are: v4, v2.", + "fieldValue": null, + "fieldDefaultValue": "v4", + "fieldFlag": "alertmanager.storage.s3.signature-version", + "fieldType": "string" + }, + { + "kind": "block", + "name": "sse", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "type", + "required": false, + "desc": "Enable AWS Server Side Encryption. Supported values: SSE-KMS, SSE-S3.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.storage.s3.sse.type", + "fieldType": "string" + }, + { + "kind": "field", + "name": "kms_key_id", + "required": false, + "desc": "KMS Key ID used to encrypt objects in S3", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.storage.s3.sse.kms-key-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "kms_encryption_context", + "required": false, + "desc": "KMS Encryption Context used for object encryption. It expects JSON formatted string.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.storage.s3.sse.kms-encryption-context", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "local", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "path", + "required": false, + "desc": "Path at which alertmanager configurations are stored.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.storage.local.path", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "cluster", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "listen_address", + "required": false, + "desc": "Listen address and port for the cluster. Not specifying this flag disables high-availability mode.", + "fieldValue": null, + "fieldDefaultValue": "0.0.0.0:9094", + "fieldFlag": "alertmanager.cluster.listen-address", + "fieldType": "string" + }, + { + "kind": "field", + "name": "advertise_address", + "required": false, + "desc": "Explicit address or hostname to advertise in cluster.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.cluster.advertise-address", + "fieldType": "string" + }, + { + "kind": "field", + "name": "peers", + "required": false, + "desc": "Comma-separated list of initial peers.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.cluster.peers", + "fieldType": "string" + }, + { + "kind": "field", + "name": "peer_timeout", + "required": false, + "desc": "Time to wait between peers to send notifications.", + "fieldValue": null, + "fieldDefaultValue": 15000000000, + "fieldFlag": "alertmanager.cluster.peer-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "gossip_interval", + "required": false, + "desc": "The interval between sending gossip messages. By lowering this value (more frequent) gossip messages are propagated across cluster more quickly at the expense of increased bandwidth usage.", + "fieldValue": null, + "fieldDefaultValue": 200000000, + "fieldFlag": "alertmanager.cluster.gossip-interval", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "push_pull_interval", + "required": false, + "desc": "The interval between gossip state syncs. Setting this interval lower (more frequent) will increase convergence speeds across larger clusters at the expense of increased bandwidth usage.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "alertmanager.cluster.push-pull-interval", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "enable_api", + "required": false, + "desc": "Enable the experimental alertmanager config api.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "experimental.alertmanager.enable-api", + "fieldType": "boolean" + }, + { + "kind": "block", + "name": "alertmanager_client", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "remote_timeout", + "required": false, + "desc": "Timeout for downstream alertmanagers.", + "fieldValue": null, + "fieldDefaultValue": 2000000000, + "fieldFlag": "alertmanager.alertmanager-client.remote-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "alertmanager.alertmanager-client.tls-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.alertmanager-client.tls-cert-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.alertmanager-client.tls-key-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.alertmanager-client.tls-ca-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.alertmanager-client.tls-server-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "alertmanager.alertmanager-client.tls-insecure-skip-verify", + "fieldType": "boolean" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "persist_interval", + "required": false, + "desc": "The interval between persisting the current alertmanager state (notification log and silences) to object storage. This is only used when sharding is enabled. This state is read when all replicas for a shard can not be contacted. In this scenario, having persisted the state more frequently will result in potentially fewer lost silences, and fewer duplicate notifications.", + "fieldValue": null, + "fieldDefaultValue": 900000000000, + "fieldFlag": "alertmanager.persist-interval", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "alertmanager_storage", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "backend", + "required": false, + "desc": "Backend storage to use. Supported backends are: s3, gcs, azure, swift, filesystem, local.", + "fieldValue": null, + "fieldDefaultValue": "s3", + "fieldFlag": "alertmanager-storage.backend", + "fieldType": "string" + }, + { + "kind": "block", + "name": "s3", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoint", + "required": false, + "desc": "The S3 bucket endpoint. It could be an AWS S3 endpoint listed at https://docs.aws.amazon.com/general/latest/gr/s3.html or the address of an S3-compatible service in hostname:port format.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.s3.endpoint", + "fieldType": "string" + }, + { + "kind": "field", + "name": "region", + "required": false, + "desc": "S3 region. If unset, the client will issue a S3 GetBucketLocation API call to autodetect it.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.s3.region", + "fieldType": "string" + }, + { + "kind": "field", + "name": "bucket_name", + "required": false, + "desc": "S3 bucket name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.s3.bucket-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "secret_access_key", + "required": false, + "desc": "S3 secret access key", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.s3.secret-access-key", + "fieldType": "string" + }, + { + "kind": "field", + "name": "access_key_id", + "required": false, + "desc": "S3 access key ID", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.s3.access-key-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "insecure", + "required": false, + "desc": "If enabled, use http:// for the S3 endpoint instead of https://. This could be useful in local dev/test environments while using an S3-compatible backend storage, like Minio.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "alertmanager-storage.s3.insecure", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "signature_version", + "required": false, + "desc": "The signature version to use for authenticating against S3. Supported values are: v4, v2.", + "fieldValue": null, + "fieldDefaultValue": "v4", + "fieldFlag": "alertmanager-storage.s3.signature-version", + "fieldType": "string" + }, + { + "kind": "block", + "name": "sse", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "type", + "required": false, + "desc": "Enable AWS Server Side Encryption. Supported values: SSE-KMS, SSE-S3.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.s3.sse.type", + "fieldType": "string" + }, + { + "kind": "field", + "name": "kms_key_id", + "required": false, + "desc": "KMS Key ID used to encrypt objects in S3", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.s3.sse.kms-key-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "kms_encryption_context", + "required": false, + "desc": "KMS Encryption Context used for object encryption. It expects JSON formatted string.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.s3.sse.kms-encryption-context", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "http", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "idle_conn_timeout", + "required": false, + "desc": "The time an idle connection will remain idle before closing.", + "fieldValue": null, + "fieldDefaultValue": 90000000000, + "fieldFlag": "alertmanager-storage.s3.http.idle-conn-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "response_header_timeout", + "required": false, + "desc": "The amount of time the client will wait for a servers response headers.", + "fieldValue": null, + "fieldDefaultValue": 120000000000, + "fieldFlag": "alertmanager-storage.s3.http.response-header-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "insecure_skip_verify", + "required": false, + "desc": "If the client connects to S3 via HTTPS and this option is enabled, the client will accept any certificate and hostname.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "alertmanager-storage.s3.http.insecure-skip-verify", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_handshake_timeout", + "required": false, + "desc": "Maximum time to wait for a TLS handshake. 0 means no limit.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "alertmanager-storage.s3.tls-handshake-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "expect_continue_timeout", + "required": false, + "desc": "The time to wait for a server's first response headers after fully writing the request headers if the request has an Expect header. 0 to send the request body immediately.", + "fieldValue": null, + "fieldDefaultValue": 1000000000, + "fieldFlag": "alertmanager-storage.s3.expect-continue-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_idle_connections", + "required": false, + "desc": "Maximum number of idle (keep-alive) connections across all hosts. 0 means no limit.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "alertmanager-storage.s3.max-idle-connections", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_idle_connections_per_host", + "required": false, + "desc": "Maximum number of idle (keep-alive) connections to keep per-host. If 0, a built-in default value is used.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "alertmanager-storage.s3.max-idle-connections-per-host", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_connections_per_host", + "required": false, + "desc": "Maximum number of connections per host. 0 means no limit.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "alertmanager-storage.s3.max-connections-per-host", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "gcs", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "bucket_name", + "required": false, + "desc": "GCS bucket name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.gcs.bucket-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "service_account", + "required": false, + "desc": "JSON representing either a Google Developers Console client_credentials.json file or a Google Developers service account key file. If empty, fallback to Google default logic.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.gcs.service-account", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "azure", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "account_name", + "required": false, + "desc": "Azure storage account name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.azure.account-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "account_key", + "required": false, + "desc": "Azure storage account key", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.azure.account-key", + "fieldType": "string" + }, + { + "kind": "field", + "name": "container_name", + "required": false, + "desc": "Azure storage container name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.azure.container-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "endpoint_suffix", + "required": false, + "desc": "Azure storage endpoint suffix without schema. The account name will be prefixed to this value to create the FQDN", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.azure.endpoint-suffix", + "fieldType": "string" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Number of retries for recoverable errors", + "fieldValue": null, + "fieldDefaultValue": 20, + "fieldFlag": "alertmanager-storage.azure.max-retries", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "swift", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "auth_version", + "required": false, + "desc": "OpenStack Swift authentication API version. 0 to autodetect.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "alertmanager-storage.swift.auth-version", + "fieldType": "int" + }, + { + "kind": "field", + "name": "auth_url", + "required": false, + "desc": "OpenStack Swift authentication URL", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.auth-url", + "fieldType": "string" + }, + { + "kind": "field", + "name": "username", + "required": false, + "desc": "OpenStack Swift username.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.username", + "fieldType": "string" + }, + { + "kind": "field", + "name": "user_domain_name", + "required": false, + "desc": "OpenStack Swift user's domain name.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.user-domain-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "user_domain_id", + "required": false, + "desc": "OpenStack Swift user's domain ID.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.user-domain-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "user_id", + "required": false, + "desc": "OpenStack Swift user ID.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.user-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "OpenStack Swift API key.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.password", + "fieldType": "string" + }, + { + "kind": "field", + "name": "domain_id", + "required": false, + "desc": "OpenStack Swift user's domain ID.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.domain-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "domain_name", + "required": false, + "desc": "OpenStack Swift user's domain name.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.domain-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_id", + "required": false, + "desc": "OpenStack Swift project ID (v2,v3 auth only).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.project-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_name", + "required": false, + "desc": "OpenStack Swift project name (v2,v3 auth only).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.project-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_domain_id", + "required": false, + "desc": "ID of the OpenStack Swift project's domain (v3 auth only), only needed if it differs the from user domain.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.project-domain-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_domain_name", + "required": false, + "desc": "Name of the OpenStack Swift project's domain (v3 auth only), only needed if it differs from the user domain.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.project-domain-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "region_name", + "required": false, + "desc": "OpenStack Swift Region to use (v2,v3 auth only).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.region-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "container_name", + "required": false, + "desc": "Name of the OpenStack Swift container to put chunks in.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.container-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Max retries on requests error.", + "fieldValue": null, + "fieldDefaultValue": 3, + "fieldFlag": "alertmanager-storage.swift.max-retries", + "fieldType": "int" + }, + { + "kind": "field", + "name": "connect_timeout", + "required": false, + "desc": "Time after which a connection attempt is aborted.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "alertmanager-storage.swift.connect-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "request_timeout", + "required": false, + "desc": "Time after which an idle request is aborted. The timeout watchdog is reset each time some data is received, so the timeout triggers after X time no data is received on a request.", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "alertmanager-storage.swift.request-timeout", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "filesystem", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "dir", + "required": false, + "desc": "Local filesystem storage directory.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.filesystem.dir", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "local", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "path", + "required": false, + "desc": "Path at which alertmanager configurations are stored.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.local.path", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "runtime_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "period", + "required": false, + "desc": "How often to check runtime config file.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "runtime-config.reload-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "file", + "required": false, + "desc": "File with the configuration that can be updated in runtime.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "runtime-config.file", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "memberlist", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "node_name", + "required": false, + "desc": "Name of the node in memberlist cluster. Defaults to hostname.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "memberlist.nodename", + "fieldType": "string" + }, + { + "kind": "field", + "name": "randomize_node_name", + "required": false, + "desc": "Add random suffix to the node name.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "memberlist.randomize-node-name", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "stream_timeout", + "required": false, + "desc": "The timeout for establishing a connection with a remote node, and for read/write operations.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "memberlist.stream-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "retransmit_factor", + "required": false, + "desc": "Multiplication factor used when sending out messages (factor * log(N+1)).", + "fieldValue": null, + "fieldDefaultValue": 4, + "fieldFlag": "memberlist.retransmit-factor", + "fieldType": "int" + }, + { + "kind": "field", + "name": "pull_push_interval", + "required": false, + "desc": "How often to use pull/push sync.", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "memberlist.pullpush-interval", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "gossip_interval", + "required": false, + "desc": "How often to gossip.", + "fieldValue": null, + "fieldDefaultValue": 200000000, + "fieldFlag": "memberlist.gossip-interval", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "gossip_nodes", + "required": false, + "desc": "How many nodes to gossip to.", + "fieldValue": null, + "fieldDefaultValue": 3, + "fieldFlag": "memberlist.gossip-nodes", + "fieldType": "int" + }, + { + "kind": "field", + "name": "gossip_to_dead_nodes_time", + "required": false, + "desc": "How long to keep gossiping to dead nodes, to give them chance to refute their death.", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "memberlist.gossip-to-dead-nodes-time", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "dead_node_reclaim_time", + "required": false, + "desc": "How soon can dead node's name be reclaimed with new address. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "memberlist.dead-node-reclaim-time", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "compression_enabled", + "required": false, + "desc": "Enable message compression. This can be used to reduce bandwidth usage at the cost of slightly more CPU utilization.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "memberlist.compression-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "advertise_addr", + "required": false, + "desc": "Gossip address to advertise to other members in the cluster. Used for NAT traversal.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "memberlist.advertise-addr", + "fieldType": "string" + }, + { + "kind": "field", + "name": "advertise_port", + "required": false, + "desc": "Gossip port to advertise to other members in the cluster. Used for NAT traversal.", + "fieldValue": null, + "fieldDefaultValue": 7946, + "fieldFlag": "memberlist.advertise-port", + "fieldType": "int" + }, + { + "kind": "field", + "name": "join_members", + "required": false, + "desc": "Other cluster members to join. Can be specified multiple times. It can be an IP, hostname or an entry specified in the DNS Service Discovery format.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "memberlist.join", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "min_join_backoff", + "required": false, + "desc": "Min backoff duration to join other cluster members.", + "fieldValue": null, + "fieldDefaultValue": 1000000000, + "fieldFlag": "memberlist.min-join-backoff", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_join_backoff", + "required": false, + "desc": "Max backoff duration to join other cluster members.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "memberlist.max-join-backoff", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_join_retries", + "required": false, + "desc": "Max number of retries to join other cluster members.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "memberlist.max-join-retries", + "fieldType": "int" + }, + { + "kind": "field", + "name": "abort_if_cluster_join_fails", + "required": false, + "desc": "If this node fails to join memberlist cluster, abort.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "memberlist.abort-if-join-fails", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "rejoin_interval", + "required": false, + "desc": "If not 0, how often to rejoin the cluster. Occasional rejoin can help to fix the cluster split issue, and is harmless otherwise. For example when using only few components as a seed nodes (via -memberlist.join), then it's recommended to use rejoin. If -memberlist.join points to dynamic service that resolves to all gossiping nodes (eg. Kubernetes headless service), then rejoin is not needed.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "memberlist.rejoin-interval", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "left_ingesters_timeout", + "required": false, + "desc": "How long to keep LEFT ingesters in the ring.", + "fieldValue": null, + "fieldDefaultValue": 300000000000, + "fieldFlag": "memberlist.left-ingesters-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "leave_timeout", + "required": false, + "desc": "Timeout for leaving memberlist cluster.", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "memberlist.leave-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "message_history_buffer_bytes", + "required": false, + "desc": "How much space to use for keeping received and sent messages in memory for troubleshooting (two buffers). 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "memberlist.message-history-buffer-bytes", + "fieldType": "int" + }, + { + "kind": "field", + "name": "bind_addr", + "required": false, + "desc": "IP address to listen on for gossip messages. Multiple addresses may be specified. Defaults to 0.0.0.0", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "memberlist.bind-addr", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "bind_port", + "required": false, + "desc": "Port to listen on for gossip messages.", + "fieldValue": null, + "fieldDefaultValue": 7946, + "fieldFlag": "memberlist.bind-port", + "fieldType": "int" + }, + { + "kind": "field", + "name": "packet_dial_timeout", + "required": false, + "desc": "Timeout used when connecting to other nodes to send packet.", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "memberlist.packet-dial-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "packet_write_timeout", + "required": false, + "desc": "Timeout for writing 'packet' data.", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "memberlist.packet-write-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS on the memberlist transport layer.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "memberlist.tls-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "memberlist.tls-cert-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "memberlist.tls-key-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "memberlist.tls-ca-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "memberlist.tls-server-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "memberlist.tls-insecure-skip-verify", + "fieldType": "boolean" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "query_scheduler", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "max_outstanding_requests_per_tenant", + "required": false, + "desc": "Maximum number of outstanding requests per tenant per query-scheduler. In-flight requests above this limit will fail with HTTP response status code 429.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "query-scheduler.max-outstanding-requests-per-tenant", + "fieldType": "int" + }, + { + "kind": "field", + "name": "querier_forget_delay", + "required": false, + "desc": "If a querier disconnects without sending notification about graceful shutdown, the query-scheduler will keep the querier in the tenant's shard until the forget delay has passed. This feature is useful to reduce the blast radius when shuffle-sharding is enabled.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "query-scheduler.querier-forget-delay", + "fieldType": "duration" + }, + { + "kind": "block", + "name": "grpc_client_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "max_recv_msg_size", + "required": false, + "desc": "gRPC client max receive message size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 104857600, + "fieldFlag": "query-scheduler.grpc-client-config.grpc-max-recv-msg-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_send_msg_size", + "required": false, + "desc": "gRPC client max send message size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 16777216, + "fieldFlag": "query-scheduler.grpc-client-config.grpc-max-send-msg-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "grpc_compression", + "required": false, + "desc": "Use compression when sending messages. Supported values are: 'gzip', 'snappy' and '' (disable compression)", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "query-scheduler.grpc-client-config.grpc-compression", + "fieldType": "string" + }, + { + "kind": "field", + "name": "rate_limit", + "required": false, + "desc": "Rate limit for gRPC client; 0 means disabled.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "query-scheduler.grpc-client-config.grpc-client-rate-limit", + "fieldType": "float" + }, + { + "kind": "field", + "name": "rate_limit_burst", + "required": false, + "desc": "Rate limit burst for gRPC client.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "query-scheduler.grpc-client-config.grpc-client-rate-limit-burst", + "fieldType": "int" + }, + { + "kind": "field", + "name": "backoff_on_ratelimits", + "required": false, + "desc": "Enable backoff and retry when we hit ratelimits.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "query-scheduler.grpc-client-config.backoff-on-ratelimits", + "fieldType": "boolean" + }, + { + "kind": "block", + "name": "backoff_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "min_period", + "required": false, + "desc": "Minimum delay when backing off.", + "fieldValue": null, + "fieldDefaultValue": 100000000, + "fieldFlag": "query-scheduler.grpc-client-config.backoff-min-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_period", + "required": false, + "desc": "Maximum delay when backing off.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "query-scheduler.grpc-client-config.backoff-max-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Number of times to backoff and retry before failing.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "query-scheduler.grpc-client-config.backoff-retries", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "query-scheduler.grpc-client-config.tls-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "query-scheduler.grpc-client-config.tls-cert-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "query-scheduler.grpc-client-config.tls-key-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "query-scheduler.grpc-client-config.tls-ca-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "query-scheduler.grpc-client-config.tls-server-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "query-scheduler.grpc-client-config.tls-insecure-skip-verify", + "fieldType": "boolean" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "admin_api", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "user_header_name", + "required": false, + "desc": "Designated header to parse when searching for the grafana user ID of the user accessing the API.", + "fieldValue": null, + "fieldDefaultValue": "X-WEBAUTH-USER", + "fieldFlag": "admin.api.user-header-name", + "fieldType": "string" + }, + { + "kind": "block", + "name": "leader_election", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "enabled", + "required": false, + "desc": "This flag enables leader election for the admin api.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "admin-api.leader-election.enabled", + "fieldType": "boolean" + }, + { + "kind": "block", + "name": "ring", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "kvstore", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "store", + "required": false, + "desc": "Backend storage to use for the ring. Supported values are: consul, etcd, inmemory, memberlist, multi.", + "fieldValue": null, + "fieldDefaultValue": "consul", + "fieldFlag": "admin-api.leader-election.ring.store", + "fieldType": "string" + }, + { + "kind": "field", + "name": "prefix", + "required": false, + "desc": "The prefix for the keys in the store. Should end with a /.", + "fieldValue": null, + "fieldDefaultValue": "leader-election/", + "fieldFlag": "admin-api.leader-election.ring.prefix", + "fieldType": "string" + }, + { + "kind": "block", + "name": "consul", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "host", + "required": false, + "desc": "Hostname and port of Consul.", + "fieldValue": null, + "fieldDefaultValue": "localhost:8500", + "fieldFlag": "admin-api.leader-election.ring.consul.hostname", + "fieldType": "string" + }, + { + "kind": "field", + "name": "acl_token", + "required": false, + "desc": "ACL Token used to interact with Consul.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin-api.leader-election.ring.consul.acl-token", + "fieldType": "string" + }, + { + "kind": "field", + "name": "http_client_timeout", + "required": false, + "desc": "HTTP timeout when talking to Consul", + "fieldValue": null, + "fieldDefaultValue": 20000000000, + "fieldFlag": "admin-api.leader-election.ring.consul.client-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "consistent_reads", + "required": false, + "desc": "Enable consistent reads to Consul.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "admin-api.leader-election.ring.consul.consistent-reads", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "watch_rate_limit", + "required": false, + "desc": "Rate limit when watching key or prefix in Consul, in requests per second. 0 disables the rate limit.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "admin-api.leader-election.ring.consul.watch-rate-limit", + "fieldType": "float" + }, + { + "kind": "field", + "name": "watch_burst_size", + "required": false, + "desc": "Burst size used in rate limit. Values less than 1 are treated as 1.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "admin-api.leader-election.ring.consul.watch-burst-size", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "etcd", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoints", + "required": false, + "desc": "The etcd endpoints to connect to.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "admin-api.leader-election.ring.etcd.endpoints", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "dial_timeout", + "required": false, + "desc": "The dial timeout for the etcd connection.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "admin-api.leader-election.ring.etcd.dial-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "The maximum number of retries to do for failed ops.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "admin-api.leader-election.ring.etcd.max-retries", + "fieldType": "int" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "admin-api.leader-election.ring.etcd.tls-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin-api.leader-election.ring.etcd.tls-cert-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin-api.leader-election.ring.etcd.tls-key-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin-api.leader-election.ring.etcd.tls-ca-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin-api.leader-election.ring.etcd.tls-server-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "admin-api.leader-election.ring.etcd.tls-insecure-skip-verify", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "username", + "required": false, + "desc": "Etcd username.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin-api.leader-election.ring.etcd.username", + "fieldType": "string" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "Etcd password.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin-api.leader-election.ring.etcd.password", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "multi", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "primary", + "required": false, + "desc": "Primary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin-api.leader-election.ring.multi.primary", + "fieldType": "string" + }, + { + "kind": "field", + "name": "secondary", + "required": false, + "desc": "Secondary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin-api.leader-election.ring.multi.secondary", + "fieldType": "string" + }, + { + "kind": "field", + "name": "mirror_enabled", + "required": false, + "desc": "Mirror writes to secondary store.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "admin-api.leader-election.ring.multi.mirror-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "mirror_timeout", + "required": false, + "desc": "Timeout for storing value to secondary store.", + "fieldValue": null, + "fieldDefaultValue": 2000000000, + "fieldFlag": "admin-api.leader-election.ring.multi.mirror-timeout", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "heartbeat_period", + "required": false, + "desc": "Period at which to heartbeat to the ring.", + "fieldValue": null, + "fieldDefaultValue": 15000000000, + "fieldFlag": "admin-api.leader-election.ring.heartbeat-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "heartbeat_timeout", + "required": false, + "desc": "The heartbeat timeout after which admin-api instances are considered unhealthy within the ring.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "admin-api.leader-election.ring.heartbeat-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "tokens_observe_period", + "required": false, + "desc": "Period to wait after generating tokens to resolve collisions. Required when using a gossip ring KV store.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "admin-api.leader-election.ring.tokens-observe-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "instance_interface_names", + "required": false, + "desc": "Name of network interface to read address from.", + "fieldValue": null, + "fieldDefaultValue": [ + "eth0", + "en0" + ], + "fieldFlag": "admin-api.leader-election.ring.instance-interface-names", + "fieldType": "list of string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "client_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "max_recv_msg_size", + "required": false, + "desc": "gRPC client max receive message size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 104857600, + "fieldFlag": "admin-api.leader-election.client.grpc-max-recv-msg-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_send_msg_size", + "required": false, + "desc": "gRPC client max send message size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 16777216, + "fieldFlag": "admin-api.leader-election.client.grpc-max-send-msg-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "grpc_compression", + "required": false, + "desc": "Use compression when sending messages. Supported values are: 'gzip', 'snappy' and '' (disable compression)", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin-api.leader-election.client.grpc-compression", + "fieldType": "string" + }, + { + "kind": "field", + "name": "rate_limit", + "required": false, + "desc": "Rate limit for gRPC client; 0 means disabled.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "admin-api.leader-election.client.grpc-client-rate-limit", + "fieldType": "float" + }, + { + "kind": "field", + "name": "rate_limit_burst", + "required": false, + "desc": "Rate limit burst for gRPC client.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "admin-api.leader-election.client.grpc-client-rate-limit-burst", + "fieldType": "int" + }, + { + "kind": "field", + "name": "backoff_on_ratelimits", + "required": false, + "desc": "Enable backoff and retry when we hit ratelimits.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "admin-api.leader-election.client.backoff-on-ratelimits", + "fieldType": "boolean" + }, + { + "kind": "block", + "name": "backoff_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "min_period", + "required": false, + "desc": "Minimum delay when backing off.", + "fieldValue": null, + "fieldDefaultValue": 100000000, + "fieldFlag": "admin-api.leader-election.client.backoff-min-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_period", + "required": false, + "desc": "Maximum delay when backing off.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "admin-api.leader-election.client.backoff-max-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Number of times to backoff and retry before failing.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "admin-api.leader-election.client.backoff-retries", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "admin-api.leader-election.client.tls-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin-api.leader-election.client.tls-cert-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin-api.leader-election.client.tls-key-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin-api.leader-election.client.tls-ca-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin-api.leader-election.client.tls-server-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "admin-api.leader-election.client.tls-insecure-skip-verify", + "fieldType": "boolean" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "limits", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "enabled", + "required": false, + "desc": "Enable API based limits per-tenant.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "admin-api.limits.enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "refresh_period", + "required": false, + "desc": "Period with which to refresh per-tenant limits.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "admin-api.limits.refresh-period", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "admin_client", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "storage", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "type", + "required": false, + "desc": "Set a backend to use, (gcs, s3, azure)", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin.client.backend-type", + "fieldType": "string" + }, + { + "kind": "field", + "name": "enable_cache", + "required": false, + "desc": "Enable caching on the versioned client", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "admin.client.cache.enabled", + "fieldType": "boolean" + }, + { + "kind": "block", + "name": "s3", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoint", + "required": false, + "desc": "The S3 bucket endpoint. It could be an AWS S3 endpoint listed at https://docs.aws.amazon.com/general/latest/gr/s3.html or the address of an S3-compatible service in hostname:port format.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin.client.s3.endpoint", + "fieldType": "string" + }, + { + "kind": "field", + "name": "region", + "required": false, + "desc": "S3 region. If unset, the client will issue a S3 GetBucketLocation API call to autodetect it.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin.client.s3.region", + "fieldType": "string" + }, + { + "kind": "field", + "name": "bucket_name", + "required": false, + "desc": "S3 bucket name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin.client.s3.bucket-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "secret_access_key", + "required": false, + "desc": "S3 secret access key", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin.client.s3.secret-access-key", + "fieldType": "string" + }, + { + "kind": "field", + "name": "access_key_id", + "required": false, + "desc": "S3 access key ID", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin.client.s3.access-key-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "insecure", + "required": false, + "desc": "If enabled, use http:// for the S3 endpoint instead of https://. This could be useful in local dev/test environments while using an S3-compatible backend storage, like Minio.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "admin.client.s3.insecure", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "signature_version", + "required": false, + "desc": "The signature version to use for authenticating against S3. Supported values are: v4, v2.", + "fieldValue": null, + "fieldDefaultValue": "v4", + "fieldFlag": "admin.client.s3.signature-version", + "fieldType": "string" + }, + { + "kind": "block", + "name": "sse", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "type", + "required": false, + "desc": "Enable AWS Server Side Encryption. Supported values: SSE-KMS, SSE-S3.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin.client.s3.sse.type", + "fieldType": "string" + }, + { + "kind": "field", + "name": "kms_key_id", + "required": false, + "desc": "KMS Key ID used to encrypt objects in S3", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin.client.s3.sse.kms-key-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "kms_encryption_context", + "required": false, + "desc": "KMS Encryption Context used for object encryption. It expects JSON formatted string.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin.client.s3.sse.kms-encryption-context", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "http", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "idle_conn_timeout", + "required": false, + "desc": "The time an idle connection will remain idle before closing.", + "fieldValue": null, + "fieldDefaultValue": 90000000000, + "fieldFlag": "admin.client.s3.http.idle-conn-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "response_header_timeout", + "required": false, + "desc": "The amount of time the client will wait for a servers response headers.", + "fieldValue": null, + "fieldDefaultValue": 120000000000, + "fieldFlag": "admin.client.s3.http.response-header-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "insecure_skip_verify", + "required": false, + "desc": "If the client connects to S3 via HTTPS and this option is enabled, the client will accept any certificate and hostname.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "admin.client.s3.http.insecure-skip-verify", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_handshake_timeout", + "required": false, + "desc": "Maximum time to wait for a TLS handshake. 0 means no limit.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "admin.client.s3.tls-handshake-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "expect_continue_timeout", + "required": false, + "desc": "The time to wait for a server's first response headers after fully writing the request headers if the request has an Expect header. 0 to send the request body immediately.", + "fieldValue": null, + "fieldDefaultValue": 1000000000, + "fieldFlag": "admin.client.s3.expect-continue-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_idle_connections", + "required": false, + "desc": "Maximum number of idle (keep-alive) connections across all hosts. 0 means no limit.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "admin.client.s3.max-idle-connections", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_idle_connections_per_host", + "required": false, + "desc": "Maximum number of idle (keep-alive) connections to keep per-host. If 0, a built-in default value is used.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "admin.client.s3.max-idle-connections-per-host", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_connections_per_host", + "required": false, + "desc": "Maximum number of connections per host. 0 means no limit.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "admin.client.s3.max-connections-per-host", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "gcs", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "bucket_name", + "required": false, + "desc": "GCS bucket name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin.client.gcs.bucket-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "service_account", + "required": false, + "desc": "JSON representing either a Google Developers Console client_credentials.json file or a Google Developers service account key file. If empty, fallback to Google default logic.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin.client.gcs.service-account", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "azure", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "account_name", + "required": false, + "desc": "Azure storage account name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin.client.azure.account-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "account_key", + "required": false, + "desc": "Azure storage account key", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin.client.azure.account-key", + "fieldType": "string" + }, + { + "kind": "field", + "name": "container_name", + "required": false, + "desc": "Azure storage container name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin.client.azure.container-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "endpoint_suffix", + "required": false, + "desc": "Azure storage endpoint suffix without schema. The account name will be prefixed to this value to create the FQDN", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin.client.azure.endpoint-suffix", + "fieldType": "string" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Number of retries for recoverable errors", + "fieldValue": null, + "fieldDefaultValue": 20, + "fieldFlag": "admin.client.azure.max-retries", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "disable_default_admin_policy", + "required": false, + "desc": "If set to true, the built-in __admin__ access policy will not be active.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "admin.client.disable-default-admin-policy", + "fieldType": "boolean" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "auth", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "type", + "required": false, + "desc": "method for authenticating incoming HTTP requests, (trust, enterprise).", + "fieldValue": null, + "fieldDefaultValue": "trust", + "fieldFlag": "auth.type", + "fieldType": "string" + }, + { + "kind": "field", + "name": "required_for_metrics", + "required": false, + "desc": "requires admin level auth for the /metrics endpoint.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "auth.required-for-metrics", + "fieldType": "boolean" + }, + { + "kind": "block", + "name": "override", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "token", + "required": false, + "desc": "Override admin token. If set, this string will always be accepted as a token with admin level scope.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "auth.override.token", + "fieldType": "string" + }, + { + "kind": "field", + "name": "token_file", + "required": false, + "desc": "If set, this file will be read at startup and the string from that file will be used as a admin scoped token.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "auth.override.token-file", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "admin", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "cache_ttl", + "required": false, + "desc": "how long auth responses should be cached", + "fieldValue": null, + "fieldDefaultValue": 600000000000, + "fieldFlag": "auth.cache.ttl", + "fieldType": "duration" + }, + { + "kind": "block", + "name": "oidc", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "issuer_url", + "required": false, + "desc": "JWT token issuer URL (example \"https://accounts.google.com\")", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "auth.admin.oidc.issuer-url", + "fieldType": "string" + }, + { + "kind": "field", + "name": "access_policy_claim", + "required": false, + "desc": "claim in the JWT token containing the access policy", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "auth.admin.oidc.access-policy-claim", + "fieldType": "string" + }, + { + "kind": "field", + "name": "access_policy_regex", + "required": false, + "desc": "regex to extract the access policy from the JWT token. The first submatch of the provided regex expression will be used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "auth.admin.oidc.access-policy-regex", + "fieldType": "string" + }, + { + "kind": "field", + "name": "audience", + "required": false, + "desc": "optional audience to check in JWT token", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "auth.admin.oidc.audience", + "fieldType": "string" + }, + { + "kind": "field", + "name": "default_access_policy", + "required": false, + "desc": "name of the access policy to use when the token doesn't contain an access policy", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "auth.admin.oidc.default-access-policy", + "fieldType": "string" + }, + { + "kind": "field", + "name": "adfs_compatibility", + "required": false, + "desc": "enable ADFS compatibility", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "auth.admin.oidc.adfs-compatibility", + "fieldType": "boolean" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "bootstrap", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "policy_name", + "required": false, + "desc": "Name of built in access policy.", + "fieldValue": null, + "fieldDefaultValue": "admin-policy", + "fieldFlag": "bootstrap.policy-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "token_file", + "required": false, + "desc": "Write token to this instead of the standard out.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "bootstrap.token-file", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "cluster_name", + "required": false, + "desc": "Unique ID of this cortex cluster. If undefined the name in the license is used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "cluster-name", + "fieldType": "string" + }, + { + "kind": "block", + "name": "federation", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "proxy_targets", + "required": false, + "desc": "", + "fieldValue": null, + "fieldDefaultValue": null, + "fieldType": "slice", + "fieldElement": { + "kind": "block", + "name": "proxy_targets", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "name", + "required": false, + "desc": "Name contains the name of the proxy target, it will be used for the __cluster__ label.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldType": "string" + }, + { + "kind": "field", + "name": "url", + "required": false, + "desc": "URL is the URL to the Prometheus API endpoints.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldType": "string" + }, + { + "kind": "block", + "name": "basic_auth", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "username", + "required": false, + "desc": "Basic Auth username", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldType": "string" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "Basic Auth password", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "tls", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldType": "boolean" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "gateway", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "proxy", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "default", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "url", + "required": false, + "desc": "URL for the backend. Use the scheme dns:// for HTTP over GPRC and the scheme h2c:// for HTTP2 proxying.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.default.url", + "fieldType": "string" + }, + { + "kind": "field", + "name": "enable_keepalive", + "required": false, + "desc": "Enable keep alive for the backend.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "gateway.proxy.default.enable-keepalive", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.default.tls-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.default.tls-cert-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.default.tls-key-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.default.tls-ca-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.default.tls-server-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.default.tls-insecure-skip-verify", + "fieldType": "boolean" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "admin_api", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "url", + "required": false, + "desc": "URL for the backend. Use the scheme dns:// for HTTP over GPRC and the scheme h2c:// for HTTP2 proxying.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.admin-api.url", + "fieldType": "string" + }, + { + "kind": "field", + "name": "enable_keepalive", + "required": false, + "desc": "Enable keep alive for the backend.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "gateway.proxy.admin-api.enable-keepalive", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.admin-api.tls-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.admin-api.tls-cert-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.admin-api.tls-key-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.admin-api.tls-ca-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.admin-api.tls-server-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.admin-api.tls-insecure-skip-verify", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "write_timeout", + "required": false, + "desc": "Timeout for write requests to the backend, set to \u003c=0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "gateway.proxy.admin-api.write-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "read_timeout", + "required": false, + "desc": "Timeout for read requests the backend, set to \u003c=0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 120000000000, + "fieldFlag": "gateway.proxy.admin-api.read-timeout", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "alertmanager", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "url", + "required": false, + "desc": "URL for the backend. Use the scheme dns:// for HTTP over GPRC and the scheme h2c:// for HTTP2 proxying.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.alertmanager.url", + "fieldType": "string" + }, + { + "kind": "field", + "name": "enable_keepalive", + "required": false, + "desc": "Enable keep alive for the backend.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "gateway.proxy.alertmanager.enable-keepalive", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.alertmanager.tls-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.alertmanager.tls-cert-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.alertmanager.tls-key-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.alertmanager.tls-ca-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.alertmanager.tls-server-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.alertmanager.tls-insecure-skip-verify", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "write_timeout", + "required": false, + "desc": "Timeout for write requests to the backend, set to \u003c=0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "gateway.proxy.alertmanager.write-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "read_timeout", + "required": false, + "desc": "Timeout for read requests the backend, set to \u003c=0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 120000000000, + "fieldFlag": "gateway.proxy.alertmanager.read-timeout", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "compactor", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "url", + "required": false, + "desc": "URL for the backend. Use the scheme dns:// for HTTP over GPRC and the scheme h2c:// for HTTP2 proxying.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.compactor.url", + "fieldType": "string" + }, + { + "kind": "field", + "name": "enable_keepalive", + "required": false, + "desc": "Enable keep alive for the backend.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "gateway.proxy.compactor.enable-keepalive", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.compactor.tls-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.compactor.tls-cert-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.compactor.tls-key-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.compactor.tls-ca-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.compactor.tls-server-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.compactor.tls-insecure-skip-verify", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "write_timeout", + "required": false, + "desc": "Timeout for write requests to the backend, set to \u003c=0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "gateway.proxy.compactor.write-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "read_timeout", + "required": false, + "desc": "Timeout for read requests the backend, set to \u003c=0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 120000000000, + "fieldFlag": "gateway.proxy.compactor.read-timeout", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "distributor", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "url", + "required": false, + "desc": "URL for the backend. Use the scheme dns:// for HTTP over GPRC and the scheme h2c:// for HTTP2 proxying.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.distributor.url", + "fieldType": "string" + }, + { + "kind": "field", + "name": "enable_keepalive", + "required": false, + "desc": "Enable keep alive for the backend.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "gateway.proxy.distributor.enable-keepalive", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.distributor.tls-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.distributor.tls-cert-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.distributor.tls-key-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.distributor.tls-ca-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.distributor.tls-server-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.distributor.tls-insecure-skip-verify", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "write_timeout", + "required": false, + "desc": "Timeout for write requests to the backend, set to \u003c=0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "gateway.proxy.distributor.write-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "read_timeout", + "required": false, + "desc": "Timeout for read requests the backend, set to \u003c=0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 120000000000, + "fieldFlag": "gateway.proxy.distributor.read-timeout", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "graphite", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "url", + "required": false, + "desc": "URL for the backend. Use the scheme dns:// for HTTP over GPRC and the scheme h2c:// for HTTP2 proxying.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.graphite.url", + "fieldType": "string" + }, + { + "kind": "field", + "name": "enable_keepalive", + "required": false, + "desc": "Enable keep alive for the backend.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "gateway.proxy.graphite.enable-keepalive", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.graphite.tls-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.graphite.tls-cert-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.graphite.tls-key-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.graphite.tls-ca-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.graphite.tls-server-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.graphite.tls-insecure-skip-verify", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "write_timeout", + "required": false, + "desc": "Timeout for write requests to the backend, set to \u003c=0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "gateway.proxy.graphite.write-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "read_timeout", + "required": false, + "desc": "Timeout for read requests the backend, set to \u003c=0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 120000000000, + "fieldFlag": "gateway.proxy.graphite.read-timeout", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "ingester", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "url", + "required": false, + "desc": "URL for the backend. Use the scheme dns:// for HTTP over GPRC and the scheme h2c:// for HTTP2 proxying.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.ingester.url", + "fieldType": "string" + }, + { + "kind": "field", + "name": "enable_keepalive", + "required": false, + "desc": "Enable keep alive for the backend.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "gateway.proxy.ingester.enable-keepalive", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.ingester.tls-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.ingester.tls-cert-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.ingester.tls-key-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.ingester.tls-ca-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.ingester.tls-server-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.ingester.tls-insecure-skip-verify", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "write_timeout", + "required": false, + "desc": "Timeout for write requests to the backend, set to \u003c=0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "gateway.proxy.ingester.write-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "read_timeout", + "required": false, + "desc": "Timeout for read requests the backend, set to \u003c=0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 120000000000, + "fieldFlag": "gateway.proxy.ingester.read-timeout", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "query_frontend", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "url", + "required": false, + "desc": "URL for the backend. Use the scheme dns:// for HTTP over GPRC and the scheme h2c:// for HTTP2 proxying.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.query-frontend.url", + "fieldType": "string" + }, + { + "kind": "field", + "name": "enable_keepalive", + "required": false, + "desc": "Enable keep alive for the backend.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "gateway.proxy.query-frontend.enable-keepalive", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.query-frontend.tls-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.query-frontend.tls-cert-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.query-frontend.tls-key-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.query-frontend.tls-ca-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.query-frontend.tls-server-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.query-frontend.tls-insecure-skip-verify", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "write_timeout", + "required": false, + "desc": "Timeout for write requests to the backend, set to \u003c=0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "gateway.proxy.query-frontend.write-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "read_timeout", + "required": false, + "desc": "Timeout for read requests the backend, set to \u003c=0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 120000000000, + "fieldFlag": "gateway.proxy.query-frontend.read-timeout", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "ruler", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "url", + "required": false, + "desc": "URL for the backend. Use the scheme dns:// for HTTP over GPRC and the scheme h2c:// for HTTP2 proxying.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.ruler.url", + "fieldType": "string" + }, + { + "kind": "field", + "name": "enable_keepalive", + "required": false, + "desc": "Enable keep alive for the backend.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "gateway.proxy.ruler.enable-keepalive", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.ruler.tls-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.ruler.tls-cert-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.ruler.tls-key-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.ruler.tls-ca-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.ruler.tls-server-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.ruler.tls-insecure-skip-verify", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "write_timeout", + "required": false, + "desc": "Timeout for write requests to the backend, set to \u003c=0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "gateway.proxy.ruler.write-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "read_timeout", + "required": false, + "desc": "Timeout for read requests the backend, set to \u003c=0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 120000000000, + "fieldFlag": "gateway.proxy.ruler.read-timeout", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "store_gateway", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "url", + "required": false, + "desc": "URL for the backend. Use the scheme dns:// for HTTP over GPRC and the scheme h2c:// for HTTP2 proxying.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.store-gateway.url", + "fieldType": "string" + }, + { + "kind": "field", + "name": "enable_keepalive", + "required": false, + "desc": "Enable keep alive for the backend.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "gateway.proxy.store-gateway.enable-keepalive", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.store-gateway.tls-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.store-gateway.tls-cert-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.store-gateway.tls-key-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.store-gateway.tls-ca-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.store-gateway.tls-server-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.store-gateway.tls-insecure-skip-verify", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "write_timeout", + "required": false, + "desc": "Timeout for write requests to the backend, set to \u003c=0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "gateway.proxy.store-gateway.write-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "read_timeout", + "required": false, + "desc": "Timeout for read requests the backend, set to \u003c=0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 120000000000, + "fieldFlag": "gateway.proxy.store-gateway.read-timeout", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "graphite", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "enabled", + "required": false, + "desc": "Whether the Graphite APIs are enabled (Experimental).", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "graphite.enabled", + "fieldType": "boolean" + }, + { + "kind": "block", + "name": "querier", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "schemas", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "schema_ttl", + "required": false, + "desc": "Defines for how long schemas shall be cached.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "graphite.querier.schemas.schema-ttl", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "default_storage_schemas_file", + "required": false, + "desc": "Path to default storage-schemas.conf file.", + "fieldValue": null, + "fieldDefaultValue": "/etc/cortextank/storage-schemas.conf", + "fieldFlag": "graphite.querier.schemas.default-storage-schemas-file", + "fieldType": "string" + }, + { + "kind": "field", + "name": "default_storage_aggregations_file", + "required": false, + "desc": "Path to default storage-aggregation.conf file.", + "fieldValue": null, + "fieldDefaultValue": "/etc/cortextank/storage-aggregation.conf", + "fieldFlag": "graphite.querier.schemas.default-storage-aggregations-file", + "fieldType": "string" + }, + { + "kind": "field", + "name": "enable_user_overrides", + "required": false, + "desc": "Whether support for object store backed user overrides should be enabled.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "graphite.querier.schemas.enable-user-overrides", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "backend", + "required": false, + "desc": "Backend storage to use. Supported backends are: s3, gcs, azure, swift, filesystem.", + "fieldValue": null, + "fieldDefaultValue": "s3", + "fieldFlag": "graphite.querier.schemas.backend", + "fieldType": "string" + }, + { + "kind": "block", + "name": "s3", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoint", + "required": false, + "desc": "The S3 bucket endpoint. It could be an AWS S3 endpoint listed at https://docs.aws.amazon.com/general/latest/gr/s3.html or the address of an S3-compatible service in hostname:port format.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.s3.endpoint", + "fieldType": "string" + }, + { + "kind": "field", + "name": "region", + "required": false, + "desc": "S3 region. If unset, the client will issue a S3 GetBucketLocation API call to autodetect it.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.s3.region", + "fieldType": "string" + }, + { + "kind": "field", + "name": "bucket_name", + "required": false, + "desc": "S3 bucket name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.s3.bucket-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "secret_access_key", + "required": false, + "desc": "S3 secret access key", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.s3.secret-access-key", + "fieldType": "string" + }, + { + "kind": "field", + "name": "access_key_id", + "required": false, + "desc": "S3 access key ID", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.s3.access-key-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "insecure", + "required": false, + "desc": "If enabled, use http:// for the S3 endpoint instead of https://. This could be useful in local dev/test environments while using an S3-compatible backend storage, like Minio.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "graphite.querier.schemas.s3.insecure", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "signature_version", + "required": false, + "desc": "The signature version to use for authenticating against S3. Supported values are: v4, v2.", + "fieldValue": null, + "fieldDefaultValue": "v4", + "fieldFlag": "graphite.querier.schemas.s3.signature-version", + "fieldType": "string" + }, + { + "kind": "block", + "name": "sse", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "type", + "required": false, + "desc": "Enable AWS Server Side Encryption. Supported values: SSE-KMS, SSE-S3.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.s3.sse.type", + "fieldType": "string" + }, + { + "kind": "field", + "name": "kms_key_id", + "required": false, + "desc": "KMS Key ID used to encrypt objects in S3", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.s3.sse.kms-key-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "kms_encryption_context", + "required": false, + "desc": "KMS Encryption Context used for object encryption. It expects JSON formatted string.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.s3.sse.kms-encryption-context", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "http", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "idle_conn_timeout", + "required": false, + "desc": "The time an idle connection will remain idle before closing.", + "fieldValue": null, + "fieldDefaultValue": 90000000000, + "fieldFlag": "graphite.querier.schemas.s3.http.idle-conn-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "response_header_timeout", + "required": false, + "desc": "The amount of time the client will wait for a servers response headers.", + "fieldValue": null, + "fieldDefaultValue": 120000000000, + "fieldFlag": "graphite.querier.schemas.s3.http.response-header-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "insecure_skip_verify", + "required": false, + "desc": "If the client connects to S3 via HTTPS and this option is enabled, the client will accept any certificate and hostname.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "graphite.querier.schemas.s3.http.insecure-skip-verify", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_handshake_timeout", + "required": false, + "desc": "Maximum time to wait for a TLS handshake. 0 means no limit.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "graphite.querier.schemas.s3.tls-handshake-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "expect_continue_timeout", + "required": false, + "desc": "The time to wait for a server's first response headers after fully writing the request headers if the request has an Expect header. 0 to send the request body immediately.", + "fieldValue": null, + "fieldDefaultValue": 1000000000, + "fieldFlag": "graphite.querier.schemas.s3.expect-continue-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_idle_connections", + "required": false, + "desc": "Maximum number of idle (keep-alive) connections across all hosts. 0 means no limit.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "graphite.querier.schemas.s3.max-idle-connections", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_idle_connections_per_host", + "required": false, + "desc": "Maximum number of idle (keep-alive) connections to keep per-host. If 0, a built-in default value is used.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "graphite.querier.schemas.s3.max-idle-connections-per-host", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_connections_per_host", + "required": false, + "desc": "Maximum number of connections per host. 0 means no limit.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "graphite.querier.schemas.s3.max-connections-per-host", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "gcs", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "bucket_name", + "required": false, + "desc": "GCS bucket name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.gcs.bucket-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "service_account", + "required": false, + "desc": "JSON representing either a Google Developers Console client_credentials.json file or a Google Developers service account key file. If empty, fallback to Google default logic.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.gcs.service-account", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "azure", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "account_name", + "required": false, + "desc": "Azure storage account name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.azure.account-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "account_key", + "required": false, + "desc": "Azure storage account key", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.azure.account-key", + "fieldType": "string" + }, + { + "kind": "field", + "name": "container_name", + "required": false, + "desc": "Azure storage container name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.azure.container-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "endpoint_suffix", + "required": false, + "desc": "Azure storage endpoint suffix without schema. The account name will be prefixed to this value to create the FQDN", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.azure.endpoint-suffix", + "fieldType": "string" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Number of retries for recoverable errors", + "fieldValue": null, + "fieldDefaultValue": 20, + "fieldFlag": "graphite.querier.schemas.azure.max-retries", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "swift", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "auth_version", + "required": false, + "desc": "OpenStack Swift authentication API version. 0 to autodetect.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "graphite.querier.schemas.swift.auth-version", + "fieldType": "int" + }, + { + "kind": "field", + "name": "auth_url", + "required": false, + "desc": "OpenStack Swift authentication URL", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.swift.auth-url", + "fieldType": "string" + }, + { + "kind": "field", + "name": "username", + "required": false, + "desc": "OpenStack Swift username.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.swift.username", + "fieldType": "string" + }, + { + "kind": "field", + "name": "user_domain_name", + "required": false, + "desc": "OpenStack Swift user's domain name.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.swift.user-domain-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "user_domain_id", + "required": false, + "desc": "OpenStack Swift user's domain ID.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.swift.user-domain-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "user_id", + "required": false, + "desc": "OpenStack Swift user ID.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.swift.user-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "OpenStack Swift API key.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.swift.password", + "fieldType": "string" + }, + { + "kind": "field", + "name": "domain_id", + "required": false, + "desc": "OpenStack Swift user's domain ID.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.swift.domain-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "domain_name", + "required": false, + "desc": "OpenStack Swift user's domain name.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.swift.domain-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_id", + "required": false, + "desc": "OpenStack Swift project ID (v2,v3 auth only).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.swift.project-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_name", + "required": false, + "desc": "OpenStack Swift project name (v2,v3 auth only).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.swift.project-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_domain_id", + "required": false, + "desc": "ID of the OpenStack Swift project's domain (v3 auth only), only needed if it differs the from user domain.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.swift.project-domain-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_domain_name", + "required": false, + "desc": "Name of the OpenStack Swift project's domain (v3 auth only), only needed if it differs from the user domain.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.swift.project-domain-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "region_name", + "required": false, + "desc": "OpenStack Swift Region to use (v2,v3 auth only).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.swift.region-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "container_name", + "required": false, + "desc": "Name of the OpenStack Swift container to put chunks in.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.swift.container-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Max retries on requests error.", + "fieldValue": null, + "fieldDefaultValue": 3, + "fieldFlag": "graphite.querier.schemas.swift.max-retries", + "fieldType": "int" + }, + { + "kind": "field", + "name": "connect_timeout", + "required": false, + "desc": "Time after which a connection attempt is aborted.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "graphite.querier.schemas.swift.connect-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "request_timeout", + "required": false, + "desc": "Time after which an idle request is aborted. The timeout watchdog is reset each time some data is received, so the timeout triggers after X time no data is received on a request.", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "graphite.querier.schemas.swift.request-timeout", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "filesystem", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "dir", + "required": false, + "desc": "Local filesystem storage directory.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.filesystem.dir", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "cache_grace_period", + "required": false, + "desc": "Period to wait before expiring a cached item.", + "fieldValue": null, + "fieldDefaultValue": 300000000000, + "fieldFlag": "graphite.querier.cache-grace-period", + "fieldType": "duration" + }, + { + "kind": "block", + "name": "metric_name_cache", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "enable_fifocache", + "required": false, + "desc": "Cache config for metric names. Enable in-memory cache.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "graphite.querier.metric-name-cache.cache.enable-fifocache", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "default_validity", + "required": false, + "desc": "Cache config for metric names. The default validity of entries for caches unless overridden.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "graphite.querier.metric-name-cache.default-validity", + "fieldType": "duration" + }, + { + "kind": "block", + "name": "background", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "writeback_goroutines", + "required": false, + "desc": "Cache config for metric names. At what concurrency to write back to cache.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "graphite.querier.metric-name-cache.background.write-back-concurrency", + "fieldType": "int" + }, + { + "kind": "field", + "name": "writeback_buffer", + "required": false, + "desc": "Cache config for metric names. How many key batches to buffer for background write-back.", + "fieldValue": null, + "fieldDefaultValue": 10000, + "fieldFlag": "graphite.querier.metric-name-cache.background.write-back-buffer", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "memcached", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "expiration", + "required": false, + "desc": "Cache config for metric names. How long keys stay in the memcache.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "graphite.querier.metric-name-cache.memcached.expiration", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "batch_size", + "required": false, + "desc": "Cache config for metric names. How many keys to fetch in each batch.", + "fieldValue": null, + "fieldDefaultValue": 1024, + "fieldFlag": "graphite.querier.metric-name-cache.memcached.batchsize", + "fieldType": "int" + }, + { + "kind": "field", + "name": "parallelism", + "required": false, + "desc": "Cache config for metric names. Maximum active requests to memcache.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "graphite.querier.metric-name-cache.memcached.parallelism", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "memcached_client", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "host", + "required": false, + "desc": "Cache config for metric names. Hostname for memcached service to use. If empty and if addresses is unset, no memcached will be used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.metric-name-cache.memcached.hostname", + "fieldType": "string" + }, + { + "kind": "field", + "name": "service", + "required": false, + "desc": "Cache config for metric names. SRV service used to discover memcache servers.", + "fieldValue": null, + "fieldDefaultValue": "memcached", + "fieldFlag": "graphite.querier.metric-name-cache.memcached.service", + "fieldType": "string" + }, + { + "kind": "field", + "name": "addresses", + "required": false, + "desc": "Cache config for metric names. EXPERIMENTAL: Comma separated addresses list in DNS Service Discovery format: https://cortexmetrics.io/docs/configuration/arguments/#dns-service-discovery", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.metric-name-cache.memcached.addresses", + "fieldType": "string" + }, + { + "kind": "field", + "name": "timeout", + "required": false, + "desc": "Cache config for metric names. Maximum time to wait before giving up on memcached requests.", + "fieldValue": null, + "fieldDefaultValue": 100000000, + "fieldFlag": "graphite.querier.metric-name-cache.memcached.timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_idle_conns", + "required": false, + "desc": "Cache config for metric names. Maximum number of idle connections in pool.", + "fieldValue": null, + "fieldDefaultValue": 16, + "fieldFlag": "graphite.querier.metric-name-cache.memcached.max-idle-conns", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_item_size", + "required": false, + "desc": "Cache config for metric names. The maximum size of an item stored in memcached. Bigger items are not stored. If set to 0, no maximum size is enforced.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "graphite.querier.metric-name-cache.memcached.max-item-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "update_interval", + "required": false, + "desc": "Cache config for metric names. Period with which to poll DNS for memcache servers.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "graphite.querier.metric-name-cache.memcached.update-interval", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "consistent_hash", + "required": false, + "desc": "Cache config for metric names. Use consistent hashing to distribute to memcache servers.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "graphite.querier.metric-name-cache.memcached.consistent-hash", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "circuit_breaker_consecutive_failures", + "required": false, + "desc": "Cache config for metric names. Trip circuit-breaker after this number of consecutive dial failures (if zero then circuit-breaker is disabled).", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "graphite.querier.metric-name-cache.memcached.circuit-breaker-consecutive-failures", + "fieldType": "int" + }, + { + "kind": "field", + "name": "circuit_breaker_timeout", + "required": false, + "desc": "Cache config for metric names. Duration circuit-breaker remains open after tripping (if zero then 60 seconds is used).", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "graphite.querier.metric-name-cache.memcached.circuit-breaker-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "circuit_breaker_interval", + "required": false, + "desc": "Cache config for metric names. Reset circuit-breaker counts after this long (if zero then never reset).", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "graphite.querier.metric-name-cache.memcached.circuit-breaker-interval", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "redis", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoint", + "required": false, + "desc": "Cache config for metric names. Redis Server endpoint to use for caching. A comma-separated list of endpoints for Redis Cluster or Redis Sentinel. If empty, no redis will be used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.metric-name-cache.redis.endpoint", + "fieldType": "string" + }, + { + "kind": "field", + "name": "master_name", + "required": false, + "desc": "Cache config for metric names. Redis Sentinel master name. An empty string for Redis Server or Redis Cluster.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.metric-name-cache.redis.master-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "timeout", + "required": false, + "desc": "Cache config for metric names. Maximum time to wait before giving up on redis requests.", + "fieldValue": null, + "fieldDefaultValue": 500000000, + "fieldFlag": "graphite.querier.metric-name-cache.redis.timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "expiration", + "required": false, + "desc": "Cache config for metric names. How long keys stay in the redis.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "graphite.querier.metric-name-cache.redis.expiration", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "db", + "required": false, + "desc": "Cache config for metric names. Database index.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "graphite.querier.metric-name-cache.redis.db", + "fieldType": "int" + }, + { + "kind": "field", + "name": "pool_size", + "required": false, + "desc": "Cache config for metric names. Maximum number of connections in the pool.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "graphite.querier.metric-name-cache.redis.pool-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "Cache config for metric names. Password to use when connecting to redis.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.metric-name-cache.redis.password", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Cache config for metric names. Enable connecting to redis with TLS.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "graphite.querier.metric-name-cache.redis.tls-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Cache config for metric names. Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "graphite.querier.metric-name-cache.redis.tls-insecure-skip-verify", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "idle_timeout", + "required": false, + "desc": "Cache config for metric names. Close connections after remaining idle for this duration. If the value is zero, then idle connections are not closed.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "graphite.querier.metric-name-cache.redis.idle-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_connection_age", + "required": false, + "desc": "Cache config for metric names. Close connections older than this duration. If the value is zero, then the pool does not close connections based on age.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "graphite.querier.metric-name-cache.redis.max-connection-age", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "fifocache", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "max_size_bytes", + "required": false, + "desc": "Cache config for metric names. Maximum memory size of the cache in bytes. A unit suffix (KB, MB, GB) may be applied.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.metric-name-cache.fifocache.max-size-bytes", + "fieldType": "string" + }, + { + "kind": "field", + "name": "max_size_items", + "required": false, + "desc": "Cache config for metric names. Maximum number of entries in the cache.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "graphite.querier.metric-name-cache.fifocache.max-size-items", + "fieldType": "int" + }, + { + "kind": "field", + "name": "validity", + "required": false, + "desc": "Cache config for metric names. The expiry duration for the cache.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "graphite.querier.metric-name-cache.fifocache.duration", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "size", + "required": false, + "desc": "Deprecated (use max-size-items or max-size-bytes instead): Cache config for metric names. The number of entries to cache. ", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "graphite.querier.metric-name-cache.fifocache.size", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "aggregation_cache", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "enable_fifocache", + "required": false, + "desc": "Cache config for aggregations. Enable in-memory cache.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "graphite.querier.aggregation-cache.cache.enable-fifocache", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "default_validity", + "required": false, + "desc": "Cache config for aggregations. The default validity of entries for caches unless overridden.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "graphite.querier.aggregation-cache.default-validity", + "fieldType": "duration" + }, + { + "kind": "block", + "name": "background", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "writeback_goroutines", + "required": false, + "desc": "Cache config for aggregations. At what concurrency to write back to cache.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "graphite.querier.aggregation-cache.background.write-back-concurrency", + "fieldType": "int" + }, + { + "kind": "field", + "name": "writeback_buffer", + "required": false, + "desc": "Cache config for aggregations. How many key batches to buffer for background write-back.", + "fieldValue": null, + "fieldDefaultValue": 10000, + "fieldFlag": "graphite.querier.aggregation-cache.background.write-back-buffer", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "memcached", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "expiration", + "required": false, + "desc": "Cache config for aggregations. How long keys stay in the memcache.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "graphite.querier.aggregation-cache.memcached.expiration", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "batch_size", + "required": false, + "desc": "Cache config for aggregations. How many keys to fetch in each batch.", + "fieldValue": null, + "fieldDefaultValue": 1024, + "fieldFlag": "graphite.querier.aggregation-cache.memcached.batchsize", + "fieldType": "int" + }, + { + "kind": "field", + "name": "parallelism", + "required": false, + "desc": "Cache config for aggregations. Maximum active requests to memcache.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "graphite.querier.aggregation-cache.memcached.parallelism", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "memcached_client", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "host", + "required": false, + "desc": "Cache config for aggregations. Hostname for memcached service to use. If empty and if addresses is unset, no memcached will be used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.aggregation-cache.memcached.hostname", + "fieldType": "string" + }, + { + "kind": "field", + "name": "service", + "required": false, + "desc": "Cache config for aggregations. SRV service used to discover memcache servers.", + "fieldValue": null, + "fieldDefaultValue": "memcached", + "fieldFlag": "graphite.querier.aggregation-cache.memcached.service", + "fieldType": "string" + }, + { + "kind": "field", + "name": "addresses", + "required": false, + "desc": "Cache config for aggregations. EXPERIMENTAL: Comma separated addresses list in DNS Service Discovery format: https://cortexmetrics.io/docs/configuration/arguments/#dns-service-discovery", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.aggregation-cache.memcached.addresses", + "fieldType": "string" + }, + { + "kind": "field", + "name": "timeout", + "required": false, + "desc": "Cache config for aggregations. Maximum time to wait before giving up on memcached requests.", + "fieldValue": null, + "fieldDefaultValue": 100000000, + "fieldFlag": "graphite.querier.aggregation-cache.memcached.timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_idle_conns", + "required": false, + "desc": "Cache config for aggregations. Maximum number of idle connections in pool.", + "fieldValue": null, + "fieldDefaultValue": 16, + "fieldFlag": "graphite.querier.aggregation-cache.memcached.max-idle-conns", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_item_size", + "required": false, + "desc": "Cache config for aggregations. The maximum size of an item stored in memcached. Bigger items are not stored. If set to 0, no maximum size is enforced.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "graphite.querier.aggregation-cache.memcached.max-item-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "update_interval", + "required": false, + "desc": "Cache config for aggregations. Period with which to poll DNS for memcache servers.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "graphite.querier.aggregation-cache.memcached.update-interval", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "consistent_hash", + "required": false, + "desc": "Cache config for aggregations. Use consistent hashing to distribute to memcache servers.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "graphite.querier.aggregation-cache.memcached.consistent-hash", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "circuit_breaker_consecutive_failures", + "required": false, + "desc": "Cache config for aggregations. Trip circuit-breaker after this number of consecutive dial failures (if zero then circuit-breaker is disabled).", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "graphite.querier.aggregation-cache.memcached.circuit-breaker-consecutive-failures", + "fieldType": "int" + }, + { + "kind": "field", + "name": "circuit_breaker_timeout", + "required": false, + "desc": "Cache config for aggregations. Duration circuit-breaker remains open after tripping (if zero then 60 seconds is used).", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "graphite.querier.aggregation-cache.memcached.circuit-breaker-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "circuit_breaker_interval", + "required": false, + "desc": "Cache config for aggregations. Reset circuit-breaker counts after this long (if zero then never reset).", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "graphite.querier.aggregation-cache.memcached.circuit-breaker-interval", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "redis", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoint", + "required": false, + "desc": "Cache config for aggregations. Redis Server endpoint to use for caching. A comma-separated list of endpoints for Redis Cluster or Redis Sentinel. If empty, no redis will be used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.aggregation-cache.redis.endpoint", + "fieldType": "string" + }, + { + "kind": "field", + "name": "master_name", + "required": false, + "desc": "Cache config for aggregations. Redis Sentinel master name. An empty string for Redis Server or Redis Cluster.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.aggregation-cache.redis.master-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "timeout", + "required": false, + "desc": "Cache config for aggregations. Maximum time to wait before giving up on redis requests.", + "fieldValue": null, + "fieldDefaultValue": 500000000, + "fieldFlag": "graphite.querier.aggregation-cache.redis.timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "expiration", + "required": false, + "desc": "Cache config for aggregations. How long keys stay in the redis.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "graphite.querier.aggregation-cache.redis.expiration", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "db", + "required": false, + "desc": "Cache config for aggregations. Database index.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "graphite.querier.aggregation-cache.redis.db", + "fieldType": "int" + }, + { + "kind": "field", + "name": "pool_size", + "required": false, + "desc": "Cache config for aggregations. Maximum number of connections in the pool.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "graphite.querier.aggregation-cache.redis.pool-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "Cache config for aggregations. Password to use when connecting to redis.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.aggregation-cache.redis.password", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Cache config for aggregations. Enable connecting to redis with TLS.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "graphite.querier.aggregation-cache.redis.tls-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Cache config for aggregations. Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "graphite.querier.aggregation-cache.redis.tls-insecure-skip-verify", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "idle_timeout", + "required": false, + "desc": "Cache config for aggregations. Close connections after remaining idle for this duration. If the value is zero, then idle connections are not closed.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "graphite.querier.aggregation-cache.redis.idle-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_connection_age", + "required": false, + "desc": "Cache config for aggregations. Close connections older than this duration. If the value is zero, then the pool does not close connections based on age.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "graphite.querier.aggregation-cache.redis.max-connection-age", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "fifocache", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "max_size_bytes", + "required": false, + "desc": "Cache config for aggregations. Maximum memory size of the cache in bytes. A unit suffix (KB, MB, GB) may be applied.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.aggregation-cache.fifocache.max-size-bytes", + "fieldType": "string" + }, + { + "kind": "field", + "name": "max_size_items", + "required": false, + "desc": "Cache config for aggregations. Maximum number of entries in the cache.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "graphite.querier.aggregation-cache.fifocache.max-size-items", + "fieldType": "int" + }, + { + "kind": "field", + "name": "validity", + "required": false, + "desc": "Cache config for aggregations. The expiry duration for the cache.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "graphite.querier.aggregation-cache.fifocache.duration", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "size", + "required": false, + "desc": "Deprecated (use max-size-items or max-size-bytes instead): Cache config for aggregations. The number of entries to cache. ", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "graphite.querier.aggregation-cache.fifocache.size", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "query_handling_concurrency", + "required": false, + "desc": "Number of go routines to concurrently fetch and process data.", + "fieldValue": null, + "fieldDefaultValue": 8, + "fieldFlag": "graphite.querier.query-handling-concurrency", + "fieldType": "int" + }, + { + "kind": "field", + "name": "split_queries_by_interval", + "required": false, + "desc": "Split queries by this interval and execute in parallel, 0 disables query splitting.", + "fieldValue": null, + "fieldDefaultValue": 86400000000000, + "fieldFlag": "graphite.querier.split-queries-by-interval", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "proxy_bad_requests", + "required": false, + "desc": "Proxy bad requests to graphite", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "graphite.querier.proxy-bad-requests", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "graphite_fallback", + "required": false, + "desc": "Graphite http listener fallback address", + "fieldValue": null, + "fieldDefaultValue": "http://graphite:80", + "fieldFlag": "graphite.querier.graphite-fallback", + "fieldType": "string" + }, + { + "kind": "field", + "name": "metrics_find_cutoff", + "required": false, + "desc": "How far into the past we perform index lookups for find calls", + "fieldValue": null, + "fieldDefaultValue": "32d", + "fieldFlag": "graphite.querier.metrics-find-cutoff", + "fieldType": "string" + }, + { + "kind": "field", + "name": "max_points_per_req_soft", + "required": false, + "desc": "Max number of data points a query may return, if number of data points exceeds this limit we aggregate them down to the limit.", + "fieldValue": null, + "fieldDefaultValue": 1000000, + "fieldFlag": "graphite.querier.max-points-per-req-soft", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_points_per_req_hard", + "required": false, + "desc": "If query results in more data points than this limit we directly cancel it with an error message.", + "fieldValue": null, + "fieldDefaultValue": 20000000, + "fieldFlag": "graphite.querier.max-points-per-req-hard", + "fieldType": "int" + }, + { + "kind": "block", + "name": "remote_read", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "query_address", + "required": false, + "desc": "Base URL for queries from upstream Prometheus API. The /api/v1 suffix will be appended to this address. Defaults to http://localhost:80/prometheus.", + "fieldValue": null, + "fieldDefaultValue": "http://localhost:80/prometheus", + "fieldFlag": "graphite.querier.query-address", + "fieldType": "string" + }, + { + "kind": "field", + "name": "query_timeout", + "required": false, + "desc": "Timeout for queries to upstream Prometheus API.", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "graphite.querier.query-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "query_keep_alive", + "required": false, + "desc": "KeepAlive for queries to upstream Prometheus API.", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "graphite.querier.query-keep-alive", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "query_max_idle_conns", + "required": false, + "desc": "Max idle conns for queries to upstream Prometheus API.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "graphite.querier.query-max-idle-conns", + "fieldType": "int" + }, + { + "kind": "field", + "name": "query_max_conns", + "required": false, + "desc": "Max conns per host for queries to upstream Prometheus API.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "graphite.querier.query-max-conns", + "fieldType": "int" + }, + { + "kind": "field", + "name": "query_client_name", + "required": false, + "desc": "Client name to use when identifying requests in Prometheus API.", + "fieldValue": null, + "fieldDefaultValue": "graphite-querier", + "fieldFlag": "graphite.querier.query-client-name", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "querier_remote_read_enabled", + "required": false, + "desc": "Enable usage of the querier on the read path of graphite, instead of accessing directly the ingesters and the block store.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "graphite.querier.remote-read-enabled", + "fieldType": "boolean" + }, + { + "kind": "block", + "name": "write_proxy", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "distributor_client", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "address", + "required": false, + "desc": "GRPC listen address of cortex distributor(s). Must be a DNS address (prefixed with dns:///) to enable client side load balancing.", + "fieldValue": null, + "fieldDefaultValue": "dns:///:9095", + "fieldFlag": "graphite.write-proxy.distributor-client.address", + "fieldType": "string" + }, + { + "kind": "field", + "name": "connect_timeout", + "required": false, + "desc": "GRPC connection timeout for cortex distributor(s)", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "graphite.write-proxy.distributor-client.connect-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Set to true if distributor connection requires TLS.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "graphite.write-proxy.distributor-client.tls-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.write-proxy.distributor-client.tls-cert-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.write-proxy.distributor-client.tls-key-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.write-proxy.distributor-client.tls-ca-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.write-proxy.distributor-client.tls-server-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "graphite.write-proxy.distributor-client.tls-insecure-skip-verify", + "fieldType": "boolean" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "instrumentation", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "enabled", + "required": false, + "desc": "Enable self-monitoring metrics recorded under the system tenant.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "instrumentation.enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "flush_period", + "required": false, + "desc": "How often to flush self-monitoring metrics to distributor", + "fieldValue": null, + "fieldDefaultValue": 15000000000, + "fieldFlag": "instrumentation.flush-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "write_timeout", + "required": false, + "desc": "Timeout writing self-monitoring metrics to distributor", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "instrumentation.write-timeout", + "fieldType": "duration" + }, + { + "kind": "block", + "name": "distributor_client", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "address", + "required": false, + "desc": "GRPC listen address of cortex distributor(s). Must be a DNS address (prefixed with dns:///) to enable client side load balancing.", + "fieldValue": null, + "fieldDefaultValue": "dns:///:9095", + "fieldFlag": "instrumentation.distributor-client.address", + "fieldType": "string" + }, + { + "kind": "field", + "name": "connect_timeout", + "required": false, + "desc": "GRPC connection timeout for cortex distributor(s)", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "instrumentation.distributor-client.connect-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Set to true if distributor connection requires TLS.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "instrumentation.distributor-client.tls-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "instrumentation.distributor-client.tls-cert-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "instrumentation.distributor-client.tls-key-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "instrumentation.distributor-client.tls-ca-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "instrumentation.distributor-client.tls-server-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "instrumentation.distributor-client.tls-insecure-skip-verify", + "fieldType": "boolean" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "node_collector", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "procfs_path", + "required": false, + "desc": "Mount point of the proc filesystem.", + "fieldValue": null, + "fieldDefaultValue": "/proc", + "fieldFlag": "instrumentation.node-collector.procfs-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "rootfs_path", + "required": false, + "desc": "Mount point of the root filesystem.", + "fieldValue": null, + "fieldDefaultValue": "/", + "fieldFlag": "instrumentation.node-collector.rootfs-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "filesystem_ignored_mount_points", + "required": false, + "desc": "Regex pattern of mount points to ignore for the filesystem collector", + "fieldValue": null, + "fieldDefaultValue": "^/(dev|proc|sys|var/lib/docker/.+)($|/)", + "fieldFlag": "instrumentation.node-collector.filesystem-ignored-mount-points", + "fieldType": "string" + }, + { + "kind": "field", + "name": "filesystem_ignored_fs_types", + "required": false, + "desc": "Regex pattern of filesystem types to ignore for the filesystem collector", + "fieldValue": null, + "fieldDefaultValue": "^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|sysfs|tracefs)$", + "fieldFlag": "instrumentation.node-collector.filesystem-ignored-fs-types", + "fieldType": "string" + }, + { + "kind": "field", + "name": "diskstats_ignored_devices", + "required": false, + "desc": "Regex pattern of devices to ignore for the disktstats collector", + "fieldValue": null, + "fieldDefaultValue": "^(ram|loop|fd|(h|s|v|xv)d[a-z]|nvme\\d+n\\d+p)\\d+$", + "fieldFlag": "instrumentation.node-collector.diskstats-ignored-devices", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "license", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "path", + "required": false, + "desc": "Filepath to license jwt file.", + "fieldValue": null, + "fieldDefaultValue": "./license.jwt", + "fieldFlag": "license.path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "sync_interval", + "required": false, + "desc": "Interval to check for new or existing licenses.", + "fieldValue": null, + "fieldDefaultValue": 3600000000000, + "fieldFlag": "license.sync-interval", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "tokengen", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "access_policy", + "required": false, + "desc": "The name of the access policy to generate a token for. It defaults to the built-in admin policy.", + "fieldValue": null, + "fieldDefaultValue": "__admin__", + "fieldFlag": "tokengen.access-policy", + "fieldType": "string" + }, + { + "kind": "field", + "name": "token_file", + "required": false, + "desc": "If set, the generated token will be printed to a file at the provided path instead of stdout.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "tokengen.token-file", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null +} diff --git a/pkg/mimirtool/config/descriptors/gem-v2.0.0-flags-only.json b/pkg/mimirtool/config/descriptors/gem-v2.0.0-flags-only.json new file mode 100644 index 0000000000..aeed781b6c --- /dev/null +++ b/pkg/mimirtool/config/descriptors/gem-v2.0.0-flags-only.json @@ -0,0 +1,53 @@ +{ + "kind": "block", + "name": "", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "config-file", + "required": false, + "desc": "Configuration file to load.", + "fieldDefaultValue": "", + "fieldFlag": "config.file", + "fieldType": "string" + }, + { + "kind": "field", + "name": "config-expand-env", + "required": false, + "desc": "Expands ${var} or $var in config according to the values of the environment variables.", + "fieldDefaultValue": "", + "fieldFlag": "config.expand-env", + "fieldType": "string" + }, + { + "kind": "field", + "name": "mem-ballast-size-bytes", + "required": false, + "desc": "Size of memory ballast to allocate.", + "fieldDefaultValue": 0, + "fieldFlag": "mem-ballast-size-bytes", + "fieldType": "int" + }, + { + "kind": "field", + "name": "debug-mutex-profile-fraction", + "required": false, + "desc": "Fraction of mutex contention events that are reported in the mutex profile. On average 1/rate events are reported. 0 to disable.", + "fieldDefaultValue": 0, + "fieldFlag": "debug.mutex-profile-fraction", + "fieldType": "int" + }, + { + "kind": "field", + "name": "debug-block-profile-rate", + "required": false, + "desc": "Fraction of goroutine blocking events that are reported in the blocking profile. 1 to include every blocking event in the profile, 0 to disable.", + "fieldDefaultValue": 0, + "fieldFlag": "debug.block-profile-rate", + "fieldType": "int" + } + ] +} diff --git a/pkg/mimirtool/config/descriptors/gem-v2.0.0.json b/pkg/mimirtool/config/descriptors/gem-v2.0.0.json new file mode 100644 index 0000000000..f69f7237c4 --- /dev/null +++ b/pkg/mimirtool/config/descriptors/gem-v2.0.0.json @@ -0,0 +1,14037 @@ +{ + "kind": "block", + "name": "", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "target", + "required": false, + "desc": "Comma-separated list of components to include in the instantiated process. The default value 'all' includes all components that are required to form a functional Grafana Mimir instance in single-binary mode. Use the '-modules' command line flag to get a list of available components, and to see which components are included with 'all'.", + "fieldValue": null, + "fieldDefaultValue": "all", + "fieldFlag": "target", + "fieldType": "string" + }, + { + "kind": "field", + "name": "multitenancy_enabled", + "required": false, + "desc": "When set to true, incoming HTTP requests must specify tenant ID in HTTP X-Scope-OrgId header. When set to false, tenant ID from -auth.no-auth-tenant is used instead.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "auth.multitenancy-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "no_auth_tenant", + "required": false, + "desc": "Tenant ID to use when multitenancy is disabled.", + "fieldValue": null, + "fieldDefaultValue": "anonymous", + "fieldFlag": "auth.no-auth-tenant", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "api", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "skip_label_name_validation_header_enabled", + "required": false, + "desc": "Allows to skip label name validation via header on the http write path. Use with caution as it breaks PromQL. Allowing this for external clients allows any client to send invalid label names. After enabling it, requests with a specific HTTP header set to true will not have label names validated.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "api.skip-label-name-validation-header-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "alertmanager_http_prefix", + "required": false, + "desc": "HTTP URL path under which the Alertmanager ui and api will be served.", + "fieldValue": null, + "fieldDefaultValue": "/alertmanager", + "fieldFlag": "http.alertmanager-http-prefix", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "prometheus_http_prefix", + "required": false, + "desc": "HTTP URL path under which the Prometheus api will be served.", + "fieldValue": null, + "fieldDefaultValue": "/prometheus", + "fieldFlag": "http.prometheus-http-prefix", + "fieldType": "string", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "server", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "http_listen_network", + "required": false, + "desc": "HTTP server listen network, default tcp", + "fieldValue": null, + "fieldDefaultValue": "tcp", + "fieldFlag": "server.http-listen-network", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "http_listen_address", + "required": false, + "desc": "HTTP server listen address.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "server.http-listen-address", + "fieldType": "string" + }, + { + "kind": "field", + "name": "http_listen_port", + "required": false, + "desc": "HTTP server listen port.", + "fieldValue": null, + "fieldDefaultValue": 8080, + "fieldFlag": "server.http-listen-port", + "fieldType": "int" + }, + { + "kind": "field", + "name": "http_listen_conn_limit", + "required": false, + "desc": "Maximum number of simultaneous http connections, \u003c=0 to disable", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "server.http-conn-limit", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "grpc_listen_network", + "required": false, + "desc": "gRPC server listen network", + "fieldValue": null, + "fieldDefaultValue": "tcp", + "fieldFlag": "server.grpc-listen-network", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "grpc_listen_address", + "required": false, + "desc": "gRPC server listen address.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "server.grpc-listen-address", + "fieldType": "string" + }, + { + "kind": "field", + "name": "grpc_listen_port", + "required": false, + "desc": "gRPC server listen port.", + "fieldValue": null, + "fieldDefaultValue": 9095, + "fieldFlag": "server.grpc-listen-port", + "fieldType": "int" + }, + { + "kind": "field", + "name": "grpc_listen_conn_limit", + "required": false, + "desc": "Maximum number of simultaneous grpc connections, \u003c=0 to disable", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "server.grpc-conn-limit", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "http_tls_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "cert_file", + "required": false, + "desc": "HTTP server cert path.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "server.http-tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "key_file", + "required": false, + "desc": "HTTP server key path.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "server.http-tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "client_auth_type", + "required": false, + "desc": "HTTP TLS Client Auth type.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "server.http-tls-client-auth", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "client_ca_file", + "required": false, + "desc": "HTTP TLS Client CA path.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "server.http-tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "grpc_tls_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "cert_file", + "required": false, + "desc": "GRPC TLS server cert path.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "server.grpc-tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "key_file", + "required": false, + "desc": "GRPC TLS server key path.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "server.grpc-tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "client_auth_type", + "required": false, + "desc": "GRPC TLS Client Auth type.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "server.grpc-tls-client-auth", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "client_ca_file", + "required": false, + "desc": "GRPC TLS Client CA path.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "server.grpc-tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "register_instrumentation", + "required": false, + "desc": "Register the intrumentation handlers (/metrics etc).", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "server.register-instrumentation", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "graceful_shutdown_timeout", + "required": false, + "desc": "Timeout for graceful shutdowns", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "server.graceful-shutdown-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "http_server_read_timeout", + "required": false, + "desc": "Read timeout for HTTP server", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "server.http-read-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "http_server_write_timeout", + "required": false, + "desc": "Write timeout for HTTP server", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "server.http-write-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "http_server_idle_timeout", + "required": false, + "desc": "Idle timeout for HTTP server", + "fieldValue": null, + "fieldDefaultValue": 120000000000, + "fieldFlag": "server.http-idle-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "grpc_server_max_recv_msg_size", + "required": false, + "desc": "Limit on the size of a gRPC message this server can receive (bytes).", + "fieldValue": null, + "fieldDefaultValue": 4194304, + "fieldFlag": "server.grpc-max-recv-msg-size-bytes", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "grpc_server_max_send_msg_size", + "required": false, + "desc": "Limit on the size of a gRPC message this server can send (bytes).", + "fieldValue": null, + "fieldDefaultValue": 4194304, + "fieldFlag": "server.grpc-max-send-msg-size-bytes", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "grpc_server_max_concurrent_streams", + "required": false, + "desc": "Limit on the number of concurrent streams for gRPC calls (0 = unlimited)", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "server.grpc-max-concurrent-streams", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "grpc_server_max_connection_idle", + "required": false, + "desc": "The duration after which an idle connection should be closed. Default: infinity", + "fieldValue": null, + "fieldDefaultValue": 9223372036854775807, + "fieldFlag": "server.grpc.keepalive.max-connection-idle", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "grpc_server_max_connection_age", + "required": false, + "desc": "The duration for the maximum amount of time a connection may exist before it will be closed. Default: infinity", + "fieldValue": null, + "fieldDefaultValue": 9223372036854775807, + "fieldFlag": "server.grpc.keepalive.max-connection-age", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "grpc_server_max_connection_age_grace", + "required": false, + "desc": "An additive period after max-connection-age after which the connection will be forcibly closed. Default: infinity", + "fieldValue": null, + "fieldDefaultValue": 9223372036854775807, + "fieldFlag": "server.grpc.keepalive.max-connection-age-grace", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "grpc_server_keepalive_time", + "required": false, + "desc": "Duration after which a keepalive probe is sent in case of no activity over the connection., Default: 2h", + "fieldValue": null, + "fieldDefaultValue": 7200000000000, + "fieldFlag": "server.grpc.keepalive.time", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "grpc_server_keepalive_timeout", + "required": false, + "desc": "After having pinged for keepalive check, the duration after which an idle connection should be closed, Default: 20s", + "fieldValue": null, + "fieldDefaultValue": 20000000000, + "fieldFlag": "server.grpc.keepalive.timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "grpc_server_min_time_between_pings", + "required": false, + "desc": "Minimum amount of time a client should wait before sending a keepalive ping. If client sends keepalive ping more often, server will send GOAWAY and close the connection.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "server.grpc.keepalive.min-time-between-pings", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "grpc_server_ping_without_stream_allowed", + "required": false, + "desc": "If true, server allows keepalive pings even when there are no active streams(RPCs). If false, and client sends ping when there are no active streams, server will send GOAWAY and close the connection.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "server.grpc.keepalive.ping-without-stream-allowed", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "log_format", + "required": false, + "desc": "Output log messages in the given format. Valid formats: [logfmt, json]", + "fieldValue": null, + "fieldDefaultValue": "logfmt", + "fieldFlag": "log.format", + "fieldType": "string" + }, + { + "kind": "field", + "name": "log_level", + "required": false, + "desc": "Only log messages with the given severity or above. Valid levels: [debug, info, warn, error]", + "fieldValue": null, + "fieldDefaultValue": "info", + "fieldFlag": "log.level", + "fieldType": "string" + }, + { + "kind": "field", + "name": "log_source_ips_enabled", + "required": false, + "desc": "Optionally log the source IPs.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "server.log-source-ips-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "log_source_ips_header", + "required": false, + "desc": "Header field storing the source IPs. Only used if server.log-source-ips-enabled is true. If not set the default Forwarded, X-Real-IP and X-Forwarded-For headers are used", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "server.log-source-ips-header", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "log_source_ips_regex", + "required": false, + "desc": "Regex for matching the source IPs. Only used if server.log-source-ips-enabled is true. If not set the default Forwarded, X-Real-IP and X-Forwarded-For headers are used", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "server.log-source-ips-regex", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "http_path_prefix", + "required": false, + "desc": "Base path to serve all API routes from (e.g. /v1/)", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "server.path-prefix", + "fieldType": "string", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "distributor", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "pool", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "client_cleanup_period", + "required": false, + "desc": "How frequently to clean up clients for ingesters that have gone away.", + "fieldValue": null, + "fieldDefaultValue": 15000000000, + "fieldFlag": "distributor.client-cleanup-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "health_check_ingesters", + "required": false, + "desc": "Run a health check on each ingester client during periodic cleanup.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "distributor.health-check-ingesters", + "fieldType": "boolean", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "ha_tracker", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "enable_ha_tracker", + "required": false, + "desc": "Enable the distributors HA tracker so that it can accept samples from Prometheus HA replicas gracefully (requires labels).", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "distributor.ha-tracker.enable", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "ha_tracker_update_timeout", + "required": false, + "desc": "Update the timestamp in the KV store for a given cluster/replica only after this amount of time has passed since the current stored timestamp.", + "fieldValue": null, + "fieldDefaultValue": 15000000000, + "fieldFlag": "distributor.ha-tracker.update-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "ha_tracker_update_timeout_jitter_max", + "required": false, + "desc": "Maximum jitter applied to the update timeout, in order to spread the HA heartbeats over time.", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "distributor.ha-tracker.update-timeout-jitter-max", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "ha_tracker_failover_timeout", + "required": false, + "desc": "If we don't receive any samples from the accepted replica for a cluster in this amount of time we will failover to the next replica we receive a sample from. This value must be greater than the update timeout", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "distributor.ha-tracker.failover-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "kvstore", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "store", + "required": false, + "desc": "Backend storage to use for the ring. Supported values are: consul, etcd, inmemory, memberlist, multi.", + "fieldValue": null, + "fieldDefaultValue": "consul", + "fieldFlag": "distributor.ha-tracker.store", + "fieldType": "string" + }, + { + "kind": "field", + "name": "prefix", + "required": false, + "desc": "The prefix for the keys in the store. Should end with a /.", + "fieldValue": null, + "fieldDefaultValue": "ha-tracker/", + "fieldFlag": "distributor.ha-tracker.prefix", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "consul", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "host", + "required": false, + "desc": "Hostname and port of Consul.", + "fieldValue": null, + "fieldDefaultValue": "localhost:8500", + "fieldFlag": "distributor.ha-tracker.consul.hostname", + "fieldType": "string" + }, + { + "kind": "field", + "name": "acl_token", + "required": false, + "desc": "ACL Token used to interact with Consul.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ha-tracker.consul.acl-token", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "http_client_timeout", + "required": false, + "desc": "HTTP timeout when talking to Consul", + "fieldValue": null, + "fieldDefaultValue": 20000000000, + "fieldFlag": "distributor.ha-tracker.consul.client-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "consistent_reads", + "required": false, + "desc": "Enable consistent reads to Consul.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "distributor.ha-tracker.consul.consistent-reads", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "watch_rate_limit", + "required": false, + "desc": "Rate limit when watching key or prefix in Consul, in requests per second. 0 disables the rate limit.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "distributor.ha-tracker.consul.watch-rate-limit", + "fieldType": "float", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "watch_burst_size", + "required": false, + "desc": "Burst size used in rate limit. Values less than 1 are treated as 1.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "distributor.ha-tracker.consul.watch-burst-size", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "etcd", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoints", + "required": false, + "desc": "The etcd endpoints to connect to.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "distributor.ha-tracker.etcd.endpoints", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "dial_timeout", + "required": false, + "desc": "The dial timeout for the etcd connection.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "distributor.ha-tracker.etcd.dial-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "The maximum number of retries to do for failed ops.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "distributor.ha-tracker.etcd.max-retries", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "distributor.ha-tracker.etcd.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ha-tracker.etcd.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ha-tracker.etcd.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ha-tracker.etcd.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ha-tracker.etcd.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "distributor.ha-tracker.etcd.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "username", + "required": false, + "desc": "Etcd username.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ha-tracker.etcd.username", + "fieldType": "string" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "Etcd password.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ha-tracker.etcd.password", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "multi", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "primary", + "required": false, + "desc": "Primary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ha-tracker.multi.primary", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "secondary", + "required": false, + "desc": "Secondary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ha-tracker.multi.secondary", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "mirror_enabled", + "required": false, + "desc": "Mirror writes to secondary store.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "distributor.ha-tracker.multi.mirror-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "mirror_timeout", + "required": false, + "desc": "Timeout for storing value to secondary store.", + "fieldValue": null, + "fieldDefaultValue": 2000000000, + "fieldFlag": "distributor.ha-tracker.multi.mirror-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "max_recv_msg_size", + "required": false, + "desc": "remote_write API max receive message size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 104857600, + "fieldFlag": "distributor.max-recv-msg-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "remote_timeout", + "required": false, + "desc": "Timeout for downstream ingesters.", + "fieldValue": null, + "fieldDefaultValue": 20000000000, + "fieldFlag": "distributor.remote-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "extend_writes", + "required": false, + "desc": "Try writing to an additional ingester in the presence of an ingester not in the ACTIVE state. It is useful to disable this along with -ingester.ring.unregister-on-shutdown=false in order to not spread samples to extra ingesters during rolling restarts with consistent naming.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "distributor.extend-writes", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "ring", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "kvstore", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "store", + "required": false, + "desc": "Backend storage to use for the ring. Supported values are: consul, etcd, inmemory, memberlist, multi.", + "fieldValue": null, + "fieldDefaultValue": "memberlist", + "fieldFlag": "distributor.ring.store", + "fieldType": "string" + }, + { + "kind": "field", + "name": "prefix", + "required": false, + "desc": "The prefix for the keys in the store. Should end with a /.", + "fieldValue": null, + "fieldDefaultValue": "collectors/", + "fieldFlag": "distributor.ring.prefix", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "consul", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "host", + "required": false, + "desc": "Hostname and port of Consul.", + "fieldValue": null, + "fieldDefaultValue": "localhost:8500", + "fieldFlag": "distributor.ring.consul.hostname", + "fieldType": "string" + }, + { + "kind": "field", + "name": "acl_token", + "required": false, + "desc": "ACL Token used to interact with Consul.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ring.consul.acl-token", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "http_client_timeout", + "required": false, + "desc": "HTTP timeout when talking to Consul", + "fieldValue": null, + "fieldDefaultValue": 20000000000, + "fieldFlag": "distributor.ring.consul.client-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "consistent_reads", + "required": false, + "desc": "Enable consistent reads to Consul.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "distributor.ring.consul.consistent-reads", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "watch_rate_limit", + "required": false, + "desc": "Rate limit when watching key or prefix in Consul, in requests per second. 0 disables the rate limit.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "distributor.ring.consul.watch-rate-limit", + "fieldType": "float", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "watch_burst_size", + "required": false, + "desc": "Burst size used in rate limit. Values less than 1 are treated as 1.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "distributor.ring.consul.watch-burst-size", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "etcd", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoints", + "required": false, + "desc": "The etcd endpoints to connect to.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "distributor.ring.etcd.endpoints", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "dial_timeout", + "required": false, + "desc": "The dial timeout for the etcd connection.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "distributor.ring.etcd.dial-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "The maximum number of retries to do for failed ops.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "distributor.ring.etcd.max-retries", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "distributor.ring.etcd.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ring.etcd.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ring.etcd.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ring.etcd.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ring.etcd.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "distributor.ring.etcd.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "username", + "required": false, + "desc": "Etcd username.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ring.etcd.username", + "fieldType": "string" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "Etcd password.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ring.etcd.password", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "multi", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "primary", + "required": false, + "desc": "Primary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ring.multi.primary", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "secondary", + "required": false, + "desc": "Secondary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ring.multi.secondary", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "mirror_enabled", + "required": false, + "desc": "Mirror writes to secondary store.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "distributor.ring.multi.mirror-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "mirror_timeout", + "required": false, + "desc": "Timeout for storing value to secondary store.", + "fieldValue": null, + "fieldDefaultValue": 2000000000, + "fieldFlag": "distributor.ring.multi.mirror-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "heartbeat_period", + "required": false, + "desc": "Period at which to heartbeat to the ring. 0 = disabled.", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "distributor.ring.heartbeat-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "heartbeat_timeout", + "required": false, + "desc": "The heartbeat timeout after which distributors are considered unhealthy within the ring. 0 = never (timeout disabled).", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "distributor.ring.heartbeat-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_id", + "required": false, + "desc": "Instance ID to register in the ring.", + "fieldValue": null, + "fieldDefaultValue": "\u003chostname\u003e", + "fieldFlag": "distributor.ring.instance-id", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_interface_names", + "required": false, + "desc": "List of network interface names to look up when finding the instance IP address.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "distributor.ring.instance-interface-names", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "instance_port", + "required": false, + "desc": "Port to advertise in the ring (defaults to -server.grpc-listen-port).", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "distributor.ring.instance-port", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_addr", + "required": false, + "desc": "IP address to advertise in the ring. Default is auto-detected.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ring.instance-addr", + "fieldType": "string", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "instance_limits", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "max_ingestion_rate", + "required": false, + "desc": "Max ingestion rate (samples/sec) that this distributor will accept. This limit is per-distributor, not per-tenant. Additional push requests will be rejected. Current ingestion rate is computed as exponentially weighted moving average, updated every second. 0 = unlimited.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "distributor.instance-limits.max-ingestion-rate", + "fieldType": "float", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_inflight_push_requests", + "required": false, + "desc": "Max inflight push requests that this distributor can handle. This limit is per-distributor, not per-tenant. Additional requests will be rejected. 0 = unlimited.", + "fieldValue": null, + "fieldDefaultValue": 2000, + "fieldFlag": "distributor.instance-limits.max-inflight-push-requests", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "forwarding", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "enabled", + "required": false, + "desc": "Enables the feature to forward certain metrics in remote_write requests, depending on defined rules.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "distributor.forwarding.enabled", + "fieldType": "boolean", + "fieldCategory": "experimental" + }, + { + "kind": "field", + "name": "request_timeout", + "required": false, + "desc": "Timeout for requests to ingestion endpoints to which we forward metrics.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "distributor.forwarding.request-timeout", + "fieldType": "duration", + "fieldCategory": "experimental" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "querier", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "iterators", + "required": false, + "desc": "Use iterators to execute query, as opposed to fully materialising the series in memory.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "querier.iterators", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "batch_iterators", + "required": false, + "desc": "Use batch iterators to execute query, as opposed to fully materialising the series in memory. Takes precedent over the -querier.iterators flag.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "querier.batch-iterators", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "query_ingesters_within", + "required": false, + "desc": "Maximum lookback beyond which queries are not sent to ingester. 0 means all queries are sent to ingester.", + "fieldValue": null, + "fieldDefaultValue": 46800000000000, + "fieldFlag": "querier.query-ingesters-within", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "query_store_after", + "required": false, + "desc": "The time after which a metric should be queried from storage and not just ingesters. 0 means all queries are sent to store. If this option is enabled, the time range of the query sent to the store-gateway will be manipulated to ensure the query end is not more recent than 'now - query-store-after'.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "querier.query-store-after", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_query_into_future", + "required": false, + "desc": "Maximum duration into the future you can query. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 600000000000, + "fieldFlag": "querier.max-query-into-future", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "store_gateway_client", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS for gRPC client connecting to store-gateway.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "querier.store-gateway-client.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "querier.store-gateway-client.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "querier.store-gateway-client.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "querier.store-gateway-client.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "querier.store-gateway-client.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "querier.store-gateway-client.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "shuffle_sharding_ingesters_lookback_period", + "required": false, + "desc": "When distributor's sharding strategy is shuffle-sharding and this setting is \u003e 0, queriers fetch in-memory series from the minimum set of required ingesters, selecting only ingesters which may have received series since 'now - lookback period'. The lookback period should be greater or equal than the configured -querier.query-store-after and -querier.query-ingesters-within. If this setting is 0, queriers always query all ingesters (ingesters shuffle sharding on read path is disabled).", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "querier.shuffle-sharding-ingesters-lookback-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_concurrent", + "required": false, + "desc": "The maximum number of concurrent queries. This config option should be set on query-frontend too when query sharding is enabled.", + "fieldValue": null, + "fieldDefaultValue": 20, + "fieldFlag": "querier.max-concurrent", + "fieldType": "int" + }, + { + "kind": "field", + "name": "timeout", + "required": false, + "desc": "The timeout for a query. This config option should be set on query-frontend too when query sharding is enabled.", + "fieldValue": null, + "fieldDefaultValue": 120000000000, + "fieldFlag": "querier.timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_samples", + "required": false, + "desc": "Maximum number of samples a single query can load into memory. This config option should be set on query-frontend too when query sharding is enabled.", + "fieldValue": null, + "fieldDefaultValue": 50000000, + "fieldFlag": "querier.max-samples", + "fieldType": "int" + }, + { + "kind": "field", + "name": "default_evaluation_interval", + "required": false, + "desc": "The default evaluation interval or step size for subqueries. This config option should be set on query-frontend too when query sharding is enabled.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "querier.default-evaluation-interval", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "lookback_delta", + "required": false, + "desc": "Time since the last sample after which a time series is considered stale and ignored by expression evaluations. This config option should be set on query-frontend too when query sharding is enabled.", + "fieldValue": null, + "fieldDefaultValue": 300000000000, + "fieldFlag": "querier.lookback-delta", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "ingester_client", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "grpc_client_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "max_recv_msg_size", + "required": false, + "desc": "gRPC client max receive message size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 104857600, + "fieldFlag": "ingester.client.grpc-max-recv-msg-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_send_msg_size", + "required": false, + "desc": "gRPC client max send message size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 104857600, + "fieldFlag": "ingester.client.grpc-max-send-msg-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "grpc_compression", + "required": false, + "desc": "Use compression when sending messages. Supported values are: 'gzip', 'snappy' and '' (disable compression)", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.client.grpc-compression", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "rate_limit", + "required": false, + "desc": "Rate limit for gRPC client; 0 means disabled.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ingester.client.grpc-client-rate-limit", + "fieldType": "float", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "rate_limit_burst", + "required": false, + "desc": "Rate limit burst for gRPC client.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ingester.client.grpc-client-rate-limit-burst", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "backoff_on_ratelimits", + "required": false, + "desc": "Enable backoff and retry when we hit ratelimits.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ingester.client.backoff-on-ratelimits", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "backoff_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "min_period", + "required": false, + "desc": "Minimum delay when backing off.", + "fieldValue": null, + "fieldDefaultValue": 100000000, + "fieldFlag": "ingester.client.backoff-min-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_period", + "required": false, + "desc": "Maximum delay when backing off.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "ingester.client.backoff-max-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Number of times to backoff and retry before failing.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "ingester.client.backoff-retries", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ingester.client.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.client.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.client.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.client.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.client.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ingester.client.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "ingester", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "ring", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "kvstore", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "store", + "required": false, + "desc": "Backend storage to use for the ring. Supported values are: consul, etcd, inmemory, memberlist, multi.", + "fieldValue": null, + "fieldDefaultValue": "memberlist", + "fieldFlag": "ingester.ring.store", + "fieldType": "string" + }, + { + "kind": "field", + "name": "prefix", + "required": false, + "desc": "The prefix for the keys in the store. Should end with a /.", + "fieldValue": null, + "fieldDefaultValue": "collectors/", + "fieldFlag": "ingester.ring.prefix", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "consul", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "host", + "required": false, + "desc": "Hostname and port of Consul.", + "fieldValue": null, + "fieldDefaultValue": "localhost:8500", + "fieldFlag": "ingester.ring.consul.hostname", + "fieldType": "string" + }, + { + "kind": "field", + "name": "acl_token", + "required": false, + "desc": "ACL Token used to interact with Consul.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.ring.consul.acl-token", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "http_client_timeout", + "required": false, + "desc": "HTTP timeout when talking to Consul", + "fieldValue": null, + "fieldDefaultValue": 20000000000, + "fieldFlag": "ingester.ring.consul.client-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "consistent_reads", + "required": false, + "desc": "Enable consistent reads to Consul.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ingester.ring.consul.consistent-reads", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "watch_rate_limit", + "required": false, + "desc": "Rate limit when watching key or prefix in Consul, in requests per second. 0 disables the rate limit.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "ingester.ring.consul.watch-rate-limit", + "fieldType": "float", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "watch_burst_size", + "required": false, + "desc": "Burst size used in rate limit. Values less than 1 are treated as 1.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "ingester.ring.consul.watch-burst-size", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "etcd", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoints", + "required": false, + "desc": "The etcd endpoints to connect to.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "ingester.ring.etcd.endpoints", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "dial_timeout", + "required": false, + "desc": "The dial timeout for the etcd connection.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "ingester.ring.etcd.dial-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "The maximum number of retries to do for failed ops.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "ingester.ring.etcd.max-retries", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ingester.ring.etcd.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.ring.etcd.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.ring.etcd.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.ring.etcd.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.ring.etcd.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ingester.ring.etcd.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "username", + "required": false, + "desc": "Etcd username.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.ring.etcd.username", + "fieldType": "string" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "Etcd password.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.ring.etcd.password", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "multi", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "primary", + "required": false, + "desc": "Primary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.ring.multi.primary", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "secondary", + "required": false, + "desc": "Secondary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.ring.multi.secondary", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "mirror_enabled", + "required": false, + "desc": "Mirror writes to secondary store.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ingester.ring.multi.mirror-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "mirror_timeout", + "required": false, + "desc": "Timeout for storing value to secondary store.", + "fieldValue": null, + "fieldDefaultValue": 2000000000, + "fieldFlag": "ingester.ring.multi.mirror-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "heartbeat_period", + "required": false, + "desc": "Period at which to heartbeat to the ring. 0 = disabled.", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "ingester.ring.heartbeat-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "heartbeat_timeout", + "required": false, + "desc": "The heartbeat timeout after which ingesters are skipped for reads/writes. 0 = never (timeout disabled). This option needs be set on ingesters, distributors, queriers and rulers when running in microservices mode.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "ingester.ring.heartbeat-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "replication_factor", + "required": false, + "desc": "Number of ingesters that each time series is replicated to. This option needs be set on ingesters, distributors, queriers and rulers when running in microservices mode.", + "fieldValue": null, + "fieldDefaultValue": 3, + "fieldFlag": "ingester.ring.replication-factor", + "fieldType": "int" + }, + { + "kind": "field", + "name": "zone_awareness_enabled", + "required": false, + "desc": "True to enable the zone-awareness and replicate ingested samples across different availability zones. This option needs be set on ingesters, distributors, queriers and rulers when running in microservices mode.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ingester.ring.zone-awareness-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "excluded_zones", + "required": false, + "desc": "Comma-separated list of zones to exclude from the ring. Instances in excluded zones will be filtered out from the ring. This option needs be set on ingesters, distributors, queriers and rulers when running in microservices mode.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.ring.excluded-zones", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tokens_file_path", + "required": false, + "desc": "File path where tokens are stored. If empty, tokens are not stored at shutdown and restored at startup.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.ring.tokens-file-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "num_tokens", + "required": false, + "desc": "Number of tokens for each ingester.", + "fieldValue": null, + "fieldDefaultValue": 128, + "fieldFlag": "ingester.ring.num-tokens", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_id", + "required": false, + "desc": "Instance ID to register in the ring.", + "fieldValue": null, + "fieldDefaultValue": "\u003chostname\u003e", + "fieldFlag": "ingester.ring.instance-id", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_interface_names", + "required": false, + "desc": "List of network interface names to look up when finding the instance IP address.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "ingester.ring.instance-interface-names", + "fieldType": "list of string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_port", + "required": false, + "desc": "Port to advertise in the ring (defaults to -server.grpc-listen-port).", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ingester.ring.instance-port", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_addr", + "required": false, + "desc": "IP address to advertise in the ring. Default is auto-detected.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.ring.instance-addr", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_availability_zone", + "required": false, + "desc": "The availability zone where this instance is running.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.ring.instance-availability-zone", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "unregister_on_shutdown", + "required": false, + "desc": "Unregister from the ring upon clean shutdown. It can be useful to disable for rolling restarts with consistent naming in conjunction with -distributor.extend-writes=false.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "ingester.ring.unregister-on-shutdown", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "observe_period", + "required": false, + "desc": "Observe tokens after generating to resolve collisions. Useful when using gossiping ring.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ingester.ring.observe-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "join_after", + "required": false, + "desc": "Period to wait for a claim from another member; will join automatically after this.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ingester.ring.join-after", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "min_ready_duration", + "required": false, + "desc": "Minimum duration to wait after the internal readiness checks have passed but before succeeding the readiness endpoint. This is used to slowdown deployment controllers (eg. Kubernetes) after an instance is ready and before they proceed with a rolling update, to give the rest of the cluster instances enough time to receive ring updates.", + "fieldValue": null, + "fieldDefaultValue": 15000000000, + "fieldFlag": "ingester.ring.min-ready-duration", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "final_sleep", + "required": false, + "desc": "Duration to sleep for before exiting, to ensure metrics are scraped.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ingester.ring.final-sleep", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "readiness_check_ring_health", + "required": false, + "desc": "When enabled the readiness probe succeeds only after all instances are ACTIVE and healthy in the ring, otherwise only the instance itself is checked. This option should be disabled if in your cluster multiple instances can be rolled out simultaneously, otherwise rolling updates may be slowed down.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "ingester.ring.readiness-check-ring-health", + "fieldType": "boolean", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "metadata_retain_period", + "required": false, + "desc": "Period at which metadata we have not seen will remain in memory before being deleted.", + "fieldValue": null, + "fieldDefaultValue": 600000000000, + "fieldFlag": "ingester.metadata-retain-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "rate_update_period", + "required": false, + "desc": "Period with which to update the per-tenant ingestion rates.", + "fieldValue": null, + "fieldDefaultValue": 15000000000, + "fieldFlag": "ingester.rate-update-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "active_series_metrics_enabled", + "required": false, + "desc": "Enable tracking of active series and export them as metrics.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "ingester.active-series-metrics-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "active_series_metrics_update_period", + "required": false, + "desc": "How often to update active series metrics.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "ingester.active-series-metrics-update-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "active_series_metrics_idle_timeout", + "required": false, + "desc": "After what time a series is considered to be inactive.", + "fieldValue": null, + "fieldDefaultValue": 600000000000, + "fieldFlag": "ingester.active-series-metrics-idle-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "active_series_custom_trackers", + "required": false, + "desc": "Additional custom trackers for active metrics. If there are active series matching a provided matcher (map value), the count will be exposed in the custom trackers metric labeled using the tracker name (map key). Zero valued counts are not exposed (and removed when they go back to zero).", + "fieldValue": null, + "fieldDefaultValue": {}, + "fieldFlag": "ingester.active-series-custom-trackers", + "fieldType": "map of tracker name (string) to matcher (string)", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "exemplars_update_period", + "required": false, + "desc": "Period with which to update per-tenant max exemplar limit.", + "fieldValue": null, + "fieldDefaultValue": 15000000000, + "fieldFlag": "ingester.exemplars-update-period", + "fieldType": "duration", + "fieldCategory": "experimental" + }, + { + "kind": "block", + "name": "instance_limits", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "max_ingestion_rate", + "required": false, + "desc": "Max ingestion rate (samples/sec) that ingester will accept. This limit is per-ingester, not per-tenant. Additional push requests will be rejected. Current ingestion rate is computed as exponentially weighted moving average, updated every second. 0 = unlimited.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ingester.instance-limits.max-ingestion-rate", + "fieldType": "float", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_tenants", + "required": false, + "desc": "Max tenants that this ingester can hold. Requests from additional tenants will be rejected. 0 = unlimited.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ingester.instance-limits.max-tenants", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_series", + "required": false, + "desc": "Max series that this ingester can hold (across all tenants). Requests to create additional series will be rejected. 0 = unlimited.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ingester.instance-limits.max-series", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_inflight_push_requests", + "required": false, + "desc": "Max inflight push requests that this ingester can handle (across all tenants). Additional requests will be rejected. 0 = unlimited.", + "fieldValue": null, + "fieldDefaultValue": 30000, + "fieldFlag": "ingester.instance-limits.max-inflight-push-requests", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "ignore_series_limit_for_metric_names", + "required": false, + "desc": "Comma-separated list of metric names, for which the -ingester.max-global-series-per-metric limit will be ignored. Does not affect the -ingester.max-global-series-per-user limit.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.ignore-series-limit-for-metric-names", + "fieldType": "string", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "flusher", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "exit_after_flush", + "required": false, + "desc": "Stop after flush has finished. If false, process will keep running, doing nothing.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "flusher.exit-after-flush", + "fieldType": "boolean", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "limits", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "ingestion_rate", + "required": false, + "desc": "Per-tenant ingestion rate limit in samples per second.", + "fieldValue": null, + "fieldDefaultValue": 10000, + "fieldFlag": "distributor.ingestion-rate-limit", + "fieldType": "float" + }, + { + "kind": "field", + "name": "ingestion_burst_size", + "required": false, + "desc": "Per-tenant allowed ingestion burst size (in number of samples).", + "fieldValue": null, + "fieldDefaultValue": 200000, + "fieldFlag": "distributor.ingestion-burst-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "accept_ha_samples", + "required": false, + "desc": "Flag to enable, for all tenants, handling of samples with external labels identifying replicas in an HA Prometheus setup.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "distributor.ha-tracker.enable-for-all-users", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "ha_cluster_label", + "required": false, + "desc": "Prometheus label to look for in samples to identify a Prometheus HA cluster.", + "fieldValue": null, + "fieldDefaultValue": "cluster", + "fieldFlag": "distributor.ha-tracker.cluster", + "fieldType": "string" + }, + { + "kind": "field", + "name": "ha_replica_label", + "required": false, + "desc": "Prometheus label to look for in samples to identify a Prometheus HA replica.", + "fieldValue": null, + "fieldDefaultValue": "__replica__", + "fieldFlag": "distributor.ha-tracker.replica", + "fieldType": "string" + }, + { + "kind": "field", + "name": "ha_max_clusters", + "required": false, + "desc": "Maximum number of clusters that HA tracker will keep track of for a single tenant. 0 to disable the limit.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "distributor.ha-tracker.max-clusters", + "fieldType": "int" + }, + { + "kind": "field", + "name": "drop_labels", + "required": false, + "desc": "This flag can be used to specify label names that to drop during sample ingestion within the distributor and can be repeated in order to drop multiple labels.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "distributor.drop-label", + "fieldType": "list of string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_label_name_length", + "required": false, + "desc": "Maximum length accepted for label names", + "fieldValue": null, + "fieldDefaultValue": 1024, + "fieldFlag": "validation.max-length-label-name", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_label_value_length", + "required": false, + "desc": "Maximum length accepted for label value. This setting also applies to the metric name", + "fieldValue": null, + "fieldDefaultValue": 2048, + "fieldFlag": "validation.max-length-label-value", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_label_names_per_series", + "required": false, + "desc": "Maximum number of label names per series.", + "fieldValue": null, + "fieldDefaultValue": 30, + "fieldFlag": "validation.max-label-names-per-series", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_metadata_length", + "required": false, + "desc": "Maximum length accepted for metric metadata. Metadata refers to Metric Name, HELP and UNIT.", + "fieldValue": null, + "fieldDefaultValue": 1024, + "fieldFlag": "validation.max-metadata-length", + "fieldType": "int" + }, + { + "kind": "field", + "name": "creation_grace_period", + "required": false, + "desc": "Controls how far into the future incoming samples are accepted compared to the wall clock. Any sample with timestamp `t` will be rejected if `t \u003e (now + validation.create-grace-period)`.", + "fieldValue": null, + "fieldDefaultValue": 600000000000, + "fieldFlag": "validation.create-grace-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "enforce_metadata_metric_name", + "required": false, + "desc": "Enforce every metadata has a metric name.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "validation.enforce-metadata-metric-name", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "ingestion_tenant_shard_size", + "required": false, + "desc": "The tenant's shard size used by shuffle-sharding. Must be set both on ingesters and distributors. 0 disables shuffle sharding.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "distributor.ingestion-tenant-shard-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "metric_relabel_configs", + "required": false, + "desc": "List of metric relabel configurations. Note that in most situations, it is more effective to use metrics relabeling directly in the Prometheus server, e.g. remote_write.write_relabel_configs.", + "fieldValue": null, + "fieldDefaultValue": null, + "fieldType": "relabel_config...", + "fieldCategory": "experimental" + }, + { + "kind": "field", + "name": "max_global_series_per_user", + "required": false, + "desc": "The maximum number of active series per tenant, across the cluster before replication. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 150000, + "fieldFlag": "ingester.max-global-series-per-user", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_global_series_per_metric", + "required": false, + "desc": "The maximum number of active series per metric name, across the cluster before replication. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 20000, + "fieldFlag": "ingester.max-global-series-per-metric", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_global_metadata_per_user", + "required": false, + "desc": "The maximum number of active metrics with metadata per tenant, across the cluster. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ingester.max-global-metadata-per-user", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_global_metadata_per_metric", + "required": false, + "desc": "The maximum number of metadata per metric, across the cluster. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ingester.max-global-metadata-per-metric", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_global_exemplars_per_user", + "required": false, + "desc": "The maximum number of exemplars in memory, across the cluster. 0 to disable exemplars ingestion.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ingester.max-global-exemplars-per-user", + "fieldType": "int", + "fieldCategory": "experimental" + }, + { + "kind": "field", + "name": "max_fetched_chunks_per_query", + "required": false, + "desc": "Maximum number of chunks that can be fetched in a single query from ingesters and long-term storage. This limit is enforced in the querier, ruler and store-gateway. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 2000000, + "fieldFlag": "querier.max-fetched-chunks-per-query", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_fetched_series_per_query", + "required": false, + "desc": "The maximum number of unique series for which a query can fetch samples from each ingesters and storage. This limit is enforced in the querier and ruler. 0 to disable", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "querier.max-fetched-series-per-query", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_fetched_chunk_bytes_per_query", + "required": false, + "desc": "The maximum size of all chunks in bytes that a query can fetch from each ingester and storage. This limit is enforced in the querier and ruler. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "querier.max-fetched-chunk-bytes-per-query", + "fieldType": "int" + }, + { + "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.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "querier.max-query-lookback", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_query_length", + "required": false, + "desc": "Limit the query time range (end - start time). This limit is enforced in the query-frontend (on the received query), in the querier (on the query possibly split by the query-frontend) and ruler. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store.max-query-length", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_query_parallelism", + "required": false, + "desc": "Maximum number of split (by time) or partial (by shard) queries that will be scheduled in parallel by the query-frontend for a single input query. This limit is introduced to have a fairer query scheduling and avoid a single query over a large time range saturating all available queriers.", + "fieldValue": null, + "fieldDefaultValue": 14, + "fieldFlag": "querier.max-query-parallelism", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_labels_query_length", + "required": false, + "desc": "Limit the time range (end - start time) of series, label names and values queries. This limit is enforced in the querier. 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": "store.max-labels-query-length", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_cache_freshness", + "required": false, + "desc": "Most recent allowed cacheable result per-tenant, to prevent caching very recent results that might still be in flux.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "query-frontend.max-cache-freshness", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_queriers_per_tenant", + "required": false, + "desc": "Maximum number of queriers that can handle requests for a single tenant. If set to 0 or value higher than number of available queriers, *all* queriers will handle requests for the tenant. Each frontend (or query-scheduler, if used) will select the same set of queriers for the same tenant (given that all queriers are connected to all frontends / query-schedulers). This option only works with queriers connecting to the query-frontend / query-scheduler, not when using downstream URL.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "query-frontend.max-queriers-per-tenant", + "fieldType": "int" + }, + { + "kind": "field", + "name": "query_sharding_total_shards", + "required": false, + "desc": "The amount of shards to use when doing parallelisation via query sharding by tenant. 0 to disable query sharding for tenant. Query sharding implementation will adjust the number of query shards based on compactor shards. This allows querier to not search the blocks which cannot possibly have the series for given query shard.", + "fieldValue": null, + "fieldDefaultValue": 16, + "fieldFlag": "query-frontend.query-sharding-total-shards", + "fieldType": "int" + }, + { + "kind": "field", + "name": "query_sharding_max_sharded_queries", + "required": false, + "desc": "The max number of sharded queries that can be run for a given received query. 0 to disable limit.", + "fieldValue": null, + "fieldDefaultValue": 128, + "fieldFlag": "query-frontend.query-sharding-max-sharded-queries", + "fieldType": "int" + }, + { + "kind": "field", + "name": "cardinality_analysis_enabled", + "required": false, + "desc": "Enables endpoints used for cardinality analysis.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "querier.cardinality-analysis-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "label_names_and_values_results_max_size_bytes", + "required": false, + "desc": "Maximum size in bytes of distinct label names and values. When querier receives response from ingester, it merges the response with responses from other ingesters. This maximum size limit is applied to the merged(distinct) results. If the limit is reached, an error is returned.", + "fieldValue": null, + "fieldDefaultValue": 419430400, + "fieldFlag": "querier.label-names-and-values-results-max-size-bytes", + "fieldType": "int" + }, + { + "kind": "field", + "name": "label_values_max_cardinality_label_names_per_request", + "required": false, + "desc": "Maximum number of label names allowed to be queried in a single /api/v1/cardinality/label_values API call.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "querier.label-values-max-cardinality-label-names-per-request", + "fieldType": "int" + }, + { + "kind": "field", + "name": "ruler_evaluation_delay_duration", + "required": false, + "desc": "Duration to delay the evaluation of rules to ensure the underlying metrics have been pushed.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ruler.evaluation-delay-duration", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "ruler_tenant_shard_size", + "required": false, + "desc": "The tenant's shard size when sharding is used by ruler. Value of 0 disables shuffle sharding for the tenant, and tenant rules will be sharded across all ruler replicas.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ruler.tenant-shard-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "ruler_max_rules_per_rule_group", + "required": false, + "desc": "Maximum number of rules per rule group per-tenant. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 20, + "fieldFlag": "ruler.max-rules-per-rule-group", + "fieldType": "int" + }, + { + "kind": "field", + "name": "ruler_max_rule_groups_per_tenant", + "required": false, + "desc": "Maximum number of rule groups per-tenant. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 70, + "fieldFlag": "ruler.max-rule-groups-per-tenant", + "fieldType": "int" + }, + { + "kind": "field", + "name": "store_gateway_tenant_shard_size", + "required": false, + "desc": "The tenant's shard size, used when store-gateway sharding is enabled. Value of 0 disables shuffle sharding for the tenant, that is all tenant blocks are sharded across all store-gateway replicas.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store-gateway.tenant-shard-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "compactor_blocks_retention_period", + "required": false, + "desc": "Delete blocks containing samples older than the specified retention period. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "compactor.blocks-retention-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "compactor_split_and_merge_shards", + "required": false, + "desc": "The number of shards to use when splitting blocks. 0 to disable splitting.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "compactor.split-and-merge-shards", + "fieldType": "int" + }, + { + "kind": "field", + "name": "compactor_split_groups", + "required": false, + "desc": "Number of groups that blocks for splitting should be grouped into. Each group of blocks is then split separately. Number of output split shards is controlled by -compactor.split-and-merge-shards.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "compactor.split-groups", + "fieldType": "int" + }, + { + "kind": "field", + "name": "compactor_tenant_shard_size", + "required": false, + "desc": "Max number of compactors that can compact blocks for single tenant. 0 to disable the limit and use all compactors.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "compactor.compactor-tenant-shard-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "s3_sse_type", + "required": false, + "desc": "S3 server-side encryption type. Required to enable server-side encryption overrides for a specific tenant. If not set, the default S3 client settings are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldType": "string" + }, + { + "kind": "field", + "name": "s3_sse_kms_key_id", + "required": false, + "desc": "S3 server-side encryption KMS Key ID. Ignored if the SSE type override is not set.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldType": "string" + }, + { + "kind": "field", + "name": "s3_sse_kms_encryption_context", + "required": false, + "desc": "S3 server-side encryption KMS encryption context. If unset and the key ID override is set, the encryption context will not be provided to S3. Ignored if the SSE type override is not set.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldType": "string" + }, + { + "kind": "field", + "name": "alertmanager_receivers_firewall_block_cidr_networks", + "required": false, + "desc": "Comma-separated list of network CIDRs to block in Alertmanager receiver integrations.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.receivers-firewall-block-cidr-networks", + "fieldType": "string" + }, + { + "kind": "field", + "name": "alertmanager_receivers_firewall_block_private_addresses", + "required": false, + "desc": "True to block private and local addresses in Alertmanager receiver integrations. It blocks private addresses defined by RFC 1918 (IPv4 addresses) and RFC 4193 (IPv6 addresses), as well as loopback, local unicast and local multicast addresses.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "alertmanager.receivers-firewall-block-private-addresses", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "alertmanager_notification_rate_limit", + "required": false, + "desc": "Per-tenant rate limit for sending notifications from Alertmanager in notifications/sec. 0 = rate limit disabled. Negative value = no notifications are allowed.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "alertmanager.notification-rate-limit", + "fieldType": "float" + }, + { + "kind": "field", + "name": "alertmanager_notification_rate_limit_per_integration", + "required": false, + "desc": "Per-integration notification rate limits. Value is a map, where each key is integration name and value is a rate-limit (float). On command line, this map is given in JSON format. Rate limit has the same meaning as -alertmanager.notification-rate-limit, but only applies for specific integration. Allowed integration names: webhook, email, pagerduty, opsgenie, wechat, slack, victorops, pushover, sns.", + "fieldValue": null, + "fieldDefaultValue": {}, + "fieldFlag": "alertmanager.notification-rate-limit-per-integration", + "fieldType": "map of string to float64" + }, + { + "kind": "field", + "name": "alertmanager_max_config_size_bytes", + "required": false, + "desc": "Maximum size of configuration file for Alertmanager that tenant can upload via Alertmanager API. 0 = no limit.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "alertmanager.max-config-size-bytes", + "fieldType": "int" + }, + { + "kind": "field", + "name": "alertmanager_max_templates_count", + "required": false, + "desc": "Maximum number of templates in tenant's Alertmanager configuration uploaded via Alertmanager API. 0 = no limit.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "alertmanager.max-templates-count", + "fieldType": "int" + }, + { + "kind": "field", + "name": "alertmanager_max_template_size_bytes", + "required": false, + "desc": "Maximum size of single template in tenant's Alertmanager configuration uploaded via Alertmanager API. 0 = no limit.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "alertmanager.max-template-size-bytes", + "fieldType": "int" + }, + { + "kind": "field", + "name": "alertmanager_max_dispatcher_aggregation_groups", + "required": false, + "desc": "Maximum number of aggregation groups in Alertmanager's dispatcher that a tenant can have. Each active aggregation group uses single goroutine. When the limit is reached, dispatcher will not dispatch alerts that belong to additional aggregation groups, but existing groups will keep working properly. 0 = no limit.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "alertmanager.max-dispatcher-aggregation-groups", + "fieldType": "int" + }, + { + "kind": "field", + "name": "alertmanager_max_alerts_count", + "required": false, + "desc": "Maximum number of alerts that a single tenant can have. Inserting more alerts will fail with a log message and metric increment. 0 = no limit.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "alertmanager.max-alerts-count", + "fieldType": "int" + }, + { + "kind": "field", + "name": "alertmanager_max_alerts_size_bytes", + "required": false, + "desc": "Maximum total size of alerts that a single tenant can have, alert size is the sum of the bytes of its labels, annotations and generatorURL. Inserting more alerts will fail with a log message and metric increment. 0 = no limit.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "alertmanager.max-alerts-size-bytes", + "fieldType": "int" + }, + { + "kind": "field", + "name": "forwarding_rules", + "required": false, + "desc": "Rules based on which the Distributor decides whether a metric should be forwarded to an alternative remote_write API endpoint.", + "fieldValue": null, + "fieldDefaultValue": {}, + "fieldType": "map of string to validation.ForwardingRule" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "frontend_worker", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "frontend_address", + "required": false, + "desc": "Address of the query-frontend component, in host:port format. Only one of -querier.frontend-address or -querier.scheduler-address can be set. If neither is set, queries are only received via HTTP endpoint.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "querier.frontend-address", + "fieldType": "string" + }, + { + "kind": "field", + "name": "scheduler_address", + "required": false, + "desc": "Address of the query-scheduler component, in host:port format. Only one of -querier.frontend-address or -querier.scheduler-address can be set. If neither is set, queries are only received via HTTP endpoint.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "querier.scheduler-address", + "fieldType": "string" + }, + { + "kind": "field", + "name": "dns_lookup_duration", + "required": false, + "desc": "How often to query DNS for query-frontend or query-scheduler address.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "querier.dns-lookup-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "id", + "required": false, + "desc": "Querier ID, sent to the query-frontend to identify requests from the same querier. Defaults to hostname.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "querier.id", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "grpc_client_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "max_recv_msg_size", + "required": false, + "desc": "gRPC client max receive message size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 104857600, + "fieldFlag": "querier.frontend-client.grpc-max-recv-msg-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_send_msg_size", + "required": false, + "desc": "gRPC client max send message size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 104857600, + "fieldFlag": "querier.frontend-client.grpc-max-send-msg-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "grpc_compression", + "required": false, + "desc": "Use compression when sending messages. Supported values are: 'gzip', 'snappy' and '' (disable compression)", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "querier.frontend-client.grpc-compression", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "rate_limit", + "required": false, + "desc": "Rate limit for gRPC client; 0 means disabled.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "querier.frontend-client.grpc-client-rate-limit", + "fieldType": "float", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "rate_limit_burst", + "required": false, + "desc": "Rate limit burst for gRPC client.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "querier.frontend-client.grpc-client-rate-limit-burst", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "backoff_on_ratelimits", + "required": false, + "desc": "Enable backoff and retry when we hit ratelimits.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "querier.frontend-client.backoff-on-ratelimits", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "backoff_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "min_period", + "required": false, + "desc": "Minimum delay when backing off.", + "fieldValue": null, + "fieldDefaultValue": 100000000, + "fieldFlag": "querier.frontend-client.backoff-min-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_period", + "required": false, + "desc": "Maximum delay when backing off.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "querier.frontend-client.backoff-max-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Number of times to backoff and retry before failing.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "querier.frontend-client.backoff-retries", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "querier.frontend-client.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "querier.frontend-client.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "querier.frontend-client.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "querier.frontend-client.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "querier.frontend-client.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "querier.frontend-client.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "frontend", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "log_queries_longer_than", + "required": false, + "desc": "Log queries that are slower than the specified duration. Set to 0 to disable. Set to \u003c 0 to enable on all queries.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "query-frontend.log-queries-longer-than", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_body_size", + "required": false, + "desc": "Max body size for downstream prometheus.", + "fieldValue": null, + "fieldDefaultValue": 10485760, + "fieldFlag": "query-frontend.max-body-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "query_stats_enabled", + "required": false, + "desc": "False to disable query statistics tracking. When enabled, a message with some statistics is logged for every query.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "query-frontend.query-stats-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_outstanding_per_tenant", + "required": false, + "desc": "Maximum number of outstanding requests per tenant per frontend; requests beyond this error with HTTP 429.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "querier.max-outstanding-requests-per-tenant", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "querier_forget_delay", + "required": false, + "desc": "If a querier disconnects without sending notification about graceful shutdown, the query-frontend will keep the querier in the tenant's shard until the forget delay has passed. This feature is useful to reduce the blast radius when shuffle-sharding is enabled.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "query-frontend.querier-forget-delay", + "fieldType": "duration", + "fieldCategory": "experimental" + }, + { + "kind": "field", + "name": "scheduler_address", + "required": false, + "desc": "DNS hostname used for finding query-schedulers.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "query-frontend.scheduler-address", + "fieldType": "string" + }, + { + "kind": "field", + "name": "scheduler_dns_lookup_period", + "required": false, + "desc": "How often to resolve the scheduler-address, in order to look for new query-scheduler instances.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "query-frontend.scheduler-dns-lookup-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "scheduler_worker_concurrency", + "required": false, + "desc": "Number of concurrent workers forwarding queries to single query-scheduler.", + "fieldValue": null, + "fieldDefaultValue": 5, + "fieldFlag": "query-frontend.scheduler-worker-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "grpc_client_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "max_recv_msg_size", + "required": false, + "desc": "gRPC client max receive message size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 104857600, + "fieldFlag": "query-frontend.grpc-client-config.grpc-max-recv-msg-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_send_msg_size", + "required": false, + "desc": "gRPC client max send message size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 104857600, + "fieldFlag": "query-frontend.grpc-client-config.grpc-max-send-msg-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "grpc_compression", + "required": false, + "desc": "Use compression when sending messages. Supported values are: 'gzip', 'snappy' and '' (disable compression)", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "query-frontend.grpc-client-config.grpc-compression", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "rate_limit", + "required": false, + "desc": "Rate limit for gRPC client; 0 means disabled.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "query-frontend.grpc-client-config.grpc-client-rate-limit", + "fieldType": "float", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "rate_limit_burst", + "required": false, + "desc": "Rate limit burst for gRPC client.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "query-frontend.grpc-client-config.grpc-client-rate-limit-burst", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "backoff_on_ratelimits", + "required": false, + "desc": "Enable backoff and retry when we hit ratelimits.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "query-frontend.grpc-client-config.backoff-on-ratelimits", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "backoff_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "min_period", + "required": false, + "desc": "Minimum delay when backing off.", + "fieldValue": null, + "fieldDefaultValue": 100000000, + "fieldFlag": "query-frontend.grpc-client-config.backoff-min-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_period", + "required": false, + "desc": "Maximum delay when backing off.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "query-frontend.grpc-client-config.backoff-max-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Number of times to backoff and retry before failing.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "query-frontend.grpc-client-config.backoff-retries", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "query-frontend.grpc-client-config.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "query-frontend.grpc-client-config.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "query-frontend.grpc-client-config.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "query-frontend.grpc-client-config.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "query-frontend.grpc-client-config.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "query-frontend.grpc-client-config.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "instance_interface_names", + "required": false, + "desc": "List of network interface names to look up when finding the instance IP address. This address is sent to query-scheduler and querier, which uses it to send the query response back to query-frontend.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "query-frontend.instance-interface-names", + "fieldType": "list of string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "address", + "required": false, + "desc": "IP address to advertise to the querier (via scheduler) (default is auto-detected from network interfaces).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "query-frontend.instance-addr", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "port", + "required": false, + "desc": "Port to advertise to querier (via scheduler) (defaults to server.grpc-listen-port).", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "query-frontend.instance-port", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "split_queries_by_interval", + "required": false, + "desc": "Split queries by an interval and execute in parallel. You should use a multiple of 24 hours to optimize querying blocks. 0 to disable it.", + "fieldValue": null, + "fieldDefaultValue": 86400000000000, + "fieldFlag": "query-frontend.split-queries-by-interval", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "align_queries_with_step", + "required": false, + "desc": "Mutate incoming queries to align their start and end with their step.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "query-frontend.align-querier-with-step", + "fieldType": "boolean" + }, + { + "kind": "block", + "name": "results_cache", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "backend", + "required": false, + "desc": "Backend for query-frontend results cache, if not empty. Supported values: [memcached].", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "query-frontend.results-cache.backend", + "fieldType": "string" + }, + { + "kind": "block", + "name": "memcached", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "addresses", + "required": false, + "desc": "Comma separated list of memcached addresses. Supported prefixes are: dns+ (looked up as an A/AAAA query), dnssrv+ (looked up as a SRV query, dnssrvnoa+ (looked up as a SRV query, with no A/AAAA lookup made after that).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "query-frontend.results-cache.memcached.addresses", + "fieldType": "string" + }, + { + "kind": "field", + "name": "timeout", + "required": false, + "desc": "The socket read/write timeout.", + "fieldValue": null, + "fieldDefaultValue": 200000000, + "fieldFlag": "query-frontend.results-cache.memcached.timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_idle_connections", + "required": false, + "desc": "The maximum number of idle connections that will be maintained per address.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "query-frontend.results-cache.memcached.max-idle-connections", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_async_concurrency", + "required": false, + "desc": "The maximum number of concurrent asynchronous operations can occur.", + "fieldValue": null, + "fieldDefaultValue": 50, + "fieldFlag": "query-frontend.results-cache.memcached.max-async-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_async_buffer_size", + "required": false, + "desc": "The maximum number of enqueued asynchronous operations allowed.", + "fieldValue": null, + "fieldDefaultValue": 25000, + "fieldFlag": "query-frontend.results-cache.memcached.max-async-buffer-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_get_multi_concurrency", + "required": false, + "desc": "The maximum number of concurrent connections running get operations. If set to 0, concurrency is unlimited.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "query-frontend.results-cache.memcached.max-get-multi-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_get_multi_batch_size", + "required": false, + "desc": "The maximum number of keys a single underlying get operation should run. If more keys are specified, internally keys are split into multiple batches and fetched concurrently, honoring the max concurrency. If set to 0, the max batch size is unlimited.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "query-frontend.results-cache.memcached.max-get-multi-batch-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_item_size", + "required": false, + "desc": "The maximum size of an item stored in memcached. Bigger items are not stored. If set to 0, no maximum size is enforced.", + "fieldValue": null, + "fieldDefaultValue": 1048576, + "fieldFlag": "query-frontend.results-cache.memcached.max-item-size", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "compression", + "required": false, + "desc": "Enable cache compression, if not empty. Supported values are: snappy.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "query-frontend.results-cache.compression", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "cache_results", + "required": false, + "desc": "Cache query results.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "query-frontend.cache-results", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Maximum number of retries for a single request; beyond this, the downstream error is returned.", + "fieldValue": null, + "fieldDefaultValue": 5, + "fieldFlag": "query-frontend.max-retries-per-request", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "parallelize_shardable_queries", + "required": false, + "desc": "True to enable query sharding.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "query-frontend.parallelize-shardable-queries", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "cache_unaligned_requests", + "required": false, + "desc": "Cache requests that are not step-aligned.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "query-frontend.cache-unaligned-requests", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "downstream_url", + "required": false, + "desc": "URL of downstream Prometheus.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "query-frontend.downstream-url", + "fieldType": "string", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "blocks_storage", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "backend", + "required": false, + "desc": "Backend storage to use. Supported backends are: s3, gcs, azure, swift, filesystem.", + "fieldValue": null, + "fieldDefaultValue": "filesystem", + "fieldFlag": "blocks-storage.backend", + "fieldType": "string" + }, + { + "kind": "block", + "name": "s3", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoint", + "required": false, + "desc": "The S3 bucket endpoint. It could be an AWS S3 endpoint listed at https://docs.aws.amazon.com/general/latest/gr/s3.html or the address of an S3-compatible service in hostname:port format.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.s3.endpoint", + "fieldType": "string" + }, + { + "kind": "field", + "name": "region", + "required": false, + "desc": "S3 region. If unset, the client will issue a S3 GetBucketLocation API call to autodetect it.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.s3.region", + "fieldType": "string" + }, + { + "kind": "field", + "name": "bucket_name", + "required": false, + "desc": "S3 bucket name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.s3.bucket-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "secret_access_key", + "required": false, + "desc": "S3 secret access key", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.s3.secret-access-key", + "fieldType": "string" + }, + { + "kind": "field", + "name": "access_key_id", + "required": false, + "desc": "S3 access key ID", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.s3.access-key-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "insecure", + "required": false, + "desc": "If enabled, use http:// for the S3 endpoint instead of https://. This could be useful in local dev/test environments while using an S3-compatible backend storage, like Minio.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "blocks-storage.s3.insecure", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "signature_version", + "required": false, + "desc": "The signature version to use for authenticating against S3. Supported values are: v4, v2.", + "fieldValue": null, + "fieldDefaultValue": "v4", + "fieldFlag": "blocks-storage.s3.signature-version", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "sse", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "type", + "required": false, + "desc": "Enable AWS Server Side Encryption. Supported values: SSE-KMS, SSE-S3.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.s3.sse.type", + "fieldType": "string" + }, + { + "kind": "field", + "name": "kms_key_id", + "required": false, + "desc": "KMS Key ID used to encrypt objects in S3", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.s3.sse.kms-key-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "kms_encryption_context", + "required": false, + "desc": "KMS Encryption Context used for object encryption. It expects JSON formatted string.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.s3.sse.kms-encryption-context", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "http", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "idle_conn_timeout", + "required": false, + "desc": "The time an idle connection will remain idle before closing.", + "fieldValue": null, + "fieldDefaultValue": 90000000000, + "fieldFlag": "blocks-storage.s3.http.idle-conn-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "response_header_timeout", + "required": false, + "desc": "The amount of time the client will wait for a servers response headers.", + "fieldValue": null, + "fieldDefaultValue": 120000000000, + "fieldFlag": "blocks-storage.s3.http.response-header-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "insecure_skip_verify", + "required": false, + "desc": "If the client connects to S3 via HTTPS and this option is enabled, the client will accept any certificate and hostname.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "blocks-storage.s3.http.insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_handshake_timeout", + "required": false, + "desc": "Maximum time to wait for a TLS handshake. 0 means no limit.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "blocks-storage.s3.tls-handshake-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "expect_continue_timeout", + "required": false, + "desc": "The time to wait for a server's first response headers after fully writing the request headers if the request has an Expect header. 0 to send the request body immediately.", + "fieldValue": null, + "fieldDefaultValue": 1000000000, + "fieldFlag": "blocks-storage.s3.expect-continue-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_idle_connections", + "required": false, + "desc": "Maximum number of idle (keep-alive) connections across all hosts. 0 means no limit.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "blocks-storage.s3.max-idle-connections", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_idle_connections_per_host", + "required": false, + "desc": "Maximum number of idle (keep-alive) connections to keep per-host. If 0, a built-in default value is used.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "blocks-storage.s3.max-idle-connections-per-host", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_connections_per_host", + "required": false, + "desc": "Maximum number of connections per host. 0 means no limit.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "blocks-storage.s3.max-connections-per-host", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "gcs", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "bucket_name", + "required": false, + "desc": "GCS bucket name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.gcs.bucket-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "service_account", + "required": false, + "desc": "JSON representing either a Google Developers Console client_credentials.json file or a Google Developers service account key file. If empty, fallback to Google default logic.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.gcs.service-account", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "azure", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "account_name", + "required": false, + "desc": "Azure storage account name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.azure.account-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "account_key", + "required": false, + "desc": "Azure storage account key", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.azure.account-key", + "fieldType": "string" + }, + { + "kind": "field", + "name": "container_name", + "required": false, + "desc": "Azure storage container name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.azure.container-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "endpoint_suffix", + "required": false, + "desc": "Azure storage endpoint suffix without schema. The account name will be prefixed to this value to create the FQDN. If set to empty string, default endpoint suffix is used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.azure.endpoint-suffix", + "fieldType": "string" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Number of retries for recoverable errors", + "fieldValue": null, + "fieldDefaultValue": 20, + "fieldFlag": "blocks-storage.azure.max-retries", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "msi_resource", + "required": false, + "desc": "If set, this URL is used instead of https://\u003cstorage-account-name\u003e.\u003cendpoint-suffix\u003e for obtaining ServicePrincipalToken from MSI.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.azure.msi-resource", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "user_assigned_id", + "required": false, + "desc": "User assigned identity. If empty, then System assigned identity is used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.azure.user-assigned-id", + "fieldType": "string", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "swift", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "auth_version", + "required": false, + "desc": "OpenStack Swift authentication API version. 0 to autodetect.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "blocks-storage.swift.auth-version", + "fieldType": "int" + }, + { + "kind": "field", + "name": "auth_url", + "required": false, + "desc": "OpenStack Swift authentication URL", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.auth-url", + "fieldType": "string" + }, + { + "kind": "field", + "name": "username", + "required": false, + "desc": "OpenStack Swift username.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.username", + "fieldType": "string" + }, + { + "kind": "field", + "name": "user_domain_name", + "required": false, + "desc": "OpenStack Swift user's domain name.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.user-domain-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "user_domain_id", + "required": false, + "desc": "OpenStack Swift user's domain ID.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.user-domain-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "user_id", + "required": false, + "desc": "OpenStack Swift user ID.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.user-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "OpenStack Swift API key.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.password", + "fieldType": "string" + }, + { + "kind": "field", + "name": "domain_id", + "required": false, + "desc": "OpenStack Swift user's domain ID.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.domain-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "domain_name", + "required": false, + "desc": "OpenStack Swift user's domain name.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.domain-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_id", + "required": false, + "desc": "OpenStack Swift project ID (v2,v3 auth only).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.project-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_name", + "required": false, + "desc": "OpenStack Swift project name (v2,v3 auth only).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.project-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_domain_id", + "required": false, + "desc": "ID of the OpenStack Swift project's domain (v3 auth only), only needed if it differs the from user domain.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.project-domain-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_domain_name", + "required": false, + "desc": "Name of the OpenStack Swift project's domain (v3 auth only), only needed if it differs from the user domain.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.project-domain-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "region_name", + "required": false, + "desc": "OpenStack Swift Region to use (v2,v3 auth only).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.region-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "container_name", + "required": false, + "desc": "Name of the OpenStack Swift container to put chunks in.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.container-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Max retries on requests error.", + "fieldValue": null, + "fieldDefaultValue": 3, + "fieldFlag": "blocks-storage.swift.max-retries", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "connect_timeout", + "required": false, + "desc": "Time after which a connection attempt is aborted.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "blocks-storage.swift.connect-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "request_timeout", + "required": false, + "desc": "Time after which an idle request is aborted. The timeout watchdog is reset each time some data is received, so the timeout triggers after X time no data is received on a request.", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "blocks-storage.swift.request-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "filesystem", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "dir", + "required": false, + "desc": "Local filesystem storage directory.", + "fieldValue": null, + "fieldDefaultValue": "blocks", + "fieldFlag": "blocks-storage.filesystem.dir", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "bucket_store", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "sync_dir", + "required": false, + "desc": "Directory to store synchronized TSDB index headers. This directory is not required to be persisted between restarts, but it's highly recommended in order to improve the store-gateway startup time.", + "fieldValue": null, + "fieldDefaultValue": "./tsdb-sync/", + "fieldFlag": "blocks-storage.bucket-store.sync-dir", + "fieldType": "string" + }, + { + "kind": "field", + "name": "sync_interval", + "required": false, + "desc": "How frequently to scan the bucket, or to refresh the bucket index (if enabled), in order to look for changes (new blocks shipped by ingesters and blocks deleted by retention or compaction).", + "fieldValue": null, + "fieldDefaultValue": 900000000000, + "fieldFlag": "blocks-storage.bucket-store.sync-interval", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_concurrent", + "required": false, + "desc": "Max number of concurrent queries to execute against the long-term storage. The limit is shared across all tenants.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "blocks-storage.bucket-store.max-concurrent", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tenant_sync_concurrency", + "required": false, + "desc": "Maximum number of concurrent tenants synching blocks.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "blocks-storage.bucket-store.tenant-sync-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "block_sync_concurrency", + "required": false, + "desc": "Maximum number of concurrent blocks synching per tenant.", + "fieldValue": null, + "fieldDefaultValue": 20, + "fieldFlag": "blocks-storage.bucket-store.block-sync-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "meta_sync_concurrency", + "required": false, + "desc": "Number of Go routines to use when syncing block meta files from object storage per tenant.", + "fieldValue": null, + "fieldDefaultValue": 20, + "fieldFlag": "blocks-storage.bucket-store.meta-sync-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "consistency_delay", + "required": false, + "desc": "Minimum age of a block before it's being read. Set it to safe value (e.g 30m) if your object storage is eventually consistent. GCS and S3 are (roughly) strongly consistent.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "blocks-storage.bucket-store.consistency-delay", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "index_cache", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "backend", + "required": false, + "desc": "The index cache backend type. Supported values: inmemory, memcached.", + "fieldValue": null, + "fieldDefaultValue": "inmemory", + "fieldFlag": "blocks-storage.bucket-store.index-cache.backend", + "fieldType": "string" + }, + { + "kind": "block", + "name": "memcached", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "addresses", + "required": false, + "desc": "Comma separated list of memcached addresses. Supported prefixes are: dns+ (looked up as an A/AAAA query), dnssrv+ (looked up as a SRV query, dnssrvnoa+ (looked up as a SRV query, with no A/AAAA lookup made after that).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.bucket-store.index-cache.memcached.addresses", + "fieldType": "string" + }, + { + "kind": "field", + "name": "timeout", + "required": false, + "desc": "The socket read/write timeout.", + "fieldValue": null, + "fieldDefaultValue": 200000000, + "fieldFlag": "blocks-storage.bucket-store.index-cache.memcached.timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_idle_connections", + "required": false, + "desc": "The maximum number of idle connections that will be maintained per address.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "blocks-storage.bucket-store.index-cache.memcached.max-idle-connections", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_async_concurrency", + "required": false, + "desc": "The maximum number of concurrent asynchronous operations can occur.", + "fieldValue": null, + "fieldDefaultValue": 50, + "fieldFlag": "blocks-storage.bucket-store.index-cache.memcached.max-async-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_async_buffer_size", + "required": false, + "desc": "The maximum number of enqueued asynchronous operations allowed.", + "fieldValue": null, + "fieldDefaultValue": 25000, + "fieldFlag": "blocks-storage.bucket-store.index-cache.memcached.max-async-buffer-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_get_multi_concurrency", + "required": false, + "desc": "The maximum number of concurrent connections running get operations. If set to 0, concurrency is unlimited.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "blocks-storage.bucket-store.index-cache.memcached.max-get-multi-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_get_multi_batch_size", + "required": false, + "desc": "The maximum number of keys a single underlying get operation should run. If more keys are specified, internally keys are split into multiple batches and fetched concurrently, honoring the max concurrency. If set to 0, the max batch size is unlimited.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "blocks-storage.bucket-store.index-cache.memcached.max-get-multi-batch-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_item_size", + "required": false, + "desc": "The maximum size of an item stored in memcached. Bigger items are not stored. If set to 0, no maximum size is enforced.", + "fieldValue": null, + "fieldDefaultValue": 1048576, + "fieldFlag": "blocks-storage.bucket-store.index-cache.memcached.max-item-size", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "inmemory", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "max_size_bytes", + "required": false, + "desc": "Maximum size in bytes of in-memory index cache used to speed up blocks index lookups (shared between all tenants).", + "fieldValue": null, + "fieldDefaultValue": 1073741824, + "fieldFlag": "blocks-storage.bucket-store.index-cache.inmemory.max-size-bytes", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "chunks_cache", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "backend", + "required": false, + "desc": "Backend for chunks cache, if not empty. Supported values: memcached.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.backend", + "fieldType": "string" + }, + { + "kind": "block", + "name": "memcached", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "addresses", + "required": false, + "desc": "Comma separated list of memcached addresses. Supported prefixes are: dns+ (looked up as an A/AAAA query), dnssrv+ (looked up as a SRV query, dnssrvnoa+ (looked up as a SRV query, with no A/AAAA lookup made after that).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.memcached.addresses", + "fieldType": "string" + }, + { + "kind": "field", + "name": "timeout", + "required": false, + "desc": "The socket read/write timeout.", + "fieldValue": null, + "fieldDefaultValue": 200000000, + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.memcached.timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_idle_connections", + "required": false, + "desc": "The maximum number of idle connections that will be maintained per address.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.memcached.max-idle-connections", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_async_concurrency", + "required": false, + "desc": "The maximum number of concurrent asynchronous operations can occur.", + "fieldValue": null, + "fieldDefaultValue": 50, + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.memcached.max-async-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_async_buffer_size", + "required": false, + "desc": "The maximum number of enqueued asynchronous operations allowed.", + "fieldValue": null, + "fieldDefaultValue": 25000, + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.memcached.max-async-buffer-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_get_multi_concurrency", + "required": false, + "desc": "The maximum number of concurrent connections running get operations. If set to 0, concurrency is unlimited.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.memcached.max-get-multi-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_get_multi_batch_size", + "required": false, + "desc": "The maximum number of keys a single underlying get operation should run. If more keys are specified, internally keys are split into multiple batches and fetched concurrently, honoring the max concurrency. If set to 0, the max batch size is unlimited.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.memcached.max-get-multi-batch-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_item_size", + "required": false, + "desc": "The maximum size of an item stored in memcached. Bigger items are not stored. If set to 0, no maximum size is enforced.", + "fieldValue": null, + "fieldDefaultValue": 1048576, + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.memcached.max-item-size", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "subrange_size", + "required": false, + "desc": "Size of each subrange that bucket object is split into for better caching.", + "fieldValue": null, + "fieldDefaultValue": 16000, + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.subrange-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_get_range_requests", + "required": false, + "desc": "Maximum number of sub-GetRange requests that a single GetRange request can be split into when fetching chunks. Zero or negative value = unlimited number of sub-requests.", + "fieldValue": null, + "fieldDefaultValue": 3, + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.max-get-range-requests", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "attributes_ttl", + "required": false, + "desc": "TTL for caching object attributes for chunks. If the metadata cache is configured, attributes will be stored under this cache backend, otherwise attributes are stored in the chunks cache backend.", + "fieldValue": null, + "fieldDefaultValue": 604800000000000, + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.attributes-ttl", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "attributes_in_memory_max_items", + "required": false, + "desc": "Maximum number of object attribute items to keep in a first level in-memory LRU cache. Metadata will be stored and fetched in-memory before hitting the cache backend. 0 to disable the in-memory cache.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.attributes-in-memory-max-items", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "subrange_ttl", + "required": false, + "desc": "TTL for caching individual chunks subranges.", + "fieldValue": null, + "fieldDefaultValue": 86400000000000, + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.subrange-ttl", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "metadata_cache", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "backend", + "required": false, + "desc": "Backend for metadata cache, if not empty. Supported values: memcached.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.backend", + "fieldType": "string" + }, + { + "kind": "block", + "name": "memcached", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "addresses", + "required": false, + "desc": "Comma separated list of memcached addresses. Supported prefixes are: dns+ (looked up as an A/AAAA query), dnssrv+ (looked up as a SRV query, dnssrvnoa+ (looked up as a SRV query, with no A/AAAA lookup made after that).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.memcached.addresses", + "fieldType": "string" + }, + { + "kind": "field", + "name": "timeout", + "required": false, + "desc": "The socket read/write timeout.", + "fieldValue": null, + "fieldDefaultValue": 200000000, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.memcached.timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_idle_connections", + "required": false, + "desc": "The maximum number of idle connections that will be maintained per address.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.memcached.max-idle-connections", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_async_concurrency", + "required": false, + "desc": "The maximum number of concurrent asynchronous operations can occur.", + "fieldValue": null, + "fieldDefaultValue": 50, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.memcached.max-async-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_async_buffer_size", + "required": false, + "desc": "The maximum number of enqueued asynchronous operations allowed.", + "fieldValue": null, + "fieldDefaultValue": 25000, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.memcached.max-async-buffer-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_get_multi_concurrency", + "required": false, + "desc": "The maximum number of concurrent connections running get operations. If set to 0, concurrency is unlimited.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.memcached.max-get-multi-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_get_multi_batch_size", + "required": false, + "desc": "The maximum number of keys a single underlying get operation should run. If more keys are specified, internally keys are split into multiple batches and fetched concurrently, honoring the max concurrency. If set to 0, the max batch size is unlimited.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.memcached.max-get-multi-batch-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_item_size", + "required": false, + "desc": "The maximum size of an item stored in memcached. Bigger items are not stored. If set to 0, no maximum size is enforced.", + "fieldValue": null, + "fieldDefaultValue": 1048576, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.memcached.max-item-size", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "tenants_list_ttl", + "required": false, + "desc": "How long to cache list of tenants in the bucket.", + "fieldValue": null, + "fieldDefaultValue": 900000000000, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.tenants-list-ttl", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tenant_blocks_list_ttl", + "required": false, + "desc": "How long to cache list of blocks for each tenant.", + "fieldValue": null, + "fieldDefaultValue": 300000000000, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.tenant-blocks-list-ttl", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "chunks_list_ttl", + "required": false, + "desc": "How long to cache list of chunks for a block.", + "fieldValue": null, + "fieldDefaultValue": 86400000000000, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.chunks-list-ttl", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "metafile_exists_ttl", + "required": false, + "desc": "How long to cache information that block metafile exists. Also used for tenant deletion mark file.", + "fieldValue": null, + "fieldDefaultValue": 7200000000000, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.metafile-exists-ttl", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "metafile_doesnt_exist_ttl", + "required": false, + "desc": "How long to cache information that block metafile doesn't exist. Also used for tenant deletion mark file.", + "fieldValue": null, + "fieldDefaultValue": 300000000000, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.metafile-doesnt-exist-ttl", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "metafile_content_ttl", + "required": false, + "desc": "How long to cache content of the metafile.", + "fieldValue": null, + "fieldDefaultValue": 86400000000000, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.metafile-content-ttl", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "metafile_max_size_bytes", + "required": false, + "desc": "Maximum size of metafile content to cache in bytes. Caching will be skipped if the content exceeds this size. This is useful to avoid network round trip for large content if the configured caching backend has an hard limit on cached items size (in this case, you should set this limit to the same limit in the caching backend).", + "fieldValue": null, + "fieldDefaultValue": 1048576, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.metafile-max-size-bytes", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "metafile_attributes_ttl", + "required": false, + "desc": "How long to cache attributes of the block metafile.", + "fieldValue": null, + "fieldDefaultValue": 604800000000000, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.metafile-attributes-ttl", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "block_index_attributes_ttl", + "required": false, + "desc": "How long to cache attributes of the block index.", + "fieldValue": null, + "fieldDefaultValue": 604800000000000, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.block-index-attributes-ttl", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "bucket_index_content_ttl", + "required": false, + "desc": "How long to cache content of the bucket index.", + "fieldValue": null, + "fieldDefaultValue": 300000000000, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.bucket-index-content-ttl", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "bucket_index_max_size_bytes", + "required": false, + "desc": "Maximum size of bucket index content to cache in bytes. Caching will be skipped if the content exceeds this size. This is useful to avoid network round trip for large content if the configured caching backend has an hard limit on cached items size (in this case, you should set this limit to the same limit in the caching backend).", + "fieldValue": null, + "fieldDefaultValue": 1048576, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.bucket-index-max-size-bytes", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "ignore_deletion_mark_delay", + "required": false, + "desc": "Duration after which the blocks marked for deletion will be filtered out while fetching blocks. The idea of ignore-deletion-marks-delay is to ignore blocks that are marked for deletion with some delay. This ensures store can still serve blocks that are meant to be deleted but do not have a replacement yet.", + "fieldValue": null, + "fieldDefaultValue": 3600000000000, + "fieldFlag": "blocks-storage.bucket-store.ignore-deletion-marks-delay", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "bucket_index", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "enabled", + "required": false, + "desc": "If enabled, queriers and store-gateways discover blocks by reading a bucket index (created and updated by the compactor) instead of periodically scanning the bucket.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "blocks-storage.bucket-store.bucket-index.enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "update_on_error_interval", + "required": false, + "desc": "How frequently a bucket index, which previously failed to load, should be tried to load again. This option is used only by querier.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "blocks-storage.bucket-store.bucket-index.update-on-error-interval", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "idle_timeout", + "required": false, + "desc": "How long a unused bucket index should be cached. Once this timeout expires, the unused bucket index is removed from the in-memory cache. This option is used only by querier.", + "fieldValue": null, + "fieldDefaultValue": 3600000000000, + "fieldFlag": "blocks-storage.bucket-store.bucket-index.idle-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_stale_period", + "required": false, + "desc": "The maximum allowed age of a bucket index (last updated) before queries start failing because the bucket index is too old. The bucket index is periodically updated by the compactor, while this check is enforced in the querier (at query time).", + "fieldValue": null, + "fieldDefaultValue": 3600000000000, + "fieldFlag": "blocks-storage.bucket-store.bucket-index.max-stale-period", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "ignore_blocks_within", + "required": false, + "desc": "Blocks with minimum time within this duration are ignored, and not loaded by store-gateway. Useful when used together with -querier.query-store-after to prevent loading young blocks, because there are usually many of them (depending on number of ingesters) and they are not yet compacted. Negative values or 0 disable the filter.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "blocks-storage.bucket-store.ignore-blocks-within", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_chunk_pool_bytes", + "required": false, + "desc": "Max size - in bytes - of a chunks pool, used to reduce memory allocations. The pool is shared across all tenants. 0 to disable the limit.", + "fieldValue": null, + "fieldDefaultValue": 2147483648, + "fieldFlag": "blocks-storage.bucket-store.max-chunk-pool-bytes", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "chunk_pool_min_bucket_size_bytes", + "required": false, + "desc": "Size - in bytes - of the smallest chunks pool bucket.", + "fieldValue": null, + "fieldDefaultValue": 16000, + "fieldFlag": "blocks-storage.bucket-store.chunk-pool-min-bucket-size-bytes", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "chunk_pool_max_bucket_size_bytes", + "required": false, + "desc": "Size - in bytes - of the largest chunks pool bucket.", + "fieldValue": null, + "fieldDefaultValue": 50000000, + "fieldFlag": "blocks-storage.bucket-store.chunk-pool-max-bucket-size-bytes", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "series_hash_cache_max_size_bytes", + "required": false, + "desc": "Max size - in bytes - of the in-memory series hash cache. The cache is shared across all tenants and it's used only when query sharding is enabled.", + "fieldValue": null, + "fieldDefaultValue": 1073741824, + "fieldFlag": "blocks-storage.bucket-store.series-hash-cache-max-size-bytes", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "index_header_lazy_loading_enabled", + "required": false, + "desc": "If enabled, store-gateway will lazy load an index-header only once required by a query.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "blocks-storage.bucket-store.index-header-lazy-loading-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "index_header_lazy_loading_idle_timeout", + "required": false, + "desc": "If index-header lazy loading is enabled and this setting is \u003e 0, the store-gateway will offload unused index-headers after 'idle timeout' inactivity.", + "fieldValue": null, + "fieldDefaultValue": 3600000000000, + "fieldFlag": "blocks-storage.bucket-store.index-header-lazy-loading-idle-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "partitioner_max_gap_bytes", + "required": false, + "desc": "Max size - in bytes - of a gap for which the partitioner aggregates together two bucket GET object requests.", + "fieldValue": null, + "fieldDefaultValue": 524288, + "fieldFlag": "blocks-storage.bucket-store.partitioner-max-gap-bytes", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "postings_offsets_in_mem_sampling", + "required": false, + "desc": "Controls what is the ratio of postings offsets that the store will hold in memory.", + "fieldValue": null, + "fieldDefaultValue": 32, + "fieldFlag": "blocks-storage.bucket-store.posting-offsets-in-mem-sampling", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "tsdb", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "dir", + "required": false, + "desc": "Directory to store TSDBs (including WAL) in the ingesters. This directory is required to be persisted between restarts.", + "fieldValue": null, + "fieldDefaultValue": "./tsdb/", + "fieldFlag": "blocks-storage.tsdb.dir", + "fieldType": "string" + }, + { + "kind": "field", + "name": "block_ranges_period", + "required": false, + "desc": "TSDB blocks range period.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "blocks-storage.tsdb.block-ranges-period", + "fieldType": "list of duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "retention_period", + "required": false, + "desc": "TSDB blocks retention in the ingester before a block is removed. This should be larger than the -blocks-storage.tsdb.block-ranges-period, -querier.query-store-after and large enough to give store-gateways and queriers enough time to discover newly uploaded blocks.", + "fieldValue": null, + "fieldDefaultValue": 86400000000000, + "fieldFlag": "blocks-storage.tsdb.retention-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "ship_interval", + "required": false, + "desc": "How frequently the TSDB blocks are scanned and new ones are shipped to the storage. 0 means shipping is disabled.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "blocks-storage.tsdb.ship-interval", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "ship_concurrency", + "required": false, + "desc": "Maximum number of tenants concurrently shipping blocks to the storage.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "blocks-storage.tsdb.ship-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "head_compaction_interval", + "required": false, + "desc": "How frequently ingesters try to compact TSDB head. Block is only created if data covers smallest block range. Must be greater than 0 and max 5 minutes.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "blocks-storage.tsdb.head-compaction-interval", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "head_compaction_concurrency", + "required": false, + "desc": "Maximum number of tenants concurrently compacting TSDB head into a new block", + "fieldValue": null, + "fieldDefaultValue": 5, + "fieldFlag": "blocks-storage.tsdb.head-compaction-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "head_compaction_idle_timeout", + "required": false, + "desc": "If TSDB head is idle for this duration, it is compacted. Note that up to 25% jitter is added to the value to avoid ingesters compacting concurrently. 0 means disabled.", + "fieldValue": null, + "fieldDefaultValue": 3600000000000, + "fieldFlag": "blocks-storage.tsdb.head-compaction-idle-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "head_chunks_write_buffer_size_bytes", + "required": false, + "desc": "The write buffer size used by the head chunks mapper. Lower values reduce memory utilisation on clusters with a large number of tenants at the cost of increased disk I/O operations.", + "fieldValue": null, + "fieldDefaultValue": 4194304, + "fieldFlag": "blocks-storage.tsdb.head-chunks-write-buffer-size-bytes", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "head_chunks_end_time_variance", + "required": false, + "desc": "How much variance (as percentage between 0 and 1) should be applied to the chunk end time, to spread chunks writing across time. Doesn't apply to the last chunk of the chunk range. 0 means no variance.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "blocks-storage.tsdb.head-chunks-end-time-variance", + "fieldType": "float", + "fieldCategory": "experimental" + }, + { + "kind": "field", + "name": "stripe_size", + "required": false, + "desc": "The number of shards of series to use in TSDB (must be a power of 2). Reducing this will decrease memory footprint, but can negatively impact performance.", + "fieldValue": null, + "fieldDefaultValue": 16384, + "fieldFlag": "blocks-storage.tsdb.stripe-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "wal_compression_enabled", + "required": false, + "desc": "True to enable TSDB WAL compression.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "blocks-storage.tsdb.wal-compression-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "wal_segment_size_bytes", + "required": false, + "desc": "TSDB WAL segments files max size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 134217728, + "fieldFlag": "blocks-storage.tsdb.wal-segment-size-bytes", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "flush_blocks_on_shutdown", + "required": false, + "desc": "True to flush blocks to storage on shutdown. If false, incomplete blocks will be reused after restart.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "blocks-storage.tsdb.flush-blocks-on-shutdown", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "close_idle_tsdb_timeout", + "required": false, + "desc": "If TSDB has not received any data for this duration, and all blocks from TSDB have been shipped, TSDB is closed and deleted from local disk. If set to positive value, this value should be equal or higher than -querier.query-ingesters-within flag to make sure that TSDB is not closed prematurely, which could cause partial query results. 0 or negative value disables closing of idle TSDB.", + "fieldValue": null, + "fieldDefaultValue": 46800000000000, + "fieldFlag": "blocks-storage.tsdb.close-idle-tsdb-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "memory_snapshot_on_shutdown", + "required": false, + "desc": "True to enable snapshotting of in-memory TSDB data on disk when shutting down.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "blocks-storage.tsdb.memory-snapshot-on-shutdown", + "fieldType": "boolean", + "fieldCategory": "experimental" + }, + { + "kind": "field", + "name": "head_chunks_write_queue_size", + "required": false, + "desc": "The size of the write queue used by the head chunks mapper. Lower values reduce memory utilisation at the cost of potentially higher ingest latency. Value of 0 switches chunks mapper to implementation without a queue.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "blocks-storage.tsdb.head-chunks-write-queue-size", + "fieldType": "int", + "fieldCategory": "experimental" + }, + { + "kind": "field", + "name": "isolation_enabled", + "required": false, + "desc": "Enables TSDB isolation feature. Disabling may improve performance.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "blocks-storage.tsdb.isolation-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "series_hash_cache_max_size_bytes", + "required": false, + "desc": "Max size - in bytes - of the in-memory series hash cache. The cache is shared across all tenants and it's used only when query sharding is enabled.", + "fieldValue": null, + "fieldDefaultValue": 1073741824, + "fieldFlag": "blocks-storage.tsdb.series-hash-cache-max-size-bytes", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_tsdb_opening_concurrency_on_startup", + "required": false, + "desc": "limit the number of concurrently opening TSDB's on startup", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "blocks-storage.tsdb.max-tsdb-opening-concurrency-on-startup", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "compactor", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "block_ranges", + "required": false, + "desc": "List of compaction time ranges.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "compactor.block-ranges", + "fieldType": "list of duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "block_sync_concurrency", + "required": false, + "desc": "Number of Go routines to use when downloading blocks for compaction and uploading resulting blocks.", + "fieldValue": null, + "fieldDefaultValue": 8, + "fieldFlag": "compactor.block-sync-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "meta_sync_concurrency", + "required": false, + "desc": "Number of Go routines to use when syncing block meta files from the long term storage.", + "fieldValue": null, + "fieldDefaultValue": 20, + "fieldFlag": "compactor.meta-sync-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "consistency_delay", + "required": false, + "desc": "Minimum age of fresh (non-compacted) blocks before they are being processed. Malformed blocks older than the maximum of consistency-delay and 48h0m0s will be removed.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "compactor.consistency-delay", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "data_dir", + "required": false, + "desc": "Directory to temporarily store blocks during compaction. This directory is not required to be persisted between restarts.", + "fieldValue": null, + "fieldDefaultValue": "./data-compactor/", + "fieldFlag": "compactor.data-dir", + "fieldType": "string" + }, + { + "kind": "field", + "name": "compaction_interval", + "required": false, + "desc": "The frequency at which the compaction runs", + "fieldValue": null, + "fieldDefaultValue": 3600000000000, + "fieldFlag": "compactor.compaction-interval", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "compaction_retries", + "required": false, + "desc": "How many times to retry a failed compaction within a single compaction run.", + "fieldValue": null, + "fieldDefaultValue": 3, + "fieldFlag": "compactor.compaction-retries", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "compaction_concurrency", + "required": false, + "desc": "Max number of concurrent compactions running.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "compactor.compaction-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "cleanup_interval", + "required": false, + "desc": "How frequently compactor should run blocks cleanup and maintenance, as well as update the bucket index.", + "fieldValue": null, + "fieldDefaultValue": 900000000000, + "fieldFlag": "compactor.cleanup-interval", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "cleanup_concurrency", + "required": false, + "desc": "Max number of tenants for which blocks cleanup and maintenance should run concurrently.", + "fieldValue": null, + "fieldDefaultValue": 20, + "fieldFlag": "compactor.cleanup-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "deletion_delay", + "required": false, + "desc": "Time before a block marked for deletion is deleted from bucket. If not 0, blocks will be marked for deletion and compactor component will permanently delete blocks marked for deletion from the bucket. If 0, blocks will be deleted straight away. Note that deleting blocks immediately can cause query failures.", + "fieldValue": null, + "fieldDefaultValue": 43200000000000, + "fieldFlag": "compactor.deletion-delay", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tenant_cleanup_delay", + "required": false, + "desc": "For tenants marked for deletion, this is time between deleting of last block, and doing final cleanup (marker files, debug files) of the tenant.", + "fieldValue": null, + "fieldDefaultValue": 21600000000000, + "fieldFlag": "compactor.tenant-cleanup-delay", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_compaction_time", + "required": false, + "desc": "Max time for starting compactions for a single tenant. After this time no new compactions for the tenant are started before next compaction cycle. This can help in multi-tenant environments to avoid single tenant using all compaction time, but also in single-tenant environments to force new discovery of blocks more often. 0 = disabled.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "compactor.max-compaction-time", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_opening_blocks_concurrency", + "required": false, + "desc": "Number of goroutines opening blocks before compaction.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "compactor.max-opening-blocks-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_closing_blocks_concurrency", + "required": false, + "desc": "Max number of blocks that can be closed concurrently during split compaction. Note that closing of newly compacted block uses a lot of memory for writing index.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "compactor.max-closing-blocks-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "symbols_flushers_concurrency", + "required": false, + "desc": "Number of symbols flushers used when doing split compaction.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "compactor.symbols-flushers-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "enabled_tenants", + "required": false, + "desc": "Comma separated list of tenants that can be compacted. If specified, only these tenants will be compacted by compactor, otherwise all tenants can be compacted. Subject to sharding.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "compactor.enabled-tenants", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "disabled_tenants", + "required": false, + "desc": "Comma separated list of tenants that cannot be compacted by this compactor. If specified, and compactor would normally pick given tenant for compaction (via -compactor.enabled-tenants or sharding), it will be ignored instead.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "compactor.disabled-tenants", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "sharding_ring", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "kvstore", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "store", + "required": false, + "desc": "Backend storage to use for the ring. Supported values are: consul, etcd, inmemory, memberlist, multi.", + "fieldValue": null, + "fieldDefaultValue": "memberlist", + "fieldFlag": "compactor.ring.store", + "fieldType": "string" + }, + { + "kind": "field", + "name": "prefix", + "required": false, + "desc": "The prefix for the keys in the store. Should end with a /.", + "fieldValue": null, + "fieldDefaultValue": "collectors/", + "fieldFlag": "compactor.ring.prefix", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "consul", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "host", + "required": false, + "desc": "Hostname and port of Consul.", + "fieldValue": null, + "fieldDefaultValue": "localhost:8500", + "fieldFlag": "compactor.ring.consul.hostname", + "fieldType": "string" + }, + { + "kind": "field", + "name": "acl_token", + "required": false, + "desc": "ACL Token used to interact with Consul.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "compactor.ring.consul.acl-token", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "http_client_timeout", + "required": false, + "desc": "HTTP timeout when talking to Consul", + "fieldValue": null, + "fieldDefaultValue": 20000000000, + "fieldFlag": "compactor.ring.consul.client-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "consistent_reads", + "required": false, + "desc": "Enable consistent reads to Consul.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "compactor.ring.consul.consistent-reads", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "watch_rate_limit", + "required": false, + "desc": "Rate limit when watching key or prefix in Consul, in requests per second. 0 disables the rate limit.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "compactor.ring.consul.watch-rate-limit", + "fieldType": "float", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "watch_burst_size", + "required": false, + "desc": "Burst size used in rate limit. Values less than 1 are treated as 1.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "compactor.ring.consul.watch-burst-size", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "etcd", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoints", + "required": false, + "desc": "The etcd endpoints to connect to.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "compactor.ring.etcd.endpoints", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "dial_timeout", + "required": false, + "desc": "The dial timeout for the etcd connection.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "compactor.ring.etcd.dial-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "The maximum number of retries to do for failed ops.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "compactor.ring.etcd.max-retries", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "compactor.ring.etcd.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "compactor.ring.etcd.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "compactor.ring.etcd.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "compactor.ring.etcd.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "compactor.ring.etcd.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "compactor.ring.etcd.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "username", + "required": false, + "desc": "Etcd username.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "compactor.ring.etcd.username", + "fieldType": "string" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "Etcd password.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "compactor.ring.etcd.password", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "multi", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "primary", + "required": false, + "desc": "Primary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "compactor.ring.multi.primary", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "secondary", + "required": false, + "desc": "Secondary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "compactor.ring.multi.secondary", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "mirror_enabled", + "required": false, + "desc": "Mirror writes to secondary store.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "compactor.ring.multi.mirror-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "mirror_timeout", + "required": false, + "desc": "Timeout for storing value to secondary store.", + "fieldValue": null, + "fieldDefaultValue": 2000000000, + "fieldFlag": "compactor.ring.multi.mirror-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "heartbeat_period", + "required": false, + "desc": "Period at which to heartbeat to the ring. 0 = disabled.", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "compactor.ring.heartbeat-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "heartbeat_timeout", + "required": false, + "desc": "The heartbeat timeout after which compactors are considered unhealthy within the ring. 0 = never (timeout disabled).", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "compactor.ring.heartbeat-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "wait_stability_min_duration", + "required": false, + "desc": "Minimum time to wait for ring stability at startup. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "compactor.ring.wait-stability-min-duration", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "wait_stability_max_duration", + "required": false, + "desc": "Maximum time to wait for ring stability at startup. If the compactor ring keeps changing after this period of time, the compactor will start anyway.", + "fieldValue": null, + "fieldDefaultValue": 300000000000, + "fieldFlag": "compactor.ring.wait-stability-max-duration", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_id", + "required": false, + "desc": "Instance ID to register in the ring.", + "fieldValue": null, + "fieldDefaultValue": "\u003chostname\u003e", + "fieldFlag": "compactor.ring.instance-id", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_interface_names", + "required": false, + "desc": "List of network interface names to look up when finding the instance IP address.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "compactor.ring.instance-interface-names", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "instance_port", + "required": false, + "desc": "Port to advertise in the ring (defaults to -server.grpc-listen-port).", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "compactor.ring.instance-port", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_addr", + "required": false, + "desc": "IP address to advertise in the ring. Default is auto-detected.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "compactor.ring.instance-addr", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "wait_active_instance_timeout", + "required": false, + "desc": "Timeout for waiting on compactor to become ACTIVE in the ring.", + "fieldValue": null, + "fieldDefaultValue": 600000000000, + "fieldFlag": "compactor.ring.wait-active-instance-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "compaction_jobs_order", + "required": false, + "desc": "The sorting to use when deciding which compaction jobs should run first for a given tenant. Supported values are: smallest-range-oldest-blocks-first, newest-blocks-first.", + "fieldValue": null, + "fieldDefaultValue": "smallest-range-oldest-blocks-first", + "fieldFlag": "compactor.compaction-jobs-order", + "fieldType": "string", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "store_gateway", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "sharding_ring", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "kvstore", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "store", + "required": false, + "desc": "Backend storage to use for the ring. Supported values are: consul, etcd, inmemory, memberlist, multi.", + "fieldValue": null, + "fieldDefaultValue": "memberlist", + "fieldFlag": "store-gateway.sharding-ring.store", + "fieldType": "string" + }, + { + "kind": "field", + "name": "prefix", + "required": false, + "desc": "The prefix for the keys in the store. Should end with a /.", + "fieldValue": null, + "fieldDefaultValue": "collectors/", + "fieldFlag": "store-gateway.sharding-ring.prefix", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "consul", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "host", + "required": false, + "desc": "Hostname and port of Consul.", + "fieldValue": null, + "fieldDefaultValue": "localhost:8500", + "fieldFlag": "store-gateway.sharding-ring.consul.hostname", + "fieldType": "string" + }, + { + "kind": "field", + "name": "acl_token", + "required": false, + "desc": "ACL Token used to interact with Consul.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store-gateway.sharding-ring.consul.acl-token", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "http_client_timeout", + "required": false, + "desc": "HTTP timeout when talking to Consul", + "fieldValue": null, + "fieldDefaultValue": 20000000000, + "fieldFlag": "store-gateway.sharding-ring.consul.client-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "consistent_reads", + "required": false, + "desc": "Enable consistent reads to Consul.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "store-gateway.sharding-ring.consul.consistent-reads", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "watch_rate_limit", + "required": false, + "desc": "Rate limit when watching key or prefix in Consul, in requests per second. 0 disables the rate limit.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "store-gateway.sharding-ring.consul.watch-rate-limit", + "fieldType": "float", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "watch_burst_size", + "required": false, + "desc": "Burst size used in rate limit. Values less than 1 are treated as 1.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "store-gateway.sharding-ring.consul.watch-burst-size", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "etcd", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoints", + "required": false, + "desc": "The etcd endpoints to connect to.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "store-gateway.sharding-ring.etcd.endpoints", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "dial_timeout", + "required": false, + "desc": "The dial timeout for the etcd connection.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "store-gateway.sharding-ring.etcd.dial-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "The maximum number of retries to do for failed ops.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "store-gateway.sharding-ring.etcd.max-retries", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "store-gateway.sharding-ring.etcd.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store-gateway.sharding-ring.etcd.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store-gateway.sharding-ring.etcd.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store-gateway.sharding-ring.etcd.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store-gateway.sharding-ring.etcd.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "store-gateway.sharding-ring.etcd.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "username", + "required": false, + "desc": "Etcd username.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store-gateway.sharding-ring.etcd.username", + "fieldType": "string" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "Etcd password.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store-gateway.sharding-ring.etcd.password", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "multi", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "primary", + "required": false, + "desc": "Primary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store-gateway.sharding-ring.multi.primary", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "secondary", + "required": false, + "desc": "Secondary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store-gateway.sharding-ring.multi.secondary", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "mirror_enabled", + "required": false, + "desc": "Mirror writes to secondary store.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "store-gateway.sharding-ring.multi.mirror-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "mirror_timeout", + "required": false, + "desc": "Timeout for storing value to secondary store.", + "fieldValue": null, + "fieldDefaultValue": 2000000000, + "fieldFlag": "store-gateway.sharding-ring.multi.mirror-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "heartbeat_period", + "required": false, + "desc": "Period at which to heartbeat to the ring. 0 = disabled.", + "fieldValue": null, + "fieldDefaultValue": 15000000000, + "fieldFlag": "store-gateway.sharding-ring.heartbeat-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "heartbeat_timeout", + "required": false, + "desc": "The heartbeat timeout after which store gateways are considered unhealthy within the ring. 0 = never (timeout disabled). This option needs be set both on the store-gateway, querier and ruler when running in microservices mode.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "store-gateway.sharding-ring.heartbeat-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "replication_factor", + "required": false, + "desc": "The replication factor to use when sharding blocks. This option needs be set both on the store-gateway, querier and ruler when running in microservices mode.", + "fieldValue": null, + "fieldDefaultValue": 3, + "fieldFlag": "store-gateway.sharding-ring.replication-factor", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tokens_file_path", + "required": false, + "desc": "File path where tokens are stored. If empty, tokens are not stored at shutdown and restored at startup.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store-gateway.sharding-ring.tokens-file-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "zone_awareness_enabled", + "required": false, + "desc": "True to enable zone-awareness and replicate blocks across different availability zones. This option needs be set both on the store-gateway, querier and ruler when running in microservices mode.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "store-gateway.sharding-ring.zone-awareness-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "wait_stability_min_duration", + "required": false, + "desc": "Minimum time to wait for ring stability at startup, if set to positive value.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store-gateway.sharding-ring.wait-stability-min-duration", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "wait_stability_max_duration", + "required": false, + "desc": "Maximum time to wait for ring stability at startup. If the store-gateway ring keeps changing after this period of time, the store-gateway will start anyway.", + "fieldValue": null, + "fieldDefaultValue": 300000000000, + "fieldFlag": "store-gateway.sharding-ring.wait-stability-max-duration", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_id", + "required": false, + "desc": "Instance ID to register in the ring.", + "fieldValue": null, + "fieldDefaultValue": "\u003chostname\u003e", + "fieldFlag": "store-gateway.sharding-ring.instance-id", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_interface_names", + "required": false, + "desc": "List of network interface names to look up when finding the instance IP address.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "store-gateway.sharding-ring.instance-interface-names", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "instance_port", + "required": false, + "desc": "Port to advertise in the ring (defaults to -server.grpc-listen-port).", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store-gateway.sharding-ring.instance-port", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_addr", + "required": false, + "desc": "IP address to advertise in the ring. Default is auto-detected.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store-gateway.sharding-ring.instance-addr", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_availability_zone", + "required": false, + "desc": "The availability zone where this instance is running. Required if zone-awareness is enabled.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store-gateway.sharding-ring.instance-availability-zone", + "fieldType": "string" + }, + { + "kind": "field", + "name": "unregister_on_shutdown", + "required": false, + "desc": "Unregister from the ring upon clean shutdown.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "store-gateway.sharding-ring.unregister-on-shutdown", + "fieldType": "boolean" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "tenant_federation", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "enabled", + "required": false, + "desc": "If enabled on all services, queries can be federated across multiple tenants. The tenant IDs involved need to be specified separated by a '|' character in the 'X-Scope-OrgID' header.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "tenant-federation.enabled", + "fieldType": "boolean" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "activity_tracker", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "filepath", + "required": false, + "desc": "File where ongoing activities are stored. If empty, activity tracking is disabled.", + "fieldValue": null, + "fieldDefaultValue": "./metrics-activity.log", + "fieldFlag": "activity-tracker.filepath", + "fieldType": "string" + }, + { + "kind": "field", + "name": "max_entries", + "required": false, + "desc": "Max number of concurrent activities that can be tracked. Used to size the file in advance. Additional activities are ignored.", + "fieldValue": null, + "fieldDefaultValue": 1024, + "fieldFlag": "activity-tracker.max-entries", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "ruler", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "external_url", + "required": false, + "desc": "URL of alerts return path.", + "fieldValue": null, + "fieldDefaultValue": {}, + "fieldFlag": "ruler.external.url", + "fieldType": "url" + }, + { + "kind": "block", + "name": "ruler_client", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "max_recv_msg_size", + "required": false, + "desc": "gRPC client max receive message size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 104857600, + "fieldFlag": "ruler.client.grpc-max-recv-msg-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_send_msg_size", + "required": false, + "desc": "gRPC client max send message size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 104857600, + "fieldFlag": "ruler.client.grpc-max-send-msg-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "grpc_compression", + "required": false, + "desc": "Use compression when sending messages. Supported values are: 'gzip', 'snappy' and '' (disable compression)", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.client.grpc-compression", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "rate_limit", + "required": false, + "desc": "Rate limit for gRPC client; 0 means disabled.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ruler.client.grpc-client-rate-limit", + "fieldType": "float", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "rate_limit_burst", + "required": false, + "desc": "Rate limit burst for gRPC client.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ruler.client.grpc-client-rate-limit-burst", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "backoff_on_ratelimits", + "required": false, + "desc": "Enable backoff and retry when we hit ratelimits.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler.client.backoff-on-ratelimits", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "backoff_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "min_period", + "required": false, + "desc": "Minimum delay when backing off.", + "fieldValue": null, + "fieldDefaultValue": 100000000, + "fieldFlag": "ruler.client.backoff-min-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_period", + "required": false, + "desc": "Maximum delay when backing off.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "ruler.client.backoff-max-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Number of times to backoff and retry before failing.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "ruler.client.backoff-retries", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler.client.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.client.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.client.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.client.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.client.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler.client.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "evaluation_interval", + "required": false, + "desc": "How frequently to evaluate rules", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "ruler.evaluation-interval", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "poll_interval", + "required": false, + "desc": "How frequently to poll for rule changes", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "ruler.poll-interval", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "rule_path", + "required": false, + "desc": "Directory to store temporary rule files loaded by the Prometheus rule managers. This directory is not required to be persisted between restarts.", + "fieldValue": null, + "fieldDefaultValue": "./data-ruler/", + "fieldFlag": "ruler.rule-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "alertmanager_url", + "required": false, + "desc": "Comma-separated list of URL(s) of the Alertmanager(s) to send notifications to. Each URL is treated as a separate group. Multiple Alertmanagers in HA per group can be supported by using DNS service discovery format. Basic auth is supported as part of the URL.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.alertmanager-url", + "fieldType": "string" + }, + { + "kind": "field", + "name": "alertmanager_refresh_interval", + "required": false, + "desc": "How long to wait between refreshing DNS resolutions of Alertmanager hosts.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "ruler.alertmanager-refresh-interval", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "notification_queue_capacity", + "required": false, + "desc": "Capacity of the queue for notifications to be sent to the Alertmanager.", + "fieldValue": null, + "fieldDefaultValue": 10000, + "fieldFlag": "ruler.notification-queue-capacity", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "notification_timeout", + "required": false, + "desc": "HTTP timeout duration when sending notifications to the Alertmanager.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "ruler.notification-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "alertmanager_client", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.alertmanager-client.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.alertmanager-client.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.alertmanager-client.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.alertmanager-client.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler.alertmanager-client.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "basic_auth_username", + "required": false, + "desc": "HTTP Basic authentication username. It overrides the username set in the URL (if any).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.alertmanager-client.basic-auth-username", + "fieldType": "string" + }, + { + "kind": "field", + "name": "basic_auth_password", + "required": false, + "desc": "HTTP Basic authentication password. It overrides the password set in the URL (if any).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.alertmanager-client.basic-auth-password", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "for_outage_tolerance", + "required": false, + "desc": "Max time to tolerate outage for restoring \"for\" state of alert.", + "fieldValue": null, + "fieldDefaultValue": 3600000000000, + "fieldFlag": "ruler.for-outage-tolerance", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "for_grace_period", + "required": false, + "desc": "Minimum duration between alert and restored \"for\" state. This is maintained only for alerts with configured \"for\" time greater than grace period.", + "fieldValue": null, + "fieldDefaultValue": 600000000000, + "fieldFlag": "ruler.for-grace-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "resend_delay", + "required": false, + "desc": "Minimum amount of time to wait before resending an alert to Alertmanager.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "ruler.resend-delay", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "search_pending_for", + "required": false, + "desc": "Time to spend searching for a pending ruler when shutting down.", + "fieldValue": null, + "fieldDefaultValue": 300000000000, + "fieldFlag": "ruler.search-pending-for", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "ring", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "kvstore", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "store", + "required": false, + "desc": "Backend storage to use for the ring. Supported values are: consul, etcd, inmemory, memberlist, multi.", + "fieldValue": null, + "fieldDefaultValue": "memberlist", + "fieldFlag": "ruler.ring.store", + "fieldType": "string" + }, + { + "kind": "field", + "name": "prefix", + "required": false, + "desc": "The prefix for the keys in the store. Should end with a /.", + "fieldValue": null, + "fieldDefaultValue": "rulers/", + "fieldFlag": "ruler.ring.prefix", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "consul", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "host", + "required": false, + "desc": "Hostname and port of Consul.", + "fieldValue": null, + "fieldDefaultValue": "localhost:8500", + "fieldFlag": "ruler.ring.consul.hostname", + "fieldType": "string" + }, + { + "kind": "field", + "name": "acl_token", + "required": false, + "desc": "ACL Token used to interact with Consul.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.ring.consul.acl-token", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "http_client_timeout", + "required": false, + "desc": "HTTP timeout when talking to Consul", + "fieldValue": null, + "fieldDefaultValue": 20000000000, + "fieldFlag": "ruler.ring.consul.client-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "consistent_reads", + "required": false, + "desc": "Enable consistent reads to Consul.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler.ring.consul.consistent-reads", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "watch_rate_limit", + "required": false, + "desc": "Rate limit when watching key or prefix in Consul, in requests per second. 0 disables the rate limit.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "ruler.ring.consul.watch-rate-limit", + "fieldType": "float", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "watch_burst_size", + "required": false, + "desc": "Burst size used in rate limit. Values less than 1 are treated as 1.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "ruler.ring.consul.watch-burst-size", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "etcd", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoints", + "required": false, + "desc": "The etcd endpoints to connect to.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "ruler.ring.etcd.endpoints", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "dial_timeout", + "required": false, + "desc": "The dial timeout for the etcd connection.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "ruler.ring.etcd.dial-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "The maximum number of retries to do for failed ops.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "ruler.ring.etcd.max-retries", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler.ring.etcd.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.ring.etcd.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.ring.etcd.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.ring.etcd.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.ring.etcd.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler.ring.etcd.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "username", + "required": false, + "desc": "Etcd username.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.ring.etcd.username", + "fieldType": "string" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "Etcd password.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.ring.etcd.password", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "multi", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "primary", + "required": false, + "desc": "Primary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.ring.multi.primary", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "secondary", + "required": false, + "desc": "Secondary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.ring.multi.secondary", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "mirror_enabled", + "required": false, + "desc": "Mirror writes to secondary store.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler.ring.multi.mirror-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "mirror_timeout", + "required": false, + "desc": "Timeout for storing value to secondary store.", + "fieldValue": null, + "fieldDefaultValue": 2000000000, + "fieldFlag": "ruler.ring.multi.mirror-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "heartbeat_period", + "required": false, + "desc": "Period at which to heartbeat to the ring. 0 = disabled.", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "ruler.ring.heartbeat-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "heartbeat_timeout", + "required": false, + "desc": "The heartbeat timeout after which rulers are considered unhealthy within the ring. 0 = never (timeout disabled).", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "ruler.ring.heartbeat-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_id", + "required": false, + "desc": "Instance ID to register in the ring.", + "fieldValue": null, + "fieldDefaultValue": "\u003chostname\u003e", + "fieldFlag": "ruler.ring.instance-id", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_interface_names", + "required": false, + "desc": "List of network interface names to look up when finding the instance IP address.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "ruler.ring.instance-interface-names", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "instance_port", + "required": false, + "desc": "Port to advertise in the ring (defaults to -server.grpc-listen-port).", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ruler.ring.instance-port", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_addr", + "required": false, + "desc": "IP address to advertise in the ring. Default is auto-detected.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.ring.instance-addr", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "num_tokens", + "required": false, + "desc": "Number of tokens for each ruler.", + "fieldValue": null, + "fieldDefaultValue": 128, + "fieldFlag": "ruler.ring.num-tokens", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "flush_period", + "required": false, + "desc": "Period with which to attempt to flush rule groups.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "ruler.flush-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "enable_api", + "required": false, + "desc": "Enable the ruler config API.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "ruler.enable-api", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "enabled_tenants", + "required": false, + "desc": "Comma separated list of tenants whose rules this ruler can evaluate. If specified, only these tenants will be handled by ruler, otherwise this ruler can process rules from all tenants. Subject to sharding.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.enabled-tenants", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "disabled_tenants", + "required": false, + "desc": "Comma separated list of tenants whose rules this ruler cannot evaluate. If specified, a ruler that would normally pick the specified tenant(s) for processing will ignore them instead. Subject to sharding.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.disabled-tenants", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "query_stats_enabled", + "required": false, + "desc": "Report the wall time for ruler queries to complete as a per-tenant metric and as an info level log message.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler.query-stats-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "tenant_federation", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "enabled", + "required": false, + "desc": "Enable running rule groups against multiple tenants. The tenant IDs involved need to be in the rule group's 'source_tenants' field. If this flag is set to 'false' when there are already created federated rule groups, then these rules groups will be skipped during evaluations.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler.tenant-federation.enabled", + "fieldType": "boolean" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "ruler_storage", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "backend", + "required": false, + "desc": "Backend storage to use. Supported backends are: s3, gcs, azure, swift, filesystem, local.", + "fieldValue": null, + "fieldDefaultValue": "filesystem", + "fieldFlag": "ruler-storage.backend", + "fieldType": "string" + }, + { + "kind": "block", + "name": "s3", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoint", + "required": false, + "desc": "The S3 bucket endpoint. It could be an AWS S3 endpoint listed at https://docs.aws.amazon.com/general/latest/gr/s3.html or the address of an S3-compatible service in hostname:port format.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.s3.endpoint", + "fieldType": "string" + }, + { + "kind": "field", + "name": "region", + "required": false, + "desc": "S3 region. If unset, the client will issue a S3 GetBucketLocation API call to autodetect it.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.s3.region", + "fieldType": "string" + }, + { + "kind": "field", + "name": "bucket_name", + "required": false, + "desc": "S3 bucket name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.s3.bucket-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "secret_access_key", + "required": false, + "desc": "S3 secret access key", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.s3.secret-access-key", + "fieldType": "string" + }, + { + "kind": "field", + "name": "access_key_id", + "required": false, + "desc": "S3 access key ID", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.s3.access-key-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "insecure", + "required": false, + "desc": "If enabled, use http:// for the S3 endpoint instead of https://. This could be useful in local dev/test environments while using an S3-compatible backend storage, like Minio.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler-storage.s3.insecure", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "signature_version", + "required": false, + "desc": "The signature version to use for authenticating against S3. Supported values are: v4, v2.", + "fieldValue": null, + "fieldDefaultValue": "v4", + "fieldFlag": "ruler-storage.s3.signature-version", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "sse", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "type", + "required": false, + "desc": "Enable AWS Server Side Encryption. Supported values: SSE-KMS, SSE-S3.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.s3.sse.type", + "fieldType": "string" + }, + { + "kind": "field", + "name": "kms_key_id", + "required": false, + "desc": "KMS Key ID used to encrypt objects in S3", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.s3.sse.kms-key-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "kms_encryption_context", + "required": false, + "desc": "KMS Encryption Context used for object encryption. It expects JSON formatted string.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.s3.sse.kms-encryption-context", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "http", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "idle_conn_timeout", + "required": false, + "desc": "The time an idle connection will remain idle before closing.", + "fieldValue": null, + "fieldDefaultValue": 90000000000, + "fieldFlag": "ruler-storage.s3.http.idle-conn-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "response_header_timeout", + "required": false, + "desc": "The amount of time the client will wait for a servers response headers.", + "fieldValue": null, + "fieldDefaultValue": 120000000000, + "fieldFlag": "ruler-storage.s3.http.response-header-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "insecure_skip_verify", + "required": false, + "desc": "If the client connects to S3 via HTTPS and this option is enabled, the client will accept any certificate and hostname.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler-storage.s3.http.insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_handshake_timeout", + "required": false, + "desc": "Maximum time to wait for a TLS handshake. 0 means no limit.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "ruler-storage.s3.tls-handshake-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "expect_continue_timeout", + "required": false, + "desc": "The time to wait for a server's first response headers after fully writing the request headers if the request has an Expect header. 0 to send the request body immediately.", + "fieldValue": null, + "fieldDefaultValue": 1000000000, + "fieldFlag": "ruler-storage.s3.expect-continue-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_idle_connections", + "required": false, + "desc": "Maximum number of idle (keep-alive) connections across all hosts. 0 means no limit.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "ruler-storage.s3.max-idle-connections", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_idle_connections_per_host", + "required": false, + "desc": "Maximum number of idle (keep-alive) connections to keep per-host. If 0, a built-in default value is used.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "ruler-storage.s3.max-idle-connections-per-host", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_connections_per_host", + "required": false, + "desc": "Maximum number of connections per host. 0 means no limit.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ruler-storage.s3.max-connections-per-host", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "gcs", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "bucket_name", + "required": false, + "desc": "GCS bucket name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.gcs.bucket-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "service_account", + "required": false, + "desc": "JSON representing either a Google Developers Console client_credentials.json file or a Google Developers service account key file. If empty, fallback to Google default logic.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.gcs.service-account", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "azure", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "account_name", + "required": false, + "desc": "Azure storage account name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.azure.account-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "account_key", + "required": false, + "desc": "Azure storage account key", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.azure.account-key", + "fieldType": "string" + }, + { + "kind": "field", + "name": "container_name", + "required": false, + "desc": "Azure storage container name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.azure.container-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "endpoint_suffix", + "required": false, + "desc": "Azure storage endpoint suffix without schema. The account name will be prefixed to this value to create the FQDN. If set to empty string, default endpoint suffix is used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.azure.endpoint-suffix", + "fieldType": "string" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Number of retries for recoverable errors", + "fieldValue": null, + "fieldDefaultValue": 20, + "fieldFlag": "ruler-storage.azure.max-retries", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "msi_resource", + "required": false, + "desc": "If set, this URL is used instead of https://\u003cstorage-account-name\u003e.\u003cendpoint-suffix\u003e for obtaining ServicePrincipalToken from MSI.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.azure.msi-resource", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "user_assigned_id", + "required": false, + "desc": "User assigned identity. If empty, then System assigned identity is used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.azure.user-assigned-id", + "fieldType": "string", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "swift", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "auth_version", + "required": false, + "desc": "OpenStack Swift authentication API version. 0 to autodetect.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ruler-storage.swift.auth-version", + "fieldType": "int" + }, + { + "kind": "field", + "name": "auth_url", + "required": false, + "desc": "OpenStack Swift authentication URL", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.auth-url", + "fieldType": "string" + }, + { + "kind": "field", + "name": "username", + "required": false, + "desc": "OpenStack Swift username.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.username", + "fieldType": "string" + }, + { + "kind": "field", + "name": "user_domain_name", + "required": false, + "desc": "OpenStack Swift user's domain name.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.user-domain-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "user_domain_id", + "required": false, + "desc": "OpenStack Swift user's domain ID.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.user-domain-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "user_id", + "required": false, + "desc": "OpenStack Swift user ID.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.user-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "OpenStack Swift API key.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.password", + "fieldType": "string" + }, + { + "kind": "field", + "name": "domain_id", + "required": false, + "desc": "OpenStack Swift user's domain ID.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.domain-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "domain_name", + "required": false, + "desc": "OpenStack Swift user's domain name.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.domain-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_id", + "required": false, + "desc": "OpenStack Swift project ID (v2,v3 auth only).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.project-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_name", + "required": false, + "desc": "OpenStack Swift project name (v2,v3 auth only).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.project-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_domain_id", + "required": false, + "desc": "ID of the OpenStack Swift project's domain (v3 auth only), only needed if it differs the from user domain.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.project-domain-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_domain_name", + "required": false, + "desc": "Name of the OpenStack Swift project's domain (v3 auth only), only needed if it differs from the user domain.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.project-domain-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "region_name", + "required": false, + "desc": "OpenStack Swift Region to use (v2,v3 auth only).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.region-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "container_name", + "required": false, + "desc": "Name of the OpenStack Swift container to put chunks in.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.container-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Max retries on requests error.", + "fieldValue": null, + "fieldDefaultValue": 3, + "fieldFlag": "ruler-storage.swift.max-retries", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "connect_timeout", + "required": false, + "desc": "Time after which a connection attempt is aborted.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "ruler-storage.swift.connect-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "request_timeout", + "required": false, + "desc": "Time after which an idle request is aborted. The timeout watchdog is reset each time some data is received, so the timeout triggers after X time no data is received on a request.", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "ruler-storage.swift.request-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "filesystem", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "dir", + "required": false, + "desc": "Local filesystem storage directory.", + "fieldValue": null, + "fieldDefaultValue": "ruler", + "fieldFlag": "ruler-storage.filesystem.dir", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "local", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "directory", + "required": false, + "desc": "Directory to scan for rules", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.local.directory", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "alertmanager", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "data_dir", + "required": false, + "desc": "Directory to store Alertmanager state and temporarily configuration files. The content of this directory is not required to be persisted between restarts unless Alertmanager replication has been disabled.", + "fieldValue": null, + "fieldDefaultValue": "./data-alertmanager/", + "fieldFlag": "alertmanager.storage.path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "retention", + "required": false, + "desc": "How long to keep data for.", + "fieldValue": null, + "fieldDefaultValue": 432000000000000, + "fieldFlag": "alertmanager.storage.retention", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "external_url", + "required": false, + "desc": "The URL under which Alertmanager is externally reachable (eg. could be different than -http.alertmanager-http-prefix in case Alertmanager is served via a reverse proxy). This setting is used both to configure the internal requests router and to generate links in alert templates. If the external URL has a path portion, it will be used to prefix all HTTP endpoints served by Alertmanager, both the UI and API.", + "fieldValue": null, + "fieldDefaultValue": { + "Scheme": "http", + "Opaque": "", + "User": null, + "Host": "localhost:8080", + "Path": "/alertmanager", + "RawPath": "", + "ForceQuery": false, + "RawQuery": "", + "Fragment": "", + "RawFragment": "" + }, + "fieldFlag": "alertmanager.web.external-url", + "fieldType": "url" + }, + { + "kind": "field", + "name": "poll_interval", + "required": false, + "desc": "How frequently to poll Alertmanager configs.", + "fieldValue": null, + "fieldDefaultValue": 15000000000, + "fieldFlag": "alertmanager.configs.poll-interval", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_recv_msg_size", + "required": false, + "desc": "Maximum size (bytes) of an accepted HTTP request body.", + "fieldValue": null, + "fieldDefaultValue": 16777216, + "fieldFlag": "alertmanager.max-recv-msg-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "sharding_ring", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "kvstore", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "store", + "required": false, + "desc": "Backend storage to use for the ring. Supported values are: consul, etcd, inmemory, memberlist, multi.", + "fieldValue": null, + "fieldDefaultValue": "memberlist", + "fieldFlag": "alertmanager.sharding-ring.store", + "fieldType": "string" + }, + { + "kind": "field", + "name": "prefix", + "required": false, + "desc": "The prefix for the keys in the store. Should end with a /.", + "fieldValue": null, + "fieldDefaultValue": "alertmanagers/", + "fieldFlag": "alertmanager.sharding-ring.prefix", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "consul", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "host", + "required": false, + "desc": "Hostname and port of Consul.", + "fieldValue": null, + "fieldDefaultValue": "localhost:8500", + "fieldFlag": "alertmanager.sharding-ring.consul.hostname", + "fieldType": "string" + }, + { + "kind": "field", + "name": "acl_token", + "required": false, + "desc": "ACL Token used to interact with Consul.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.sharding-ring.consul.acl-token", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "http_client_timeout", + "required": false, + "desc": "HTTP timeout when talking to Consul", + "fieldValue": null, + "fieldDefaultValue": 20000000000, + "fieldFlag": "alertmanager.sharding-ring.consul.client-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "consistent_reads", + "required": false, + "desc": "Enable consistent reads to Consul.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "alertmanager.sharding-ring.consul.consistent-reads", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "watch_rate_limit", + "required": false, + "desc": "Rate limit when watching key or prefix in Consul, in requests per second. 0 disables the rate limit.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "alertmanager.sharding-ring.consul.watch-rate-limit", + "fieldType": "float", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "watch_burst_size", + "required": false, + "desc": "Burst size used in rate limit. Values less than 1 are treated as 1.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "alertmanager.sharding-ring.consul.watch-burst-size", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "etcd", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoints", + "required": false, + "desc": "The etcd endpoints to connect to.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "alertmanager.sharding-ring.etcd.endpoints", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "dial_timeout", + "required": false, + "desc": "The dial timeout for the etcd connection.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "alertmanager.sharding-ring.etcd.dial-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "The maximum number of retries to do for failed ops.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "alertmanager.sharding-ring.etcd.max-retries", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "alertmanager.sharding-ring.etcd.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.sharding-ring.etcd.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.sharding-ring.etcd.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.sharding-ring.etcd.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.sharding-ring.etcd.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "alertmanager.sharding-ring.etcd.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "username", + "required": false, + "desc": "Etcd username.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.sharding-ring.etcd.username", + "fieldType": "string" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "Etcd password.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.sharding-ring.etcd.password", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "multi", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "primary", + "required": false, + "desc": "Primary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.sharding-ring.multi.primary", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "secondary", + "required": false, + "desc": "Secondary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.sharding-ring.multi.secondary", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "mirror_enabled", + "required": false, + "desc": "Mirror writes to secondary store.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "alertmanager.sharding-ring.multi.mirror-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "mirror_timeout", + "required": false, + "desc": "Timeout for storing value to secondary store.", + "fieldValue": null, + "fieldDefaultValue": 2000000000, + "fieldFlag": "alertmanager.sharding-ring.multi.mirror-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "heartbeat_period", + "required": false, + "desc": "Period at which to heartbeat to the ring. 0 = disabled.", + "fieldValue": null, + "fieldDefaultValue": 15000000000, + "fieldFlag": "alertmanager.sharding-ring.heartbeat-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "heartbeat_timeout", + "required": false, + "desc": "The heartbeat timeout after which alertmanagers are considered unhealthy within the ring. 0 = never (timeout disabled).", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "alertmanager.sharding-ring.heartbeat-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "replication_factor", + "required": false, + "desc": "The replication factor to use when sharding the alertmanager.", + "fieldValue": null, + "fieldDefaultValue": 3, + "fieldFlag": "alertmanager.sharding-ring.replication-factor", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "zone_awareness_enabled", + "required": false, + "desc": "True to enable zone-awareness and replicate alerts across different availability zones.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "alertmanager.sharding-ring.zone-awareness-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_id", + "required": false, + "desc": "Instance ID to register in the ring.", + "fieldValue": null, + "fieldDefaultValue": "\u003chostname\u003e", + "fieldFlag": "alertmanager.sharding-ring.instance-id", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_interface_names", + "required": false, + "desc": "List of network interface names to look up when finding the instance IP address.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "alertmanager.sharding-ring.instance-interface-names", + "fieldType": "list of string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_port", + "required": false, + "desc": "Port to advertise in the ring (defaults to -server.grpc-listen-port).", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "alertmanager.sharding-ring.instance-port", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_addr", + "required": false, + "desc": "IP address to advertise in the ring. Default is auto-detected.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.sharding-ring.instance-addr", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_availability_zone", + "required": false, + "desc": "The availability zone where this instance is running. Required if zone-awareness is enabled.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.sharding-ring.instance-availability-zone", + "fieldType": "string", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "fallback_config_file", + "required": false, + "desc": "Filename of fallback config to use if none specified for instance.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.configs.fallback", + "fieldType": "string" + }, + { + "kind": "field", + "name": "peer_timeout", + "required": false, + "desc": "Time to wait between peers to send notifications.", + "fieldValue": null, + "fieldDefaultValue": 15000000000, + "fieldFlag": "alertmanager.peer-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "enable_api", + "required": false, + "desc": "Enable the alertmanager config API.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "alertmanager.enable-api", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "alertmanager_client", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "remote_timeout", + "required": false, + "desc": "Timeout for downstream alertmanagers.", + "fieldValue": null, + "fieldDefaultValue": 2000000000, + "fieldFlag": "alertmanager.alertmanager-client.remote-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "alertmanager.alertmanager-client.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.alertmanager-client.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.alertmanager-client.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.alertmanager-client.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.alertmanager-client.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "alertmanager.alertmanager-client.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "persist_interval", + "required": false, + "desc": "The interval between persisting the current alertmanager state (notification log and silences) to object storage. This is only used when sharding is enabled. This state is read when all replicas for a shard can not be contacted. In this scenario, having persisted the state more frequently will result in potentially fewer lost silences, and fewer duplicate notifications.", + "fieldValue": null, + "fieldDefaultValue": 900000000000, + "fieldFlag": "alertmanager.persist-interval", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "alertmanager_storage", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "backend", + "required": false, + "desc": "Backend storage to use. Supported backends are: s3, gcs, azure, swift, filesystem, local.", + "fieldValue": null, + "fieldDefaultValue": "filesystem", + "fieldFlag": "alertmanager-storage.backend", + "fieldType": "string" + }, + { + "kind": "block", + "name": "s3", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoint", + "required": false, + "desc": "The S3 bucket endpoint. It could be an AWS S3 endpoint listed at https://docs.aws.amazon.com/general/latest/gr/s3.html or the address of an S3-compatible service in hostname:port format.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.s3.endpoint", + "fieldType": "string" + }, + { + "kind": "field", + "name": "region", + "required": false, + "desc": "S3 region. If unset, the client will issue a S3 GetBucketLocation API call to autodetect it.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.s3.region", + "fieldType": "string" + }, + { + "kind": "field", + "name": "bucket_name", + "required": false, + "desc": "S3 bucket name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.s3.bucket-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "secret_access_key", + "required": false, + "desc": "S3 secret access key", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.s3.secret-access-key", + "fieldType": "string" + }, + { + "kind": "field", + "name": "access_key_id", + "required": false, + "desc": "S3 access key ID", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.s3.access-key-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "insecure", + "required": false, + "desc": "If enabled, use http:// for the S3 endpoint instead of https://. This could be useful in local dev/test environments while using an S3-compatible backend storage, like Minio.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "alertmanager-storage.s3.insecure", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "signature_version", + "required": false, + "desc": "The signature version to use for authenticating against S3. Supported values are: v4, v2.", + "fieldValue": null, + "fieldDefaultValue": "v4", + "fieldFlag": "alertmanager-storage.s3.signature-version", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "sse", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "type", + "required": false, + "desc": "Enable AWS Server Side Encryption. Supported values: SSE-KMS, SSE-S3.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.s3.sse.type", + "fieldType": "string" + }, + { + "kind": "field", + "name": "kms_key_id", + "required": false, + "desc": "KMS Key ID used to encrypt objects in S3", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.s3.sse.kms-key-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "kms_encryption_context", + "required": false, + "desc": "KMS Encryption Context used for object encryption. It expects JSON formatted string.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.s3.sse.kms-encryption-context", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "http", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "idle_conn_timeout", + "required": false, + "desc": "The time an idle connection will remain idle before closing.", + "fieldValue": null, + "fieldDefaultValue": 90000000000, + "fieldFlag": "alertmanager-storage.s3.http.idle-conn-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "response_header_timeout", + "required": false, + "desc": "The amount of time the client will wait for a servers response headers.", + "fieldValue": null, + "fieldDefaultValue": 120000000000, + "fieldFlag": "alertmanager-storage.s3.http.response-header-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "insecure_skip_verify", + "required": false, + "desc": "If the client connects to S3 via HTTPS and this option is enabled, the client will accept any certificate and hostname.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "alertmanager-storage.s3.http.insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_handshake_timeout", + "required": false, + "desc": "Maximum time to wait for a TLS handshake. 0 means no limit.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "alertmanager-storage.s3.tls-handshake-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "expect_continue_timeout", + "required": false, + "desc": "The time to wait for a server's first response headers after fully writing the request headers if the request has an Expect header. 0 to send the request body immediately.", + "fieldValue": null, + "fieldDefaultValue": 1000000000, + "fieldFlag": "alertmanager-storage.s3.expect-continue-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_idle_connections", + "required": false, + "desc": "Maximum number of idle (keep-alive) connections across all hosts. 0 means no limit.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "alertmanager-storage.s3.max-idle-connections", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_idle_connections_per_host", + "required": false, + "desc": "Maximum number of idle (keep-alive) connections to keep per-host. If 0, a built-in default value is used.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "alertmanager-storage.s3.max-idle-connections-per-host", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_connections_per_host", + "required": false, + "desc": "Maximum number of connections per host. 0 means no limit.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "alertmanager-storage.s3.max-connections-per-host", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "gcs", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "bucket_name", + "required": false, + "desc": "GCS bucket name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.gcs.bucket-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "service_account", + "required": false, + "desc": "JSON representing either a Google Developers Console client_credentials.json file or a Google Developers service account key file. If empty, fallback to Google default logic.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.gcs.service-account", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "azure", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "account_name", + "required": false, + "desc": "Azure storage account name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.azure.account-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "account_key", + "required": false, + "desc": "Azure storage account key", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.azure.account-key", + "fieldType": "string" + }, + { + "kind": "field", + "name": "container_name", + "required": false, + "desc": "Azure storage container name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.azure.container-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "endpoint_suffix", + "required": false, + "desc": "Azure storage endpoint suffix without schema. The account name will be prefixed to this value to create the FQDN. If set to empty string, default endpoint suffix is used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.azure.endpoint-suffix", + "fieldType": "string" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Number of retries for recoverable errors", + "fieldValue": null, + "fieldDefaultValue": 20, + "fieldFlag": "alertmanager-storage.azure.max-retries", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "msi_resource", + "required": false, + "desc": "If set, this URL is used instead of https://\u003cstorage-account-name\u003e.\u003cendpoint-suffix\u003e for obtaining ServicePrincipalToken from MSI.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.azure.msi-resource", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "user_assigned_id", + "required": false, + "desc": "User assigned identity. If empty, then System assigned identity is used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.azure.user-assigned-id", + "fieldType": "string", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "swift", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "auth_version", + "required": false, + "desc": "OpenStack Swift authentication API version. 0 to autodetect.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "alertmanager-storage.swift.auth-version", + "fieldType": "int" + }, + { + "kind": "field", + "name": "auth_url", + "required": false, + "desc": "OpenStack Swift authentication URL", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.auth-url", + "fieldType": "string" + }, + { + "kind": "field", + "name": "username", + "required": false, + "desc": "OpenStack Swift username.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.username", + "fieldType": "string" + }, + { + "kind": "field", + "name": "user_domain_name", + "required": false, + "desc": "OpenStack Swift user's domain name.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.user-domain-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "user_domain_id", + "required": false, + "desc": "OpenStack Swift user's domain ID.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.user-domain-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "user_id", + "required": false, + "desc": "OpenStack Swift user ID.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.user-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "OpenStack Swift API key.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.password", + "fieldType": "string" + }, + { + "kind": "field", + "name": "domain_id", + "required": false, + "desc": "OpenStack Swift user's domain ID.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.domain-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "domain_name", + "required": false, + "desc": "OpenStack Swift user's domain name.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.domain-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_id", + "required": false, + "desc": "OpenStack Swift project ID (v2,v3 auth only).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.project-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_name", + "required": false, + "desc": "OpenStack Swift project name (v2,v3 auth only).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.project-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_domain_id", + "required": false, + "desc": "ID of the OpenStack Swift project's domain (v3 auth only), only needed if it differs the from user domain.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.project-domain-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_domain_name", + "required": false, + "desc": "Name of the OpenStack Swift project's domain (v3 auth only), only needed if it differs from the user domain.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.project-domain-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "region_name", + "required": false, + "desc": "OpenStack Swift Region to use (v2,v3 auth only).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.region-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "container_name", + "required": false, + "desc": "Name of the OpenStack Swift container to put chunks in.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.container-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Max retries on requests error.", + "fieldValue": null, + "fieldDefaultValue": 3, + "fieldFlag": "alertmanager-storage.swift.max-retries", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "connect_timeout", + "required": false, + "desc": "Time after which a connection attempt is aborted.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "alertmanager-storage.swift.connect-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "request_timeout", + "required": false, + "desc": "Time after which an idle request is aborted. The timeout watchdog is reset each time some data is received, so the timeout triggers after X time no data is received on a request.", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "alertmanager-storage.swift.request-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "filesystem", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "dir", + "required": false, + "desc": "Local filesystem storage directory.", + "fieldValue": null, + "fieldDefaultValue": "alertmanager", + "fieldFlag": "alertmanager-storage.filesystem.dir", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "local", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "path", + "required": false, + "desc": "Path at which alertmanager configurations are stored.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.local.path", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "runtime_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "period", + "required": false, + "desc": "How often to check runtime config file.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "runtime-config.reload-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "file", + "required": false, + "desc": "File with the configuration that can be updated in runtime.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "runtime-config.file", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "memberlist", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "node_name", + "required": false, + "desc": "Name of the node in memberlist cluster. Defaults to hostname.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "memberlist.nodename", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "randomize_node_name", + "required": false, + "desc": "Add random suffix to the node name.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "memberlist.randomize-node-name", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "stream_timeout", + "required": false, + "desc": "The timeout for establishing a connection with a remote node, and for read/write operations.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "memberlist.stream-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "retransmit_factor", + "required": false, + "desc": "Multiplication factor used when sending out messages (factor * log(N+1)).", + "fieldValue": null, + "fieldDefaultValue": 4, + "fieldFlag": "memberlist.retransmit-factor", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "pull_push_interval", + "required": false, + "desc": "How often to use pull/push sync.", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "memberlist.pullpush-interval", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "gossip_interval", + "required": false, + "desc": "How often to gossip.", + "fieldValue": null, + "fieldDefaultValue": 200000000, + "fieldFlag": "memberlist.gossip-interval", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "gossip_nodes", + "required": false, + "desc": "How many nodes to gossip to.", + "fieldValue": null, + "fieldDefaultValue": 3, + "fieldFlag": "memberlist.gossip-nodes", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "gossip_to_dead_nodes_time", + "required": false, + "desc": "How long to keep gossiping to dead nodes, to give them chance to refute their death.", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "memberlist.gossip-to-dead-nodes-time", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "dead_node_reclaim_time", + "required": false, + "desc": "How soon can dead node's name be reclaimed with new address. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "memberlist.dead-node-reclaim-time", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "compression_enabled", + "required": false, + "desc": "Enable message compression. This can be used to reduce bandwidth usage at the cost of slightly more CPU utilization.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "memberlist.compression-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "advertise_addr", + "required": false, + "desc": "Gossip address to advertise to other members in the cluster. Used for NAT traversal.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "memberlist.advertise-addr", + "fieldType": "string" + }, + { + "kind": "field", + "name": "advertise_port", + "required": false, + "desc": "Gossip port to advertise to other members in the cluster. Used for NAT traversal.", + "fieldValue": null, + "fieldDefaultValue": 7946, + "fieldFlag": "memberlist.advertise-port", + "fieldType": "int" + }, + { + "kind": "field", + "name": "join_members", + "required": false, + "desc": "Other cluster members to join. Can be specified multiple times. It can be an IP, hostname or an entry specified in the DNS Service Discovery format.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "memberlist.join", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "min_join_backoff", + "required": false, + "desc": "Min backoff duration to join other cluster members.", + "fieldValue": null, + "fieldDefaultValue": 1000000000, + "fieldFlag": "memberlist.min-join-backoff", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_join_backoff", + "required": false, + "desc": "Max backoff duration to join other cluster members.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "memberlist.max-join-backoff", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_join_retries", + "required": false, + "desc": "Max number of retries to join other cluster members.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "memberlist.max-join-retries", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "abort_if_cluster_join_fails", + "required": false, + "desc": "If this node fails to join memberlist cluster, abort.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "memberlist.abort-if-join-fails", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "rejoin_interval", + "required": false, + "desc": "If not 0, how often to rejoin the cluster. Occasional rejoin can help to fix the cluster split issue, and is harmless otherwise. For example when using only few components as a seed nodes (via -memberlist.join), then it's recommended to use rejoin. If -memberlist.join points to dynamic service that resolves to all gossiping nodes (eg. Kubernetes headless service), then rejoin is not needed.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "memberlist.rejoin-interval", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "left_ingesters_timeout", + "required": false, + "desc": "How long to keep LEFT ingesters in the ring.", + "fieldValue": null, + "fieldDefaultValue": 300000000000, + "fieldFlag": "memberlist.left-ingesters-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "leave_timeout", + "required": false, + "desc": "Timeout for leaving memberlist cluster.", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "memberlist.leave-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "message_history_buffer_bytes", + "required": false, + "desc": "How much space to use for keeping received and sent messages in memory for troubleshooting (two buffers). 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "memberlist.message-history-buffer-bytes", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "bind_addr", + "required": false, + "desc": "IP address to listen on for gossip messages. Multiple addresses may be specified. Defaults to 0.0.0.0", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "memberlist.bind-addr", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "bind_port", + "required": false, + "desc": "Port to listen on for gossip messages.", + "fieldValue": null, + "fieldDefaultValue": 7946, + "fieldFlag": "memberlist.bind-port", + "fieldType": "int" + }, + { + "kind": "field", + "name": "packet_dial_timeout", + "required": false, + "desc": "Timeout used when connecting to other nodes to send packet.", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "memberlist.packet-dial-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "packet_write_timeout", + "required": false, + "desc": "Timeout for writing 'packet' data.", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "memberlist.packet-write-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS on the memberlist transport layer.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "memberlist.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "memberlist.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "memberlist.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "memberlist.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "memberlist.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "memberlist.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "query_scheduler", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "max_outstanding_requests_per_tenant", + "required": false, + "desc": "Maximum number of outstanding requests per tenant per query-scheduler. In-flight requests above this limit will fail with HTTP response status code 429.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "query-scheduler.max-outstanding-requests-per-tenant", + "fieldType": "int" + }, + { + "kind": "field", + "name": "querier_forget_delay", + "required": false, + "desc": "If a querier disconnects without sending notification about graceful shutdown, the query-scheduler will keep the querier in the tenant's shard until the forget delay has passed. This feature is useful to reduce the blast radius when shuffle-sharding is enabled.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "query-scheduler.querier-forget-delay", + "fieldType": "duration", + "fieldCategory": "experimental" + }, + { + "kind": "block", + "name": "grpc_client_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "max_recv_msg_size", + "required": false, + "desc": "gRPC client max receive message size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 104857600, + "fieldFlag": "query-scheduler.grpc-client-config.grpc-max-recv-msg-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_send_msg_size", + "required": false, + "desc": "gRPC client max send message size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 104857600, + "fieldFlag": "query-scheduler.grpc-client-config.grpc-max-send-msg-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "grpc_compression", + "required": false, + "desc": "Use compression when sending messages. Supported values are: 'gzip', 'snappy' and '' (disable compression)", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "query-scheduler.grpc-client-config.grpc-compression", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "rate_limit", + "required": false, + "desc": "Rate limit for gRPC client; 0 means disabled.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "query-scheduler.grpc-client-config.grpc-client-rate-limit", + "fieldType": "float", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "rate_limit_burst", + "required": false, + "desc": "Rate limit burst for gRPC client.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "query-scheduler.grpc-client-config.grpc-client-rate-limit-burst", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "backoff_on_ratelimits", + "required": false, + "desc": "Enable backoff and retry when we hit ratelimits.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "query-scheduler.grpc-client-config.backoff-on-ratelimits", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "backoff_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "min_period", + "required": false, + "desc": "Minimum delay when backing off.", + "fieldValue": null, + "fieldDefaultValue": 100000000, + "fieldFlag": "query-scheduler.grpc-client-config.backoff-min-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_period", + "required": false, + "desc": "Maximum delay when backing off.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "query-scheduler.grpc-client-config.backoff-max-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Number of times to backoff and retry before failing.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "query-scheduler.grpc-client-config.backoff-retries", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "query-scheduler.grpc-client-config.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "query-scheduler.grpc-client-config.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "query-scheduler.grpc-client-config.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "query-scheduler.grpc-client-config.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "query-scheduler.grpc-client-config.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "query-scheduler.grpc-client-config.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "admin_api", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "user_header_name", + "required": false, + "desc": "Designated header to parse when searching for the grafana user ID of the user accessing the API.", + "fieldValue": null, + "fieldDefaultValue": "X-WEBAUTH-USER", + "fieldFlag": "admin.api.user-header-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "leader_election", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "enabled", + "required": false, + "desc": "This flag enables leader election for the admin api.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "admin-api.leader-election.enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "ring", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "kvstore", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "store", + "required": false, + "desc": "Backend storage to use for the ring. Supported values are: consul, etcd, inmemory, memberlist, multi.", + "fieldValue": null, + "fieldDefaultValue": "consul", + "fieldFlag": "admin-api.leader-election.ring.store", + "fieldType": "string" + }, + { + "kind": "field", + "name": "prefix", + "required": false, + "desc": "The prefix for the keys in the store. Should end with a /.", + "fieldValue": null, + "fieldDefaultValue": "leader-election/", + "fieldFlag": "admin-api.leader-election.ring.prefix", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "consul", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "host", + "required": false, + "desc": "Hostname and port of Consul.", + "fieldValue": null, + "fieldDefaultValue": "localhost:8500", + "fieldFlag": "admin-api.leader-election.ring.consul.hostname", + "fieldType": "string" + }, + { + "kind": "field", + "name": "acl_token", + "required": false, + "desc": "ACL Token used to interact with Consul.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin-api.leader-election.ring.consul.acl-token", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "http_client_timeout", + "required": false, + "desc": "HTTP timeout when talking to Consul", + "fieldValue": null, + "fieldDefaultValue": 20000000000, + "fieldFlag": "admin-api.leader-election.ring.consul.client-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "consistent_reads", + "required": false, + "desc": "Enable consistent reads to Consul.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "admin-api.leader-election.ring.consul.consistent-reads", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "watch_rate_limit", + "required": false, + "desc": "Rate limit when watching key or prefix in Consul, in requests per second. 0 disables the rate limit.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "admin-api.leader-election.ring.consul.watch-rate-limit", + "fieldType": "float", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "watch_burst_size", + "required": false, + "desc": "Burst size used in rate limit. Values less than 1 are treated as 1.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "admin-api.leader-election.ring.consul.watch-burst-size", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "etcd", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoints", + "required": false, + "desc": "The etcd endpoints to connect to.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "admin-api.leader-election.ring.etcd.endpoints", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "dial_timeout", + "required": false, + "desc": "The dial timeout for the etcd connection.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "admin-api.leader-election.ring.etcd.dial-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "The maximum number of retries to do for failed ops.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "admin-api.leader-election.ring.etcd.max-retries", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "admin-api.leader-election.ring.etcd.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin-api.leader-election.ring.etcd.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin-api.leader-election.ring.etcd.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin-api.leader-election.ring.etcd.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin-api.leader-election.ring.etcd.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "admin-api.leader-election.ring.etcd.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "username", + "required": false, + "desc": "Etcd username.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin-api.leader-election.ring.etcd.username", + "fieldType": "string" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "Etcd password.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin-api.leader-election.ring.etcd.password", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "multi", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "primary", + "required": false, + "desc": "Primary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin-api.leader-election.ring.multi.primary", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "secondary", + "required": false, + "desc": "Secondary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin-api.leader-election.ring.multi.secondary", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "mirror_enabled", + "required": false, + "desc": "Mirror writes to secondary store.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "admin-api.leader-election.ring.multi.mirror-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "mirror_timeout", + "required": false, + "desc": "Timeout for storing value to secondary store.", + "fieldValue": null, + "fieldDefaultValue": 2000000000, + "fieldFlag": "admin-api.leader-election.ring.multi.mirror-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "heartbeat_period", + "required": false, + "desc": "Period at which to heartbeat to the ring.", + "fieldValue": null, + "fieldDefaultValue": 15000000000, + "fieldFlag": "admin-api.leader-election.ring.heartbeat-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "heartbeat_timeout", + "required": false, + "desc": "The heartbeat timeout after which admin-api instances are considered unhealthy within the ring.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "admin-api.leader-election.ring.heartbeat-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tokens_observe_period", + "required": false, + "desc": "Period to wait after generating tokens to resolve collisions. Required when using a gossip ring KV store.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "admin-api.leader-election.ring.tokens-observe-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_interface_names", + "required": false, + "desc": "Name of network interface to read address from.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "admin-api.leader-election.ring.instance-interface-names", + "fieldType": "list of string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "client_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "max_recv_msg_size", + "required": false, + "desc": "gRPC client max receive message size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 104857600, + "fieldFlag": "admin-api.leader-election.client.grpc-max-recv-msg-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_send_msg_size", + "required": false, + "desc": "gRPC client max send message size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 104857600, + "fieldFlag": "admin-api.leader-election.client.grpc-max-send-msg-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "grpc_compression", + "required": false, + "desc": "Use compression when sending messages. Supported values are: 'gzip', 'snappy' and '' (disable compression)", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin-api.leader-election.client.grpc-compression", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "rate_limit", + "required": false, + "desc": "Rate limit for gRPC client; 0 means disabled.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "admin-api.leader-election.client.grpc-client-rate-limit", + "fieldType": "float", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "rate_limit_burst", + "required": false, + "desc": "Rate limit burst for gRPC client.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "admin-api.leader-election.client.grpc-client-rate-limit-burst", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "backoff_on_ratelimits", + "required": false, + "desc": "Enable backoff and retry when we hit ratelimits.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "admin-api.leader-election.client.backoff-on-ratelimits", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "backoff_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "min_period", + "required": false, + "desc": "Minimum delay when backing off.", + "fieldValue": null, + "fieldDefaultValue": 100000000, + "fieldFlag": "admin-api.leader-election.client.backoff-min-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_period", + "required": false, + "desc": "Maximum delay when backing off.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "admin-api.leader-election.client.backoff-max-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Number of times to backoff and retry before failing.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "admin-api.leader-election.client.backoff-retries", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "admin-api.leader-election.client.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin-api.leader-election.client.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin-api.leader-election.client.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin-api.leader-election.client.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin-api.leader-election.client.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "admin-api.leader-election.client.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "limits", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "enabled", + "required": false, + "desc": "Enable API based limits per-tenant.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "admin-api.limits.enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "refresh_period", + "required": false, + "desc": "Period with which to refresh per-tenant limits.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "admin-api.limits.refresh-period", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "admin_client", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "storage", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "type", + "required": false, + "desc": "Set a backend to use, (gcs, s3, azure)", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin.client.backend-type", + "fieldType": "string" + }, + { + "kind": "field", + "name": "enable_cache", + "required": false, + "desc": "Enable caching on the versioned client", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "admin.client.cache.enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "s3", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoint", + "required": false, + "desc": "The S3 bucket endpoint. It could be an AWS S3 endpoint listed at https://docs.aws.amazon.com/general/latest/gr/s3.html or the address of an S3-compatible service in hostname:port format.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin.client.s3.endpoint", + "fieldType": "string" + }, + { + "kind": "field", + "name": "region", + "required": false, + "desc": "S3 region. If unset, the client will issue a S3 GetBucketLocation API call to autodetect it.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin.client.s3.region", + "fieldType": "string" + }, + { + "kind": "field", + "name": "bucket_name", + "required": false, + "desc": "S3 bucket name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin.client.s3.bucket-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "secret_access_key", + "required": false, + "desc": "S3 secret access key", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin.client.s3.secret-access-key", + "fieldType": "string" + }, + { + "kind": "field", + "name": "access_key_id", + "required": false, + "desc": "S3 access key ID", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin.client.s3.access-key-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "insecure", + "required": false, + "desc": "If enabled, use http:// for the S3 endpoint instead of https://. This could be useful in local dev/test environments while using an S3-compatible backend storage, like Minio.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "admin.client.s3.insecure", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "signature_version", + "required": false, + "desc": "The signature version to use for authenticating against S3. Supported values are: v4, v2.", + "fieldValue": null, + "fieldDefaultValue": "v4", + "fieldFlag": "admin.client.s3.signature-version", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "sse", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "type", + "required": false, + "desc": "Enable AWS Server Side Encryption. Supported values: SSE-KMS, SSE-S3.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin.client.s3.sse.type", + "fieldType": "string" + }, + { + "kind": "field", + "name": "kms_key_id", + "required": false, + "desc": "KMS Key ID used to encrypt objects in S3", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin.client.s3.sse.kms-key-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "kms_encryption_context", + "required": false, + "desc": "KMS Encryption Context used for object encryption. It expects JSON formatted string.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin.client.s3.sse.kms-encryption-context", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "http", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "idle_conn_timeout", + "required": false, + "desc": "The time an idle connection will remain idle before closing.", + "fieldValue": null, + "fieldDefaultValue": 90000000000, + "fieldFlag": "admin.client.s3.http.idle-conn-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "response_header_timeout", + "required": false, + "desc": "The amount of time the client will wait for a servers response headers.", + "fieldValue": null, + "fieldDefaultValue": 120000000000, + "fieldFlag": "admin.client.s3.http.response-header-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "insecure_skip_verify", + "required": false, + "desc": "If the client connects to S3 via HTTPS and this option is enabled, the client will accept any certificate and hostname.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "admin.client.s3.http.insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_handshake_timeout", + "required": false, + "desc": "Maximum time to wait for a TLS handshake. 0 means no limit.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "admin.client.s3.tls-handshake-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "expect_continue_timeout", + "required": false, + "desc": "The time to wait for a server's first response headers after fully writing the request headers if the request has an Expect header. 0 to send the request body immediately.", + "fieldValue": null, + "fieldDefaultValue": 1000000000, + "fieldFlag": "admin.client.s3.expect-continue-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_idle_connections", + "required": false, + "desc": "Maximum number of idle (keep-alive) connections across all hosts. 0 means no limit.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "admin.client.s3.max-idle-connections", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_idle_connections_per_host", + "required": false, + "desc": "Maximum number of idle (keep-alive) connections to keep per-host. If 0, a built-in default value is used.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "admin.client.s3.max-idle-connections-per-host", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_connections_per_host", + "required": false, + "desc": "Maximum number of connections per host. 0 means no limit.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "admin.client.s3.max-connections-per-host", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "gcs", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "bucket_name", + "required": false, + "desc": "GCS bucket name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin.client.gcs.bucket-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "service_account", + "required": false, + "desc": "JSON representing either a Google Developers Console client_credentials.json file or a Google Developers service account key file. If empty, fallback to Google default logic.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin.client.gcs.service-account", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "azure", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "account_name", + "required": false, + "desc": "Azure storage account name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin.client.azure.account-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "account_key", + "required": false, + "desc": "Azure storage account key", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin.client.azure.account-key", + "fieldType": "string" + }, + { + "kind": "field", + "name": "container_name", + "required": false, + "desc": "Azure storage container name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin.client.azure.container-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "endpoint_suffix", + "required": false, + "desc": "Azure storage endpoint suffix without schema. The account name will be prefixed to this value to create the FQDN. If set to empty string, default endpoint suffix is used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin.client.azure.endpoint-suffix", + "fieldType": "string" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Number of retries for recoverable errors", + "fieldValue": null, + "fieldDefaultValue": 20, + "fieldFlag": "admin.client.azure.max-retries", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "msi_resource", + "required": false, + "desc": "If set, this URL is used instead of https://\u003cstorage-account-name\u003e.\u003cendpoint-suffix\u003e for obtaining ServicePrincipalToken from MSI.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin.client.azure.msi-resource", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "user_assigned_id", + "required": false, + "desc": "User assigned identity. If empty, then System assigned identity is used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin.client.azure.user-assigned-id", + "fieldType": "string", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "disable_default_admin_policy", + "required": false, + "desc": "If set to true, the built-in __admin__ access policy will not be active.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "admin.client.disable-default-admin-policy", + "fieldType": "boolean", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "auth", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "type", + "required": false, + "desc": "method for authenticating incoming HTTP requests, (trust, enterprise).", + "fieldValue": null, + "fieldDefaultValue": "enterprise", + "fieldFlag": "auth.type", + "fieldType": "string" + }, + { + "kind": "field", + "name": "required_for_metrics", + "required": false, + "desc": "requires admin level auth for the /metrics endpoint.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "auth.required-for-metrics", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "override", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "token", + "required": false, + "desc": "Override admin token. If set, this string will always be accepted as a token with admin level scope.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "auth.override.token", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "token_file", + "required": false, + "desc": "If set, this file will be read at startup and the string from that file will be used as a admin scoped token.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "auth.override.token-file", + "fieldType": "string", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "admin", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "cache_ttl", + "required": false, + "desc": "how long auth responses should be cached", + "fieldValue": null, + "fieldDefaultValue": 600000000000, + "fieldFlag": "auth.cache.ttl", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "oidc", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "issuer_url", + "required": false, + "desc": "JWT token issuer URL (example \"https://accounts.google.com\")", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "auth.admin.oidc.issuer-url", + "fieldType": "string" + }, + { + "kind": "field", + "name": "access_policy_claim", + "required": false, + "desc": "claim in the JWT token containing the access policy", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "auth.admin.oidc.access-policy-claim", + "fieldType": "string" + }, + { + "kind": "field", + "name": "access_policy_regex", + "required": false, + "desc": "regex to extract the access policy from the JWT token. The first submatch of the provided regex expression will be used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "auth.admin.oidc.access-policy-regex", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "audience", + "required": false, + "desc": "optional audience to check in JWT token", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "auth.admin.oidc.audience", + "fieldType": "string" + }, + { + "kind": "field", + "name": "default_access_policy", + "required": false, + "desc": "name of the access policy to use when the token doesn't contain an access policy", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "auth.admin.oidc.default-access-policy", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "adfs_compatibility", + "required": false, + "desc": "enable ADFS compatibility", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "auth.admin.oidc.adfs-compatibility", + "fieldType": "boolean", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "bootstrap", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "policy_name", + "required": false, + "desc": "Name of built in access policy.", + "fieldValue": null, + "fieldDefaultValue": "admin-policy", + "fieldFlag": "bootstrap.policy-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "token_file", + "required": false, + "desc": "Write token to this instead of the standard out.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "bootstrap.token-file", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "cluster_name", + "required": false, + "desc": "Unique ID of this cortex cluster. If undefined the name in the license is used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "cluster-name", + "fieldType": "string" + }, + { + "kind": "block", + "name": "federation", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "proxy_targets", + "required": false, + "desc": "", + "fieldValue": null, + "fieldDefaultValue": null, + "fieldType": "slice", + "fieldElement": { + "kind": "block", + "name": "proxy_targets", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "name", + "required": false, + "desc": "Name contains the name of the proxy target, it will be used for the __cluster__ label.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldType": "string" + }, + { + "kind": "field", + "name": "url", + "required": false, + "desc": "URL is the URL to the Prometheus API endpoints.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldType": "string" + }, + { + "kind": "block", + "name": "basic_auth", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "username", + "required": false, + "desc": "Basic Auth username", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldType": "string" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "Basic Auth password", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "bearer_token", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "user", + "required": false, + "desc": "Bearer token user to forward to proxy targets.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldType": "string" + }, + { + "kind": "field", + "name": "token", + "required": false, + "desc": "Bearer token to forward to proxy targets.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "tls", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldType": "boolean", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "gateway", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "proxy", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "default", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "url", + "required": false, + "desc": "URL for the backend. Use the scheme dns:// for HTTP over GPRC and the scheme h2c:// for HTTP2 proxying.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.default.url", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "enable_keepalive", + "required": false, + "desc": "Enable keep alive for the backend.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "gateway.proxy.default.enable-keepalive", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.default.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.default.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.default.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.default.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.default.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.default.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "admin_api", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "url", + "required": false, + "desc": "URL for the backend. Use the scheme dns:// for HTTP over GPRC and the scheme h2c:// for HTTP2 proxying.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.admin-api.url", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "enable_keepalive", + "required": false, + "desc": "Enable keep alive for the backend.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "gateway.proxy.admin-api.enable-keepalive", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.admin-api.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.admin-api.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.admin-api.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.admin-api.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.admin-api.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.admin-api.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "write_timeout", + "required": false, + "desc": "Timeout for write requests to the backend, set to \u003c=0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "gateway.proxy.admin-api.write-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "read_timeout", + "required": false, + "desc": "Timeout for read requests the backend, set to \u003c=0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 120000000000, + "fieldFlag": "gateway.proxy.admin-api.read-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "alertmanager", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "url", + "required": false, + "desc": "URL for the backend. Use the scheme dns:// for HTTP over GPRC and the scheme h2c:// for HTTP2 proxying.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.alertmanager.url", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "enable_keepalive", + "required": false, + "desc": "Enable keep alive for the backend.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "gateway.proxy.alertmanager.enable-keepalive", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.alertmanager.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.alertmanager.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.alertmanager.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.alertmanager.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.alertmanager.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.alertmanager.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "write_timeout", + "required": false, + "desc": "Timeout for write requests to the backend, set to \u003c=0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "gateway.proxy.alertmanager.write-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "read_timeout", + "required": false, + "desc": "Timeout for read requests the backend, set to \u003c=0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 120000000000, + "fieldFlag": "gateway.proxy.alertmanager.read-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "compactor", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "url", + "required": false, + "desc": "URL for the backend. Use the scheme dns:// for HTTP over GPRC and the scheme h2c:// for HTTP2 proxying.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.compactor.url", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "enable_keepalive", + "required": false, + "desc": "Enable keep alive for the backend.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "gateway.proxy.compactor.enable-keepalive", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.compactor.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.compactor.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.compactor.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.compactor.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.compactor.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.compactor.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "write_timeout", + "required": false, + "desc": "Timeout for write requests to the backend, set to \u003c=0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "gateway.proxy.compactor.write-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "read_timeout", + "required": false, + "desc": "Timeout for read requests the backend, set to \u003c=0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 120000000000, + "fieldFlag": "gateway.proxy.compactor.read-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "distributor", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "url", + "required": false, + "desc": "URL for the backend. Use the scheme dns:// for HTTP over GPRC and the scheme h2c:// for HTTP2 proxying.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.distributor.url", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "enable_keepalive", + "required": false, + "desc": "Enable keep alive for the backend.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "gateway.proxy.distributor.enable-keepalive", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.distributor.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.distributor.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.distributor.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.distributor.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.distributor.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.distributor.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "write_timeout", + "required": false, + "desc": "Timeout for write requests to the backend, set to \u003c=0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "gateway.proxy.distributor.write-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "read_timeout", + "required": false, + "desc": "Timeout for read requests the backend, set to \u003c=0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 120000000000, + "fieldFlag": "gateway.proxy.distributor.read-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "graphite_querier", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "url", + "required": false, + "desc": "URL for the backend. Use the scheme dns:// for HTTP over GPRC and the scheme h2c:// for HTTP2 proxying.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.graphite-querier.url", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "enable_keepalive", + "required": false, + "desc": "Enable keep alive for the backend.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "gateway.proxy.graphite-querier.enable-keepalive", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.graphite-querier.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.graphite-querier.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.graphite-querier.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.graphite-querier.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.graphite-querier.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.graphite-querier.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "write_timeout", + "required": false, + "desc": "Timeout for write requests to the backend, set to \u003c=0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "gateway.proxy.graphite-querier.write-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "read_timeout", + "required": false, + "desc": "Timeout for read requests the backend, set to \u003c=0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 120000000000, + "fieldFlag": "gateway.proxy.graphite-querier.read-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "graphite_write_proxy", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "url", + "required": false, + "desc": "URL for the backend. Use the scheme dns:// for HTTP over GPRC and the scheme h2c:// for HTTP2 proxying.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.graphite-write-proxy.url", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "enable_keepalive", + "required": false, + "desc": "Enable keep alive for the backend.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "gateway.proxy.graphite-write-proxy.enable-keepalive", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.graphite-write-proxy.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.graphite-write-proxy.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.graphite-write-proxy.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.graphite-write-proxy.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.graphite-write-proxy.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.graphite-write-proxy.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "write_timeout", + "required": false, + "desc": "Timeout for write requests to the backend, set to \u003c=0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "gateway.proxy.graphite-write-proxy.write-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "read_timeout", + "required": false, + "desc": "Timeout for read requests the backend, set to \u003c=0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 120000000000, + "fieldFlag": "gateway.proxy.graphite-write-proxy.read-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "ingester", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "url", + "required": false, + "desc": "URL for the backend. Use the scheme dns:// for HTTP over GPRC and the scheme h2c:// for HTTP2 proxying.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.ingester.url", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "enable_keepalive", + "required": false, + "desc": "Enable keep alive for the backend.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "gateway.proxy.ingester.enable-keepalive", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.ingester.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.ingester.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.ingester.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.ingester.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.ingester.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.ingester.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "write_timeout", + "required": false, + "desc": "Timeout for write requests to the backend, set to \u003c=0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "gateway.proxy.ingester.write-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "read_timeout", + "required": false, + "desc": "Timeout for read requests the backend, set to \u003c=0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 120000000000, + "fieldFlag": "gateway.proxy.ingester.read-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "query_frontend", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "url", + "required": false, + "desc": "URL for the backend. Use the scheme dns:// for HTTP over GPRC and the scheme h2c:// for HTTP2 proxying.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.query-frontend.url", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "enable_keepalive", + "required": false, + "desc": "Enable keep alive for the backend.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "gateway.proxy.query-frontend.enable-keepalive", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.query-frontend.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.query-frontend.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.query-frontend.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.query-frontend.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.query-frontend.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.query-frontend.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "write_timeout", + "required": false, + "desc": "Timeout for write requests to the backend, set to \u003c=0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "gateway.proxy.query-frontend.write-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "read_timeout", + "required": false, + "desc": "Timeout for read requests the backend, set to \u003c=0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 120000000000, + "fieldFlag": "gateway.proxy.query-frontend.read-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "ruler", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "url", + "required": false, + "desc": "URL for the backend. Use the scheme dns:// for HTTP over GPRC and the scheme h2c:// for HTTP2 proxying.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.ruler.url", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "enable_keepalive", + "required": false, + "desc": "Enable keep alive for the backend.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "gateway.proxy.ruler.enable-keepalive", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.ruler.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.ruler.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.ruler.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.ruler.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.ruler.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.ruler.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "write_timeout", + "required": false, + "desc": "Timeout for write requests to the backend, set to \u003c=0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "gateway.proxy.ruler.write-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "read_timeout", + "required": false, + "desc": "Timeout for read requests the backend, set to \u003c=0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 120000000000, + "fieldFlag": "gateway.proxy.ruler.read-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "store_gateway", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "url", + "required": false, + "desc": "URL for the backend. Use the scheme dns:// for HTTP over GPRC and the scheme h2c:// for HTTP2 proxying.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.store-gateway.url", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "enable_keepalive", + "required": false, + "desc": "Enable keep alive for the backend.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "gateway.proxy.store-gateway.enable-keepalive", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.store-gateway.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.store-gateway.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.store-gateway.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.store-gateway.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "gateway.proxy.store-gateway.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "gateway.proxy.store-gateway.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "write_timeout", + "required": false, + "desc": "Timeout for write requests to the backend, set to \u003c=0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "gateway.proxy.store-gateway.write-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "read_timeout", + "required": false, + "desc": "Timeout for read requests the backend, set to \u003c=0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 120000000000, + "fieldFlag": "gateway.proxy.store-gateway.read-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "graphite", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "enabled", + "required": false, + "desc": "Whether the Graphite APIs are enabled.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "graphite.enabled", + "fieldType": "boolean" + }, + { + "kind": "block", + "name": "querier", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "schemas", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "schema_ttl", + "required": false, + "desc": "Defines for how long schemas shall be cached.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "graphite.querier.schemas.schema-ttl", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "default_storage_schemas_file", + "required": false, + "desc": "Path to default storage-schemas.conf file.", + "fieldValue": null, + "fieldDefaultValue": "/etc/cortextank/storage-schemas.conf", + "fieldFlag": "graphite.querier.schemas.default-storage-schemas-file", + "fieldType": "string" + }, + { + "kind": "field", + "name": "default_storage_aggregations_file", + "required": false, + "desc": "Path to default storage-aggregation.conf file.", + "fieldValue": null, + "fieldDefaultValue": "/etc/cortextank/storage-aggregation.conf", + "fieldFlag": "graphite.querier.schemas.default-storage-aggregations-file", + "fieldType": "string" + }, + { + "kind": "field", + "name": "enable_user_overrides", + "required": false, + "desc": "Whether support for object store backed user overrides should be enabled.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "graphite.querier.schemas.enable-user-overrides", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "backend", + "required": false, + "desc": "Backend storage to use. Supported backends are: s3, gcs, azure, swift, filesystem.", + "fieldValue": null, + "fieldDefaultValue": "filesystem", + "fieldFlag": "graphite.querier.schemas.backend", + "fieldType": "string" + }, + { + "kind": "block", + "name": "s3", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoint", + "required": false, + "desc": "The S3 bucket endpoint. It could be an AWS S3 endpoint listed at https://docs.aws.amazon.com/general/latest/gr/s3.html or the address of an S3-compatible service in hostname:port format.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.s3.endpoint", + "fieldType": "string" + }, + { + "kind": "field", + "name": "region", + "required": false, + "desc": "S3 region. If unset, the client will issue a S3 GetBucketLocation API call to autodetect it.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.s3.region", + "fieldType": "string" + }, + { + "kind": "field", + "name": "bucket_name", + "required": false, + "desc": "S3 bucket name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.s3.bucket-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "secret_access_key", + "required": false, + "desc": "S3 secret access key", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.s3.secret-access-key", + "fieldType": "string" + }, + { + "kind": "field", + "name": "access_key_id", + "required": false, + "desc": "S3 access key ID", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.s3.access-key-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "insecure", + "required": false, + "desc": "If enabled, use http:// for the S3 endpoint instead of https://. This could be useful in local dev/test environments while using an S3-compatible backend storage, like Minio.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "graphite.querier.schemas.s3.insecure", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "signature_version", + "required": false, + "desc": "The signature version to use for authenticating against S3. Supported values are: v4, v2.", + "fieldValue": null, + "fieldDefaultValue": "v4", + "fieldFlag": "graphite.querier.schemas.s3.signature-version", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "sse", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "type", + "required": false, + "desc": "Enable AWS Server Side Encryption. Supported values: SSE-KMS, SSE-S3.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.s3.sse.type", + "fieldType": "string" + }, + { + "kind": "field", + "name": "kms_key_id", + "required": false, + "desc": "KMS Key ID used to encrypt objects in S3", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.s3.sse.kms-key-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "kms_encryption_context", + "required": false, + "desc": "KMS Encryption Context used for object encryption. It expects JSON formatted string.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.s3.sse.kms-encryption-context", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "http", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "idle_conn_timeout", + "required": false, + "desc": "The time an idle connection will remain idle before closing.", + "fieldValue": null, + "fieldDefaultValue": 90000000000, + "fieldFlag": "graphite.querier.schemas.s3.http.idle-conn-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "response_header_timeout", + "required": false, + "desc": "The amount of time the client will wait for a servers response headers.", + "fieldValue": null, + "fieldDefaultValue": 120000000000, + "fieldFlag": "graphite.querier.schemas.s3.http.response-header-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "insecure_skip_verify", + "required": false, + "desc": "If the client connects to S3 via HTTPS and this option is enabled, the client will accept any certificate and hostname.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "graphite.querier.schemas.s3.http.insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_handshake_timeout", + "required": false, + "desc": "Maximum time to wait for a TLS handshake. 0 means no limit.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "graphite.querier.schemas.s3.tls-handshake-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "expect_continue_timeout", + "required": false, + "desc": "The time to wait for a server's first response headers after fully writing the request headers if the request has an Expect header. 0 to send the request body immediately.", + "fieldValue": null, + "fieldDefaultValue": 1000000000, + "fieldFlag": "graphite.querier.schemas.s3.expect-continue-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_idle_connections", + "required": false, + "desc": "Maximum number of idle (keep-alive) connections across all hosts. 0 means no limit.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "graphite.querier.schemas.s3.max-idle-connections", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_idle_connections_per_host", + "required": false, + "desc": "Maximum number of idle (keep-alive) connections to keep per-host. If 0, a built-in default value is used.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "graphite.querier.schemas.s3.max-idle-connections-per-host", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_connections_per_host", + "required": false, + "desc": "Maximum number of connections per host. 0 means no limit.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "graphite.querier.schemas.s3.max-connections-per-host", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "gcs", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "bucket_name", + "required": false, + "desc": "GCS bucket name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.gcs.bucket-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "service_account", + "required": false, + "desc": "JSON representing either a Google Developers Console client_credentials.json file or a Google Developers service account key file. If empty, fallback to Google default logic.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.gcs.service-account", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "azure", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "account_name", + "required": false, + "desc": "Azure storage account name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.azure.account-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "account_key", + "required": false, + "desc": "Azure storage account key", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.azure.account-key", + "fieldType": "string" + }, + { + "kind": "field", + "name": "container_name", + "required": false, + "desc": "Azure storage container name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.azure.container-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "endpoint_suffix", + "required": false, + "desc": "Azure storage endpoint suffix without schema. The account name will be prefixed to this value to create the FQDN. If set to empty string, default endpoint suffix is used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.azure.endpoint-suffix", + "fieldType": "string" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Number of retries for recoverable errors", + "fieldValue": null, + "fieldDefaultValue": 20, + "fieldFlag": "graphite.querier.schemas.azure.max-retries", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "msi_resource", + "required": false, + "desc": "If set, this URL is used instead of https://\u003cstorage-account-name\u003e.\u003cendpoint-suffix\u003e for obtaining ServicePrincipalToken from MSI.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.azure.msi-resource", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "user_assigned_id", + "required": false, + "desc": "User assigned identity. If empty, then System assigned identity is used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.azure.user-assigned-id", + "fieldType": "string", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "swift", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "auth_version", + "required": false, + "desc": "OpenStack Swift authentication API version. 0 to autodetect.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "graphite.querier.schemas.swift.auth-version", + "fieldType": "int" + }, + { + "kind": "field", + "name": "auth_url", + "required": false, + "desc": "OpenStack Swift authentication URL", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.swift.auth-url", + "fieldType": "string" + }, + { + "kind": "field", + "name": "username", + "required": false, + "desc": "OpenStack Swift username.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.swift.username", + "fieldType": "string" + }, + { + "kind": "field", + "name": "user_domain_name", + "required": false, + "desc": "OpenStack Swift user's domain name.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.swift.user-domain-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "user_domain_id", + "required": false, + "desc": "OpenStack Swift user's domain ID.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.swift.user-domain-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "user_id", + "required": false, + "desc": "OpenStack Swift user ID.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.swift.user-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "OpenStack Swift API key.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.swift.password", + "fieldType": "string" + }, + { + "kind": "field", + "name": "domain_id", + "required": false, + "desc": "OpenStack Swift user's domain ID.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.swift.domain-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "domain_name", + "required": false, + "desc": "OpenStack Swift user's domain name.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.swift.domain-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_id", + "required": false, + "desc": "OpenStack Swift project ID (v2,v3 auth only).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.swift.project-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_name", + "required": false, + "desc": "OpenStack Swift project name (v2,v3 auth only).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.swift.project-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_domain_id", + "required": false, + "desc": "ID of the OpenStack Swift project's domain (v3 auth only), only needed if it differs the from user domain.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.swift.project-domain-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_domain_name", + "required": false, + "desc": "Name of the OpenStack Swift project's domain (v3 auth only), only needed if it differs from the user domain.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.swift.project-domain-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "region_name", + "required": false, + "desc": "OpenStack Swift Region to use (v2,v3 auth only).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.swift.region-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "container_name", + "required": false, + "desc": "Name of the OpenStack Swift container to put chunks in.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.swift.container-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Max retries on requests error.", + "fieldValue": null, + "fieldDefaultValue": 3, + "fieldFlag": "graphite.querier.schemas.swift.max-retries", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "connect_timeout", + "required": false, + "desc": "Time after which a connection attempt is aborted.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "graphite.querier.schemas.swift.connect-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "request_timeout", + "required": false, + "desc": "Time after which an idle request is aborted. The timeout watchdog is reset each time some data is received, so the timeout triggers after X time no data is received on a request.", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "graphite.querier.schemas.swift.request-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "filesystem", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "dir", + "required": false, + "desc": "Local filesystem storage directory.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.filesystem.dir", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "enable_deduplicator", + "required": false, + "desc": "Whether support for deduplicating schema config updates should be enabled.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "graphite.querier.schemas.enable-deduplicator", + "fieldType": "boolean" + }, + { + "kind": "block", + "name": "deduplicator", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "timeout", + "required": false, + "desc": "Maximum expected upload duration after which it's considered failed and can be uploaded again.", + "fieldValue": null, + "fieldDefaultValue": 15000000000, + "fieldFlag": "graphite.querier.schemas.deduplicator.timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "ttl", + "required": false, + "desc": "TTL for deduplicator entry in the cache.", + "fieldValue": null, + "fieldDefaultValue": 43200000000000, + "fieldFlag": "graphite.querier.schemas.deduplicator.ttl", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "retry_delay", + "required": false, + "desc": "Time that the deduplicator waits between retries.", + "fieldValue": null, + "fieldDefaultValue": 100000000, + "fieldFlag": "graphite.querier.schemas.deduplicator.retry-delay", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Max number of upload retries performed by the deduplicator before failing.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "graphite.querier.schemas.deduplicator.max-retries", + "fieldType": "int" + }, + { + "kind": "block", + "name": "memcached_client", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "host", + "required": false, + "desc": "Hostname for memcached service to use. If empty and if addresses is unset, no memcached will be used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.deduplicator.memcached.hostname", + "fieldType": "string" + }, + { + "kind": "field", + "name": "service", + "required": false, + "desc": "SRV service used to discover memcache servers.", + "fieldValue": null, + "fieldDefaultValue": "memcached", + "fieldFlag": "graphite.querier.schemas.deduplicator.memcached.service", + "fieldType": "string" + }, + { + "kind": "field", + "name": "addresses", + "required": false, + "desc": "EXPERIMENTAL: Comma separated addresses list in DNS Service Discovery format: https://cortexmetrics.io/docs/configuration/arguments/#dns-service-discovery", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.schemas.deduplicator.memcached.addresses", + "fieldType": "string" + }, + { + "kind": "field", + "name": "timeout", + "required": false, + "desc": "Maximum time to wait before giving up on memcached requests.", + "fieldValue": null, + "fieldDefaultValue": 100000000, + "fieldFlag": "graphite.querier.schemas.deduplicator.memcached.timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_idle_conns", + "required": false, + "desc": "Maximum number of idle connections in pool.", + "fieldValue": null, + "fieldDefaultValue": 16, + "fieldFlag": "graphite.querier.schemas.deduplicator.memcached.max-idle-conns", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_item_size", + "required": false, + "desc": "The maximum size of an item stored in memcached. Bigger items are not stored. If set to 0, no maximum size is enforced.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "graphite.querier.schemas.deduplicator.memcached.max-item-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "update_interval", + "required": false, + "desc": "Period with which to poll DNS for memcache servers.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "graphite.querier.schemas.deduplicator.memcached.update-interval", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "consistent_hash", + "required": false, + "desc": "Use consistent hashing to distribute to memcache servers.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "graphite.querier.schemas.deduplicator.memcached.consistent-hash", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "circuit_breaker_consecutive_failures", + "required": false, + "desc": "Trip circuit-breaker after this number of consecutive dial failures (if zero then circuit-breaker is disabled).", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "graphite.querier.schemas.deduplicator.memcached.circuit-breaker-consecutive-failures", + "fieldType": "int" + }, + { + "kind": "field", + "name": "circuit_breaker_timeout", + "required": false, + "desc": "Duration circuit-breaker remains open after tripping (if zero then 60 seconds is used).", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "graphite.querier.schemas.deduplicator.memcached.circuit-breaker-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "circuit_breaker_interval", + "required": false, + "desc": "Reset circuit-breaker counts after this long (if zero then never reset).", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "graphite.querier.schemas.deduplicator.memcached.circuit-breaker-interval", + "fieldType": "duration" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "cache_grace_period", + "required": false, + "desc": "Period to wait before expiring a cached item.", + "fieldValue": null, + "fieldDefaultValue": 300000000000, + "fieldFlag": "graphite.querier.cache-grace-period", + "fieldType": "duration" + }, + { + "kind": "block", + "name": "metric_name_cache", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "backend", + "required": false, + "desc": "Backend for metric names cache, if not empty. Supported values: [memcached].", + "fieldValue": null, + "fieldDefaultValue": "memcached", + "fieldFlag": "graphite.querier.metric-name-cache.backend", + "fieldType": "string" + }, + { + "kind": "block", + "name": "memcached", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "addresses", + "required": false, + "desc": "Comma separated list of memcached addresses. Supported prefixes are: dns+ (looked up as an A/AAAA query), dnssrv+ (looked up as a SRV query, dnssrvnoa+ (looked up as a SRV query, with no A/AAAA lookup made after that).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.metric-name-cache.memcached.addresses", + "fieldType": "string" + }, + { + "kind": "field", + "name": "timeout", + "required": false, + "desc": "The socket read/write timeout.", + "fieldValue": null, + "fieldDefaultValue": 200000000, + "fieldFlag": "graphite.querier.metric-name-cache.memcached.timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_idle_connections", + "required": false, + "desc": "The maximum number of idle connections that will be maintained per address.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "graphite.querier.metric-name-cache.memcached.max-idle-connections", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_async_concurrency", + "required": false, + "desc": "The maximum number of concurrent asynchronous operations can occur.", + "fieldValue": null, + "fieldDefaultValue": 50, + "fieldFlag": "graphite.querier.metric-name-cache.memcached.max-async-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_async_buffer_size", + "required": false, + "desc": "The maximum number of enqueued asynchronous operations allowed.", + "fieldValue": null, + "fieldDefaultValue": 25000, + "fieldFlag": "graphite.querier.metric-name-cache.memcached.max-async-buffer-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_get_multi_concurrency", + "required": false, + "desc": "The maximum number of concurrent connections running get operations. If set to 0, concurrency is unlimited.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "graphite.querier.metric-name-cache.memcached.max-get-multi-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_get_multi_batch_size", + "required": false, + "desc": "The maximum number of keys a single underlying get operation should run. If more keys are specified, internally keys are split into multiple batches and fetched concurrently, honoring the max concurrency. If set to 0, the max batch size is unlimited.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "graphite.querier.metric-name-cache.memcached.max-get-multi-batch-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_item_size", + "required": false, + "desc": "The maximum size of an item stored in memcached. Bigger items are not stored. If set to 0, no maximum size is enforced.", + "fieldValue": null, + "fieldDefaultValue": 1048576, + "fieldFlag": "graphite.querier.metric-name-cache.memcached.max-item-size", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "aggregation_cache", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "backend", + "required": false, + "desc": "Backend for aggregations cache, if not empty. Supported values: [memcached].", + "fieldValue": null, + "fieldDefaultValue": "memcached", + "fieldFlag": "graphite.querier.aggregation-cache.backend", + "fieldType": "string" + }, + { + "kind": "block", + "name": "memcached", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "addresses", + "required": false, + "desc": "Comma separated list of memcached addresses. Supported prefixes are: dns+ (looked up as an A/AAAA query), dnssrv+ (looked up as a SRV query, dnssrvnoa+ (looked up as a SRV query, with no A/AAAA lookup made after that).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.aggregation-cache.memcached.addresses", + "fieldType": "string" + }, + { + "kind": "field", + "name": "timeout", + "required": false, + "desc": "The socket read/write timeout.", + "fieldValue": null, + "fieldDefaultValue": 200000000, + "fieldFlag": "graphite.querier.aggregation-cache.memcached.timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_idle_connections", + "required": false, + "desc": "The maximum number of idle connections that will be maintained per address.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "graphite.querier.aggregation-cache.memcached.max-idle-connections", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_async_concurrency", + "required": false, + "desc": "The maximum number of concurrent asynchronous operations can occur.", + "fieldValue": null, + "fieldDefaultValue": 50, + "fieldFlag": "graphite.querier.aggregation-cache.memcached.max-async-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_async_buffer_size", + "required": false, + "desc": "The maximum number of enqueued asynchronous operations allowed.", + "fieldValue": null, + "fieldDefaultValue": 25000, + "fieldFlag": "graphite.querier.aggregation-cache.memcached.max-async-buffer-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_get_multi_concurrency", + "required": false, + "desc": "The maximum number of concurrent connections running get operations. If set to 0, concurrency is unlimited.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "graphite.querier.aggregation-cache.memcached.max-get-multi-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_get_multi_batch_size", + "required": false, + "desc": "The maximum number of keys a single underlying get operation should run. If more keys are specified, internally keys are split into multiple batches and fetched concurrently, honoring the max concurrency. If set to 0, the max batch size is unlimited.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "graphite.querier.aggregation-cache.memcached.max-get-multi-batch-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_item_size", + "required": false, + "desc": "The maximum size of an item stored in memcached. Bigger items are not stored. If set to 0, no maximum size is enforced.", + "fieldValue": null, + "fieldDefaultValue": 1048576, + "fieldFlag": "graphite.querier.aggregation-cache.memcached.max-item-size", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "query_handling_concurrency", + "required": false, + "desc": "Number of go routines to concurrently fetch and process data.", + "fieldValue": null, + "fieldDefaultValue": 8, + "fieldFlag": "graphite.querier.query-handling-concurrency", + "fieldType": "int" + }, + { + "kind": "field", + "name": "split_queries_by_interval", + "required": false, + "desc": "Split queries by this interval and execute in parallel, 0 disables query splitting.", + "fieldValue": null, + "fieldDefaultValue": 86400000000000, + "fieldFlag": "graphite.querier.split-queries-by-interval", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "proxy_bad_requests", + "required": false, + "desc": "Proxy bad requests to graphite", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "graphite.querier.proxy-bad-requests", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "graphite_fallback", + "required": false, + "desc": "Graphite http listener fallback address", + "fieldValue": null, + "fieldDefaultValue": "http://graphite:80", + "fieldFlag": "graphite.querier.graphite-fallback", + "fieldType": "string" + }, + { + "kind": "field", + "name": "metrics_find_cutoff", + "required": false, + "desc": "How far into the past we perform index lookups for find calls", + "fieldValue": null, + "fieldDefaultValue": "32d", + "fieldFlag": "graphite.querier.metrics-find-cutoff", + "fieldType": "string" + }, + { + "kind": "field", + "name": "max_points_per_req_soft", + "required": false, + "desc": "Max number of data points a query may return, if number of data points exceeds this limit we aggregate them down to the limit.", + "fieldValue": null, + "fieldDefaultValue": 1000000, + "fieldFlag": "graphite.querier.max-points-per-req-soft", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_points_per_req_hard", + "required": false, + "desc": "If query results in more data points than this limit we directly cancel it with an error message.", + "fieldValue": null, + "fieldDefaultValue": 20000000, + "fieldFlag": "graphite.querier.max-points-per-req-hard", + "fieldType": "int" + }, + { + "kind": "block", + "name": "remote_read", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "query_address", + "required": false, + "desc": "Base URL for queries from upstream Prometheus API. The /api/v1 suffix will be appended to this address. Defaults to http://localhost:80/prometheus.", + "fieldValue": null, + "fieldDefaultValue": "http://localhost:80/prometheus", + "fieldFlag": "graphite.querier.query-address", + "fieldType": "string" + }, + { + "kind": "field", + "name": "query_timeout", + "required": false, + "desc": "Timeout for queries to upstream Prometheus API.", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "graphite.querier.query-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "query_keep_alive", + "required": false, + "desc": "KeepAlive for queries to upstream Prometheus API.", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "graphite.querier.query-keep-alive", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "query_max_idle_conns", + "required": false, + "desc": "Max idle conns for queries to upstream Prometheus API.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "graphite.querier.query-max-idle-conns", + "fieldType": "int" + }, + { + "kind": "field", + "name": "query_max_conns", + "required": false, + "desc": "Max conns per host for queries to upstream Prometheus API.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "graphite.querier.query-max-conns", + "fieldType": "int" + }, + { + "kind": "field", + "name": "query_client_name", + "required": false, + "desc": "Client name to use when identifying requests in Prometheus API.", + "fieldValue": null, + "fieldDefaultValue": "graphite-querier", + "fieldFlag": "graphite.querier.query-client-name", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "querier_pool_service_address", + "required": false, + "desc": "If set, remote queries will be sent to the machines corresponding to this DNS service address.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.querier.querier-pool-service-address", + "fieldType": "string" + }, + { + "kind": "field", + "name": "querier_pool_rollout_fraction", + "required": false, + "desc": "When a querier-pool-service-address is set, sets the proportion of queries that will be sent to the remote pool. (Between 0.0 and 1.0).", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "graphite.querier.querier-pool-rollout-fraction", + "fieldType": "float" + }, + { + "kind": "field", + "name": "remote_subquery_timeout", + "required": false, + "desc": "Period to wait before expiring a subquery asked over GRPC.", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "graphite.querier.remote-subquery-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "use_remote_results", + "required": false, + "desc": "If set, results from subqueries will be used. If false, queries that would be fanned out to subqueriers are answered locally. The remote subqueries are still issued but the results are dropped.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "graphite.querier.use-remote-results", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "enable_remote_subquerier", + "required": false, + "desc": "Enables remote subquery server.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "graphite.querier.enable-remote-subquerier", + "fieldType": "boolean" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "write_proxy", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "distributor_client", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "address", + "required": false, + "desc": "GRPC listen address of cortex distributor(s). Must be a DNS address (prefixed with dns:///) to enable client side load balancing.", + "fieldValue": null, + "fieldDefaultValue": "dns:///:9095", + "fieldFlag": "graphite.write-proxy.distributor-client.address", + "fieldType": "string" + }, + { + "kind": "field", + "name": "connect_timeout", + "required": false, + "desc": "GRPC connection timeout for cortex distributor(s)", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "graphite.write-proxy.distributor-client.connect-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Set to true if distributor connection requires TLS.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "graphite.write-proxy.distributor-client.tls-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.write-proxy.distributor-client.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.write-proxy.distributor-client.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.write-proxy.distributor-client.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.write-proxy.distributor-client.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "graphite.write-proxy.distributor-client.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "remote_write", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoint", + "required": false, + "desc": "URL for writes to upstream Prometheus remote write API (including the /push suffix if needed).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "graphite.write-proxy.write-endpoint", + "fieldType": "string" + }, + { + "kind": "field", + "name": "timeout", + "required": false, + "desc": "Timeout for writes to upstream Prometheus remote write API.", + "fieldValue": null, + "fieldDefaultValue": 1000000000, + "fieldFlag": "graphite.write-proxy.write-timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "keepalive", + "required": false, + "desc": "KeepAlive for write to upstream Prometheus remote write API.", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "graphite.write-proxy.write-keep-alive", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "maxidleconns", + "required": false, + "desc": "Max idle conns per host for writes to upstream Prometheus remote write API.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "graphite.write-proxy.write-max-idle-conns", + "fieldType": "int" + }, + { + "kind": "field", + "name": "maxconns", + "required": false, + "desc": "Max open conns per host for writes to upstream Prometheus remote write API.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "graphite.write-proxy.write-max-conns", + "fieldType": "int" + }, + { + "kind": "field", + "name": "skiplabelvalidation", + "required": false, + "desc": "If set to true sends requests with headers to skip label validation.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "graphite.write-proxy.skip-label-validation", + "fieldType": "boolean" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "remote_write_proxy_enabled", + "required": false, + "desc": "Enable usage of the remote write api on the write path of graphite, instead of importing distributors code and accessing the ingesters and the block store.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "graphite.write-proxy.remote-write-enabled", + "fieldType": "boolean" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "instrumentation", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "enabled", + "required": false, + "desc": "Enable self-monitoring metrics recorded under the system tenant.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "instrumentation.enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "flush_period", + "required": false, + "desc": "How often to flush self-monitoring metrics to distributor", + "fieldValue": null, + "fieldDefaultValue": 15000000000, + "fieldFlag": "instrumentation.flush-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "write_timeout", + "required": false, + "desc": "Timeout writing self-monitoring metrics to distributor", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "instrumentation.write-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "distributor_client", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "address", + "required": false, + "desc": "GRPC listen address of cortex distributor(s). Must be a DNS address (prefixed with dns:///) to enable client side load balancing.", + "fieldValue": null, + "fieldDefaultValue": "dns:///:9095", + "fieldFlag": "instrumentation.distributor-client.address", + "fieldType": "string" + }, + { + "kind": "field", + "name": "connect_timeout", + "required": false, + "desc": "GRPC connection timeout for cortex distributor(s)", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "instrumentation.distributor-client.connect-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Set to true if distributor connection requires TLS.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "instrumentation.distributor-client.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "instrumentation.distributor-client.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "instrumentation.distributor-client.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "instrumentation.distributor-client.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "instrumentation.distributor-client.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "instrumentation.distributor-client.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "node_collector", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "procfs_path", + "required": false, + "desc": "Mount point of the proc filesystem.", + "fieldValue": null, + "fieldDefaultValue": "/proc", + "fieldFlag": "instrumentation.node-collector.procfs-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "rootfs_path", + "required": false, + "desc": "Mount point of the root filesystem.", + "fieldValue": null, + "fieldDefaultValue": "/", + "fieldFlag": "instrumentation.node-collector.rootfs-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "filesystem_ignored_mount_points", + "required": false, + "desc": "Regex pattern of mount points to ignore for the filesystem collector", + "fieldValue": null, + "fieldDefaultValue": "^/(dev|proc|sys|var/lib/docker/.+)($|/)", + "fieldFlag": "instrumentation.node-collector.filesystem-ignored-mount-points", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "filesystem_ignored_fs_types", + "required": false, + "desc": "Regex pattern of filesystem types to ignore for the filesystem collector", + "fieldValue": null, + "fieldDefaultValue": "^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|sysfs|tracefs)$", + "fieldFlag": "instrumentation.node-collector.filesystem-ignored-fs-types", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "diskstats_ignored_devices", + "required": false, + "desc": "Regex pattern of devices to ignore for the disktstats collector", + "fieldValue": null, + "fieldDefaultValue": "^(ram|loop|fd|(h|s|v|xv)d[a-z]|nvme\\d+n\\d+p)\\d+$", + "fieldFlag": "instrumentation.node-collector.diskstats-ignored-devices", + "fieldType": "string", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "license", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "path", + "required": false, + "desc": "Filepath to license jwt file.", + "fieldValue": null, + "fieldDefaultValue": "./license.jwt", + "fieldFlag": "license.path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "sync_interval", + "required": false, + "desc": "Interval to check for new or existing licenses.", + "fieldValue": null, + "fieldDefaultValue": 3600000000000, + "fieldFlag": "license.sync-interval", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "tokengen", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "access_policy", + "required": false, + "desc": "The name of the access policy to generate a token for. It defaults to the built-in admin policy.", + "fieldValue": null, + "fieldDefaultValue": "__admin__", + "fieldFlag": "tokengen.access-policy", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "token_file", + "required": false, + "desc": "If set, the generated token will be printed to a file at the provided path instead of stdout.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "tokengen.token-file", + "fieldType": "string", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null +} diff --git a/pkg/mimirtool/config/descriptors/mimir-v2.0.0-flags-only.json b/pkg/mimirtool/config/descriptors/mimir-v2.0.0-flags-only.json index ca2c87bf20..aeed781b6c 100644 --- a/pkg/mimirtool/config/descriptors/mimir-v2.0.0-flags-only.json +++ b/pkg/mimirtool/config/descriptors/mimir-v2.0.0-flags-only.json @@ -30,6 +30,24 @@ "fieldDefaultValue": 0, "fieldFlag": "mem-ballast-size-bytes", "fieldType": "int" + }, + { + "kind": "field", + "name": "debug-mutex-profile-fraction", + "required": false, + "desc": "Fraction of mutex contention events that are reported in the mutex profile. On average 1/rate events are reported. 0 to disable.", + "fieldDefaultValue": 0, + "fieldFlag": "debug.mutex-profile-fraction", + "fieldType": "int" + }, + { + "kind": "field", + "name": "debug-block-profile-rate", + "required": false, + "desc": "Fraction of goroutine blocking events that are reported in the blocking profile. 1 to include every blocking event in the profile, 0 to disable.", + "fieldDefaultValue": 0, + "fieldFlag": "debug.block-profile-rate", + "fieldType": "int" } ] } diff --git a/pkg/mimirtool/config/descriptors/mimir-v2.0.0.json b/pkg/mimirtool/config/descriptors/mimir-v2.0.0.json new file mode 100644 index 0000000000..c750e97ff2 --- /dev/null +++ b/pkg/mimirtool/config/descriptors/mimir-v2.0.0.json @@ -0,0 +1,9673 @@ +{ + "kind": "block", + "name": "", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "target", + "required": false, + "desc": "Comma-separated list of components to include in the instantiated process. The default value 'all' includes all components that are required to form a functional Grafana Mimir instance in single-binary mode. Use the '-modules' command line flag to get a list of available components, and to see which components are included with 'all'.", + "fieldValue": null, + "fieldDefaultValue": "all", + "fieldFlag": "target", + "fieldType": "string" + }, + { + "kind": "field", + "name": "multitenancy_enabled", + "required": false, + "desc": "When set to true, incoming HTTP requests must specify tenant ID in HTTP X-Scope-OrgId header. When set to false, tenant ID from -auth.no-auth-tenant is used instead.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "auth.multitenancy-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "no_auth_tenant", + "required": false, + "desc": "Tenant ID to use when multitenancy is disabled.", + "fieldValue": null, + "fieldDefaultValue": "anonymous", + "fieldFlag": "auth.no-auth-tenant", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "api", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "skip_label_name_validation_header_enabled", + "required": false, + "desc": "Allows to skip label name validation via header on the http write path. Use with caution as it breaks PromQL. Allowing this for external clients allows any client to send invalid label names. After enabling it, requests with a specific HTTP header set to true will not have label names validated.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "api.skip-label-name-validation-header-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "alertmanager_http_prefix", + "required": false, + "desc": "HTTP URL path under which the Alertmanager ui and api will be served.", + "fieldValue": null, + "fieldDefaultValue": "/alertmanager", + "fieldFlag": "http.alertmanager-http-prefix", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "prometheus_http_prefix", + "required": false, + "desc": "HTTP URL path under which the Prometheus api will be served.", + "fieldValue": null, + "fieldDefaultValue": "/prometheus", + "fieldFlag": "http.prometheus-http-prefix", + "fieldType": "string", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "server", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "http_listen_network", + "required": false, + "desc": "HTTP server listen network, default tcp", + "fieldValue": null, + "fieldDefaultValue": "tcp", + "fieldFlag": "server.http-listen-network", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "http_listen_address", + "required": false, + "desc": "HTTP server listen address.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "server.http-listen-address", + "fieldType": "string" + }, + { + "kind": "field", + "name": "http_listen_port", + "required": false, + "desc": "HTTP server listen port.", + "fieldValue": null, + "fieldDefaultValue": 8080, + "fieldFlag": "server.http-listen-port", + "fieldType": "int" + }, + { + "kind": "field", + "name": "http_listen_conn_limit", + "required": false, + "desc": "Maximum number of simultaneous http connections, \u003c=0 to disable", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "server.http-conn-limit", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "grpc_listen_network", + "required": false, + "desc": "gRPC server listen network", + "fieldValue": null, + "fieldDefaultValue": "tcp", + "fieldFlag": "server.grpc-listen-network", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "grpc_listen_address", + "required": false, + "desc": "gRPC server listen address.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "server.grpc-listen-address", + "fieldType": "string" + }, + { + "kind": "field", + "name": "grpc_listen_port", + "required": false, + "desc": "gRPC server listen port.", + "fieldValue": null, + "fieldDefaultValue": 9095, + "fieldFlag": "server.grpc-listen-port", + "fieldType": "int" + }, + { + "kind": "field", + "name": "grpc_listen_conn_limit", + "required": false, + "desc": "Maximum number of simultaneous grpc connections, \u003c=0 to disable", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "server.grpc-conn-limit", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "http_tls_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "cert_file", + "required": false, + "desc": "HTTP server cert path.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "server.http-tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "key_file", + "required": false, + "desc": "HTTP server key path.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "server.http-tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "client_auth_type", + "required": false, + "desc": "HTTP TLS Client Auth type.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "server.http-tls-client-auth", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "client_ca_file", + "required": false, + "desc": "HTTP TLS Client CA path.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "server.http-tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "grpc_tls_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "cert_file", + "required": false, + "desc": "GRPC TLS server cert path.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "server.grpc-tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "key_file", + "required": false, + "desc": "GRPC TLS server key path.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "server.grpc-tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "client_auth_type", + "required": false, + "desc": "GRPC TLS Client Auth type.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "server.grpc-tls-client-auth", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "client_ca_file", + "required": false, + "desc": "GRPC TLS Client CA path.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "server.grpc-tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "register_instrumentation", + "required": false, + "desc": "Register the intrumentation handlers (/metrics etc).", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "server.register-instrumentation", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "graceful_shutdown_timeout", + "required": false, + "desc": "Timeout for graceful shutdowns", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "server.graceful-shutdown-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "http_server_read_timeout", + "required": false, + "desc": "Read timeout for HTTP server", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "server.http-read-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "http_server_write_timeout", + "required": false, + "desc": "Write timeout for HTTP server", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "server.http-write-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "http_server_idle_timeout", + "required": false, + "desc": "Idle timeout for HTTP server", + "fieldValue": null, + "fieldDefaultValue": 120000000000, + "fieldFlag": "server.http-idle-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "grpc_server_max_recv_msg_size", + "required": false, + "desc": "Limit on the size of a gRPC message this server can receive (bytes).", + "fieldValue": null, + "fieldDefaultValue": 4194304, + "fieldFlag": "server.grpc-max-recv-msg-size-bytes", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "grpc_server_max_send_msg_size", + "required": false, + "desc": "Limit on the size of a gRPC message this server can send (bytes).", + "fieldValue": null, + "fieldDefaultValue": 4194304, + "fieldFlag": "server.grpc-max-send-msg-size-bytes", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "grpc_server_max_concurrent_streams", + "required": false, + "desc": "Limit on the number of concurrent streams for gRPC calls (0 = unlimited)", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "server.grpc-max-concurrent-streams", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "grpc_server_max_connection_idle", + "required": false, + "desc": "The duration after which an idle connection should be closed. Default: infinity", + "fieldValue": null, + "fieldDefaultValue": 9223372036854775807, + "fieldFlag": "server.grpc.keepalive.max-connection-idle", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "grpc_server_max_connection_age", + "required": false, + "desc": "The duration for the maximum amount of time a connection may exist before it will be closed. Default: infinity", + "fieldValue": null, + "fieldDefaultValue": 9223372036854775807, + "fieldFlag": "server.grpc.keepalive.max-connection-age", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "grpc_server_max_connection_age_grace", + "required": false, + "desc": "An additive period after max-connection-age after which the connection will be forcibly closed. Default: infinity", + "fieldValue": null, + "fieldDefaultValue": 9223372036854775807, + "fieldFlag": "server.grpc.keepalive.max-connection-age-grace", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "grpc_server_keepalive_time", + "required": false, + "desc": "Duration after which a keepalive probe is sent in case of no activity over the connection., Default: 2h", + "fieldValue": null, + "fieldDefaultValue": 7200000000000, + "fieldFlag": "server.grpc.keepalive.time", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "grpc_server_keepalive_timeout", + "required": false, + "desc": "After having pinged for keepalive check, the duration after which an idle connection should be closed, Default: 20s", + "fieldValue": null, + "fieldDefaultValue": 20000000000, + "fieldFlag": "server.grpc.keepalive.timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "grpc_server_min_time_between_pings", + "required": false, + "desc": "Minimum amount of time a client should wait before sending a keepalive ping. If client sends keepalive ping more often, server will send GOAWAY and close the connection.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "server.grpc.keepalive.min-time-between-pings", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "grpc_server_ping_without_stream_allowed", + "required": false, + "desc": "If true, server allows keepalive pings even when there are no active streams(RPCs). If false, and client sends ping when there are no active streams, server will send GOAWAY and close the connection.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "server.grpc.keepalive.ping-without-stream-allowed", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "log_format", + "required": false, + "desc": "Output log messages in the given format. Valid formats: [logfmt, json]", + "fieldValue": null, + "fieldDefaultValue": "logfmt", + "fieldFlag": "log.format", + "fieldType": "string" + }, + { + "kind": "field", + "name": "log_level", + "required": false, + "desc": "Only log messages with the given severity or above. Valid levels: [debug, info, warn, error]", + "fieldValue": null, + "fieldDefaultValue": "info", + "fieldFlag": "log.level", + "fieldType": "string" + }, + { + "kind": "field", + "name": "log_source_ips_enabled", + "required": false, + "desc": "Optionally log the source IPs.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "server.log-source-ips-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "log_source_ips_header", + "required": false, + "desc": "Header field storing the source IPs. Only used if server.log-source-ips-enabled is true. If not set the default Forwarded, X-Real-IP and X-Forwarded-For headers are used", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "server.log-source-ips-header", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "log_source_ips_regex", + "required": false, + "desc": "Regex for matching the source IPs. Only used if server.log-source-ips-enabled is true. If not set the default Forwarded, X-Real-IP and X-Forwarded-For headers are used", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "server.log-source-ips-regex", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "http_path_prefix", + "required": false, + "desc": "Base path to serve all API routes from (e.g. /v1/)", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "server.path-prefix", + "fieldType": "string", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "distributor", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "pool", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "client_cleanup_period", + "required": false, + "desc": "How frequently to clean up clients for ingesters that have gone away.", + "fieldValue": null, + "fieldDefaultValue": 15000000000, + "fieldFlag": "distributor.client-cleanup-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "health_check_ingesters", + "required": false, + "desc": "Run a health check on each ingester client during periodic cleanup.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "distributor.health-check-ingesters", + "fieldType": "boolean", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "ha_tracker", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "enable_ha_tracker", + "required": false, + "desc": "Enable the distributors HA tracker so that it can accept samples from Prometheus HA replicas gracefully (requires labels).", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "distributor.ha-tracker.enable", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "ha_tracker_update_timeout", + "required": false, + "desc": "Update the timestamp in the KV store for a given cluster/replica only after this amount of time has passed since the current stored timestamp.", + "fieldValue": null, + "fieldDefaultValue": 15000000000, + "fieldFlag": "distributor.ha-tracker.update-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "ha_tracker_update_timeout_jitter_max", + "required": false, + "desc": "Maximum jitter applied to the update timeout, in order to spread the HA heartbeats over time.", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "distributor.ha-tracker.update-timeout-jitter-max", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "ha_tracker_failover_timeout", + "required": false, + "desc": "If we don't receive any samples from the accepted replica for a cluster in this amount of time we will failover to the next replica we receive a sample from. This value must be greater than the update timeout", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "distributor.ha-tracker.failover-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "kvstore", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "store", + "required": false, + "desc": "Backend storage to use for the ring. Supported values are: consul, etcd, inmemory, memberlist, multi.", + "fieldValue": null, + "fieldDefaultValue": "consul", + "fieldFlag": "distributor.ha-tracker.store", + "fieldType": "string" + }, + { + "kind": "field", + "name": "prefix", + "required": false, + "desc": "The prefix for the keys in the store. Should end with a /.", + "fieldValue": null, + "fieldDefaultValue": "ha-tracker/", + "fieldFlag": "distributor.ha-tracker.prefix", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "consul", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "host", + "required": false, + "desc": "Hostname and port of Consul.", + "fieldValue": null, + "fieldDefaultValue": "localhost:8500", + "fieldFlag": "distributor.ha-tracker.consul.hostname", + "fieldType": "string" + }, + { + "kind": "field", + "name": "acl_token", + "required": false, + "desc": "ACL Token used to interact with Consul.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ha-tracker.consul.acl-token", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "http_client_timeout", + "required": false, + "desc": "HTTP timeout when talking to Consul", + "fieldValue": null, + "fieldDefaultValue": 20000000000, + "fieldFlag": "distributor.ha-tracker.consul.client-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "consistent_reads", + "required": false, + "desc": "Enable consistent reads to Consul.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "distributor.ha-tracker.consul.consistent-reads", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "watch_rate_limit", + "required": false, + "desc": "Rate limit when watching key or prefix in Consul, in requests per second. 0 disables the rate limit.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "distributor.ha-tracker.consul.watch-rate-limit", + "fieldType": "float", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "watch_burst_size", + "required": false, + "desc": "Burst size used in rate limit. Values less than 1 are treated as 1.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "distributor.ha-tracker.consul.watch-burst-size", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "etcd", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoints", + "required": false, + "desc": "The etcd endpoints to connect to.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "distributor.ha-tracker.etcd.endpoints", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "dial_timeout", + "required": false, + "desc": "The dial timeout for the etcd connection.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "distributor.ha-tracker.etcd.dial-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "The maximum number of retries to do for failed ops.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "distributor.ha-tracker.etcd.max-retries", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "distributor.ha-tracker.etcd.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ha-tracker.etcd.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ha-tracker.etcd.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ha-tracker.etcd.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ha-tracker.etcd.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "distributor.ha-tracker.etcd.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "username", + "required": false, + "desc": "Etcd username.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ha-tracker.etcd.username", + "fieldType": "string" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "Etcd password.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ha-tracker.etcd.password", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "multi", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "primary", + "required": false, + "desc": "Primary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ha-tracker.multi.primary", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "secondary", + "required": false, + "desc": "Secondary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ha-tracker.multi.secondary", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "mirror_enabled", + "required": false, + "desc": "Mirror writes to secondary store.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "distributor.ha-tracker.multi.mirror-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "mirror_timeout", + "required": false, + "desc": "Timeout for storing value to secondary store.", + "fieldValue": null, + "fieldDefaultValue": 2000000000, + "fieldFlag": "distributor.ha-tracker.multi.mirror-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "max_recv_msg_size", + "required": false, + "desc": "remote_write API max receive message size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 104857600, + "fieldFlag": "distributor.max-recv-msg-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "remote_timeout", + "required": false, + "desc": "Timeout for downstream ingesters.", + "fieldValue": null, + "fieldDefaultValue": 20000000000, + "fieldFlag": "distributor.remote-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "extend_writes", + "required": false, + "desc": "Try writing to an additional ingester in the presence of an ingester not in the ACTIVE state. It is useful to disable this along with -ingester.ring.unregister-on-shutdown=false in order to not spread samples to extra ingesters during rolling restarts with consistent naming.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "distributor.extend-writes", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "ring", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "kvstore", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "store", + "required": false, + "desc": "Backend storage to use for the ring. Supported values are: consul, etcd, inmemory, memberlist, multi.", + "fieldValue": null, + "fieldDefaultValue": "memberlist", + "fieldFlag": "distributor.ring.store", + "fieldType": "string" + }, + { + "kind": "field", + "name": "prefix", + "required": false, + "desc": "The prefix for the keys in the store. Should end with a /.", + "fieldValue": null, + "fieldDefaultValue": "collectors/", + "fieldFlag": "distributor.ring.prefix", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "consul", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "host", + "required": false, + "desc": "Hostname and port of Consul.", + "fieldValue": null, + "fieldDefaultValue": "localhost:8500", + "fieldFlag": "distributor.ring.consul.hostname", + "fieldType": "string" + }, + { + "kind": "field", + "name": "acl_token", + "required": false, + "desc": "ACL Token used to interact with Consul.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ring.consul.acl-token", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "http_client_timeout", + "required": false, + "desc": "HTTP timeout when talking to Consul", + "fieldValue": null, + "fieldDefaultValue": 20000000000, + "fieldFlag": "distributor.ring.consul.client-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "consistent_reads", + "required": false, + "desc": "Enable consistent reads to Consul.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "distributor.ring.consul.consistent-reads", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "watch_rate_limit", + "required": false, + "desc": "Rate limit when watching key or prefix in Consul, in requests per second. 0 disables the rate limit.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "distributor.ring.consul.watch-rate-limit", + "fieldType": "float", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "watch_burst_size", + "required": false, + "desc": "Burst size used in rate limit. Values less than 1 are treated as 1.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "distributor.ring.consul.watch-burst-size", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "etcd", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoints", + "required": false, + "desc": "The etcd endpoints to connect to.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "distributor.ring.etcd.endpoints", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "dial_timeout", + "required": false, + "desc": "The dial timeout for the etcd connection.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "distributor.ring.etcd.dial-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "The maximum number of retries to do for failed ops.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "distributor.ring.etcd.max-retries", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "distributor.ring.etcd.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ring.etcd.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ring.etcd.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ring.etcd.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ring.etcd.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "distributor.ring.etcd.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "username", + "required": false, + "desc": "Etcd username.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ring.etcd.username", + "fieldType": "string" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "Etcd password.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ring.etcd.password", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "multi", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "primary", + "required": false, + "desc": "Primary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ring.multi.primary", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "secondary", + "required": false, + "desc": "Secondary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ring.multi.secondary", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "mirror_enabled", + "required": false, + "desc": "Mirror writes to secondary store.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "distributor.ring.multi.mirror-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "mirror_timeout", + "required": false, + "desc": "Timeout for storing value to secondary store.", + "fieldValue": null, + "fieldDefaultValue": 2000000000, + "fieldFlag": "distributor.ring.multi.mirror-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "heartbeat_period", + "required": false, + "desc": "Period at which to heartbeat to the ring. 0 = disabled.", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "distributor.ring.heartbeat-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "heartbeat_timeout", + "required": false, + "desc": "The heartbeat timeout after which distributors are considered unhealthy within the ring. 0 = never (timeout disabled).", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "distributor.ring.heartbeat-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_id", + "required": false, + "desc": "Instance ID to register in the ring.", + "fieldValue": null, + "fieldDefaultValue": "\u003chostname\u003e", + "fieldFlag": "distributor.ring.instance-id", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_interface_names", + "required": false, + "desc": "List of network interface names to look up when finding the instance IP address.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "distributor.ring.instance-interface-names", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "instance_port", + "required": false, + "desc": "Port to advertise in the ring (defaults to -server.grpc-listen-port).", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "distributor.ring.instance-port", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_addr", + "required": false, + "desc": "IP address to advertise in the ring. Default is auto-detected.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ring.instance-addr", + "fieldType": "string", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "instance_limits", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "max_ingestion_rate", + "required": false, + "desc": "Max ingestion rate (samples/sec) that this distributor will accept. This limit is per-distributor, not per-tenant. Additional push requests will be rejected. Current ingestion rate is computed as exponentially weighted moving average, updated every second. 0 = unlimited.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "distributor.instance-limits.max-ingestion-rate", + "fieldType": "float", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_inflight_push_requests", + "required": false, + "desc": "Max inflight push requests that this distributor can handle. This limit is per-distributor, not per-tenant. Additional requests will be rejected. 0 = unlimited.", + "fieldValue": null, + "fieldDefaultValue": 2000, + "fieldFlag": "distributor.instance-limits.max-inflight-push-requests", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "forwarding", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "enabled", + "required": false, + "desc": "Enables the feature to forward certain metrics in remote_write requests, depending on defined rules.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "distributor.forwarding.enabled", + "fieldType": "boolean", + "fieldCategory": "experimental" + }, + { + "kind": "field", + "name": "request_timeout", + "required": false, + "desc": "Timeout for requests to ingestion endpoints to which we forward metrics.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "distributor.forwarding.request-timeout", + "fieldType": "duration", + "fieldCategory": "experimental" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "querier", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "iterators", + "required": false, + "desc": "Use iterators to execute query, as opposed to fully materialising the series in memory.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "querier.iterators", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "batch_iterators", + "required": false, + "desc": "Use batch iterators to execute query, as opposed to fully materialising the series in memory. Takes precedent over the -querier.iterators flag.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "querier.batch-iterators", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "query_ingesters_within", + "required": false, + "desc": "Maximum lookback beyond which queries are not sent to ingester. 0 means all queries are sent to ingester.", + "fieldValue": null, + "fieldDefaultValue": 46800000000000, + "fieldFlag": "querier.query-ingesters-within", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "query_store_after", + "required": false, + "desc": "The time after which a metric should be queried from storage and not just ingesters. 0 means all queries are sent to store. If this option is enabled, the time range of the query sent to the store-gateway will be manipulated to ensure the query end is not more recent than 'now - query-store-after'.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "querier.query-store-after", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_query_into_future", + "required": false, + "desc": "Maximum duration into the future you can query. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 600000000000, + "fieldFlag": "querier.max-query-into-future", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "store_gateway_client", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS for gRPC client connecting to store-gateway.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "querier.store-gateway-client.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "querier.store-gateway-client.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "querier.store-gateway-client.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "querier.store-gateway-client.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "querier.store-gateway-client.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "querier.store-gateway-client.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "shuffle_sharding_ingesters_lookback_period", + "required": false, + "desc": "When distributor's sharding strategy is shuffle-sharding and this setting is \u003e 0, queriers fetch in-memory series from the minimum set of required ingesters, selecting only ingesters which may have received series since 'now - lookback period'. The lookback period should be greater or equal than the configured -querier.query-store-after and -querier.query-ingesters-within. If this setting is 0, queriers always query all ingesters (ingesters shuffle sharding on read path is disabled).", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "querier.shuffle-sharding-ingesters-lookback-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_concurrent", + "required": false, + "desc": "The maximum number of concurrent queries. This config option should be set on query-frontend too when query sharding is enabled.", + "fieldValue": null, + "fieldDefaultValue": 20, + "fieldFlag": "querier.max-concurrent", + "fieldType": "int" + }, + { + "kind": "field", + "name": "timeout", + "required": false, + "desc": "The timeout for a query. This config option should be set on query-frontend too when query sharding is enabled.", + "fieldValue": null, + "fieldDefaultValue": 120000000000, + "fieldFlag": "querier.timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_samples", + "required": false, + "desc": "Maximum number of samples a single query can load into memory. This config option should be set on query-frontend too when query sharding is enabled.", + "fieldValue": null, + "fieldDefaultValue": 50000000, + "fieldFlag": "querier.max-samples", + "fieldType": "int" + }, + { + "kind": "field", + "name": "default_evaluation_interval", + "required": false, + "desc": "The default evaluation interval or step size for subqueries. This config option should be set on query-frontend too when query sharding is enabled.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "querier.default-evaluation-interval", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "lookback_delta", + "required": false, + "desc": "Time since the last sample after which a time series is considered stale and ignored by expression evaluations. This config option should be set on query-frontend too when query sharding is enabled.", + "fieldValue": null, + "fieldDefaultValue": 300000000000, + "fieldFlag": "querier.lookback-delta", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "ingester_client", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "grpc_client_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "max_recv_msg_size", + "required": false, + "desc": "gRPC client max receive message size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 104857600, + "fieldFlag": "ingester.client.grpc-max-recv-msg-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_send_msg_size", + "required": false, + "desc": "gRPC client max send message size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 104857600, + "fieldFlag": "ingester.client.grpc-max-send-msg-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "grpc_compression", + "required": false, + "desc": "Use compression when sending messages. Supported values are: 'gzip', 'snappy' and '' (disable compression)", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.client.grpc-compression", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "rate_limit", + "required": false, + "desc": "Rate limit for gRPC client; 0 means disabled.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ingester.client.grpc-client-rate-limit", + "fieldType": "float", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "rate_limit_burst", + "required": false, + "desc": "Rate limit burst for gRPC client.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ingester.client.grpc-client-rate-limit-burst", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "backoff_on_ratelimits", + "required": false, + "desc": "Enable backoff and retry when we hit ratelimits.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ingester.client.backoff-on-ratelimits", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "backoff_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "min_period", + "required": false, + "desc": "Minimum delay when backing off.", + "fieldValue": null, + "fieldDefaultValue": 100000000, + "fieldFlag": "ingester.client.backoff-min-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_period", + "required": false, + "desc": "Maximum delay when backing off.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "ingester.client.backoff-max-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Number of times to backoff and retry before failing.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "ingester.client.backoff-retries", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ingester.client.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.client.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.client.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.client.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.client.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ingester.client.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "ingester", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "ring", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "kvstore", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "store", + "required": false, + "desc": "Backend storage to use for the ring. Supported values are: consul, etcd, inmemory, memberlist, multi.", + "fieldValue": null, + "fieldDefaultValue": "memberlist", + "fieldFlag": "ingester.ring.store", + "fieldType": "string" + }, + { + "kind": "field", + "name": "prefix", + "required": false, + "desc": "The prefix for the keys in the store. Should end with a /.", + "fieldValue": null, + "fieldDefaultValue": "collectors/", + "fieldFlag": "ingester.ring.prefix", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "consul", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "host", + "required": false, + "desc": "Hostname and port of Consul.", + "fieldValue": null, + "fieldDefaultValue": "localhost:8500", + "fieldFlag": "ingester.ring.consul.hostname", + "fieldType": "string" + }, + { + "kind": "field", + "name": "acl_token", + "required": false, + "desc": "ACL Token used to interact with Consul.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.ring.consul.acl-token", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "http_client_timeout", + "required": false, + "desc": "HTTP timeout when talking to Consul", + "fieldValue": null, + "fieldDefaultValue": 20000000000, + "fieldFlag": "ingester.ring.consul.client-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "consistent_reads", + "required": false, + "desc": "Enable consistent reads to Consul.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ingester.ring.consul.consistent-reads", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "watch_rate_limit", + "required": false, + "desc": "Rate limit when watching key or prefix in Consul, in requests per second. 0 disables the rate limit.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "ingester.ring.consul.watch-rate-limit", + "fieldType": "float", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "watch_burst_size", + "required": false, + "desc": "Burst size used in rate limit. Values less than 1 are treated as 1.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "ingester.ring.consul.watch-burst-size", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "etcd", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoints", + "required": false, + "desc": "The etcd endpoints to connect to.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "ingester.ring.etcd.endpoints", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "dial_timeout", + "required": false, + "desc": "The dial timeout for the etcd connection.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "ingester.ring.etcd.dial-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "The maximum number of retries to do for failed ops.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "ingester.ring.etcd.max-retries", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ingester.ring.etcd.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.ring.etcd.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.ring.etcd.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.ring.etcd.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.ring.etcd.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ingester.ring.etcd.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "username", + "required": false, + "desc": "Etcd username.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.ring.etcd.username", + "fieldType": "string" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "Etcd password.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.ring.etcd.password", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "multi", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "primary", + "required": false, + "desc": "Primary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.ring.multi.primary", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "secondary", + "required": false, + "desc": "Secondary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.ring.multi.secondary", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "mirror_enabled", + "required": false, + "desc": "Mirror writes to secondary store.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ingester.ring.multi.mirror-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "mirror_timeout", + "required": false, + "desc": "Timeout for storing value to secondary store.", + "fieldValue": null, + "fieldDefaultValue": 2000000000, + "fieldFlag": "ingester.ring.multi.mirror-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "heartbeat_period", + "required": false, + "desc": "Period at which to heartbeat to the ring. 0 = disabled.", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "ingester.ring.heartbeat-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "heartbeat_timeout", + "required": false, + "desc": "The heartbeat timeout after which ingesters are skipped for reads/writes. 0 = never (timeout disabled). This option needs be set on ingesters, distributors, queriers and rulers when running in microservices mode.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "ingester.ring.heartbeat-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "replication_factor", + "required": false, + "desc": "Number of ingesters that each time series is replicated to. This option needs be set on ingesters, distributors, queriers and rulers when running in microservices mode.", + "fieldValue": null, + "fieldDefaultValue": 3, + "fieldFlag": "ingester.ring.replication-factor", + "fieldType": "int" + }, + { + "kind": "field", + "name": "zone_awareness_enabled", + "required": false, + "desc": "True to enable the zone-awareness and replicate ingested samples across different availability zones. This option needs be set on ingesters, distributors, queriers and rulers when running in microservices mode.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ingester.ring.zone-awareness-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "excluded_zones", + "required": false, + "desc": "Comma-separated list of zones to exclude from the ring. Instances in excluded zones will be filtered out from the ring. This option needs be set on ingesters, distributors, queriers and rulers when running in microservices mode.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.ring.excluded-zones", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tokens_file_path", + "required": false, + "desc": "File path where tokens are stored. If empty, tokens are not stored at shutdown and restored at startup.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.ring.tokens-file-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "num_tokens", + "required": false, + "desc": "Number of tokens for each ingester.", + "fieldValue": null, + "fieldDefaultValue": 128, + "fieldFlag": "ingester.ring.num-tokens", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_id", + "required": false, + "desc": "Instance ID to register in the ring.", + "fieldValue": null, + "fieldDefaultValue": "\u003chostname\u003e", + "fieldFlag": "ingester.ring.instance-id", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_interface_names", + "required": false, + "desc": "List of network interface names to look up when finding the instance IP address.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "ingester.ring.instance-interface-names", + "fieldType": "list of string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_port", + "required": false, + "desc": "Port to advertise in the ring (defaults to -server.grpc-listen-port).", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ingester.ring.instance-port", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_addr", + "required": false, + "desc": "IP address to advertise in the ring. Default is auto-detected.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.ring.instance-addr", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_availability_zone", + "required": false, + "desc": "The availability zone where this instance is running.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.ring.instance-availability-zone", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "unregister_on_shutdown", + "required": false, + "desc": "Unregister from the ring upon clean shutdown. It can be useful to disable for rolling restarts with consistent naming in conjunction with -distributor.extend-writes=false.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "ingester.ring.unregister-on-shutdown", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "observe_period", + "required": false, + "desc": "Observe tokens after generating to resolve collisions. Useful when using gossiping ring.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ingester.ring.observe-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "join_after", + "required": false, + "desc": "Period to wait for a claim from another member; will join automatically after this.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ingester.ring.join-after", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "min_ready_duration", + "required": false, + "desc": "Minimum duration to wait after the internal readiness checks have passed but before succeeding the readiness endpoint. This is used to slowdown deployment controllers (eg. Kubernetes) after an instance is ready and before they proceed with a rolling update, to give the rest of the cluster instances enough time to receive ring updates.", + "fieldValue": null, + "fieldDefaultValue": 15000000000, + "fieldFlag": "ingester.ring.min-ready-duration", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "final_sleep", + "required": false, + "desc": "Duration to sleep for before exiting, to ensure metrics are scraped.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ingester.ring.final-sleep", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "readiness_check_ring_health", + "required": false, + "desc": "When enabled the readiness probe succeeds only after all instances are ACTIVE and healthy in the ring, otherwise only the instance itself is checked. This option should be disabled if in your cluster multiple instances can be rolled out simultaneously, otherwise rolling updates may be slowed down.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "ingester.ring.readiness-check-ring-health", + "fieldType": "boolean", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "metadata_retain_period", + "required": false, + "desc": "Period at which metadata we have not seen will remain in memory before being deleted.", + "fieldValue": null, + "fieldDefaultValue": 600000000000, + "fieldFlag": "ingester.metadata-retain-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "rate_update_period", + "required": false, + "desc": "Period with which to update the per-tenant ingestion rates.", + "fieldValue": null, + "fieldDefaultValue": 15000000000, + "fieldFlag": "ingester.rate-update-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "active_series_metrics_enabled", + "required": false, + "desc": "Enable tracking of active series and export them as metrics.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "ingester.active-series-metrics-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "active_series_metrics_update_period", + "required": false, + "desc": "How often to update active series metrics.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "ingester.active-series-metrics-update-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "active_series_metrics_idle_timeout", + "required": false, + "desc": "After what time a series is considered to be inactive.", + "fieldValue": null, + "fieldDefaultValue": 600000000000, + "fieldFlag": "ingester.active-series-metrics-idle-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "active_series_custom_trackers", + "required": false, + "desc": "Additional custom trackers for active metrics. If there are active series matching a provided matcher (map value), the count will be exposed in the custom trackers metric labeled using the tracker name (map key). Zero valued counts are not exposed (and removed when they go back to zero).", + "fieldValue": null, + "fieldDefaultValue": {}, + "fieldFlag": "ingester.active-series-custom-trackers", + "fieldType": "map of tracker name (string) to matcher (string)", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "exemplars_update_period", + "required": false, + "desc": "Period with which to update per-tenant max exemplar limit.", + "fieldValue": null, + "fieldDefaultValue": 15000000000, + "fieldFlag": "ingester.exemplars-update-period", + "fieldType": "duration", + "fieldCategory": "experimental" + }, + { + "kind": "block", + "name": "instance_limits", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "max_ingestion_rate", + "required": false, + "desc": "Max ingestion rate (samples/sec) that ingester will accept. This limit is per-ingester, not per-tenant. Additional push requests will be rejected. Current ingestion rate is computed as exponentially weighted moving average, updated every second. 0 = unlimited.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ingester.instance-limits.max-ingestion-rate", + "fieldType": "float", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_tenants", + "required": false, + "desc": "Max tenants that this ingester can hold. Requests from additional tenants will be rejected. 0 = unlimited.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ingester.instance-limits.max-tenants", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_series", + "required": false, + "desc": "Max series that this ingester can hold (across all tenants). Requests to create additional series will be rejected. 0 = unlimited.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ingester.instance-limits.max-series", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_inflight_push_requests", + "required": false, + "desc": "Max inflight push requests that this ingester can handle (across all tenants). Additional requests will be rejected. 0 = unlimited.", + "fieldValue": null, + "fieldDefaultValue": 30000, + "fieldFlag": "ingester.instance-limits.max-inflight-push-requests", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "ignore_series_limit_for_metric_names", + "required": false, + "desc": "Comma-separated list of metric names, for which the -ingester.max-global-series-per-metric limit will be ignored. Does not affect the -ingester.max-global-series-per-user limit.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.ignore-series-limit-for-metric-names", + "fieldType": "string", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "flusher", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "exit_after_flush", + "required": false, + "desc": "Stop after flush has finished. If false, process will keep running, doing nothing.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "flusher.exit-after-flush", + "fieldType": "boolean", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "limits", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "ingestion_rate", + "required": false, + "desc": "Per-tenant ingestion rate limit in samples per second.", + "fieldValue": null, + "fieldDefaultValue": 10000, + "fieldFlag": "distributor.ingestion-rate-limit", + "fieldType": "float" + }, + { + "kind": "field", + "name": "ingestion_burst_size", + "required": false, + "desc": "Per-tenant allowed ingestion burst size (in number of samples).", + "fieldValue": null, + "fieldDefaultValue": 200000, + "fieldFlag": "distributor.ingestion-burst-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "accept_ha_samples", + "required": false, + "desc": "Flag to enable, for all tenants, handling of samples with external labels identifying replicas in an HA Prometheus setup.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "distributor.ha-tracker.enable-for-all-users", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "ha_cluster_label", + "required": false, + "desc": "Prometheus label to look for in samples to identify a Prometheus HA cluster.", + "fieldValue": null, + "fieldDefaultValue": "cluster", + "fieldFlag": "distributor.ha-tracker.cluster", + "fieldType": "string" + }, + { + "kind": "field", + "name": "ha_replica_label", + "required": false, + "desc": "Prometheus label to look for in samples to identify a Prometheus HA replica.", + "fieldValue": null, + "fieldDefaultValue": "__replica__", + "fieldFlag": "distributor.ha-tracker.replica", + "fieldType": "string" + }, + { + "kind": "field", + "name": "ha_max_clusters", + "required": false, + "desc": "Maximum number of clusters that HA tracker will keep track of for a single tenant. 0 to disable the limit.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "distributor.ha-tracker.max-clusters", + "fieldType": "int" + }, + { + "kind": "field", + "name": "drop_labels", + "required": false, + "desc": "This flag can be used to specify label names that to drop during sample ingestion within the distributor and can be repeated in order to drop multiple labels.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "distributor.drop-label", + "fieldType": "list of string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_label_name_length", + "required": false, + "desc": "Maximum length accepted for label names", + "fieldValue": null, + "fieldDefaultValue": 1024, + "fieldFlag": "validation.max-length-label-name", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_label_value_length", + "required": false, + "desc": "Maximum length accepted for label value. This setting also applies to the metric name", + "fieldValue": null, + "fieldDefaultValue": 2048, + "fieldFlag": "validation.max-length-label-value", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_label_names_per_series", + "required": false, + "desc": "Maximum number of label names per series.", + "fieldValue": null, + "fieldDefaultValue": 30, + "fieldFlag": "validation.max-label-names-per-series", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_metadata_length", + "required": false, + "desc": "Maximum length accepted for metric metadata. Metadata refers to Metric Name, HELP and UNIT.", + "fieldValue": null, + "fieldDefaultValue": 1024, + "fieldFlag": "validation.max-metadata-length", + "fieldType": "int" + }, + { + "kind": "field", + "name": "creation_grace_period", + "required": false, + "desc": "Controls how far into the future incoming samples are accepted compared to the wall clock. Any sample with timestamp `t` will be rejected if `t \u003e (now + validation.create-grace-period)`.", + "fieldValue": null, + "fieldDefaultValue": 600000000000, + "fieldFlag": "validation.create-grace-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "enforce_metadata_metric_name", + "required": false, + "desc": "Enforce every metadata has a metric name.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "validation.enforce-metadata-metric-name", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "ingestion_tenant_shard_size", + "required": false, + "desc": "The tenant's shard size used by shuffle-sharding. Must be set both on ingesters and distributors. 0 disables shuffle sharding.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "distributor.ingestion-tenant-shard-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "metric_relabel_configs", + "required": false, + "desc": "List of metric relabel configurations. Note that in most situations, it is more effective to use metrics relabeling directly in the Prometheus server, e.g. remote_write.write_relabel_configs.", + "fieldValue": null, + "fieldDefaultValue": null, + "fieldType": "relabel_config...", + "fieldCategory": "experimental" + }, + { + "kind": "field", + "name": "max_global_series_per_user", + "required": false, + "desc": "The maximum number of active series per tenant, across the cluster before replication. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 150000, + "fieldFlag": "ingester.max-global-series-per-user", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_global_series_per_metric", + "required": false, + "desc": "The maximum number of active series per metric name, across the cluster before replication. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 20000, + "fieldFlag": "ingester.max-global-series-per-metric", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_global_metadata_per_user", + "required": false, + "desc": "The maximum number of active metrics with metadata per tenant, across the cluster. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ingester.max-global-metadata-per-user", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_global_metadata_per_metric", + "required": false, + "desc": "The maximum number of metadata per metric, across the cluster. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ingester.max-global-metadata-per-metric", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_global_exemplars_per_user", + "required": false, + "desc": "The maximum number of exemplars in memory, across the cluster. 0 to disable exemplars ingestion.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ingester.max-global-exemplars-per-user", + "fieldType": "int", + "fieldCategory": "experimental" + }, + { + "kind": "field", + "name": "max_fetched_chunks_per_query", + "required": false, + "desc": "Maximum number of chunks that can be fetched in a single query from ingesters and long-term storage. This limit is enforced in the querier, ruler and store-gateway. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 2000000, + "fieldFlag": "querier.max-fetched-chunks-per-query", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_fetched_series_per_query", + "required": false, + "desc": "The maximum number of unique series for which a query can fetch samples from each ingesters and storage. This limit is enforced in the querier and ruler. 0 to disable", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "querier.max-fetched-series-per-query", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_fetched_chunk_bytes_per_query", + "required": false, + "desc": "The maximum size of all chunks in bytes that a query can fetch from each ingester and storage. This limit is enforced in the querier and ruler. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "querier.max-fetched-chunk-bytes-per-query", + "fieldType": "int" + }, + { + "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.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "querier.max-query-lookback", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_query_length", + "required": false, + "desc": "Limit the query time range (end - start time). This limit is enforced in the query-frontend (on the received query), in the querier (on the query possibly split by the query-frontend) and ruler. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store.max-query-length", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_query_parallelism", + "required": false, + "desc": "Maximum number of split (by time) or partial (by shard) queries that will be scheduled in parallel by the query-frontend for a single input query. This limit is introduced to have a fairer query scheduling and avoid a single query over a large time range saturating all available queriers.", + "fieldValue": null, + "fieldDefaultValue": 14, + "fieldFlag": "querier.max-query-parallelism", + "fieldType": "int" + }, + { + "kind": "field", + "name": "max_labels_query_length", + "required": false, + "desc": "Limit the time range (end - start time) of series, label names and values queries. This limit is enforced in the querier. 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": "store.max-labels-query-length", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_cache_freshness", + "required": false, + "desc": "Most recent allowed cacheable result per-tenant, to prevent caching very recent results that might still be in flux.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "query-frontend.max-cache-freshness", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_queriers_per_tenant", + "required": false, + "desc": "Maximum number of queriers that can handle requests for a single tenant. If set to 0 or value higher than number of available queriers, *all* queriers will handle requests for the tenant. Each frontend (or query-scheduler, if used) will select the same set of queriers for the same tenant (given that all queriers are connected to all frontends / query-schedulers). This option only works with queriers connecting to the query-frontend / query-scheduler, not when using downstream URL.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "query-frontend.max-queriers-per-tenant", + "fieldType": "int" + }, + { + "kind": "field", + "name": "query_sharding_total_shards", + "required": false, + "desc": "The amount of shards to use when doing parallelisation via query sharding by tenant. 0 to disable query sharding for tenant. Query sharding implementation will adjust the number of query shards based on compactor shards. This allows querier to not search the blocks which cannot possibly have the series for given query shard.", + "fieldValue": null, + "fieldDefaultValue": 16, + "fieldFlag": "query-frontend.query-sharding-total-shards", + "fieldType": "int" + }, + { + "kind": "field", + "name": "query_sharding_max_sharded_queries", + "required": false, + "desc": "The max number of sharded queries that can be run for a given received query. 0 to disable limit.", + "fieldValue": null, + "fieldDefaultValue": 128, + "fieldFlag": "query-frontend.query-sharding-max-sharded-queries", + "fieldType": "int" + }, + { + "kind": "field", + "name": "cardinality_analysis_enabled", + "required": false, + "desc": "Enables endpoints used for cardinality analysis.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "querier.cardinality-analysis-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "label_names_and_values_results_max_size_bytes", + "required": false, + "desc": "Maximum size in bytes of distinct label names and values. When querier receives response from ingester, it merges the response with responses from other ingesters. This maximum size limit is applied to the merged(distinct) results. If the limit is reached, an error is returned.", + "fieldValue": null, + "fieldDefaultValue": 419430400, + "fieldFlag": "querier.label-names-and-values-results-max-size-bytes", + "fieldType": "int" + }, + { + "kind": "field", + "name": "label_values_max_cardinality_label_names_per_request", + "required": false, + "desc": "Maximum number of label names allowed to be queried in a single /api/v1/cardinality/label_values API call.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "querier.label-values-max-cardinality-label-names-per-request", + "fieldType": "int" + }, + { + "kind": "field", + "name": "ruler_evaluation_delay_duration", + "required": false, + "desc": "Duration to delay the evaluation of rules to ensure the underlying metrics have been pushed.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ruler.evaluation-delay-duration", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "ruler_tenant_shard_size", + "required": false, + "desc": "The tenant's shard size when sharding is used by ruler. Value of 0 disables shuffle sharding for the tenant, and tenant rules will be sharded across all ruler replicas.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ruler.tenant-shard-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "ruler_max_rules_per_rule_group", + "required": false, + "desc": "Maximum number of rules per rule group per-tenant. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 20, + "fieldFlag": "ruler.max-rules-per-rule-group", + "fieldType": "int" + }, + { + "kind": "field", + "name": "ruler_max_rule_groups_per_tenant", + "required": false, + "desc": "Maximum number of rule groups per-tenant. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 70, + "fieldFlag": "ruler.max-rule-groups-per-tenant", + "fieldType": "int" + }, + { + "kind": "field", + "name": "store_gateway_tenant_shard_size", + "required": false, + "desc": "The tenant's shard size, used when store-gateway sharding is enabled. Value of 0 disables shuffle sharding for the tenant, that is all tenant blocks are sharded across all store-gateway replicas.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store-gateway.tenant-shard-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "compactor_blocks_retention_period", + "required": false, + "desc": "Delete blocks containing samples older than the specified retention period. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "compactor.blocks-retention-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "compactor_split_and_merge_shards", + "required": false, + "desc": "The number of shards to use when splitting blocks. 0 to disable splitting.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "compactor.split-and-merge-shards", + "fieldType": "int" + }, + { + "kind": "field", + "name": "compactor_split_groups", + "required": false, + "desc": "Number of groups that blocks for splitting should be grouped into. Each group of blocks is then split separately. Number of output split shards is controlled by -compactor.split-and-merge-shards.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "compactor.split-groups", + "fieldType": "int" + }, + { + "kind": "field", + "name": "compactor_tenant_shard_size", + "required": false, + "desc": "Max number of compactors that can compact blocks for single tenant. 0 to disable the limit and use all compactors.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "compactor.compactor-tenant-shard-size", + "fieldType": "int" + }, + { + "kind": "field", + "name": "s3_sse_type", + "required": false, + "desc": "S3 server-side encryption type. Required to enable server-side encryption overrides for a specific tenant. If not set, the default S3 client settings are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldType": "string" + }, + { + "kind": "field", + "name": "s3_sse_kms_key_id", + "required": false, + "desc": "S3 server-side encryption KMS Key ID. Ignored if the SSE type override is not set.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldType": "string" + }, + { + "kind": "field", + "name": "s3_sse_kms_encryption_context", + "required": false, + "desc": "S3 server-side encryption KMS encryption context. If unset and the key ID override is set, the encryption context will not be provided to S3. Ignored if the SSE type override is not set.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldType": "string" + }, + { + "kind": "field", + "name": "alertmanager_receivers_firewall_block_cidr_networks", + "required": false, + "desc": "Comma-separated list of network CIDRs to block in Alertmanager receiver integrations.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.receivers-firewall-block-cidr-networks", + "fieldType": "string" + }, + { + "kind": "field", + "name": "alertmanager_receivers_firewall_block_private_addresses", + "required": false, + "desc": "True to block private and local addresses in Alertmanager receiver integrations. It blocks private addresses defined by RFC 1918 (IPv4 addresses) and RFC 4193 (IPv6 addresses), as well as loopback, local unicast and local multicast addresses.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "alertmanager.receivers-firewall-block-private-addresses", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "alertmanager_notification_rate_limit", + "required": false, + "desc": "Per-tenant rate limit for sending notifications from Alertmanager in notifications/sec. 0 = rate limit disabled. Negative value = no notifications are allowed.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "alertmanager.notification-rate-limit", + "fieldType": "float" + }, + { + "kind": "field", + "name": "alertmanager_notification_rate_limit_per_integration", + "required": false, + "desc": "Per-integration notification rate limits. Value is a map, where each key is integration name and value is a rate-limit (float). On command line, this map is given in JSON format. Rate limit has the same meaning as -alertmanager.notification-rate-limit, but only applies for specific integration. Allowed integration names: webhook, email, pagerduty, opsgenie, wechat, slack, victorops, pushover, sns.", + "fieldValue": null, + "fieldDefaultValue": {}, + "fieldFlag": "alertmanager.notification-rate-limit-per-integration", + "fieldType": "map of string to float64" + }, + { + "kind": "field", + "name": "alertmanager_max_config_size_bytes", + "required": false, + "desc": "Maximum size of configuration file for Alertmanager that tenant can upload via Alertmanager API. 0 = no limit.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "alertmanager.max-config-size-bytes", + "fieldType": "int" + }, + { + "kind": "field", + "name": "alertmanager_max_templates_count", + "required": false, + "desc": "Maximum number of templates in tenant's Alertmanager configuration uploaded via Alertmanager API. 0 = no limit.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "alertmanager.max-templates-count", + "fieldType": "int" + }, + { + "kind": "field", + "name": "alertmanager_max_template_size_bytes", + "required": false, + "desc": "Maximum size of single template in tenant's Alertmanager configuration uploaded via Alertmanager API. 0 = no limit.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "alertmanager.max-template-size-bytes", + "fieldType": "int" + }, + { + "kind": "field", + "name": "alertmanager_max_dispatcher_aggregation_groups", + "required": false, + "desc": "Maximum number of aggregation groups in Alertmanager's dispatcher that a tenant can have. Each active aggregation group uses single goroutine. When the limit is reached, dispatcher will not dispatch alerts that belong to additional aggregation groups, but existing groups will keep working properly. 0 = no limit.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "alertmanager.max-dispatcher-aggregation-groups", + "fieldType": "int" + }, + { + "kind": "field", + "name": "alertmanager_max_alerts_count", + "required": false, + "desc": "Maximum number of alerts that a single tenant can have. Inserting more alerts will fail with a log message and metric increment. 0 = no limit.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "alertmanager.max-alerts-count", + "fieldType": "int" + }, + { + "kind": "field", + "name": "alertmanager_max_alerts_size_bytes", + "required": false, + "desc": "Maximum total size of alerts that a single tenant can have, alert size is the sum of the bytes of its labels, annotations and generatorURL. Inserting more alerts will fail with a log message and metric increment. 0 = no limit.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "alertmanager.max-alerts-size-bytes", + "fieldType": "int" + }, + { + "kind": "field", + "name": "forwarding_rules", + "required": false, + "desc": "Rules based on which the Distributor decides whether a metric should be forwarded to an alternative remote_write API endpoint.", + "fieldValue": null, + "fieldDefaultValue": {}, + "fieldType": "map of string to validation.ForwardingRule" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "frontend_worker", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "frontend_address", + "required": false, + "desc": "Address of the query-frontend component, in host:port format. Only one of -querier.frontend-address or -querier.scheduler-address can be set. If neither is set, queries are only received via HTTP endpoint.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "querier.frontend-address", + "fieldType": "string" + }, + { + "kind": "field", + "name": "scheduler_address", + "required": false, + "desc": "Address of the query-scheduler component, in host:port format. Only one of -querier.frontend-address or -querier.scheduler-address can be set. If neither is set, queries are only received via HTTP endpoint.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "querier.scheduler-address", + "fieldType": "string" + }, + { + "kind": "field", + "name": "dns_lookup_duration", + "required": false, + "desc": "How often to query DNS for query-frontend or query-scheduler address.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "querier.dns-lookup-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "id", + "required": false, + "desc": "Querier ID, sent to the query-frontend to identify requests from the same querier. Defaults to hostname.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "querier.id", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "grpc_client_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "max_recv_msg_size", + "required": false, + "desc": "gRPC client max receive message size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 104857600, + "fieldFlag": "querier.frontend-client.grpc-max-recv-msg-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_send_msg_size", + "required": false, + "desc": "gRPC client max send message size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 104857600, + "fieldFlag": "querier.frontend-client.grpc-max-send-msg-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "grpc_compression", + "required": false, + "desc": "Use compression when sending messages. Supported values are: 'gzip', 'snappy' and '' (disable compression)", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "querier.frontend-client.grpc-compression", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "rate_limit", + "required": false, + "desc": "Rate limit for gRPC client; 0 means disabled.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "querier.frontend-client.grpc-client-rate-limit", + "fieldType": "float", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "rate_limit_burst", + "required": false, + "desc": "Rate limit burst for gRPC client.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "querier.frontend-client.grpc-client-rate-limit-burst", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "backoff_on_ratelimits", + "required": false, + "desc": "Enable backoff and retry when we hit ratelimits.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "querier.frontend-client.backoff-on-ratelimits", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "backoff_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "min_period", + "required": false, + "desc": "Minimum delay when backing off.", + "fieldValue": null, + "fieldDefaultValue": 100000000, + "fieldFlag": "querier.frontend-client.backoff-min-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_period", + "required": false, + "desc": "Maximum delay when backing off.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "querier.frontend-client.backoff-max-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Number of times to backoff and retry before failing.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "querier.frontend-client.backoff-retries", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "querier.frontend-client.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "querier.frontend-client.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "querier.frontend-client.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "querier.frontend-client.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "querier.frontend-client.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "querier.frontend-client.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "frontend", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "log_queries_longer_than", + "required": false, + "desc": "Log queries that are slower than the specified duration. Set to 0 to disable. Set to \u003c 0 to enable on all queries.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "query-frontend.log-queries-longer-than", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_body_size", + "required": false, + "desc": "Max body size for downstream prometheus.", + "fieldValue": null, + "fieldDefaultValue": 10485760, + "fieldFlag": "query-frontend.max-body-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "query_stats_enabled", + "required": false, + "desc": "False to disable query statistics tracking. When enabled, a message with some statistics is logged for every query.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "query-frontend.query-stats-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_outstanding_per_tenant", + "required": false, + "desc": "Maximum number of outstanding requests per tenant per frontend; requests beyond this error with HTTP 429.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "querier.max-outstanding-requests-per-tenant", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "querier_forget_delay", + "required": false, + "desc": "If a querier disconnects without sending notification about graceful shutdown, the query-frontend will keep the querier in the tenant's shard until the forget delay has passed. This feature is useful to reduce the blast radius when shuffle-sharding is enabled.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "query-frontend.querier-forget-delay", + "fieldType": "duration", + "fieldCategory": "experimental" + }, + { + "kind": "field", + "name": "scheduler_address", + "required": false, + "desc": "DNS hostname used for finding query-schedulers.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "query-frontend.scheduler-address", + "fieldType": "string" + }, + { + "kind": "field", + "name": "scheduler_dns_lookup_period", + "required": false, + "desc": "How often to resolve the scheduler-address, in order to look for new query-scheduler instances.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "query-frontend.scheduler-dns-lookup-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "scheduler_worker_concurrency", + "required": false, + "desc": "Number of concurrent workers forwarding queries to single query-scheduler.", + "fieldValue": null, + "fieldDefaultValue": 5, + "fieldFlag": "query-frontend.scheduler-worker-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "grpc_client_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "max_recv_msg_size", + "required": false, + "desc": "gRPC client max receive message size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 104857600, + "fieldFlag": "query-frontend.grpc-client-config.grpc-max-recv-msg-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_send_msg_size", + "required": false, + "desc": "gRPC client max send message size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 104857600, + "fieldFlag": "query-frontend.grpc-client-config.grpc-max-send-msg-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "grpc_compression", + "required": false, + "desc": "Use compression when sending messages. Supported values are: 'gzip', 'snappy' and '' (disable compression)", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "query-frontend.grpc-client-config.grpc-compression", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "rate_limit", + "required": false, + "desc": "Rate limit for gRPC client; 0 means disabled.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "query-frontend.grpc-client-config.grpc-client-rate-limit", + "fieldType": "float", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "rate_limit_burst", + "required": false, + "desc": "Rate limit burst for gRPC client.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "query-frontend.grpc-client-config.grpc-client-rate-limit-burst", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "backoff_on_ratelimits", + "required": false, + "desc": "Enable backoff and retry when we hit ratelimits.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "query-frontend.grpc-client-config.backoff-on-ratelimits", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "backoff_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "min_period", + "required": false, + "desc": "Minimum delay when backing off.", + "fieldValue": null, + "fieldDefaultValue": 100000000, + "fieldFlag": "query-frontend.grpc-client-config.backoff-min-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_period", + "required": false, + "desc": "Maximum delay when backing off.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "query-frontend.grpc-client-config.backoff-max-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Number of times to backoff and retry before failing.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "query-frontend.grpc-client-config.backoff-retries", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "query-frontend.grpc-client-config.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "query-frontend.grpc-client-config.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "query-frontend.grpc-client-config.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "query-frontend.grpc-client-config.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "query-frontend.grpc-client-config.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "query-frontend.grpc-client-config.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "instance_interface_names", + "required": false, + "desc": "List of network interface names to look up when finding the instance IP address. This address is sent to query-scheduler and querier, which uses it to send the query response back to query-frontend.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "query-frontend.instance-interface-names", + "fieldType": "list of string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "address", + "required": false, + "desc": "IP address to advertise to the querier (via scheduler) (default is auto-detected from network interfaces).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "query-frontend.instance-addr", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "port", + "required": false, + "desc": "Port to advertise to querier (via scheduler) (defaults to server.grpc-listen-port).", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "query-frontend.instance-port", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "split_queries_by_interval", + "required": false, + "desc": "Split queries by an interval and execute in parallel. You should use a multiple of 24 hours to optimize querying blocks. 0 to disable it.", + "fieldValue": null, + "fieldDefaultValue": 86400000000000, + "fieldFlag": "query-frontend.split-queries-by-interval", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "align_queries_with_step", + "required": false, + "desc": "Mutate incoming queries to align their start and end with their step.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "query-frontend.align-querier-with-step", + "fieldType": "boolean" + }, + { + "kind": "block", + "name": "results_cache", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "backend", + "required": false, + "desc": "Backend for query-frontend results cache, if not empty. Supported values: [memcached].", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "query-frontend.results-cache.backend", + "fieldType": "string" + }, + { + "kind": "block", + "name": "memcached", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "addresses", + "required": false, + "desc": "Comma separated list of memcached addresses. Supported prefixes are: dns+ (looked up as an A/AAAA query), dnssrv+ (looked up as a SRV query, dnssrvnoa+ (looked up as a SRV query, with no A/AAAA lookup made after that).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "query-frontend.results-cache.memcached.addresses", + "fieldType": "string" + }, + { + "kind": "field", + "name": "timeout", + "required": false, + "desc": "The socket read/write timeout.", + "fieldValue": null, + "fieldDefaultValue": 200000000, + "fieldFlag": "query-frontend.results-cache.memcached.timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_idle_connections", + "required": false, + "desc": "The maximum number of idle connections that will be maintained per address.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "query-frontend.results-cache.memcached.max-idle-connections", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_async_concurrency", + "required": false, + "desc": "The maximum number of concurrent asynchronous operations can occur.", + "fieldValue": null, + "fieldDefaultValue": 50, + "fieldFlag": "query-frontend.results-cache.memcached.max-async-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_async_buffer_size", + "required": false, + "desc": "The maximum number of enqueued asynchronous operations allowed.", + "fieldValue": null, + "fieldDefaultValue": 25000, + "fieldFlag": "query-frontend.results-cache.memcached.max-async-buffer-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_get_multi_concurrency", + "required": false, + "desc": "The maximum number of concurrent connections running get operations. If set to 0, concurrency is unlimited.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "query-frontend.results-cache.memcached.max-get-multi-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_get_multi_batch_size", + "required": false, + "desc": "The maximum number of keys a single underlying get operation should run. If more keys are specified, internally keys are split into multiple batches and fetched concurrently, honoring the max concurrency. If set to 0, the max batch size is unlimited.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "query-frontend.results-cache.memcached.max-get-multi-batch-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_item_size", + "required": false, + "desc": "The maximum size of an item stored in memcached. Bigger items are not stored. If set to 0, no maximum size is enforced.", + "fieldValue": null, + "fieldDefaultValue": 1048576, + "fieldFlag": "query-frontend.results-cache.memcached.max-item-size", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "compression", + "required": false, + "desc": "Enable cache compression, if not empty. Supported values are: snappy.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "query-frontend.results-cache.compression", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "cache_results", + "required": false, + "desc": "Cache query results.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "query-frontend.cache-results", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Maximum number of retries for a single request; beyond this, the downstream error is returned.", + "fieldValue": null, + "fieldDefaultValue": 5, + "fieldFlag": "query-frontend.max-retries-per-request", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "parallelize_shardable_queries", + "required": false, + "desc": "True to enable query sharding.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "query-frontend.parallelize-shardable-queries", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "cache_unaligned_requests", + "required": false, + "desc": "Cache requests that are not step-aligned.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "query-frontend.cache-unaligned-requests", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "downstream_url", + "required": false, + "desc": "URL of downstream Prometheus.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "query-frontend.downstream-url", + "fieldType": "string", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "blocks_storage", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "backend", + "required": false, + "desc": "Backend storage to use. Supported backends are: s3, gcs, azure, swift, filesystem.", + "fieldValue": null, + "fieldDefaultValue": "filesystem", + "fieldFlag": "blocks-storage.backend", + "fieldType": "string" + }, + { + "kind": "block", + "name": "s3", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoint", + "required": false, + "desc": "The S3 bucket endpoint. It could be an AWS S3 endpoint listed at https://docs.aws.amazon.com/general/latest/gr/s3.html or the address of an S3-compatible service in hostname:port format.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.s3.endpoint", + "fieldType": "string" + }, + { + "kind": "field", + "name": "region", + "required": false, + "desc": "S3 region. If unset, the client will issue a S3 GetBucketLocation API call to autodetect it.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.s3.region", + "fieldType": "string" + }, + { + "kind": "field", + "name": "bucket_name", + "required": false, + "desc": "S3 bucket name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.s3.bucket-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "secret_access_key", + "required": false, + "desc": "S3 secret access key", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.s3.secret-access-key", + "fieldType": "string" + }, + { + "kind": "field", + "name": "access_key_id", + "required": false, + "desc": "S3 access key ID", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.s3.access-key-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "insecure", + "required": false, + "desc": "If enabled, use http:// for the S3 endpoint instead of https://. This could be useful in local dev/test environments while using an S3-compatible backend storage, like Minio.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "blocks-storage.s3.insecure", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "signature_version", + "required": false, + "desc": "The signature version to use for authenticating against S3. Supported values are: v4, v2.", + "fieldValue": null, + "fieldDefaultValue": "v4", + "fieldFlag": "blocks-storage.s3.signature-version", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "sse", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "type", + "required": false, + "desc": "Enable AWS Server Side Encryption. Supported values: SSE-KMS, SSE-S3.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.s3.sse.type", + "fieldType": "string" + }, + { + "kind": "field", + "name": "kms_key_id", + "required": false, + "desc": "KMS Key ID used to encrypt objects in S3", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.s3.sse.kms-key-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "kms_encryption_context", + "required": false, + "desc": "KMS Encryption Context used for object encryption. It expects JSON formatted string.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.s3.sse.kms-encryption-context", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "http", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "idle_conn_timeout", + "required": false, + "desc": "The time an idle connection will remain idle before closing.", + "fieldValue": null, + "fieldDefaultValue": 90000000000, + "fieldFlag": "blocks-storage.s3.http.idle-conn-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "response_header_timeout", + "required": false, + "desc": "The amount of time the client will wait for a servers response headers.", + "fieldValue": null, + "fieldDefaultValue": 120000000000, + "fieldFlag": "blocks-storage.s3.http.response-header-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "insecure_skip_verify", + "required": false, + "desc": "If the client connects to S3 via HTTPS and this option is enabled, the client will accept any certificate and hostname.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "blocks-storage.s3.http.insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_handshake_timeout", + "required": false, + "desc": "Maximum time to wait for a TLS handshake. 0 means no limit.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "blocks-storage.s3.tls-handshake-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "expect_continue_timeout", + "required": false, + "desc": "The time to wait for a server's first response headers after fully writing the request headers if the request has an Expect header. 0 to send the request body immediately.", + "fieldValue": null, + "fieldDefaultValue": 1000000000, + "fieldFlag": "blocks-storage.s3.expect-continue-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_idle_connections", + "required": false, + "desc": "Maximum number of idle (keep-alive) connections across all hosts. 0 means no limit.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "blocks-storage.s3.max-idle-connections", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_idle_connections_per_host", + "required": false, + "desc": "Maximum number of idle (keep-alive) connections to keep per-host. If 0, a built-in default value is used.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "blocks-storage.s3.max-idle-connections-per-host", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_connections_per_host", + "required": false, + "desc": "Maximum number of connections per host. 0 means no limit.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "blocks-storage.s3.max-connections-per-host", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "gcs", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "bucket_name", + "required": false, + "desc": "GCS bucket name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.gcs.bucket-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "service_account", + "required": false, + "desc": "JSON representing either a Google Developers Console client_credentials.json file or a Google Developers service account key file. If empty, fallback to Google default logic.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.gcs.service-account", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "azure", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "account_name", + "required": false, + "desc": "Azure storage account name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.azure.account-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "account_key", + "required": false, + "desc": "Azure storage account key", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.azure.account-key", + "fieldType": "string" + }, + { + "kind": "field", + "name": "container_name", + "required": false, + "desc": "Azure storage container name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.azure.container-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "endpoint_suffix", + "required": false, + "desc": "Azure storage endpoint suffix without schema. The account name will be prefixed to this value to create the FQDN. If set to empty string, default endpoint suffix is used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.azure.endpoint-suffix", + "fieldType": "string" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Number of retries for recoverable errors", + "fieldValue": null, + "fieldDefaultValue": 20, + "fieldFlag": "blocks-storage.azure.max-retries", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "msi_resource", + "required": false, + "desc": "If set, this URL is used instead of https://\u003cstorage-account-name\u003e.\u003cendpoint-suffix\u003e for obtaining ServicePrincipalToken from MSI.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.azure.msi-resource", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "user_assigned_id", + "required": false, + "desc": "User assigned identity. If empty, then System assigned identity is used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.azure.user-assigned-id", + "fieldType": "string", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "swift", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "auth_version", + "required": false, + "desc": "OpenStack Swift authentication API version. 0 to autodetect.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "blocks-storage.swift.auth-version", + "fieldType": "int" + }, + { + "kind": "field", + "name": "auth_url", + "required": false, + "desc": "OpenStack Swift authentication URL", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.auth-url", + "fieldType": "string" + }, + { + "kind": "field", + "name": "username", + "required": false, + "desc": "OpenStack Swift username.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.username", + "fieldType": "string" + }, + { + "kind": "field", + "name": "user_domain_name", + "required": false, + "desc": "OpenStack Swift user's domain name.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.user-domain-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "user_domain_id", + "required": false, + "desc": "OpenStack Swift user's domain ID.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.user-domain-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "user_id", + "required": false, + "desc": "OpenStack Swift user ID.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.user-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "OpenStack Swift API key.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.password", + "fieldType": "string" + }, + { + "kind": "field", + "name": "domain_id", + "required": false, + "desc": "OpenStack Swift user's domain ID.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.domain-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "domain_name", + "required": false, + "desc": "OpenStack Swift user's domain name.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.domain-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_id", + "required": false, + "desc": "OpenStack Swift project ID (v2,v3 auth only).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.project-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_name", + "required": false, + "desc": "OpenStack Swift project name (v2,v3 auth only).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.project-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_domain_id", + "required": false, + "desc": "ID of the OpenStack Swift project's domain (v3 auth only), only needed if it differs the from user domain.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.project-domain-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_domain_name", + "required": false, + "desc": "Name of the OpenStack Swift project's domain (v3 auth only), only needed if it differs from the user domain.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.project-domain-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "region_name", + "required": false, + "desc": "OpenStack Swift Region to use (v2,v3 auth only).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.region-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "container_name", + "required": false, + "desc": "Name of the OpenStack Swift container to put chunks in.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.swift.container-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Max retries on requests error.", + "fieldValue": null, + "fieldDefaultValue": 3, + "fieldFlag": "blocks-storage.swift.max-retries", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "connect_timeout", + "required": false, + "desc": "Time after which a connection attempt is aborted.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "blocks-storage.swift.connect-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "request_timeout", + "required": false, + "desc": "Time after which an idle request is aborted. The timeout watchdog is reset each time some data is received, so the timeout triggers after X time no data is received on a request.", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "blocks-storage.swift.request-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "filesystem", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "dir", + "required": false, + "desc": "Local filesystem storage directory.", + "fieldValue": null, + "fieldDefaultValue": "blocks", + "fieldFlag": "blocks-storage.filesystem.dir", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "bucket_store", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "sync_dir", + "required": false, + "desc": "Directory to store synchronized TSDB index headers. This directory is not required to be persisted between restarts, but it's highly recommended in order to improve the store-gateway startup time.", + "fieldValue": null, + "fieldDefaultValue": "./tsdb-sync/", + "fieldFlag": "blocks-storage.bucket-store.sync-dir", + "fieldType": "string" + }, + { + "kind": "field", + "name": "sync_interval", + "required": false, + "desc": "How frequently to scan the bucket, or to refresh the bucket index (if enabled), in order to look for changes (new blocks shipped by ingesters and blocks deleted by retention or compaction).", + "fieldValue": null, + "fieldDefaultValue": 900000000000, + "fieldFlag": "blocks-storage.bucket-store.sync-interval", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_concurrent", + "required": false, + "desc": "Max number of concurrent queries to execute against the long-term storage. The limit is shared across all tenants.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "blocks-storage.bucket-store.max-concurrent", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tenant_sync_concurrency", + "required": false, + "desc": "Maximum number of concurrent tenants synching blocks.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "blocks-storage.bucket-store.tenant-sync-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "block_sync_concurrency", + "required": false, + "desc": "Maximum number of concurrent blocks synching per tenant.", + "fieldValue": null, + "fieldDefaultValue": 20, + "fieldFlag": "blocks-storage.bucket-store.block-sync-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "meta_sync_concurrency", + "required": false, + "desc": "Number of Go routines to use when syncing block meta files from object storage per tenant.", + "fieldValue": null, + "fieldDefaultValue": 20, + "fieldFlag": "blocks-storage.bucket-store.meta-sync-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "consistency_delay", + "required": false, + "desc": "Minimum age of a block before it's being read. Set it to safe value (e.g 30m) if your object storage is eventually consistent. GCS and S3 are (roughly) strongly consistent.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "blocks-storage.bucket-store.consistency-delay", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "index_cache", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "backend", + "required": false, + "desc": "The index cache backend type. Supported values: inmemory, memcached.", + "fieldValue": null, + "fieldDefaultValue": "inmemory", + "fieldFlag": "blocks-storage.bucket-store.index-cache.backend", + "fieldType": "string" + }, + { + "kind": "block", + "name": "memcached", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "addresses", + "required": false, + "desc": "Comma separated list of memcached addresses. Supported prefixes are: dns+ (looked up as an A/AAAA query), dnssrv+ (looked up as a SRV query, dnssrvnoa+ (looked up as a SRV query, with no A/AAAA lookup made after that).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.bucket-store.index-cache.memcached.addresses", + "fieldType": "string" + }, + { + "kind": "field", + "name": "timeout", + "required": false, + "desc": "The socket read/write timeout.", + "fieldValue": null, + "fieldDefaultValue": 200000000, + "fieldFlag": "blocks-storage.bucket-store.index-cache.memcached.timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_idle_connections", + "required": false, + "desc": "The maximum number of idle connections that will be maintained per address.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "blocks-storage.bucket-store.index-cache.memcached.max-idle-connections", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_async_concurrency", + "required": false, + "desc": "The maximum number of concurrent asynchronous operations can occur.", + "fieldValue": null, + "fieldDefaultValue": 50, + "fieldFlag": "blocks-storage.bucket-store.index-cache.memcached.max-async-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_async_buffer_size", + "required": false, + "desc": "The maximum number of enqueued asynchronous operations allowed.", + "fieldValue": null, + "fieldDefaultValue": 25000, + "fieldFlag": "blocks-storage.bucket-store.index-cache.memcached.max-async-buffer-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_get_multi_concurrency", + "required": false, + "desc": "The maximum number of concurrent connections running get operations. If set to 0, concurrency is unlimited.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "blocks-storage.bucket-store.index-cache.memcached.max-get-multi-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_get_multi_batch_size", + "required": false, + "desc": "The maximum number of keys a single underlying get operation should run. If more keys are specified, internally keys are split into multiple batches and fetched concurrently, honoring the max concurrency. If set to 0, the max batch size is unlimited.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "blocks-storage.bucket-store.index-cache.memcached.max-get-multi-batch-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_item_size", + "required": false, + "desc": "The maximum size of an item stored in memcached. Bigger items are not stored. If set to 0, no maximum size is enforced.", + "fieldValue": null, + "fieldDefaultValue": 1048576, + "fieldFlag": "blocks-storage.bucket-store.index-cache.memcached.max-item-size", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "inmemory", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "max_size_bytes", + "required": false, + "desc": "Maximum size in bytes of in-memory index cache used to speed up blocks index lookups (shared between all tenants).", + "fieldValue": null, + "fieldDefaultValue": 1073741824, + "fieldFlag": "blocks-storage.bucket-store.index-cache.inmemory.max-size-bytes", + "fieldType": "int" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "chunks_cache", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "backend", + "required": false, + "desc": "Backend for chunks cache, if not empty. Supported values: memcached.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.backend", + "fieldType": "string" + }, + { + "kind": "block", + "name": "memcached", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "addresses", + "required": false, + "desc": "Comma separated list of memcached addresses. Supported prefixes are: dns+ (looked up as an A/AAAA query), dnssrv+ (looked up as a SRV query, dnssrvnoa+ (looked up as a SRV query, with no A/AAAA lookup made after that).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.memcached.addresses", + "fieldType": "string" + }, + { + "kind": "field", + "name": "timeout", + "required": false, + "desc": "The socket read/write timeout.", + "fieldValue": null, + "fieldDefaultValue": 200000000, + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.memcached.timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_idle_connections", + "required": false, + "desc": "The maximum number of idle connections that will be maintained per address.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.memcached.max-idle-connections", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_async_concurrency", + "required": false, + "desc": "The maximum number of concurrent asynchronous operations can occur.", + "fieldValue": null, + "fieldDefaultValue": 50, + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.memcached.max-async-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_async_buffer_size", + "required": false, + "desc": "The maximum number of enqueued asynchronous operations allowed.", + "fieldValue": null, + "fieldDefaultValue": 25000, + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.memcached.max-async-buffer-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_get_multi_concurrency", + "required": false, + "desc": "The maximum number of concurrent connections running get operations. If set to 0, concurrency is unlimited.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.memcached.max-get-multi-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_get_multi_batch_size", + "required": false, + "desc": "The maximum number of keys a single underlying get operation should run. If more keys are specified, internally keys are split into multiple batches and fetched concurrently, honoring the max concurrency. If set to 0, the max batch size is unlimited.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.memcached.max-get-multi-batch-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_item_size", + "required": false, + "desc": "The maximum size of an item stored in memcached. Bigger items are not stored. If set to 0, no maximum size is enforced.", + "fieldValue": null, + "fieldDefaultValue": 1048576, + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.memcached.max-item-size", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "subrange_size", + "required": false, + "desc": "Size of each subrange that bucket object is split into for better caching.", + "fieldValue": null, + "fieldDefaultValue": 16000, + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.subrange-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_get_range_requests", + "required": false, + "desc": "Maximum number of sub-GetRange requests that a single GetRange request can be split into when fetching chunks. Zero or negative value = unlimited number of sub-requests.", + "fieldValue": null, + "fieldDefaultValue": 3, + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.max-get-range-requests", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "attributes_ttl", + "required": false, + "desc": "TTL for caching object attributes for chunks. If the metadata cache is configured, attributes will be stored under this cache backend, otherwise attributes are stored in the chunks cache backend.", + "fieldValue": null, + "fieldDefaultValue": 604800000000000, + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.attributes-ttl", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "attributes_in_memory_max_items", + "required": false, + "desc": "Maximum number of object attribute items to keep in a first level in-memory LRU cache. Metadata will be stored and fetched in-memory before hitting the cache backend. 0 to disable the in-memory cache.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.attributes-in-memory-max-items", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "subrange_ttl", + "required": false, + "desc": "TTL for caching individual chunks subranges.", + "fieldValue": null, + "fieldDefaultValue": 86400000000000, + "fieldFlag": "blocks-storage.bucket-store.chunks-cache.subrange-ttl", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "metadata_cache", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "backend", + "required": false, + "desc": "Backend for metadata cache, if not empty. Supported values: memcached.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.backend", + "fieldType": "string" + }, + { + "kind": "block", + "name": "memcached", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "addresses", + "required": false, + "desc": "Comma separated list of memcached addresses. Supported prefixes are: dns+ (looked up as an A/AAAA query), dnssrv+ (looked up as a SRV query, dnssrvnoa+ (looked up as a SRV query, with no A/AAAA lookup made after that).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.memcached.addresses", + "fieldType": "string" + }, + { + "kind": "field", + "name": "timeout", + "required": false, + "desc": "The socket read/write timeout.", + "fieldValue": null, + "fieldDefaultValue": 200000000, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.memcached.timeout", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "max_idle_connections", + "required": false, + "desc": "The maximum number of idle connections that will be maintained per address.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.memcached.max-idle-connections", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_async_concurrency", + "required": false, + "desc": "The maximum number of concurrent asynchronous operations can occur.", + "fieldValue": null, + "fieldDefaultValue": 50, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.memcached.max-async-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_async_buffer_size", + "required": false, + "desc": "The maximum number of enqueued asynchronous operations allowed.", + "fieldValue": null, + "fieldDefaultValue": 25000, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.memcached.max-async-buffer-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_get_multi_concurrency", + "required": false, + "desc": "The maximum number of concurrent connections running get operations. If set to 0, concurrency is unlimited.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.memcached.max-get-multi-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_get_multi_batch_size", + "required": false, + "desc": "The maximum number of keys a single underlying get operation should run. If more keys are specified, internally keys are split into multiple batches and fetched concurrently, honoring the max concurrency. If set to 0, the max batch size is unlimited.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.memcached.max-get-multi-batch-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_item_size", + "required": false, + "desc": "The maximum size of an item stored in memcached. Bigger items are not stored. If set to 0, no maximum size is enforced.", + "fieldValue": null, + "fieldDefaultValue": 1048576, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.memcached.max-item-size", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "tenants_list_ttl", + "required": false, + "desc": "How long to cache list of tenants in the bucket.", + "fieldValue": null, + "fieldDefaultValue": 900000000000, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.tenants-list-ttl", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tenant_blocks_list_ttl", + "required": false, + "desc": "How long to cache list of blocks for each tenant.", + "fieldValue": null, + "fieldDefaultValue": 300000000000, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.tenant-blocks-list-ttl", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "chunks_list_ttl", + "required": false, + "desc": "How long to cache list of chunks for a block.", + "fieldValue": null, + "fieldDefaultValue": 86400000000000, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.chunks-list-ttl", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "metafile_exists_ttl", + "required": false, + "desc": "How long to cache information that block metafile exists. Also used for tenant deletion mark file.", + "fieldValue": null, + "fieldDefaultValue": 7200000000000, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.metafile-exists-ttl", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "metafile_doesnt_exist_ttl", + "required": false, + "desc": "How long to cache information that block metafile doesn't exist. Also used for tenant deletion mark file.", + "fieldValue": null, + "fieldDefaultValue": 300000000000, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.metafile-doesnt-exist-ttl", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "metafile_content_ttl", + "required": false, + "desc": "How long to cache content of the metafile.", + "fieldValue": null, + "fieldDefaultValue": 86400000000000, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.metafile-content-ttl", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "metafile_max_size_bytes", + "required": false, + "desc": "Maximum size of metafile content to cache in bytes. Caching will be skipped if the content exceeds this size. This is useful to avoid network round trip for large content if the configured caching backend has an hard limit on cached items size (in this case, you should set this limit to the same limit in the caching backend).", + "fieldValue": null, + "fieldDefaultValue": 1048576, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.metafile-max-size-bytes", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "metafile_attributes_ttl", + "required": false, + "desc": "How long to cache attributes of the block metafile.", + "fieldValue": null, + "fieldDefaultValue": 604800000000000, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.metafile-attributes-ttl", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "block_index_attributes_ttl", + "required": false, + "desc": "How long to cache attributes of the block index.", + "fieldValue": null, + "fieldDefaultValue": 604800000000000, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.block-index-attributes-ttl", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "bucket_index_content_ttl", + "required": false, + "desc": "How long to cache content of the bucket index.", + "fieldValue": null, + "fieldDefaultValue": 300000000000, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.bucket-index-content-ttl", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "bucket_index_max_size_bytes", + "required": false, + "desc": "Maximum size of bucket index content to cache in bytes. Caching will be skipped if the content exceeds this size. This is useful to avoid network round trip for large content if the configured caching backend has an hard limit on cached items size (in this case, you should set this limit to the same limit in the caching backend).", + "fieldValue": null, + "fieldDefaultValue": 1048576, + "fieldFlag": "blocks-storage.bucket-store.metadata-cache.bucket-index-max-size-bytes", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "ignore_deletion_mark_delay", + "required": false, + "desc": "Duration after which the blocks marked for deletion will be filtered out while fetching blocks. The idea of ignore-deletion-marks-delay is to ignore blocks that are marked for deletion with some delay. This ensures store can still serve blocks that are meant to be deleted but do not have a replacement yet.", + "fieldValue": null, + "fieldDefaultValue": 3600000000000, + "fieldFlag": "blocks-storage.bucket-store.ignore-deletion-marks-delay", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "bucket_index", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "enabled", + "required": false, + "desc": "If enabled, queriers and store-gateways discover blocks by reading a bucket index (created and updated by the compactor) instead of periodically scanning the bucket.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "blocks-storage.bucket-store.bucket-index.enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "update_on_error_interval", + "required": false, + "desc": "How frequently a bucket index, which previously failed to load, should be tried to load again. This option is used only by querier.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "blocks-storage.bucket-store.bucket-index.update-on-error-interval", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "idle_timeout", + "required": false, + "desc": "How long a unused bucket index should be cached. Once this timeout expires, the unused bucket index is removed from the in-memory cache. This option is used only by querier.", + "fieldValue": null, + "fieldDefaultValue": 3600000000000, + "fieldFlag": "blocks-storage.bucket-store.bucket-index.idle-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_stale_period", + "required": false, + "desc": "The maximum allowed age of a bucket index (last updated) before queries start failing because the bucket index is too old. The bucket index is periodically updated by the compactor, while this check is enforced in the querier (at query time).", + "fieldValue": null, + "fieldDefaultValue": 3600000000000, + "fieldFlag": "blocks-storage.bucket-store.bucket-index.max-stale-period", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "ignore_blocks_within", + "required": false, + "desc": "Blocks with minimum time within this duration are ignored, and not loaded by store-gateway. Useful when used together with -querier.query-store-after to prevent loading young blocks, because there are usually many of them (depending on number of ingesters) and they are not yet compacted. Negative values or 0 disable the filter.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "blocks-storage.bucket-store.ignore-blocks-within", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_chunk_pool_bytes", + "required": false, + "desc": "Max size - in bytes - of a chunks pool, used to reduce memory allocations. The pool is shared across all tenants. 0 to disable the limit.", + "fieldValue": null, + "fieldDefaultValue": 2147483648, + "fieldFlag": "blocks-storage.bucket-store.max-chunk-pool-bytes", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "chunk_pool_min_bucket_size_bytes", + "required": false, + "desc": "Size - in bytes - of the smallest chunks pool bucket.", + "fieldValue": null, + "fieldDefaultValue": 16000, + "fieldFlag": "blocks-storage.bucket-store.chunk-pool-min-bucket-size-bytes", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "chunk_pool_max_bucket_size_bytes", + "required": false, + "desc": "Size - in bytes - of the largest chunks pool bucket.", + "fieldValue": null, + "fieldDefaultValue": 50000000, + "fieldFlag": "blocks-storage.bucket-store.chunk-pool-max-bucket-size-bytes", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "series_hash_cache_max_size_bytes", + "required": false, + "desc": "Max size - in bytes - of the in-memory series hash cache. The cache is shared across all tenants and it's used only when query sharding is enabled.", + "fieldValue": null, + "fieldDefaultValue": 1073741824, + "fieldFlag": "blocks-storage.bucket-store.series-hash-cache-max-size-bytes", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "index_header_lazy_loading_enabled", + "required": false, + "desc": "If enabled, store-gateway will lazy load an index-header only once required by a query.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "blocks-storage.bucket-store.index-header-lazy-loading-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "index_header_lazy_loading_idle_timeout", + "required": false, + "desc": "If index-header lazy loading is enabled and this setting is \u003e 0, the store-gateway will offload unused index-headers after 'idle timeout' inactivity.", + "fieldValue": null, + "fieldDefaultValue": 3600000000000, + "fieldFlag": "blocks-storage.bucket-store.index-header-lazy-loading-idle-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "partitioner_max_gap_bytes", + "required": false, + "desc": "Max size - in bytes - of a gap for which the partitioner aggregates together two bucket GET object requests.", + "fieldValue": null, + "fieldDefaultValue": 524288, + "fieldFlag": "blocks-storage.bucket-store.partitioner-max-gap-bytes", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "postings_offsets_in_mem_sampling", + "required": false, + "desc": "Controls what is the ratio of postings offsets that the store will hold in memory.", + "fieldValue": null, + "fieldDefaultValue": 32, + "fieldFlag": "blocks-storage.bucket-store.posting-offsets-in-mem-sampling", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "tsdb", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "dir", + "required": false, + "desc": "Directory to store TSDBs (including WAL) in the ingesters. This directory is required to be persisted between restarts.", + "fieldValue": null, + "fieldDefaultValue": "./tsdb/", + "fieldFlag": "blocks-storage.tsdb.dir", + "fieldType": "string" + }, + { + "kind": "field", + "name": "block_ranges_period", + "required": false, + "desc": "TSDB blocks range period.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "blocks-storage.tsdb.block-ranges-period", + "fieldType": "list of duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "retention_period", + "required": false, + "desc": "TSDB blocks retention in the ingester before a block is removed. This should be larger than the -blocks-storage.tsdb.block-ranges-period, -querier.query-store-after and large enough to give store-gateways and queriers enough time to discover newly uploaded blocks.", + "fieldValue": null, + "fieldDefaultValue": 86400000000000, + "fieldFlag": "blocks-storage.tsdb.retention-period", + "fieldType": "duration" + }, + { + "kind": "field", + "name": "ship_interval", + "required": false, + "desc": "How frequently the TSDB blocks are scanned and new ones are shipped to the storage. 0 means shipping is disabled.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "blocks-storage.tsdb.ship-interval", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "ship_concurrency", + "required": false, + "desc": "Maximum number of tenants concurrently shipping blocks to the storage.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "blocks-storage.tsdb.ship-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "head_compaction_interval", + "required": false, + "desc": "How frequently ingesters try to compact TSDB head. Block is only created if data covers smallest block range. Must be greater than 0 and max 5 minutes.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "blocks-storage.tsdb.head-compaction-interval", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "head_compaction_concurrency", + "required": false, + "desc": "Maximum number of tenants concurrently compacting TSDB head into a new block", + "fieldValue": null, + "fieldDefaultValue": 5, + "fieldFlag": "blocks-storage.tsdb.head-compaction-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "head_compaction_idle_timeout", + "required": false, + "desc": "If TSDB head is idle for this duration, it is compacted. Note that up to 25% jitter is added to the value to avoid ingesters compacting concurrently. 0 means disabled.", + "fieldValue": null, + "fieldDefaultValue": 3600000000000, + "fieldFlag": "blocks-storage.tsdb.head-compaction-idle-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "head_chunks_write_buffer_size_bytes", + "required": false, + "desc": "The write buffer size used by the head chunks mapper. Lower values reduce memory utilisation on clusters with a large number of tenants at the cost of increased disk I/O operations.", + "fieldValue": null, + "fieldDefaultValue": 4194304, + "fieldFlag": "blocks-storage.tsdb.head-chunks-write-buffer-size-bytes", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "head_chunks_end_time_variance", + "required": false, + "desc": "How much variance (as percentage between 0 and 1) should be applied to the chunk end time, to spread chunks writing across time. Doesn't apply to the last chunk of the chunk range. 0 means no variance.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "blocks-storage.tsdb.head-chunks-end-time-variance", + "fieldType": "float", + "fieldCategory": "experimental" + }, + { + "kind": "field", + "name": "stripe_size", + "required": false, + "desc": "The number of shards of series to use in TSDB (must be a power of 2). Reducing this will decrease memory footprint, but can negatively impact performance.", + "fieldValue": null, + "fieldDefaultValue": 16384, + "fieldFlag": "blocks-storage.tsdb.stripe-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "wal_compression_enabled", + "required": false, + "desc": "True to enable TSDB WAL compression.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "blocks-storage.tsdb.wal-compression-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "wal_segment_size_bytes", + "required": false, + "desc": "TSDB WAL segments files max size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 134217728, + "fieldFlag": "blocks-storage.tsdb.wal-segment-size-bytes", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "flush_blocks_on_shutdown", + "required": false, + "desc": "True to flush blocks to storage on shutdown. If false, incomplete blocks will be reused after restart.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "blocks-storage.tsdb.flush-blocks-on-shutdown", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "close_idle_tsdb_timeout", + "required": false, + "desc": "If TSDB has not received any data for this duration, and all blocks from TSDB have been shipped, TSDB is closed and deleted from local disk. If set to positive value, this value should be equal or higher than -querier.query-ingesters-within flag to make sure that TSDB is not closed prematurely, which could cause partial query results. 0 or negative value disables closing of idle TSDB.", + "fieldValue": null, + "fieldDefaultValue": 46800000000000, + "fieldFlag": "blocks-storage.tsdb.close-idle-tsdb-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "memory_snapshot_on_shutdown", + "required": false, + "desc": "True to enable snapshotting of in-memory TSDB data on disk when shutting down.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "blocks-storage.tsdb.memory-snapshot-on-shutdown", + "fieldType": "boolean", + "fieldCategory": "experimental" + }, + { + "kind": "field", + "name": "head_chunks_write_queue_size", + "required": false, + "desc": "The size of the write queue used by the head chunks mapper. Lower values reduce memory utilisation at the cost of potentially higher ingest latency. Value of 0 switches chunks mapper to implementation without a queue.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "blocks-storage.tsdb.head-chunks-write-queue-size", + "fieldType": "int", + "fieldCategory": "experimental" + }, + { + "kind": "field", + "name": "isolation_enabled", + "required": false, + "desc": "Enables TSDB isolation feature. Disabling may improve performance.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "blocks-storage.tsdb.isolation-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "series_hash_cache_max_size_bytes", + "required": false, + "desc": "Max size - in bytes - of the in-memory series hash cache. The cache is shared across all tenants and it's used only when query sharding is enabled.", + "fieldValue": null, + "fieldDefaultValue": 1073741824, + "fieldFlag": "blocks-storage.tsdb.series-hash-cache-max-size-bytes", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_tsdb_opening_concurrency_on_startup", + "required": false, + "desc": "limit the number of concurrently opening TSDB's on startup", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "blocks-storage.tsdb.max-tsdb-opening-concurrency-on-startup", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "compactor", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "block_ranges", + "required": false, + "desc": "List of compaction time ranges.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "compactor.block-ranges", + "fieldType": "list of duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "block_sync_concurrency", + "required": false, + "desc": "Number of Go routines to use when downloading blocks for compaction and uploading resulting blocks.", + "fieldValue": null, + "fieldDefaultValue": 8, + "fieldFlag": "compactor.block-sync-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "meta_sync_concurrency", + "required": false, + "desc": "Number of Go routines to use when syncing block meta files from the long term storage.", + "fieldValue": null, + "fieldDefaultValue": 20, + "fieldFlag": "compactor.meta-sync-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "consistency_delay", + "required": false, + "desc": "Minimum age of fresh (non-compacted) blocks before they are being processed. Malformed blocks older than the maximum of consistency-delay and 48h0m0s will be removed.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "compactor.consistency-delay", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "data_dir", + "required": false, + "desc": "Directory to temporarily store blocks during compaction. This directory is not required to be persisted between restarts.", + "fieldValue": null, + "fieldDefaultValue": "./data-compactor/", + "fieldFlag": "compactor.data-dir", + "fieldType": "string" + }, + { + "kind": "field", + "name": "compaction_interval", + "required": false, + "desc": "The frequency at which the compaction runs", + "fieldValue": null, + "fieldDefaultValue": 3600000000000, + "fieldFlag": "compactor.compaction-interval", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "compaction_retries", + "required": false, + "desc": "How many times to retry a failed compaction within a single compaction run.", + "fieldValue": null, + "fieldDefaultValue": 3, + "fieldFlag": "compactor.compaction-retries", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "compaction_concurrency", + "required": false, + "desc": "Max number of concurrent compactions running.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "compactor.compaction-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "cleanup_interval", + "required": false, + "desc": "How frequently compactor should run blocks cleanup and maintenance, as well as update the bucket index.", + "fieldValue": null, + "fieldDefaultValue": 900000000000, + "fieldFlag": "compactor.cleanup-interval", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "cleanup_concurrency", + "required": false, + "desc": "Max number of tenants for which blocks cleanup and maintenance should run concurrently.", + "fieldValue": null, + "fieldDefaultValue": 20, + "fieldFlag": "compactor.cleanup-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "deletion_delay", + "required": false, + "desc": "Time before a block marked for deletion is deleted from bucket. If not 0, blocks will be marked for deletion and compactor component will permanently delete blocks marked for deletion from the bucket. If 0, blocks will be deleted straight away. Note that deleting blocks immediately can cause query failures.", + "fieldValue": null, + "fieldDefaultValue": 43200000000000, + "fieldFlag": "compactor.deletion-delay", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tenant_cleanup_delay", + "required": false, + "desc": "For tenants marked for deletion, this is time between deleting of last block, and doing final cleanup (marker files, debug files) of the tenant.", + "fieldValue": null, + "fieldDefaultValue": 21600000000000, + "fieldFlag": "compactor.tenant-cleanup-delay", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_compaction_time", + "required": false, + "desc": "Max time for starting compactions for a single tenant. After this time no new compactions for the tenant are started before next compaction cycle. This can help in multi-tenant environments to avoid single tenant using all compaction time, but also in single-tenant environments to force new discovery of blocks more often. 0 = disabled.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "compactor.max-compaction-time", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_opening_blocks_concurrency", + "required": false, + "desc": "Number of goroutines opening blocks before compaction.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "compactor.max-opening-blocks-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_closing_blocks_concurrency", + "required": false, + "desc": "Max number of blocks that can be closed concurrently during split compaction. Note that closing of newly compacted block uses a lot of memory for writing index.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "compactor.max-closing-blocks-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "symbols_flushers_concurrency", + "required": false, + "desc": "Number of symbols flushers used when doing split compaction.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "compactor.symbols-flushers-concurrency", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "enabled_tenants", + "required": false, + "desc": "Comma separated list of tenants that can be compacted. If specified, only these tenants will be compacted by compactor, otherwise all tenants can be compacted. Subject to sharding.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "compactor.enabled-tenants", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "disabled_tenants", + "required": false, + "desc": "Comma separated list of tenants that cannot be compacted by this compactor. If specified, and compactor would normally pick given tenant for compaction (via -compactor.enabled-tenants or sharding), it will be ignored instead.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "compactor.disabled-tenants", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "sharding_ring", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "kvstore", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "store", + "required": false, + "desc": "Backend storage to use for the ring. Supported values are: consul, etcd, inmemory, memberlist, multi.", + "fieldValue": null, + "fieldDefaultValue": "memberlist", + "fieldFlag": "compactor.ring.store", + "fieldType": "string" + }, + { + "kind": "field", + "name": "prefix", + "required": false, + "desc": "The prefix for the keys in the store. Should end with a /.", + "fieldValue": null, + "fieldDefaultValue": "collectors/", + "fieldFlag": "compactor.ring.prefix", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "consul", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "host", + "required": false, + "desc": "Hostname and port of Consul.", + "fieldValue": null, + "fieldDefaultValue": "localhost:8500", + "fieldFlag": "compactor.ring.consul.hostname", + "fieldType": "string" + }, + { + "kind": "field", + "name": "acl_token", + "required": false, + "desc": "ACL Token used to interact with Consul.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "compactor.ring.consul.acl-token", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "http_client_timeout", + "required": false, + "desc": "HTTP timeout when talking to Consul", + "fieldValue": null, + "fieldDefaultValue": 20000000000, + "fieldFlag": "compactor.ring.consul.client-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "consistent_reads", + "required": false, + "desc": "Enable consistent reads to Consul.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "compactor.ring.consul.consistent-reads", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "watch_rate_limit", + "required": false, + "desc": "Rate limit when watching key or prefix in Consul, in requests per second. 0 disables the rate limit.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "compactor.ring.consul.watch-rate-limit", + "fieldType": "float", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "watch_burst_size", + "required": false, + "desc": "Burst size used in rate limit. Values less than 1 are treated as 1.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "compactor.ring.consul.watch-burst-size", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "etcd", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoints", + "required": false, + "desc": "The etcd endpoints to connect to.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "compactor.ring.etcd.endpoints", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "dial_timeout", + "required": false, + "desc": "The dial timeout for the etcd connection.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "compactor.ring.etcd.dial-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "The maximum number of retries to do for failed ops.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "compactor.ring.etcd.max-retries", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "compactor.ring.etcd.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "compactor.ring.etcd.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "compactor.ring.etcd.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "compactor.ring.etcd.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "compactor.ring.etcd.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "compactor.ring.etcd.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "username", + "required": false, + "desc": "Etcd username.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "compactor.ring.etcd.username", + "fieldType": "string" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "Etcd password.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "compactor.ring.etcd.password", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "multi", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "primary", + "required": false, + "desc": "Primary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "compactor.ring.multi.primary", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "secondary", + "required": false, + "desc": "Secondary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "compactor.ring.multi.secondary", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "mirror_enabled", + "required": false, + "desc": "Mirror writes to secondary store.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "compactor.ring.multi.mirror-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "mirror_timeout", + "required": false, + "desc": "Timeout for storing value to secondary store.", + "fieldValue": null, + "fieldDefaultValue": 2000000000, + "fieldFlag": "compactor.ring.multi.mirror-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "heartbeat_period", + "required": false, + "desc": "Period at which to heartbeat to the ring. 0 = disabled.", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "compactor.ring.heartbeat-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "heartbeat_timeout", + "required": false, + "desc": "The heartbeat timeout after which compactors are considered unhealthy within the ring. 0 = never (timeout disabled).", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "compactor.ring.heartbeat-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "wait_stability_min_duration", + "required": false, + "desc": "Minimum time to wait for ring stability at startup. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "compactor.ring.wait-stability-min-duration", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "wait_stability_max_duration", + "required": false, + "desc": "Maximum time to wait for ring stability at startup. If the compactor ring keeps changing after this period of time, the compactor will start anyway.", + "fieldValue": null, + "fieldDefaultValue": 300000000000, + "fieldFlag": "compactor.ring.wait-stability-max-duration", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_id", + "required": false, + "desc": "Instance ID to register in the ring.", + "fieldValue": null, + "fieldDefaultValue": "\u003chostname\u003e", + "fieldFlag": "compactor.ring.instance-id", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_interface_names", + "required": false, + "desc": "List of network interface names to look up when finding the instance IP address.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "compactor.ring.instance-interface-names", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "instance_port", + "required": false, + "desc": "Port to advertise in the ring (defaults to -server.grpc-listen-port).", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "compactor.ring.instance-port", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_addr", + "required": false, + "desc": "IP address to advertise in the ring. Default is auto-detected.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "compactor.ring.instance-addr", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "wait_active_instance_timeout", + "required": false, + "desc": "Timeout for waiting on compactor to become ACTIVE in the ring.", + "fieldValue": null, + "fieldDefaultValue": 600000000000, + "fieldFlag": "compactor.ring.wait-active-instance-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "compaction_jobs_order", + "required": false, + "desc": "The sorting to use when deciding which compaction jobs should run first for a given tenant. Supported values are: smallest-range-oldest-blocks-first, newest-blocks-first.", + "fieldValue": null, + "fieldDefaultValue": "smallest-range-oldest-blocks-first", + "fieldFlag": "compactor.compaction-jobs-order", + "fieldType": "string", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "store_gateway", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "sharding_ring", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "kvstore", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "store", + "required": false, + "desc": "Backend storage to use for the ring. Supported values are: consul, etcd, inmemory, memberlist, multi.", + "fieldValue": null, + "fieldDefaultValue": "memberlist", + "fieldFlag": "store-gateway.sharding-ring.store", + "fieldType": "string" + }, + { + "kind": "field", + "name": "prefix", + "required": false, + "desc": "The prefix for the keys in the store. Should end with a /.", + "fieldValue": null, + "fieldDefaultValue": "collectors/", + "fieldFlag": "store-gateway.sharding-ring.prefix", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "consul", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "host", + "required": false, + "desc": "Hostname and port of Consul.", + "fieldValue": null, + "fieldDefaultValue": "localhost:8500", + "fieldFlag": "store-gateway.sharding-ring.consul.hostname", + "fieldType": "string" + }, + { + "kind": "field", + "name": "acl_token", + "required": false, + "desc": "ACL Token used to interact with Consul.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store-gateway.sharding-ring.consul.acl-token", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "http_client_timeout", + "required": false, + "desc": "HTTP timeout when talking to Consul", + "fieldValue": null, + "fieldDefaultValue": 20000000000, + "fieldFlag": "store-gateway.sharding-ring.consul.client-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "consistent_reads", + "required": false, + "desc": "Enable consistent reads to Consul.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "store-gateway.sharding-ring.consul.consistent-reads", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "watch_rate_limit", + "required": false, + "desc": "Rate limit when watching key or prefix in Consul, in requests per second. 0 disables the rate limit.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "store-gateway.sharding-ring.consul.watch-rate-limit", + "fieldType": "float", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "watch_burst_size", + "required": false, + "desc": "Burst size used in rate limit. Values less than 1 are treated as 1.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "store-gateway.sharding-ring.consul.watch-burst-size", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "etcd", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoints", + "required": false, + "desc": "The etcd endpoints to connect to.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "store-gateway.sharding-ring.etcd.endpoints", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "dial_timeout", + "required": false, + "desc": "The dial timeout for the etcd connection.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "store-gateway.sharding-ring.etcd.dial-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "The maximum number of retries to do for failed ops.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "store-gateway.sharding-ring.etcd.max-retries", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "store-gateway.sharding-ring.etcd.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store-gateway.sharding-ring.etcd.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store-gateway.sharding-ring.etcd.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store-gateway.sharding-ring.etcd.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store-gateway.sharding-ring.etcd.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "store-gateway.sharding-ring.etcd.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "username", + "required": false, + "desc": "Etcd username.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store-gateway.sharding-ring.etcd.username", + "fieldType": "string" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "Etcd password.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store-gateway.sharding-ring.etcd.password", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "multi", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "primary", + "required": false, + "desc": "Primary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store-gateway.sharding-ring.multi.primary", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "secondary", + "required": false, + "desc": "Secondary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store-gateway.sharding-ring.multi.secondary", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "mirror_enabled", + "required": false, + "desc": "Mirror writes to secondary store.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "store-gateway.sharding-ring.multi.mirror-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "mirror_timeout", + "required": false, + "desc": "Timeout for storing value to secondary store.", + "fieldValue": null, + "fieldDefaultValue": 2000000000, + "fieldFlag": "store-gateway.sharding-ring.multi.mirror-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "heartbeat_period", + "required": false, + "desc": "Period at which to heartbeat to the ring. 0 = disabled.", + "fieldValue": null, + "fieldDefaultValue": 15000000000, + "fieldFlag": "store-gateway.sharding-ring.heartbeat-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "heartbeat_timeout", + "required": false, + "desc": "The heartbeat timeout after which store gateways are considered unhealthy within the ring. 0 = never (timeout disabled). This option needs be set both on the store-gateway, querier and ruler when running in microservices mode.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "store-gateway.sharding-ring.heartbeat-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "replication_factor", + "required": false, + "desc": "The replication factor to use when sharding blocks. This option needs be set both on the store-gateway, querier and ruler when running in microservices mode.", + "fieldValue": null, + "fieldDefaultValue": 3, + "fieldFlag": "store-gateway.sharding-ring.replication-factor", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tokens_file_path", + "required": false, + "desc": "File path where tokens are stored. If empty, tokens are not stored at shutdown and restored at startup.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store-gateway.sharding-ring.tokens-file-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "zone_awareness_enabled", + "required": false, + "desc": "True to enable zone-awareness and replicate blocks across different availability zones. This option needs be set both on the store-gateway, querier and ruler when running in microservices mode.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "store-gateway.sharding-ring.zone-awareness-enabled", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "wait_stability_min_duration", + "required": false, + "desc": "Minimum time to wait for ring stability at startup, if set to positive value.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store-gateway.sharding-ring.wait-stability-min-duration", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "wait_stability_max_duration", + "required": false, + "desc": "Maximum time to wait for ring stability at startup. If the store-gateway ring keeps changing after this period of time, the store-gateway will start anyway.", + "fieldValue": null, + "fieldDefaultValue": 300000000000, + "fieldFlag": "store-gateway.sharding-ring.wait-stability-max-duration", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_id", + "required": false, + "desc": "Instance ID to register in the ring.", + "fieldValue": null, + "fieldDefaultValue": "\u003chostname\u003e", + "fieldFlag": "store-gateway.sharding-ring.instance-id", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_interface_names", + "required": false, + "desc": "List of network interface names to look up when finding the instance IP address.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "store-gateway.sharding-ring.instance-interface-names", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "instance_port", + "required": false, + "desc": "Port to advertise in the ring (defaults to -server.grpc-listen-port).", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store-gateway.sharding-ring.instance-port", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_addr", + "required": false, + "desc": "IP address to advertise in the ring. Default is auto-detected.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store-gateway.sharding-ring.instance-addr", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_availability_zone", + "required": false, + "desc": "The availability zone where this instance is running. Required if zone-awareness is enabled.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store-gateway.sharding-ring.instance-availability-zone", + "fieldType": "string" + }, + { + "kind": "field", + "name": "unregister_on_shutdown", + "required": false, + "desc": "Unregister from the ring upon clean shutdown.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "store-gateway.sharding-ring.unregister-on-shutdown", + "fieldType": "boolean" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "tenant_federation", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "enabled", + "required": false, + "desc": "If enabled on all services, queries can be federated across multiple tenants. The tenant IDs involved need to be specified separated by a '|' character in the 'X-Scope-OrgID' header.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "tenant-federation.enabled", + "fieldType": "boolean" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "activity_tracker", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "filepath", + "required": false, + "desc": "File where ongoing activities are stored. If empty, activity tracking is disabled.", + "fieldValue": null, + "fieldDefaultValue": "./metrics-activity.log", + "fieldFlag": "activity-tracker.filepath", + "fieldType": "string" + }, + { + "kind": "field", + "name": "max_entries", + "required": false, + "desc": "Max number of concurrent activities that can be tracked. Used to size the file in advance. Additional activities are ignored.", + "fieldValue": null, + "fieldDefaultValue": 1024, + "fieldFlag": "activity-tracker.max-entries", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "ruler", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "external_url", + "required": false, + "desc": "URL of alerts return path.", + "fieldValue": null, + "fieldDefaultValue": {}, + "fieldFlag": "ruler.external.url", + "fieldType": "url" + }, + { + "kind": "block", + "name": "ruler_client", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "max_recv_msg_size", + "required": false, + "desc": "gRPC client max receive message size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 104857600, + "fieldFlag": "ruler.client.grpc-max-recv-msg-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_send_msg_size", + "required": false, + "desc": "gRPC client max send message size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 104857600, + "fieldFlag": "ruler.client.grpc-max-send-msg-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "grpc_compression", + "required": false, + "desc": "Use compression when sending messages. Supported values are: 'gzip', 'snappy' and '' (disable compression)", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.client.grpc-compression", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "rate_limit", + "required": false, + "desc": "Rate limit for gRPC client; 0 means disabled.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ruler.client.grpc-client-rate-limit", + "fieldType": "float", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "rate_limit_burst", + "required": false, + "desc": "Rate limit burst for gRPC client.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ruler.client.grpc-client-rate-limit-burst", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "backoff_on_ratelimits", + "required": false, + "desc": "Enable backoff and retry when we hit ratelimits.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler.client.backoff-on-ratelimits", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "backoff_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "min_period", + "required": false, + "desc": "Minimum delay when backing off.", + "fieldValue": null, + "fieldDefaultValue": 100000000, + "fieldFlag": "ruler.client.backoff-min-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_period", + "required": false, + "desc": "Maximum delay when backing off.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "ruler.client.backoff-max-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Number of times to backoff and retry before failing.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "ruler.client.backoff-retries", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler.client.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.client.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.client.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.client.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.client.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler.client.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "evaluation_interval", + "required": false, + "desc": "How frequently to evaluate rules", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "ruler.evaluation-interval", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "poll_interval", + "required": false, + "desc": "How frequently to poll for rule changes", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "ruler.poll-interval", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "rule_path", + "required": false, + "desc": "Directory to store temporary rule files loaded by the Prometheus rule managers. This directory is not required to be persisted between restarts.", + "fieldValue": null, + "fieldDefaultValue": "./data-ruler/", + "fieldFlag": "ruler.rule-path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "alertmanager_url", + "required": false, + "desc": "Comma-separated list of URL(s) of the Alertmanager(s) to send notifications to. Each URL is treated as a separate group. Multiple Alertmanagers in HA per group can be supported by using DNS service discovery format. Basic auth is supported as part of the URL.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.alertmanager-url", + "fieldType": "string" + }, + { + "kind": "field", + "name": "alertmanager_refresh_interval", + "required": false, + "desc": "How long to wait between refreshing DNS resolutions of Alertmanager hosts.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "ruler.alertmanager-refresh-interval", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "notification_queue_capacity", + "required": false, + "desc": "Capacity of the queue for notifications to be sent to the Alertmanager.", + "fieldValue": null, + "fieldDefaultValue": 10000, + "fieldFlag": "ruler.notification-queue-capacity", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "notification_timeout", + "required": false, + "desc": "HTTP timeout duration when sending notifications to the Alertmanager.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "ruler.notification-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "alertmanager_client", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.alertmanager-client.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.alertmanager-client.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.alertmanager-client.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.alertmanager-client.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler.alertmanager-client.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "basic_auth_username", + "required": false, + "desc": "HTTP Basic authentication username. It overrides the username set in the URL (if any).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.alertmanager-client.basic-auth-username", + "fieldType": "string" + }, + { + "kind": "field", + "name": "basic_auth_password", + "required": false, + "desc": "HTTP Basic authentication password. It overrides the password set in the URL (if any).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.alertmanager-client.basic-auth-password", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "for_outage_tolerance", + "required": false, + "desc": "Max time to tolerate outage for restoring \"for\" state of alert.", + "fieldValue": null, + "fieldDefaultValue": 3600000000000, + "fieldFlag": "ruler.for-outage-tolerance", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "for_grace_period", + "required": false, + "desc": "Minimum duration between alert and restored \"for\" state. This is maintained only for alerts with configured \"for\" time greater than grace period.", + "fieldValue": null, + "fieldDefaultValue": 600000000000, + "fieldFlag": "ruler.for-grace-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "resend_delay", + "required": false, + "desc": "Minimum amount of time to wait before resending an alert to Alertmanager.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "ruler.resend-delay", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "search_pending_for", + "required": false, + "desc": "Time to spend searching for a pending ruler when shutting down.", + "fieldValue": null, + "fieldDefaultValue": 300000000000, + "fieldFlag": "ruler.search-pending-for", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "ring", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "kvstore", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "store", + "required": false, + "desc": "Backend storage to use for the ring. Supported values are: consul, etcd, inmemory, memberlist, multi.", + "fieldValue": null, + "fieldDefaultValue": "memberlist", + "fieldFlag": "ruler.ring.store", + "fieldType": "string" + }, + { + "kind": "field", + "name": "prefix", + "required": false, + "desc": "The prefix for the keys in the store. Should end with a /.", + "fieldValue": null, + "fieldDefaultValue": "rulers/", + "fieldFlag": "ruler.ring.prefix", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "consul", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "host", + "required": false, + "desc": "Hostname and port of Consul.", + "fieldValue": null, + "fieldDefaultValue": "localhost:8500", + "fieldFlag": "ruler.ring.consul.hostname", + "fieldType": "string" + }, + { + "kind": "field", + "name": "acl_token", + "required": false, + "desc": "ACL Token used to interact with Consul.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.ring.consul.acl-token", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "http_client_timeout", + "required": false, + "desc": "HTTP timeout when talking to Consul", + "fieldValue": null, + "fieldDefaultValue": 20000000000, + "fieldFlag": "ruler.ring.consul.client-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "consistent_reads", + "required": false, + "desc": "Enable consistent reads to Consul.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler.ring.consul.consistent-reads", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "watch_rate_limit", + "required": false, + "desc": "Rate limit when watching key or prefix in Consul, in requests per second. 0 disables the rate limit.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "ruler.ring.consul.watch-rate-limit", + "fieldType": "float", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "watch_burst_size", + "required": false, + "desc": "Burst size used in rate limit. Values less than 1 are treated as 1.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "ruler.ring.consul.watch-burst-size", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "etcd", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoints", + "required": false, + "desc": "The etcd endpoints to connect to.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "ruler.ring.etcd.endpoints", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "dial_timeout", + "required": false, + "desc": "The dial timeout for the etcd connection.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "ruler.ring.etcd.dial-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "The maximum number of retries to do for failed ops.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "ruler.ring.etcd.max-retries", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler.ring.etcd.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.ring.etcd.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.ring.etcd.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.ring.etcd.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.ring.etcd.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler.ring.etcd.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "username", + "required": false, + "desc": "Etcd username.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.ring.etcd.username", + "fieldType": "string" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "Etcd password.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.ring.etcd.password", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "multi", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "primary", + "required": false, + "desc": "Primary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.ring.multi.primary", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "secondary", + "required": false, + "desc": "Secondary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.ring.multi.secondary", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "mirror_enabled", + "required": false, + "desc": "Mirror writes to secondary store.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler.ring.multi.mirror-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "mirror_timeout", + "required": false, + "desc": "Timeout for storing value to secondary store.", + "fieldValue": null, + "fieldDefaultValue": 2000000000, + "fieldFlag": "ruler.ring.multi.mirror-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "heartbeat_period", + "required": false, + "desc": "Period at which to heartbeat to the ring. 0 = disabled.", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "ruler.ring.heartbeat-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "heartbeat_timeout", + "required": false, + "desc": "The heartbeat timeout after which rulers are considered unhealthy within the ring. 0 = never (timeout disabled).", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "ruler.ring.heartbeat-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_id", + "required": false, + "desc": "Instance ID to register in the ring.", + "fieldValue": null, + "fieldDefaultValue": "\u003chostname\u003e", + "fieldFlag": "ruler.ring.instance-id", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_interface_names", + "required": false, + "desc": "List of network interface names to look up when finding the instance IP address.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "ruler.ring.instance-interface-names", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "instance_port", + "required": false, + "desc": "Port to advertise in the ring (defaults to -server.grpc-listen-port).", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ruler.ring.instance-port", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_addr", + "required": false, + "desc": "IP address to advertise in the ring. Default is auto-detected.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.ring.instance-addr", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "num_tokens", + "required": false, + "desc": "Number of tokens for each ruler.", + "fieldValue": null, + "fieldDefaultValue": 128, + "fieldFlag": "ruler.ring.num-tokens", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "flush_period", + "required": false, + "desc": "Period with which to attempt to flush rule groups.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "ruler.flush-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "enable_api", + "required": false, + "desc": "Enable the ruler config API.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "ruler.enable-api", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "enabled_tenants", + "required": false, + "desc": "Comma separated list of tenants whose rules this ruler can evaluate. If specified, only these tenants will be handled by ruler, otherwise this ruler can process rules from all tenants. Subject to sharding.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.enabled-tenants", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "disabled_tenants", + "required": false, + "desc": "Comma separated list of tenants whose rules this ruler cannot evaluate. If specified, a ruler that would normally pick the specified tenant(s) for processing will ignore them instead. Subject to sharding.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.disabled-tenants", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "query_stats_enabled", + "required": false, + "desc": "Report the wall time for ruler queries to complete as a per-tenant metric and as an info level log message.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler.query-stats-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "tenant_federation", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "enabled", + "required": false, + "desc": "Enable running rule groups against multiple tenants. The tenant IDs involved need to be in the rule group's 'source_tenants' field. If this flag is set to 'false' when there are already created federated rule groups, then these rules groups will be skipped during evaluations.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler.tenant-federation.enabled", + "fieldType": "boolean" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "ruler_storage", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "backend", + "required": false, + "desc": "Backend storage to use. Supported backends are: s3, gcs, azure, swift, filesystem, local.", + "fieldValue": null, + "fieldDefaultValue": "filesystem", + "fieldFlag": "ruler-storage.backend", + "fieldType": "string" + }, + { + "kind": "block", + "name": "s3", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoint", + "required": false, + "desc": "The S3 bucket endpoint. It could be an AWS S3 endpoint listed at https://docs.aws.amazon.com/general/latest/gr/s3.html or the address of an S3-compatible service in hostname:port format.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.s3.endpoint", + "fieldType": "string" + }, + { + "kind": "field", + "name": "region", + "required": false, + "desc": "S3 region. If unset, the client will issue a S3 GetBucketLocation API call to autodetect it.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.s3.region", + "fieldType": "string" + }, + { + "kind": "field", + "name": "bucket_name", + "required": false, + "desc": "S3 bucket name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.s3.bucket-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "secret_access_key", + "required": false, + "desc": "S3 secret access key", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.s3.secret-access-key", + "fieldType": "string" + }, + { + "kind": "field", + "name": "access_key_id", + "required": false, + "desc": "S3 access key ID", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.s3.access-key-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "insecure", + "required": false, + "desc": "If enabled, use http:// for the S3 endpoint instead of https://. This could be useful in local dev/test environments while using an S3-compatible backend storage, like Minio.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler-storage.s3.insecure", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "signature_version", + "required": false, + "desc": "The signature version to use for authenticating against S3. Supported values are: v4, v2.", + "fieldValue": null, + "fieldDefaultValue": "v4", + "fieldFlag": "ruler-storage.s3.signature-version", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "sse", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "type", + "required": false, + "desc": "Enable AWS Server Side Encryption. Supported values: SSE-KMS, SSE-S3.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.s3.sse.type", + "fieldType": "string" + }, + { + "kind": "field", + "name": "kms_key_id", + "required": false, + "desc": "KMS Key ID used to encrypt objects in S3", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.s3.sse.kms-key-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "kms_encryption_context", + "required": false, + "desc": "KMS Encryption Context used for object encryption. It expects JSON formatted string.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.s3.sse.kms-encryption-context", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "http", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "idle_conn_timeout", + "required": false, + "desc": "The time an idle connection will remain idle before closing.", + "fieldValue": null, + "fieldDefaultValue": 90000000000, + "fieldFlag": "ruler-storage.s3.http.idle-conn-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "response_header_timeout", + "required": false, + "desc": "The amount of time the client will wait for a servers response headers.", + "fieldValue": null, + "fieldDefaultValue": 120000000000, + "fieldFlag": "ruler-storage.s3.http.response-header-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "insecure_skip_verify", + "required": false, + "desc": "If the client connects to S3 via HTTPS and this option is enabled, the client will accept any certificate and hostname.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "ruler-storage.s3.http.insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_handshake_timeout", + "required": false, + "desc": "Maximum time to wait for a TLS handshake. 0 means no limit.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "ruler-storage.s3.tls-handshake-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "expect_continue_timeout", + "required": false, + "desc": "The time to wait for a server's first response headers after fully writing the request headers if the request has an Expect header. 0 to send the request body immediately.", + "fieldValue": null, + "fieldDefaultValue": 1000000000, + "fieldFlag": "ruler-storage.s3.expect-continue-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_idle_connections", + "required": false, + "desc": "Maximum number of idle (keep-alive) connections across all hosts. 0 means no limit.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "ruler-storage.s3.max-idle-connections", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_idle_connections_per_host", + "required": false, + "desc": "Maximum number of idle (keep-alive) connections to keep per-host. If 0, a built-in default value is used.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "ruler-storage.s3.max-idle-connections-per-host", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_connections_per_host", + "required": false, + "desc": "Maximum number of connections per host. 0 means no limit.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ruler-storage.s3.max-connections-per-host", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "gcs", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "bucket_name", + "required": false, + "desc": "GCS bucket name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.gcs.bucket-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "service_account", + "required": false, + "desc": "JSON representing either a Google Developers Console client_credentials.json file or a Google Developers service account key file. If empty, fallback to Google default logic.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.gcs.service-account", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "azure", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "account_name", + "required": false, + "desc": "Azure storage account name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.azure.account-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "account_key", + "required": false, + "desc": "Azure storage account key", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.azure.account-key", + "fieldType": "string" + }, + { + "kind": "field", + "name": "container_name", + "required": false, + "desc": "Azure storage container name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.azure.container-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "endpoint_suffix", + "required": false, + "desc": "Azure storage endpoint suffix without schema. The account name will be prefixed to this value to create the FQDN. If set to empty string, default endpoint suffix is used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.azure.endpoint-suffix", + "fieldType": "string" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Number of retries for recoverable errors", + "fieldValue": null, + "fieldDefaultValue": 20, + "fieldFlag": "ruler-storage.azure.max-retries", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "msi_resource", + "required": false, + "desc": "If set, this URL is used instead of https://\u003cstorage-account-name\u003e.\u003cendpoint-suffix\u003e for obtaining ServicePrincipalToken from MSI.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.azure.msi-resource", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "user_assigned_id", + "required": false, + "desc": "User assigned identity. If empty, then System assigned identity is used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.azure.user-assigned-id", + "fieldType": "string", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "swift", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "auth_version", + "required": false, + "desc": "OpenStack Swift authentication API version. 0 to autodetect.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ruler-storage.swift.auth-version", + "fieldType": "int" + }, + { + "kind": "field", + "name": "auth_url", + "required": false, + "desc": "OpenStack Swift authentication URL", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.auth-url", + "fieldType": "string" + }, + { + "kind": "field", + "name": "username", + "required": false, + "desc": "OpenStack Swift username.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.username", + "fieldType": "string" + }, + { + "kind": "field", + "name": "user_domain_name", + "required": false, + "desc": "OpenStack Swift user's domain name.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.user-domain-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "user_domain_id", + "required": false, + "desc": "OpenStack Swift user's domain ID.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.user-domain-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "user_id", + "required": false, + "desc": "OpenStack Swift user ID.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.user-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "OpenStack Swift API key.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.password", + "fieldType": "string" + }, + { + "kind": "field", + "name": "domain_id", + "required": false, + "desc": "OpenStack Swift user's domain ID.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.domain-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "domain_name", + "required": false, + "desc": "OpenStack Swift user's domain name.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.domain-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_id", + "required": false, + "desc": "OpenStack Swift project ID (v2,v3 auth only).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.project-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_name", + "required": false, + "desc": "OpenStack Swift project name (v2,v3 auth only).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.project-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_domain_id", + "required": false, + "desc": "ID of the OpenStack Swift project's domain (v3 auth only), only needed if it differs the from user domain.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.project-domain-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_domain_name", + "required": false, + "desc": "Name of the OpenStack Swift project's domain (v3 auth only), only needed if it differs from the user domain.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.project-domain-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "region_name", + "required": false, + "desc": "OpenStack Swift Region to use (v2,v3 auth only).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.region-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "container_name", + "required": false, + "desc": "Name of the OpenStack Swift container to put chunks in.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.swift.container-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Max retries on requests error.", + "fieldValue": null, + "fieldDefaultValue": 3, + "fieldFlag": "ruler-storage.swift.max-retries", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "connect_timeout", + "required": false, + "desc": "Time after which a connection attempt is aborted.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "ruler-storage.swift.connect-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "request_timeout", + "required": false, + "desc": "Time after which an idle request is aborted. The timeout watchdog is reset each time some data is received, so the timeout triggers after X time no data is received on a request.", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "ruler-storage.swift.request-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "filesystem", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "dir", + "required": false, + "desc": "Local filesystem storage directory.", + "fieldValue": null, + "fieldDefaultValue": "ruler", + "fieldFlag": "ruler-storage.filesystem.dir", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "local", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "directory", + "required": false, + "desc": "Directory to scan for rules", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler-storage.local.directory", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "alertmanager", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "data_dir", + "required": false, + "desc": "Directory to store Alertmanager state and temporarily configuration files. The content of this directory is not required to be persisted between restarts unless Alertmanager replication has been disabled.", + "fieldValue": null, + "fieldDefaultValue": "./data-alertmanager/", + "fieldFlag": "alertmanager.storage.path", + "fieldType": "string" + }, + { + "kind": "field", + "name": "retention", + "required": false, + "desc": "How long to keep data for.", + "fieldValue": null, + "fieldDefaultValue": 432000000000000, + "fieldFlag": "alertmanager.storage.retention", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "external_url", + "required": false, + "desc": "The URL under which Alertmanager is externally reachable (eg. could be different than -http.alertmanager-http-prefix in case Alertmanager is served via a reverse proxy). This setting is used both to configure the internal requests router and to generate links in alert templates. If the external URL has a path portion, it will be used to prefix all HTTP endpoints served by Alertmanager, both the UI and API.", + "fieldValue": null, + "fieldDefaultValue": { + "Scheme": "http", + "Opaque": "", + "User": null, + "Host": "localhost:8080", + "Path": "/alertmanager", + "RawPath": "", + "ForceQuery": false, + "RawQuery": "", + "Fragment": "", + "RawFragment": "" + }, + "fieldFlag": "alertmanager.web.external-url", + "fieldType": "url" + }, + { + "kind": "field", + "name": "poll_interval", + "required": false, + "desc": "How frequently to poll Alertmanager configs.", + "fieldValue": null, + "fieldDefaultValue": 15000000000, + "fieldFlag": "alertmanager.configs.poll-interval", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_recv_msg_size", + "required": false, + "desc": "Maximum size (bytes) of an accepted HTTP request body.", + "fieldValue": null, + "fieldDefaultValue": 16777216, + "fieldFlag": "alertmanager.max-recv-msg-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "sharding_ring", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "block", + "name": "kvstore", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "store", + "required": false, + "desc": "Backend storage to use for the ring. Supported values are: consul, etcd, inmemory, memberlist, multi.", + "fieldValue": null, + "fieldDefaultValue": "memberlist", + "fieldFlag": "alertmanager.sharding-ring.store", + "fieldType": "string" + }, + { + "kind": "field", + "name": "prefix", + "required": false, + "desc": "The prefix for the keys in the store. Should end with a /.", + "fieldValue": null, + "fieldDefaultValue": "alertmanagers/", + "fieldFlag": "alertmanager.sharding-ring.prefix", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "consul", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "host", + "required": false, + "desc": "Hostname and port of Consul.", + "fieldValue": null, + "fieldDefaultValue": "localhost:8500", + "fieldFlag": "alertmanager.sharding-ring.consul.hostname", + "fieldType": "string" + }, + { + "kind": "field", + "name": "acl_token", + "required": false, + "desc": "ACL Token used to interact with Consul.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.sharding-ring.consul.acl-token", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "http_client_timeout", + "required": false, + "desc": "HTTP timeout when talking to Consul", + "fieldValue": null, + "fieldDefaultValue": 20000000000, + "fieldFlag": "alertmanager.sharding-ring.consul.client-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "consistent_reads", + "required": false, + "desc": "Enable consistent reads to Consul.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "alertmanager.sharding-ring.consul.consistent-reads", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "watch_rate_limit", + "required": false, + "desc": "Rate limit when watching key or prefix in Consul, in requests per second. 0 disables the rate limit.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "alertmanager.sharding-ring.consul.watch-rate-limit", + "fieldType": "float", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "watch_burst_size", + "required": false, + "desc": "Burst size used in rate limit. Values less than 1 are treated as 1.", + "fieldValue": null, + "fieldDefaultValue": 1, + "fieldFlag": "alertmanager.sharding-ring.consul.watch-burst-size", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "etcd", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoints", + "required": false, + "desc": "The etcd endpoints to connect to.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "alertmanager.sharding-ring.etcd.endpoints", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "dial_timeout", + "required": false, + "desc": "The dial timeout for the etcd connection.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "alertmanager.sharding-ring.etcd.dial-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "The maximum number of retries to do for failed ops.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "alertmanager.sharding-ring.etcd.max-retries", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "alertmanager.sharding-ring.etcd.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.sharding-ring.etcd.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.sharding-ring.etcd.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.sharding-ring.etcd.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.sharding-ring.etcd.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "alertmanager.sharding-ring.etcd.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "username", + "required": false, + "desc": "Etcd username.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.sharding-ring.etcd.username", + "fieldType": "string" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "Etcd password.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.sharding-ring.etcd.password", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "multi", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "primary", + "required": false, + "desc": "Primary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.sharding-ring.multi.primary", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "secondary", + "required": false, + "desc": "Secondary backend storage used by multi-client.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.sharding-ring.multi.secondary", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "mirror_enabled", + "required": false, + "desc": "Mirror writes to secondary store.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "alertmanager.sharding-ring.multi.mirror-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "mirror_timeout", + "required": false, + "desc": "Timeout for storing value to secondary store.", + "fieldValue": null, + "fieldDefaultValue": 2000000000, + "fieldFlag": "alertmanager.sharding-ring.multi.mirror-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "heartbeat_period", + "required": false, + "desc": "Period at which to heartbeat to the ring. 0 = disabled.", + "fieldValue": null, + "fieldDefaultValue": 15000000000, + "fieldFlag": "alertmanager.sharding-ring.heartbeat-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "heartbeat_timeout", + "required": false, + "desc": "The heartbeat timeout after which alertmanagers are considered unhealthy within the ring. 0 = never (timeout disabled).", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "alertmanager.sharding-ring.heartbeat-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "replication_factor", + "required": false, + "desc": "The replication factor to use when sharding the alertmanager.", + "fieldValue": null, + "fieldDefaultValue": 3, + "fieldFlag": "alertmanager.sharding-ring.replication-factor", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "zone_awareness_enabled", + "required": false, + "desc": "True to enable zone-awareness and replicate alerts across different availability zones.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "alertmanager.sharding-ring.zone-awareness-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_id", + "required": false, + "desc": "Instance ID to register in the ring.", + "fieldValue": null, + "fieldDefaultValue": "\u003chostname\u003e", + "fieldFlag": "alertmanager.sharding-ring.instance-id", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_interface_names", + "required": false, + "desc": "List of network interface names to look up when finding the instance IP address.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "alertmanager.sharding-ring.instance-interface-names", + "fieldType": "list of string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_port", + "required": false, + "desc": "Port to advertise in the ring (defaults to -server.grpc-listen-port).", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "alertmanager.sharding-ring.instance-port", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_addr", + "required": false, + "desc": "IP address to advertise in the ring. Default is auto-detected.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.sharding-ring.instance-addr", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_availability_zone", + "required": false, + "desc": "The availability zone where this instance is running. Required if zone-awareness is enabled.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.sharding-ring.instance-availability-zone", + "fieldType": "string", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "fallback_config_file", + "required": false, + "desc": "Filename of fallback config to use if none specified for instance.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.configs.fallback", + "fieldType": "string" + }, + { + "kind": "field", + "name": "peer_timeout", + "required": false, + "desc": "Time to wait between peers to send notifications.", + "fieldValue": null, + "fieldDefaultValue": 15000000000, + "fieldFlag": "alertmanager.peer-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "enable_api", + "required": false, + "desc": "Enable the alertmanager config API.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "alertmanager.enable-api", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "alertmanager_client", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "remote_timeout", + "required": false, + "desc": "Timeout for downstream alertmanagers.", + "fieldValue": null, + "fieldDefaultValue": 2000000000, + "fieldFlag": "alertmanager.alertmanager-client.remote-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "alertmanager.alertmanager-client.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.alertmanager-client.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.alertmanager-client.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.alertmanager-client.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.alertmanager-client.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "alertmanager.alertmanager-client.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "persist_interval", + "required": false, + "desc": "The interval between persisting the current alertmanager state (notification log and silences) to object storage. This is only used when sharding is enabled. This state is read when all replicas for a shard can not be contacted. In this scenario, having persisted the state more frequently will result in potentially fewer lost silences, and fewer duplicate notifications.", + "fieldValue": null, + "fieldDefaultValue": 900000000000, + "fieldFlag": "alertmanager.persist-interval", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "alertmanager_storage", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "backend", + "required": false, + "desc": "Backend storage to use. Supported backends are: s3, gcs, azure, swift, filesystem, local.", + "fieldValue": null, + "fieldDefaultValue": "filesystem", + "fieldFlag": "alertmanager-storage.backend", + "fieldType": "string" + }, + { + "kind": "block", + "name": "s3", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "endpoint", + "required": false, + "desc": "The S3 bucket endpoint. It could be an AWS S3 endpoint listed at https://docs.aws.amazon.com/general/latest/gr/s3.html or the address of an S3-compatible service in hostname:port format.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.s3.endpoint", + "fieldType": "string" + }, + { + "kind": "field", + "name": "region", + "required": false, + "desc": "S3 region. If unset, the client will issue a S3 GetBucketLocation API call to autodetect it.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.s3.region", + "fieldType": "string" + }, + { + "kind": "field", + "name": "bucket_name", + "required": false, + "desc": "S3 bucket name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.s3.bucket-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "secret_access_key", + "required": false, + "desc": "S3 secret access key", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.s3.secret-access-key", + "fieldType": "string" + }, + { + "kind": "field", + "name": "access_key_id", + "required": false, + "desc": "S3 access key ID", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.s3.access-key-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "insecure", + "required": false, + "desc": "If enabled, use http:// for the S3 endpoint instead of https://. This could be useful in local dev/test environments while using an S3-compatible backend storage, like Minio.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "alertmanager-storage.s3.insecure", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "signature_version", + "required": false, + "desc": "The signature version to use for authenticating against S3. Supported values are: v4, v2.", + "fieldValue": null, + "fieldDefaultValue": "v4", + "fieldFlag": "alertmanager-storage.s3.signature-version", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "sse", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "type", + "required": false, + "desc": "Enable AWS Server Side Encryption. Supported values: SSE-KMS, SSE-S3.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.s3.sse.type", + "fieldType": "string" + }, + { + "kind": "field", + "name": "kms_key_id", + "required": false, + "desc": "KMS Key ID used to encrypt objects in S3", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.s3.sse.kms-key-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "kms_encryption_context", + "required": false, + "desc": "KMS Encryption Context used for object encryption. It expects JSON formatted string.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.s3.sse.kms-encryption-context", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "http", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "idle_conn_timeout", + "required": false, + "desc": "The time an idle connection will remain idle before closing.", + "fieldValue": null, + "fieldDefaultValue": 90000000000, + "fieldFlag": "alertmanager-storage.s3.http.idle-conn-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "response_header_timeout", + "required": false, + "desc": "The amount of time the client will wait for a servers response headers.", + "fieldValue": null, + "fieldDefaultValue": 120000000000, + "fieldFlag": "alertmanager-storage.s3.http.response-header-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "insecure_skip_verify", + "required": false, + "desc": "If the client connects to S3 via HTTPS and this option is enabled, the client will accept any certificate and hostname.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "alertmanager-storage.s3.http.insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_handshake_timeout", + "required": false, + "desc": "Maximum time to wait for a TLS handshake. 0 means no limit.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "alertmanager-storage.s3.tls-handshake-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "expect_continue_timeout", + "required": false, + "desc": "The time to wait for a server's first response headers after fully writing the request headers if the request has an Expect header. 0 to send the request body immediately.", + "fieldValue": null, + "fieldDefaultValue": 1000000000, + "fieldFlag": "alertmanager-storage.s3.expect-continue-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_idle_connections", + "required": false, + "desc": "Maximum number of idle (keep-alive) connections across all hosts. 0 means no limit.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "alertmanager-storage.s3.max-idle-connections", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_idle_connections_per_host", + "required": false, + "desc": "Maximum number of idle (keep-alive) connections to keep per-host. If 0, a built-in default value is used.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "alertmanager-storage.s3.max-idle-connections-per-host", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_connections_per_host", + "required": false, + "desc": "Maximum number of connections per host. 0 means no limit.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "alertmanager-storage.s3.max-connections-per-host", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "gcs", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "bucket_name", + "required": false, + "desc": "GCS bucket name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.gcs.bucket-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "service_account", + "required": false, + "desc": "JSON representing either a Google Developers Console client_credentials.json file or a Google Developers service account key file. If empty, fallback to Google default logic.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.gcs.service-account", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "azure", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "account_name", + "required": false, + "desc": "Azure storage account name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.azure.account-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "account_key", + "required": false, + "desc": "Azure storage account key", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.azure.account-key", + "fieldType": "string" + }, + { + "kind": "field", + "name": "container_name", + "required": false, + "desc": "Azure storage container name", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.azure.container-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "endpoint_suffix", + "required": false, + "desc": "Azure storage endpoint suffix without schema. The account name will be prefixed to this value to create the FQDN. If set to empty string, default endpoint suffix is used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.azure.endpoint-suffix", + "fieldType": "string" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Number of retries for recoverable errors", + "fieldValue": null, + "fieldDefaultValue": 20, + "fieldFlag": "alertmanager-storage.azure.max-retries", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "msi_resource", + "required": false, + "desc": "If set, this URL is used instead of https://\u003cstorage-account-name\u003e.\u003cendpoint-suffix\u003e for obtaining ServicePrincipalToken from MSI.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.azure.msi-resource", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "user_assigned_id", + "required": false, + "desc": "User assigned identity. If empty, then System assigned identity is used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.azure.user-assigned-id", + "fieldType": "string", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "swift", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "auth_version", + "required": false, + "desc": "OpenStack Swift authentication API version. 0 to autodetect.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "alertmanager-storage.swift.auth-version", + "fieldType": "int" + }, + { + "kind": "field", + "name": "auth_url", + "required": false, + "desc": "OpenStack Swift authentication URL", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.auth-url", + "fieldType": "string" + }, + { + "kind": "field", + "name": "username", + "required": false, + "desc": "OpenStack Swift username.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.username", + "fieldType": "string" + }, + { + "kind": "field", + "name": "user_domain_name", + "required": false, + "desc": "OpenStack Swift user's domain name.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.user-domain-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "user_domain_id", + "required": false, + "desc": "OpenStack Swift user's domain ID.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.user-domain-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "user_id", + "required": false, + "desc": "OpenStack Swift user ID.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.user-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "password", + "required": false, + "desc": "OpenStack Swift API key.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.password", + "fieldType": "string" + }, + { + "kind": "field", + "name": "domain_id", + "required": false, + "desc": "OpenStack Swift user's domain ID.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.domain-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "domain_name", + "required": false, + "desc": "OpenStack Swift user's domain name.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.domain-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_id", + "required": false, + "desc": "OpenStack Swift project ID (v2,v3 auth only).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.project-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_name", + "required": false, + "desc": "OpenStack Swift project name (v2,v3 auth only).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.project-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_domain_id", + "required": false, + "desc": "ID of the OpenStack Swift project's domain (v3 auth only), only needed if it differs the from user domain.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.project-domain-id", + "fieldType": "string" + }, + { + "kind": "field", + "name": "project_domain_name", + "required": false, + "desc": "Name of the OpenStack Swift project's domain (v3 auth only), only needed if it differs from the user domain.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.project-domain-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "region_name", + "required": false, + "desc": "OpenStack Swift Region to use (v2,v3 auth only).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.region-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "container_name", + "required": false, + "desc": "Name of the OpenStack Swift container to put chunks in.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.swift.container-name", + "fieldType": "string" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Max retries on requests error.", + "fieldValue": null, + "fieldDefaultValue": 3, + "fieldFlag": "alertmanager-storage.swift.max-retries", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "connect_timeout", + "required": false, + "desc": "Time after which a connection attempt is aborted.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "alertmanager-storage.swift.connect-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "request_timeout", + "required": false, + "desc": "Time after which an idle request is aborted. The timeout watchdog is reset each time some data is received, so the timeout triggers after X time no data is received on a request.", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "alertmanager-storage.swift.request-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "filesystem", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "dir", + "required": false, + "desc": "Local filesystem storage directory.", + "fieldValue": null, + "fieldDefaultValue": "alertmanager", + "fieldFlag": "alertmanager-storage.filesystem.dir", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "local", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "path", + "required": false, + "desc": "Path at which alertmanager configurations are stored.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager-storage.local.path", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "runtime_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "period", + "required": false, + "desc": "How often to check runtime config file.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "runtime-config.reload-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "file", + "required": false, + "desc": "File with the configuration that can be updated in runtime.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "runtime-config.file", + "fieldType": "string" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "memberlist", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "node_name", + "required": false, + "desc": "Name of the node in memberlist cluster. Defaults to hostname.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "memberlist.nodename", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "randomize_node_name", + "required": false, + "desc": "Add random suffix to the node name.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "memberlist.randomize-node-name", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "stream_timeout", + "required": false, + "desc": "The timeout for establishing a connection with a remote node, and for read/write operations.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "memberlist.stream-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "retransmit_factor", + "required": false, + "desc": "Multiplication factor used when sending out messages (factor * log(N+1)).", + "fieldValue": null, + "fieldDefaultValue": 4, + "fieldFlag": "memberlist.retransmit-factor", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "pull_push_interval", + "required": false, + "desc": "How often to use pull/push sync.", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "memberlist.pullpush-interval", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "gossip_interval", + "required": false, + "desc": "How often to gossip.", + "fieldValue": null, + "fieldDefaultValue": 200000000, + "fieldFlag": "memberlist.gossip-interval", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "gossip_nodes", + "required": false, + "desc": "How many nodes to gossip to.", + "fieldValue": null, + "fieldDefaultValue": 3, + "fieldFlag": "memberlist.gossip-nodes", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "gossip_to_dead_nodes_time", + "required": false, + "desc": "How long to keep gossiping to dead nodes, to give them chance to refute their death.", + "fieldValue": null, + "fieldDefaultValue": 30000000000, + "fieldFlag": "memberlist.gossip-to-dead-nodes-time", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "dead_node_reclaim_time", + "required": false, + "desc": "How soon can dead node's name be reclaimed with new address. 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "memberlist.dead-node-reclaim-time", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "compression_enabled", + "required": false, + "desc": "Enable message compression. This can be used to reduce bandwidth usage at the cost of slightly more CPU utilization.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "memberlist.compression-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "advertise_addr", + "required": false, + "desc": "Gossip address to advertise to other members in the cluster. Used for NAT traversal.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "memberlist.advertise-addr", + "fieldType": "string" + }, + { + "kind": "field", + "name": "advertise_port", + "required": false, + "desc": "Gossip port to advertise to other members in the cluster. Used for NAT traversal.", + "fieldValue": null, + "fieldDefaultValue": 7946, + "fieldFlag": "memberlist.advertise-port", + "fieldType": "int" + }, + { + "kind": "field", + "name": "join_members", + "required": false, + "desc": "Other cluster members to join. Can be specified multiple times. It can be an IP, hostname or an entry specified in the DNS Service Discovery format.", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "memberlist.join", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "min_join_backoff", + "required": false, + "desc": "Min backoff duration to join other cluster members.", + "fieldValue": null, + "fieldDefaultValue": 1000000000, + "fieldFlag": "memberlist.min-join-backoff", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_join_backoff", + "required": false, + "desc": "Max backoff duration to join other cluster members.", + "fieldValue": null, + "fieldDefaultValue": 60000000000, + "fieldFlag": "memberlist.max-join-backoff", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_join_retries", + "required": false, + "desc": "Max number of retries to join other cluster members.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "memberlist.max-join-retries", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "abort_if_cluster_join_fails", + "required": false, + "desc": "If this node fails to join memberlist cluster, abort.", + "fieldValue": null, + "fieldDefaultValue": true, + "fieldFlag": "memberlist.abort-if-join-fails", + "fieldType": "boolean" + }, + { + "kind": "field", + "name": "rejoin_interval", + "required": false, + "desc": "If not 0, how often to rejoin the cluster. Occasional rejoin can help to fix the cluster split issue, and is harmless otherwise. For example when using only few components as a seed nodes (via -memberlist.join), then it's recommended to use rejoin. If -memberlist.join points to dynamic service that resolves to all gossiping nodes (eg. Kubernetes headless service), then rejoin is not needed.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "memberlist.rejoin-interval", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "left_ingesters_timeout", + "required": false, + "desc": "How long to keep LEFT ingesters in the ring.", + "fieldValue": null, + "fieldDefaultValue": 300000000000, + "fieldFlag": "memberlist.left-ingesters-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "leave_timeout", + "required": false, + "desc": "Timeout for leaving memberlist cluster.", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "memberlist.leave-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "message_history_buffer_bytes", + "required": false, + "desc": "How much space to use for keeping received and sent messages in memory for troubleshooting (two buffers). 0 to disable.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "memberlist.message-history-buffer-bytes", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "bind_addr", + "required": false, + "desc": "IP address to listen on for gossip messages. Multiple addresses may be specified. Defaults to 0.0.0.0", + "fieldValue": null, + "fieldDefaultValue": [], + "fieldFlag": "memberlist.bind-addr", + "fieldType": "list of string" + }, + { + "kind": "field", + "name": "bind_port", + "required": false, + "desc": "Port to listen on for gossip messages.", + "fieldValue": null, + "fieldDefaultValue": 7946, + "fieldFlag": "memberlist.bind-port", + "fieldType": "int" + }, + { + "kind": "field", + "name": "packet_dial_timeout", + "required": false, + "desc": "Timeout used when connecting to other nodes to send packet.", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "memberlist.packet-dial-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "packet_write_timeout", + "required": false, + "desc": "Timeout for writing 'packet' data.", + "fieldValue": null, + "fieldDefaultValue": 5000000000, + "fieldFlag": "memberlist.packet-write-timeout", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS on the memberlist transport layer.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "memberlist.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "memberlist.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "memberlist.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "memberlist.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "memberlist.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "memberlist.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "block", + "name": "query_scheduler", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "max_outstanding_requests_per_tenant", + "required": false, + "desc": "Maximum number of outstanding requests per tenant per query-scheduler. In-flight requests above this limit will fail with HTTP response status code 429.", + "fieldValue": null, + "fieldDefaultValue": 100, + "fieldFlag": "query-scheduler.max-outstanding-requests-per-tenant", + "fieldType": "int" + }, + { + "kind": "field", + "name": "querier_forget_delay", + "required": false, + "desc": "If a querier disconnects without sending notification about graceful shutdown, the query-scheduler will keep the querier in the tenant's shard until the forget delay has passed. This feature is useful to reduce the blast radius when shuffle-sharding is enabled.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "query-scheduler.querier-forget-delay", + "fieldType": "duration", + "fieldCategory": "experimental" + }, + { + "kind": "block", + "name": "grpc_client_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "max_recv_msg_size", + "required": false, + "desc": "gRPC client max receive message size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 104857600, + "fieldFlag": "query-scheduler.grpc-client-config.grpc-max-recv-msg-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_send_msg_size", + "required": false, + "desc": "gRPC client max send message size (bytes).", + "fieldValue": null, + "fieldDefaultValue": 104857600, + "fieldFlag": "query-scheduler.grpc-client-config.grpc-max-send-msg-size", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "grpc_compression", + "required": false, + "desc": "Use compression when sending messages. Supported values are: 'gzip', 'snappy' and '' (disable compression)", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "query-scheduler.grpc-client-config.grpc-compression", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "rate_limit", + "required": false, + "desc": "Rate limit for gRPC client; 0 means disabled.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "query-scheduler.grpc-client-config.grpc-client-rate-limit", + "fieldType": "float", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "rate_limit_burst", + "required": false, + "desc": "Rate limit burst for gRPC client.", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "query-scheduler.grpc-client-config.grpc-client-rate-limit-burst", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "backoff_on_ratelimits", + "required": false, + "desc": "Enable backoff and retry when we hit ratelimits.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "query-scheduler.grpc-client-config.backoff-on-ratelimits", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "block", + "name": "backoff_config", + "required": false, + "desc": "", + "blockEntries": [ + { + "kind": "field", + "name": "min_period", + "required": false, + "desc": "Minimum delay when backing off.", + "fieldValue": null, + "fieldDefaultValue": 100000000, + "fieldFlag": "query-scheduler.grpc-client-config.backoff-min-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_period", + "required": false, + "desc": "Maximum delay when backing off.", + "fieldValue": null, + "fieldDefaultValue": 10000000000, + "fieldFlag": "query-scheduler.grpc-client-config.backoff-max-period", + "fieldType": "duration", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "max_retries", + "required": false, + "desc": "Number of times to backoff and retry before failing.", + "fieldValue": null, + "fieldDefaultValue": 10, + "fieldFlag": "query-scheduler.grpc-client-config.backoff-retries", + "fieldType": "int", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "tls_enabled", + "required": false, + "desc": "Enable TLS in the GRPC client. This flag needs to be enabled when any other TLS flag is set. If set to false, insecure connection to gRPC server will be used.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "query-scheduler.grpc-client-config.tls-enabled", + "fieldType": "boolean", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_cert_path", + "required": false, + "desc": "Path to the client certificate file, which will be used for authenticating with the server. Also requires the key path to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "query-scheduler.grpc-client-config.tls-cert-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_key_path", + "required": false, + "desc": "Path to the key file for the client certificate. Also requires the client certificate to be configured.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "query-scheduler.grpc-client-config.tls-key-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_ca_path", + "required": false, + "desc": "Path to the CA certificates file to validate server certificate against. If not set, the host's root CA certificates are used.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "query-scheduler.grpc-client-config.tls-ca-path", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_server_name", + "required": false, + "desc": "Override the expected name on the server certificate.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "query-scheduler.grpc-client-config.tls-server-name", + "fieldType": "string", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "tls_insecure_skip_verify", + "required": false, + "desc": "Skip validating server certificate.", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "query-scheduler.grpc-client-config.tls-insecure-skip-verify", + "fieldType": "boolean", + "fieldCategory": "advanced" + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null + } + ], + "fieldValue": null, + "fieldDefaultValue": null +} diff --git a/pkg/mimirtool/config/gem.go b/pkg/mimirtool/config/gem.go new file mode 100644 index 0000000000..4a35b123f6 --- /dev/null +++ b/pkg/mimirtool/config/gem.go @@ -0,0 +1,58 @@ +// SPDX-License-Identifier: AGPL-3.0-only + +package config + +// GEM170ToGEM200Mapper maps from gem-1.7.0 to gem-2.0.0 configurations +func GEM170ToGEM200Mapper() Mapper { + nonExistentGEMPaths := map[string]struct{}{ + "blocks_storage.tsdb.max_exemplars": {}, + "query_range.parallelise_shardable_queries": {}, + } + gemRenames := make(map[string]Mapping, len(cortexRenameMappings)) + for path, mapping := range cortexRenameMappings { + if _, notInGEM := nonExistentGEMPaths[path]; notInGEM { + continue + } + gemRenames[path] = mapping + } + + return MultiMapper{ + mapGEMInstanceInterfaceNames(), + // first try to naively map keys from old config to same keys from new config + BestEffortDirectMapper{}, + // next map alertmanager URL in the ruler config + MapperFunc(alertmanagerURLMapperFunc), + // Removed `-alertmanager.storage.*` configuration options, use `-alertmanager-storage.*` instead. -alertmanager.storage.* should take precedence + MapperFunc(alertmanagerStorageMapperFunc), + // Removed the support for `-ruler.storage.*`, use `-ruler-storage.*` instead. -ruler.storage.* should take precedence + MapperFunc(rulerStorageMapperFunc), + // Replace (ruler|alertmanager).storage.s3.sse_encryption=true with (alertmanager|ruler)_storage.s3.sse.type="SSE-S3" + mapS3SSE("alertmanager"), mapS3SSE("ruler"), + // Apply trivial renames and moves of parameters + PathMapper{PathMappings: gemRenames}, + // Remap sharding configs + MapperFunc(updateKVStoreValue), + // Convert provided memcached service and host to the DNS service discovery format + MapperFunc(mapMemcachedAddresses), + // Map `-*.s3.url` to `-*.s3.(endpoint|access_key_id|secret_access_key)` + mapRulerAlertmanagerS3URL("alertmanager.storage", "alertmanager_storage"), mapRulerAlertmanagerS3URL("ruler.storage", "ruler_storage"), + // Map `-*.s3.bucketnames` and (maybe part of `-*s3.s3.url`) to `-*.s3.bucket-name` + mapRulerAlertmanagerS3Buckets("alertmanager.storage", "alertmanager_storage"), mapRulerAlertmanagerS3Buckets("ruler.storage", "ruler_storage"), + // Prevent server.http_listen_port from being updated with a new default and always output it. + MapperFunc(mapServerHTTPListenPort), + } +} + +func mapGEMInstanceInterfaceNames() Mapper { + ifaceNames := map[string]string{ + "admin_api.leader_election.ring.instance_interface_names": "admin_api.leader_election.ring.instance_interface_names", + "alertmanager.sharding_ring.instance_interface_names": "alertmanager.sharding_ring.instance_interface_names", + "compactor.sharding_ring.instance_interface_names": "compactor.sharding_ring.instance_interface_names", + "distributor.ring.instance_interface_names": "distributor.ring.instance_interface_names", + "frontend.instance_interface_names": "frontend.instance_interface_names", + "ingester.lifecycler.interface_names": "ingester.ring.instance_interface_names", + "ruler.ring.instance_interface_names": "ruler.ring.instance_interface_names", + "store_gateway.sharding_ring.instance_interface_names": "store_gateway.sharding_ring.instance_interface_names", + } + return mapInstanceInterfaceNames(ifaceNames) +} diff --git a/pkg/mimirtool/config/inspect.go b/pkg/mimirtool/config/inspect.go index 1e9e0222d5..7bcb3ee7ba 100644 --- a/pkg/mimirtool/config/inspect.go +++ b/pkg/mimirtool/config/inspect.go @@ -19,7 +19,6 @@ import ( "github.com/prometheus/common/model" "gopkg.in/yaml.v3" - "github.com/grafana/mimir/pkg/mimir" "github.com/grafana/mimir/tools/doc-generator/parse" ) @@ -31,11 +30,19 @@ type InspectedEntryFactory func() *InspectedEntry // InspectedEntry is the structure that holds a configuration block or a single configuration parameters. // Blocks contain other other InspectedEntries. + +type EntryKind string + +const ( + KindBlock EntryKind = "block" + KindField EntryKind = "field" +) + type InspectedEntry struct { - Kind parse.EntryKind `json:"kind"` - Name string `json:"name"` - Required bool `json:"required"` - Desc string `json:"desc"` + Kind EntryKind `json:"kind"` + Name string `json:"name"` + Required bool `json:"required"` + Desc string `json:"desc"` // In case the Kind is "block" BlockEntries []*InspectedEntry `json:"blockEntries,omitempty"` @@ -43,36 +50,76 @@ type InspectedEntry struct { BlockFlagsPrefixes []string `json:"blockFlagsPrefixes,omitempty"` // In case the Kind is "field" - FieldValue interface{} `json:"fieldValue,omitempty"` - FieldDefaultValue interface{} `json:"fieldDefaultValue,omitempty"` - FieldFlag string `json:"fieldFlag,omitempty"` - FieldType string `json:"fieldType,omitempty"` - FieldCategory string `json:"fieldCategory,omitempty"` + FieldValue Value `json:"fieldValue,omitempty"` + FieldDefaultValue Value `json:"fieldDefaultValue,omitempty"` + FieldFlag string `json:"fieldFlag,omitempty"` + FieldType string `json:"fieldType,omitempty"` + FieldCategory string `json:"fieldCategory,omitempty"` + FieldElement *InspectedEntry `json:"fieldElement,omitempty"` // when FieldType is "slice" or "map" +} + +func (i *InspectedEntry) GetValue(path string) (Value, error) { + child, err := i.find(path) + if err != nil { + return Value{}, errors.Wrap(err, path) + } + return child.FieldValue, nil +} + +// MustGetValue does the same as GetVValue, but panics if there's an error. +func (i *InspectedEntry) MustGetValue(path string) Value { + v, err := i.GetValue(path) + if err != nil { + panic(err) + } + return v +} + +// SetValue sets individual parameters. val can be any value. If an error is returned, +// its errors.Cause will be ErrParameterNotFound. +func (i *InspectedEntry) SetValue(path string, v Value) error { + child, err := i.find(path) + if err != nil { + return err + } + + child.FieldValue = v + return nil } // String implements flag.Value func (i *InspectedEntry) String() string { - if val, ok := i.FieldValue.(flag.Value); ok { + if val, ok := i.FieldValue.AsInterface().(flag.Value); ok { return val.String() } - return fmt.Sprintf("%v", i.FieldValue) + return fmt.Sprintf("%v", i.FieldValue.AsInterface()) } // Set implements flag.Value func (i *InspectedEntry) Set(s string) (err error) { - if val, ok := i.FieldValue.(flag.Value); ok { - // If the value already know how to be set, then use that + if val, ok := i.FieldValue.AsInterface().(flag.Value); ok { + // If the value already knows how to be set, then use that return val.Set(s) + } else if i.FieldValue.IsUnset() { + // Else, maybe the value wasn't initialized and is nil, so the type assertion failed. + zero := i.zeroValuePtr() + if zeroValue, ok := zero.AsInterface().(flag.Value); ok { + i.FieldValue = zero + return zeroValue.Set(s) + } } + // Otherwise, it should be a primitive go type (int, string, float64). // Decoding it as YAML should be sufficiently reliable. + var v Value switch i.FieldType { case "string": - i.FieldValue = s + v = StringValue(s) default: jsonDecoder := yaml.NewDecoder(bytes.NewBuffer([]byte(s))) - i.FieldValue, err = decodeValue(i.FieldType, jsonDecoder) + v, err = i.decodeValue(jsonDecoder) } + i.FieldValue = v return } @@ -82,7 +129,7 @@ func (i *InspectedEntry) IsBoolFlag() bool { } func (i *InspectedEntry) RegisterFlags(fs *flag.FlagSet, logger log.Logger) { - if i.Kind == parse.KindBlock { + if i.Kind == KindBlock { for _, e := range i.BlockEntries { e.RegisterFlags(fs, logger) } @@ -102,7 +149,7 @@ func (i *InspectedEntry) UnmarshalJSON(b []byte) error { return err } - if i.Kind != parse.KindField { + if i.Kind != KindField { return nil } @@ -124,22 +171,25 @@ func (i *InspectedEntry) unmarshalJSONValue(b []byte) error { return err } - decodeIfPresent := func(b []byte) (interface{}, error) { - if len(b) == 0 { - return nil, nil + decodeIfPresent := func(b []byte) (Value, error) { + if len(b) == 0 || bytes.Equal(b, []byte("null")) { + return Value{}, nil } - return decodeValue(i.FieldType, json.NewDecoder(bytes.NewBuffer(b))) + return i.decodeValue(json.NewDecoder(bytes.NewBuffer(b))) } - i.FieldValue, err = decodeIfPresent(jsonValues.Raw) + var v Value + v, err = decodeIfPresent(jsonValues.Raw) if err != nil { return err } + i.FieldValue = v - i.FieldDefaultValue, err = decodeIfPresent(jsonValues.RawDefault) + v, err = decodeIfPresent(jsonValues.RawDefault) if err != nil { return err } + i.FieldDefaultValue = v return nil } @@ -150,9 +200,13 @@ func (i *InspectedEntry) MarshalYAML() (interface{}, error) { func (i *InspectedEntry) asMap() map[string]interface{} { combined := make(map[string]interface{}, len(i.BlockEntries)) for _, e := range i.BlockEntries { - if e.Kind == parse.KindField { - if e.FieldValue != nil { - combined[e.Name] = e.FieldValue + if e.Kind == KindField { + if val := e.FieldValue; !val.IsUnset() { + if val.IsSlice() { + combined[e.Name] = val.AsSlice() + } else { + combined[e.Name] = val.AsInterface() + } } } else if e.Name != notInYaml { combined[e.Name] = e.asMap() @@ -162,13 +216,22 @@ func (i *InspectedEntry) asMap() map[string]interface{} { } func (i *InspectedEntry) UnmarshalYAML(value *yaml.Node) error { - if i.Kind == parse.KindField { - decodedValue, err := decodeValue(i.FieldType, value) + if i.FieldType == "slice" { + decodedSlice, err := i.decodeSlice(value) + if err != nil { + return errors.Wrapf(err, "could not unmarshal %s", i.Name) + } + i.FieldValue = decodedSlice + return nil + } + + if i.Kind == KindField { + decodedValue, err := i.decodeValue(value) if err != nil { return err } i.FieldValue = decodedValue - return err + return nil } for idx := 0; idx < len(value.Content); idx += 2 { @@ -186,59 +249,55 @@ func (i *InspectedEntry) UnmarshalYAML(value *yaml.Node) error { return nil } -func decodeValue(fieldType string, decoder interface{ Decode(interface{}) error }) (interface{}, error) { - typ := parse.ReflectType(fieldType) - - switch fieldType { +func (i *InspectedEntry) zeroValuePtr() Value { + var typ reflect.Type + switch i.FieldType { case "duration": d := duration(0) typ = reflect.TypeOf(&d) case "list of string": typ = reflect.TypeOf(stringSlice{}) + default: + typ = parse.ReflectType(i.FieldType) } - decoded := reflect.New(typ).Interface() // create a new typed pointer - err := decoder.Decode(decoded) + return InterfaceValue(reflect.New(typ).Interface()) // create a new typed pointer +} + +type decoder interface { + Decode(interface{}) error +} + +func (i *InspectedEntry) decodeValue(decoder decoder) (Value, error) { + decoded := i.zeroValuePtr() + + err := decoder.Decode(decoded.AsInterface()) if err != nil { - return nil, err + return Value{}, err } - switch fieldType { + switch i.FieldType { case "duration": - // convert it to time.Duration. - value := decoded.(**duration) - return time.Duration(**value), err + value := decoded.AsInterface().(**duration) + return DurationValue(time.Duration(**value)), err case "list of string": - return *decoded.(*stringSlice), nil + return InterfaceValue(*decoded.AsInterface().(*stringSlice)), nil default: // return a dereferenced typed value - return reflect.ValueOf(decoded).Elem().Interface(), nil - } -} - -// GetValue returns the golang value of the parameter as an interface{}. -// The value will be returned so that type assertions on the value work. -// For example, for a duration parameter writing -// val, _ := inspectedEntry.GetValue("path"); duration := val.(time.Duration) -// will not panic -func (i InspectedEntry) GetValue(path string) (interface{}, error) { - entry, err := i.find(path) - if err != nil { - return nil, errors.Wrap(err, path) - } - if entry.Kind != parse.KindField { - return nil, errors.Wrap(ErrParameterNotFound, path) + return InterfaceValue(reflect.ValueOf(decoded.AsInterface()).Elem().Interface()), nil } - return entry.FieldValue, nil } -// MustGetValue does the same as GetValue, but panics if there's an error. -func (i InspectedEntry) MustGetValue(path string) interface{} { - val, err := i.GetValue(path) - if err != nil { - panic(err) +func (i *InspectedEntry) decodeSlice(value *yaml.Node) (Value, error) { + slice := make([]*InspectedEntry, len(value.Content)) + for idx := range slice { + slice[idx] = i.FieldElement.Clone() + err := value.Content[idx].Decode(slice[idx]) + if err != nil { + return Value{}, err + } } - return val + return SliceValue(slice), nil } func (i *InspectedEntry) find(path string) (*InspectedEntry, error) { @@ -248,7 +307,7 @@ func (i *InspectedEntry) find(path string) (*InspectedEntry, error) { nextSegment, restOfPath := cutFirstPathSegment(path) - if i.Kind != parse.KindBlock { + if i.Kind != KindBlock { // if path was non-empty, then there's more to recurse, but this isn't a block return nil, ErrParameterNotFound } @@ -271,18 +330,6 @@ func cutFirstPathSegment(path string) (string, string) { return nextSegment, restOfPath } -// SetValue sets individual parameters. val can be any value. If an error is returned, -// its errors.Cause will be ErrParameterNotFound. -func (i *InspectedEntry) SetValue(path string, val interface{}) error { - entry, err := i.find(path) - if err != nil { - return errors.Wrap(ErrParameterNotFound, path) - } - - entry.FieldValue = val - return nil -} - // Delete deletes a leaf parameter or entire subtree from the InspectedEntry. // Delete also recursively deletes any parent blocks that, because of this delete, now contain no entries. // If an error is returned, it's errors.Cause will be ErrParameterNotFound. @@ -327,20 +374,20 @@ func (i *InspectedEntry) delete(path string) error { // Walk visits all leaf parameters of the InspectedEntry in a depth-first manner and calls f. If f returns an error, // the traversal is not stopped. The error Walk returns are the combined errors that all f invocations returned. If no // f invocations returned an error, then Walk returns nil. -func (i InspectedEntry) Walk(f func(path string, value interface{}) error) error { +func (i InspectedEntry) Walk(f func(path string, value Value) error) error { errs := multierror.New() i.walk("", &errs, f) return errs.Err() } -func (i InspectedEntry) walk(path string, errs *multierror.MultiError, f func(path string, value interface{}) error) { +func (i InspectedEntry) walk(path string, errs *multierror.MultiError, f func(path string, value Value) error) { for _, e := range i.BlockEntries { fieldPath := e.Name if path != "" { fieldPath = path + "." + e.Name } - if e.Kind == parse.KindField { + if e.Kind == KindField { errs.Add(f(fieldPath, e.FieldValue)) } else { e.walk(fieldPath, errs, f) @@ -357,15 +404,15 @@ func (i InspectedEntry) GetFlag(path string) (string, error) { return child.FieldFlag, nil } -func (i InspectedEntry) GetDefaultValue(path string) (interface{}, error) { +func (i InspectedEntry) GetDefaultValue(path string) (Value, error) { child, err := i.find(path) if err != nil { - return nil, err + return Value{}, err } return child.FieldDefaultValue, nil } -func (i InspectedEntry) MustGetDefaultValue(path string) interface{} { +func (i InspectedEntry) MustGetDefaultValue(path string) Value { val, err := i.GetDefaultValue(path) if err != nil { panic(err) @@ -373,7 +420,7 @@ func (i InspectedEntry) MustGetDefaultValue(path string) interface{} { return val } -func (i InspectedEntry) SetDefaultValue(path string, val interface{}) error { +func (i InspectedEntry) SetDefaultValue(path string, val Value) error { entry, err := i.find(path) if err != nil { return errors.Wrap(ErrParameterNotFound, path) @@ -383,6 +430,37 @@ func (i InspectedEntry) SetDefaultValue(path string, val interface{}) error { return nil } +func (i *InspectedEntry) Clone() *InspectedEntry { + if i == nil { + return nil + } + blockEntries := make([]*InspectedEntry, len(i.BlockEntries)) + for idx := range blockEntries { + blockEntries[idx] = i.BlockEntries[idx].Clone() + } + + blockFlagsPrefixes := make([]string, len(i.BlockFlagsPrefixes)) + for idx := range blockFlagsPrefixes { + blockFlagsPrefixes[idx] = i.BlockFlagsPrefixes[idx] + } + + return &InspectedEntry{ + Kind: i.Kind, + Name: i.Name, + Required: i.Required, + Desc: i.Desc, + BlockEntries: blockEntries, + BlockFlagsPrefix: i.BlockFlagsPrefix, + BlockFlagsPrefixes: blockFlagsPrefixes, + FieldValue: i.FieldValue, + FieldDefaultValue: i.FieldDefaultValue, + FieldFlag: i.FieldFlag, + FieldType: i.FieldType, + FieldCategory: i.FieldCategory, + FieldElement: i.FieldElement.Clone(), + } +} + // Describe returns a JSON-serialized result of InspectConfig func Describe(val flagext.RegistererWithLogger) ([]byte, error) { parsedCfg, err := InspectConfig(val) @@ -421,40 +499,48 @@ func convertEntriesToEntries(blocks []*parse.ConfigEntry) []*InspectedEntry { func convertEntryToEntry(entry *parse.ConfigEntry) *InspectedEntry { e := &InspectedEntry{ - Kind: entry.Kind, Name: entry.Name, Required: entry.Required, Desc: entry.FieldDesc, } - if e.Kind == parse.KindBlock { + switch entry.Kind { + case parse.KindSlice: + e.Kind = KindField + e.FieldType = "slice" + element := convertBlockToEntry(entry.Element) + e.FieldElement = element + case parse.KindBlock: + e.Kind = KindBlock e.BlockEntries = convertEntriesToEntries(entry.Block.Entries) e.BlockFlagsPrefix = entry.Block.FlagsPrefix e.BlockFlagsPrefixes = entry.Block.FlagsPrefixes - } else { + case parse.KindField: + e.Kind = KindField e.FieldFlag = entry.FieldFlag e.FieldType = entry.FieldType e.FieldCategory = entry.FieldCategory - e.FieldValue = nil - e.FieldDefaultValue = getDefaultValue(entry) + e.FieldDefaultValue = parseDefaultValue(e, entry.FieldDefault) + default: + panic(fmt.Sprintf("cannot handle parse kind %q, entry name: %s", entry.Kind, entry.Name)) } return e } -func getDefaultValue(entry *parse.ConfigEntry) interface{} { +func parseDefaultValue(e *InspectedEntry, def string) Value { yamlNodeKind := yaml.ScalarNode - if strings.HasPrefix(entry.FieldType, "map") { + if strings.HasPrefix(e.FieldType, "map") { yamlNodeKind = yaml.MappingNode - } else if strings.HasPrefix(entry.FieldType, "list") { + } else if strings.HasPrefix(e.FieldType, "list") { yamlNodeKind = yaml.SequenceNode } - value, _ := decodeValue(entry.FieldType, &yaml.Node{Kind: yamlNodeKind, Value: entry.FieldDefault}) + value, _ := e.decodeValue(&yaml.Node{Kind: yamlNodeKind, Value: def}) return value } func convertBlockToEntry(block *parse.ConfigBlock) *InspectedEntry { return &InspectedEntry{ - Kind: parse.KindBlock, + Kind: KindBlock, Name: block.Name, BlockEntries: convertEntriesToEntries(block.Entries), BlockFlagsPrefix: block.FlagsPrefix, @@ -548,20 +634,17 @@ func (s *stringSlice) UnmarshalYAML(value *yaml.Node) error { return nil } -//go:embed descriptors/cortex-v1.11.0.json -var oldCortexConfig []byte - -//go:embed descriptors/cortex-v1.11.0-flags-only.json -var oldCortexConfigFlagsOnly []byte +const notInYaml = "not-in-yaml" //go:embed descriptors/mimir-v2.0.0-flags-only.json var mimirConfigFlagsOnly []byte -const notInYaml = "not-in-yaml" +//go:embed descriptors/mimir-v2.0.0.json +var mimirConfig []byte func DefaultMimirConfig() *InspectedEntry { - cfg, err := InspectConfig(&mimir.Config{}) - if err != nil { + cfg := &InspectedEntry{} + if err := json.Unmarshal(mimirConfig, cfg); err != nil { panic(err) } @@ -571,7 +654,7 @@ func DefaultMimirConfig() *InspectedEntry { } cfg.BlockEntries = append(cfg.BlockEntries, &InspectedEntry{ - Kind: parse.KindBlock, + Kind: KindBlock, Name: notInYaml, Required: false, Desc: "Flags not available in YAML file.", @@ -580,6 +663,12 @@ func DefaultMimirConfig() *InspectedEntry { return cfg } +//go:embed descriptors/cortex-v1.11.0.json +var oldCortexConfig []byte + +//go:embed descriptors/cortex-v1.11.0-flags-only.json +var oldCortexConfigFlagsOnly []byte + func DefaultCortexConfig() *InspectedEntry { cfg := &InspectedEntry{} if err := json.Unmarshal(oldCortexConfig, cfg); err != nil { @@ -592,7 +681,61 @@ func DefaultCortexConfig() *InspectedEntry { } cfg.BlockEntries = append(cfg.BlockEntries, &InspectedEntry{ - Kind: parse.KindBlock, + Kind: KindBlock, + Name: notInYaml, + Required: false, + Desc: "Flags not available in YAML file.", + BlockEntries: cfgFlagsOnly.BlockEntries, + }) + return cfg +} + +//go:embed descriptors/gem-v1.7.0.json +var gem170CortexConfig []byte + +//go:embed descriptors/gem-v1.7.0-flags-only.json +var gem170CortexConfigFlagsOnly []byte + +func DefaultGEM170Config() *InspectedEntry { + cfg := &InspectedEntry{} + if err := json.Unmarshal(gem170CortexConfig, cfg); err != nil { + panic(err) + } + + cfgFlagsOnly := &InspectedEntry{} + if err := json.Unmarshal(gem170CortexConfigFlagsOnly, cfgFlagsOnly); err != nil { + panic(err) + } + + cfg.BlockEntries = append(cfg.BlockEntries, &InspectedEntry{ + Kind: KindBlock, + Name: notInYaml, + Required: false, + Desc: "Flags not available in YAML file.", + BlockEntries: cfgFlagsOnly.BlockEntries, + }) + return cfg +} + +//go:embed descriptors/gem-v2.0.0.json +var gem200CortexConfig []byte + +//go:embed descriptors/gem-v2.0.0-flags-only.json +var gem200CortexConfigFlagsOnly []byte + +func DefaultGEM200COnfig() *InspectedEntry { + cfg := &InspectedEntry{} + if err := json.Unmarshal(gem200CortexConfig, cfg); err != nil { + panic(err) + } + + cfgFlagsOnly := &InspectedEntry{} + if err := json.Unmarshal(gem200CortexConfigFlagsOnly, cfgFlagsOnly); err != nil { + panic(err) + } + + cfg.BlockEntries = append(cfg.BlockEntries, &InspectedEntry{ + Kind: KindBlock, Name: notInYaml, Required: false, Desc: "Flags not available in YAML file.", diff --git a/pkg/mimirtool/config/inspect_test.go b/pkg/mimirtool/config/inspect_test.go index 23f73e0ace..c0b2da707c 100644 --- a/pkg/mimirtool/config/inspect_test.go +++ b/pkg/mimirtool/config/inspect_test.go @@ -67,7 +67,7 @@ func TestInspectedEntry_SetThenGet(t *testing.T) { inspectedConfig, err := InspectConfigWithFlags(tc.testStruct, nil) require.NoError(t, err) - err = inspectedConfig.SetValue(tc.path, tc.expectedValue) + err = inspectedConfig.SetValue(tc.path, InterfaceValue(tc.expectedValue)) if tc.expectedErr != nil { assert.ErrorIs(t, err, tc.expectedErr) } else { @@ -78,7 +78,7 @@ func TestInspectedEntry_SetThenGet(t *testing.T) { if tc.expectedErr != nil { assert.ErrorIs(t, err, tc.expectedErr) } else { - assert.Equal(t, tc.expectedValue, actualValue) + assert.Equal(t, tc.expectedValue, actualValue.AsInterface()) assert.NoError(t, err) } }) @@ -218,7 +218,7 @@ func TestInspectedEntry_Delete(t *testing.T) { func TestInspectedConfig_MarshalThenUnmarshalRetainsTypeInformation(t *testing.T) { inspectedConfig, err := InspectConfig(&mimir.Config{}) require.NoError(t, err) - require.NoError(t, inspectedConfig.SetValue("distributor.remote_timeout", time.Minute)) + require.NoError(t, inspectedConfig.SetValue("distributor.remote_timeout", DurationValue(time.Minute))) bytes, err := yaml.Marshal(inspectedConfig) require.NoError(t, err) @@ -227,7 +227,7 @@ func TestInspectedConfig_MarshalThenUnmarshalRetainsTypeInformation(t *testing.T require.NoError(t, yaml.Unmarshal(bytes, &inspectedConfig)) val := inspectedConfig.MustGetValue("distributor.remote_timeout") - assert.Equal(t, time.Minute, val) // if type info was lost this would be "1m" instead of time.Minute + assert.Equal(t, time.Minute, val.AsDuration()) // if type info was lost this would be "1m" instead of time.Minute } func TestInspectedEntry_MarshalYAML(t *testing.T) { @@ -239,14 +239,14 @@ distributor: `), &d)) val := d.MustGetValue("distributor.remote_timeout") - assert.Equal(t, time.Second*10, val) + assert.Equal(t, time.Second*10, val.AsDuration()) } func TestInspectConfig_HasDefaultValues(t *testing.T) { d, err := InspectConfig(&mimir.Config{}) require.NoError(t, err) val := d.MustGetDefaultValue("distributor.remote_timeout") - assert.Equal(t, time.Second*20, val) + assert.Equal(t, time.Second*20, val.AsDuration()) } func TestInspectConfig_LoadingAConfigHasCorrectTypes(t *testing.T) { @@ -301,7 +301,7 @@ func TestInspectConfig_LoadingAConfigHasCorrectTypes(t *testing.T) { for _, tc := range testCases { t.Run(tc.name, func(t *testing.T) { val := params.MustGetDefaultValue(tc.path) - assert.IsType(t, tc.expectedType, val) + assert.IsType(t, tc.expectedType, val.AsInterface()) }) } } @@ -341,18 +341,18 @@ distributor: `), &d)) val := d.MustGetValue("distributor.remote_timeout") - assert.Equal(t, test.expected, val) + assert.Equal(t, test.expected, val.AsDuration()) require.NoError(t, json.Unmarshal([]byte(`{ "distributor": { "remote_timeout": `+test.jsonRawValue+` }}`), &d)) val = d.MustGetValue("distributor.remote_timeout") - assert.Equal(t, test.expected, val) + assert.Equal(t, test.expected, val.AsDuration()) }) } } func listAllFields(inspectedConfig *InspectedEntry) []string { var actualFields []string - err := inspectedConfig.Walk(func(path string, value interface{}) error { + err := inspectedConfig.Walk(func(path string, _ Value) error { actualFields = append(actualFields, path) return nil }) diff --git a/pkg/mimirtool/config/mapping.go b/pkg/mimirtool/config/mapping.go index 277437dbf2..b69aa6533b 100644 --- a/pkg/mimirtool/config/mapping.go +++ b/pkg/mimirtool/config/mapping.go @@ -10,14 +10,14 @@ type Mapper interface { DoMap(source, target Parameters) error } -type Mapping func(oldPath string, oldVal interface{}) (newPath string, newVal interface{}) +type Mapping func(oldPath string, oldVal Value) (newPath string, newVal Value) // BestEffortDirectMapper implement Mapper and naively maps the values of all parameters form the source to the // same name parameter in the target. It ignores all errors while setting the values. type BestEffortDirectMapper struct{} func (BestEffortDirectMapper) DoMap(source, target Parameters) error { - err := source.Walk(func(path string, value interface{}) error { + err := source.Walk(func(path string, value Value) error { _ = target.SetValue(path, value) return nil }) @@ -43,7 +43,8 @@ func (m PathMapper) DoMap(source, target Parameters) error { errs.Add(err) continue } - err = target.SetValue(mapping(path, oldVal)) + newPath, newVal := mapping(path, oldVal) + err = target.SetValue(newPath, newVal) if err != nil { errs.Add(err) } @@ -68,7 +69,7 @@ func (m MapperFunc) DoMap(source, target Parameters) error { } func RenameMapping(to string) Mapping { - return func(oldPath string, oldVal interface{}) (newPath string, newVal interface{}) { + return func(oldPath string, oldVal Value) (newPath string, newVal Value) { newPath = to newVal = oldVal return diff --git a/pkg/mimirtool/config/parameters.go b/pkg/mimirtool/config/parameters.go index 04917bda9f..19bc827d3f 100644 --- a/pkg/mimirtool/config/parameters.go +++ b/pkg/mimirtool/config/parameters.go @@ -4,52 +4,53 @@ package config import ( "github.com/grafana/dskit/multierror" - - "github.com/grafana/mimir/tools/doc-generator/parse" ) type Parameters interface { Delete(path string) error - GetDefaultValue(path string) (interface{}, error) GetFlag(path string) (string, error) - GetValue(path string) (interface{}, error) - MustGetDefaultValue(path string) interface{} - MustGetValue(path string) interface{} - SetDefaultValue(path string, val interface{}) error - SetValue(path string, val interface{}) error - Walk(f func(path string, value interface{}) error) error + + GetValue(path string) (Value, error) + MustGetValue(path string) Value + SetValue(path string, v Value) error + + GetDefaultValue(path string) (Value, error) + MustGetDefaultValue(path string) Value + SetDefaultValue(path string, v Value) error + + Walk(f func(path string, value Value) error) error } type defaultValueInspectedEntry struct { *InspectedEntry } -func (i defaultValueInspectedEntry) GetValue(path string) (interface{}, error) { - return i.InspectedEntry.GetDefaultValue(path) +func (i defaultValueInspectedEntry) Walk(f func(path string, value Value) error) error { + errs := multierror.New() + i.walk("", &errs, f) + return errs.Err() } -func (i defaultValueInspectedEntry) MustGetValue(path string) interface{} { - return i.InspectedEntry.MustGetDefaultValue(path) +func (i defaultValueInspectedEntry) GetValue(path string) (Value, error) { + return i.InspectedEntry.GetDefaultValue(path) } -func (i defaultValueInspectedEntry) SetValue(path string, val interface{}) error { - return i.InspectedEntry.SetDefaultValue(path, val) +func (i defaultValueInspectedEntry) MustGetValue(path string) Value { + return i.InspectedEntry.MustGetDefaultValue(path) } -func (i defaultValueInspectedEntry) Walk(f func(path string, value interface{}) error) error { - errs := multierror.New() - i.walk("", &errs, f) - return errs.Err() +func (i defaultValueInspectedEntry) SetValue(path string, v Value) error { + return i.InspectedEntry.SetDefaultValue(path, v) } -func (i defaultValueInspectedEntry) walk(path string, errs *multierror.MultiError, f func(path string, value interface{}) error) { +func (i defaultValueInspectedEntry) walk(path string, errs *multierror.MultiError, f func(path string, value Value) error) { for _, e := range i.BlockEntries { fieldPath := e.Name if path != "" { fieldPath = path + "." + e.Name } - if e.Kind == parse.KindField { + if e.Kind == KindField { errs.Add(f(fieldPath, e.FieldDefaultValue)) } else { defaultValueInspectedEntry{e}.walk(fieldPath, errs, f) diff --git a/pkg/mimirtool/config/testdata/duration-slice-new.flags.txt b/pkg/mimirtool/config/testdata/duration-slice-new.flags.txt new file mode 100644 index 0000000000..4f8b02bacd --- /dev/null +++ b/pkg/mimirtool/config/testdata/duration-slice-new.flags.txt @@ -0,0 +1,2 @@ +-blocks-storage.tsdb.block-ranges-period=2h0m0s +-compactor.block-ranges=2h0m0s,12h0m0s,24h0m0s \ No newline at end of file diff --git a/pkg/mimirtool/config/testdata/duration-slice-old.flags.txt b/pkg/mimirtool/config/testdata/duration-slice-old.flags.txt new file mode 100644 index 0000000000..a722ef3fc1 --- /dev/null +++ b/pkg/mimirtool/config/testdata/duration-slice-old.flags.txt @@ -0,0 +1,2 @@ +-blocks-storage.tsdb.block-ranges-period=2h +-compactor.block-ranges=2h,12h,24h \ No newline at end of file diff --git a/pkg/mimirtool/config/testdata/exemplars-new.yaml b/pkg/mimirtool/config/testdata/exemplars-new.yaml deleted file mode 100644 index bb0e238d49..0000000000 --- a/pkg/mimirtool/config/testdata/exemplars-new.yaml +++ /dev/null @@ -1,2 +0,0 @@ -limits: - max_global_exemplars_per_user: 100 diff --git a/pkg/mimirtool/config/testdata/exemplars-old.yaml b/pkg/mimirtool/config/testdata/exemplars-old.yaml deleted file mode 100644 index 489e01af66..0000000000 --- a/pkg/mimirtool/config/testdata/exemplars-old.yaml +++ /dev/null @@ -1,3 +0,0 @@ -blocks_storage: - tsdb: - max_exemplars: 100 diff --git a/pkg/mimirtool/config/testdata/proxy-targets.yaml b/pkg/mimirtool/config/testdata/proxy-targets.yaml new file mode 100644 index 0000000000..19f981240f --- /dev/null +++ b/pkg/mimirtool/config/testdata/proxy-targets.yaml @@ -0,0 +1,16 @@ +federation: + proxy_targets: + - name: target-1 + url: https://gem-1.com + basic_auth: + username: user + password: pass + tls: + tls_key_path: /tmp/key + - name: target-2 + url: https://gem-2.com + basic_auth: + username: u + password: p + tls: + tls_key_path: /tmp/key.key diff --git a/pkg/mimirtool/config/testdata/rename-new.yaml b/pkg/mimirtool/config/testdata/rename-new.yaml new file mode 100644 index 0000000000..a3cb4a6ce2 --- /dev/null +++ b/pkg/mimirtool/config/testdata/rename-new.yaml @@ -0,0 +1,3 @@ +ingester: + ring: + heartbeat_timeout: 14m0s diff --git a/pkg/mimirtool/config/testdata/rename-old.yaml b/pkg/mimirtool/config/testdata/rename-old.yaml new file mode 100644 index 0000000000..909c3a3891 --- /dev/null +++ b/pkg/mimirtool/config/testdata/rename-old.yaml @@ -0,0 +1,4 @@ +ingester: + lifecycler: + ring: + heartbeat_timeout: 14m diff --git a/pkg/mimirtool/config/value.go b/pkg/mimirtool/config/value.go new file mode 100644 index 0000000000..0eb19212c2 --- /dev/null +++ b/pkg/mimirtool/config/value.go @@ -0,0 +1,131 @@ +// SPDX-License-Identifier: AGPL-3.0-only + +package config + +import ( + "encoding/json" + "flag" + "fmt" + "reflect" + "time" + + "github.com/grafana/dskit/flagext" +) + +func StringValue(s string) Value { + return Value{val: s} +} + +func DurationValue(d time.Duration) Value { + return Value{val: d} +} + +func SliceValue(slice []*InspectedEntry) Value { + return Value{slice: slice} +} + +func InterfaceValue(v interface{}) Value { + return Value{val: v} +} + +func IntValue(i int) Value { + return Value{val: i} +} + +var Nil = Value{} + +type Value struct { + val interface{} + + slice []*InspectedEntry +} + +// UnmarshalJSON is empty because unmarshalling without type information is not possible. InspectedEntry.UnmarshalJSON +// does the unmarshalling _with_ type information. +func (v *Value) UnmarshalJSON([]byte) error { + return nil +} + +func (v Value) MarshalJSON() ([]byte, error) { + if v.slice != nil { + b, err := json.Marshal(v.slice) + if err != nil { + return nil, err + } + return b, nil + } + b, err := json.Marshal(v.val) + if err != nil { + return nil, err + } + return b, nil +} + +func (v Value) Equals(other Value) bool { + return reflect.DeepEqual(v.AsInterface(), other.AsInterface()) +} + +func (v Value) String() string { + if val, ok := v.val.(flag.Value); ok { + return val.String() + } + return fmt.Sprintf("%v", v.val) +} + +func (v Value) IsUnset() bool { + return v.val == nil && v.slice == nil +} + +func (v Value) IsSlice() bool { + return v.slice != nil +} + +func (v Value) AsString() string { + if v.val == nil { + return "" + } + return v.val.(string) +} + +func (v Value) AsInt() int { + if v.val == nil { + return 0 + } + return v.val.(int) +} + +func (v Value) AsURL() flagext.URLValue { + if v.val == nil { + return flagext.URLValue{} + } + return v.val.(flagext.URLValue) +} + +func (v Value) AsFloat() float64 { + if v.val == nil { + return 0.0 + } + return v.val.(float64) +} + +func (v Value) AsBool() bool { + if v.val == nil { + return false + } + return v.val.(bool) +} + +func (v Value) AsDuration() time.Duration { + if v.val == nil { + return time.Duration(0) + } + return v.val.(time.Duration) +} + +func (v Value) AsSlice() []*InspectedEntry { + return v.slice +} + +func (v Value) AsInterface() interface{} { + return v.val +} diff --git a/tools/doc-generator/parse/parser.go b/tools/doc-generator/parse/parser.go index b2d4da2263..3db337ce15 100644 --- a/tools/doc-generator/parse/parser.go +++ b/tools/doc-generator/parse/parser.go @@ -23,6 +23,7 @@ import ( "github.com/weaveworks/common/logging" "github.com/grafana/mimir/pkg/ingester" + "github.com/grafana/mimir/pkg/storage/tsdb" "github.com/grafana/mimir/pkg/util/fieldcategory" ) @@ -60,6 +61,8 @@ type EntryKind string const ( KindBlock EntryKind = "block" KindField EntryKind = "field" + KindSlice EntryKind = "slice" + KindMap EntryKind = "map" ) type ConfigEntry struct { @@ -79,6 +82,9 @@ type ConfigEntry struct { FieldDefault string FieldExample *FieldExample FieldCategory string + + // In case the Kind is KindMap or KindSlice + Element *ConfigBlock } func (e ConfigEntry) Description() string { @@ -113,7 +119,7 @@ func Flags(cfg flagext.RegistererWithLogger, logger log.Logger) map[uintptr]*fla return flags } -// Config returns a slice of ConfigBlocks. The first ConfigBlock is a resursively expanded cfg. +// Config returns a slice of ConfigBlocks. The first ConfigBlock is a recursively expanded cfg. // The remaining entries in the slice are all (root or not) ConfigBlocks. func Config(block *ConfigBlock, cfg interface{}, flags map[uintptr]*flag.Flag) ([]*ConfigBlock, error) { blocks := []*ConfigBlock{} @@ -134,7 +140,9 @@ func Config(block *ConfigBlock, cfg interface{}, flags map[uintptr]*flag.Flag) ( v := reflect.ValueOf(cfg).Elem() t := v.Type() - if v.Kind() != reflect.Struct { + switch v.Kind() { + case reflect.Struct, reflect.Slice: + default: return nil, fmt.Errorf("%s is a %s while a %s is expected", v, v.Kind(), reflect.Struct) } @@ -175,7 +183,7 @@ func Config(block *ConfigBlock, cfg interface{}, flags map[uintptr]*flag.Flag) ( } // Recursively re-iterate if it's a struct - if field.Type.Kind() == reflect.Struct { + if field.Type.Kind() == reflect.Struct || field.Type.Kind() == reflect.Ptr { // Check whether the sub-block is a root config block rootName, rootDesc, isRoot := isRootBlock(field.Type) @@ -216,8 +224,15 @@ func Config(block *ConfigBlock, cfg interface{}, flags map[uintptr]*flag.Flag) ( subBlock = block } + if field.Type.Kind() == reflect.Ptr { + // If this is a pointer, it's probably nil, so we initialize it. + fieldValue = reflect.New(field.Type.Elem()) + } else if field.Type.Kind() == reflect.Struct { + fieldValue = fieldValue.Addr() + } + // Recursively generate the doc for the sub-block - otherBlocks, err := Config(subBlock, fieldValue.Addr().Interface(), flags) + otherBlocks, err := Config(subBlock, fieldValue.Interface(), flags) if err != nil { return nil, err } @@ -226,6 +241,29 @@ func Config(block *ConfigBlock, cfg interface{}, flags map[uintptr]*flag.Flag) ( continue } + var ( + element *ConfigBlock + kind = KindField + ) + { + // Add ConfigBlock for slices only if the field isn't a custom type, + // which shouldn't be inspected because doesn't have YAML tags, flag registrations, etc. + _, isCustomType := getFieldCustomType(field.Type) + isSliceOfStructs := field.Type.Kind() == reflect.Slice && (field.Type.Elem().Kind() == reflect.Struct || field.Type.Elem().Kind() == reflect.Ptr) + if !isCustomType && isSliceOfStructs { + element = &ConfigBlock{ + Name: fieldName, + Desc: getFieldDescription(field, ""), + } + kind = KindSlice + + _, err = Config(element, reflect.New(field.Type.Elem()).Interface(), flags) + if err != nil { + return nil, errors.Wrapf(err, "couldn't inspect slice, element_type=%s", field.Type.Elem()) + } + } + } + fieldType, err := getFieldType(field.Type) if err != nil { return nil, errors.Wrapf(err, "config=%s.%s", t.PkgPath(), t.Name()) @@ -237,19 +275,20 @@ func Config(block *ConfigBlock, cfg interface{}, flags map[uintptr]*flag.Flag) ( } if fieldFlag == nil { block.Add(&ConfigEntry{ - Kind: KindField, + Kind: kind, Name: fieldName, Required: isFieldRequired(field), FieldDesc: getFieldDescription(field, ""), FieldType: fieldType, FieldExample: getFieldExample(fieldName, field.Type), FieldCategory: getFieldCategory(field, ""), + Element: element, }) continue } block.Add(&ConfigEntry{ - Kind: KindField, + Kind: kind, Name: fieldName, Required: isFieldRequired(field), FieldFlag: fieldFlag.Name, @@ -258,6 +297,7 @@ func Config(block *ConfigBlock, cfg interface{}, flags map[uintptr]*flag.Flag) ( FieldDefault: getFieldDefault(field, fieldFlag.DefValue), FieldExample: getFieldExample(fieldName, field.Type), FieldCategory: getFieldCategory(field, fieldFlag.Name), + Element: element, }) } @@ -288,21 +328,29 @@ func getFieldName(field reflect.StructField) string { return fieldName } -func getFieldType(t reflect.Type) (string, error) { +func getFieldCustomType(t reflect.Type) (string, bool) { // Handle custom data types used in the config switch t.String() { case reflect.TypeOf(&url.URL{}).String(): - return "url", nil + return "url", true case reflect.TypeOf(time.Duration(0)).String(): - return "duration", nil + return "duration", true case reflect.TypeOf(flagext.StringSliceCSV{}).String(): - return "string", nil + return "string", true case reflect.TypeOf(flagext.CIDRSliceCSV{}).String(): - return "string", nil + return "string", true case reflect.TypeOf([]*relabel.Config{}).String(): - return "relabel_config...", nil + return "relabel_config...", true case reflect.TypeOf(ingester.ActiveSeriesCustomTrackersConfig{}).String(): - return "map of tracker name (string) to matcher (string)", nil + return "map of tracker name (string) to matcher (string)", true + default: + return "", false + } +} + +func getFieldType(t reflect.Type) (string, error) { + if typ, isCustom := getFieldCustomType(t); isCustom { + return typ, nil } // Fallback to auto-detection of built-in data types @@ -347,10 +395,14 @@ func getFieldType(t reflect.Type) (string, error) { } return "list of " + elemType, nil - case reflect.Map: return fmt.Sprintf("map of %s to %s", t.Key(), t.Elem().String()), nil + case reflect.Struct: + return t.Name(), nil + case reflect.Ptr: + return getFieldType(t.Elem()) + default: return "", fmt.Errorf("unsupported data type %s", t.Kind()) } @@ -383,7 +435,7 @@ func ReflectType(typ string) reflect.Type { case "map of string to float64": return reflect.TypeOf(map[string]float64{}) case "list of duration": - return reflect.TypeOf([]time.Duration{}) + return reflect.TypeOf(tsdb.DurationList{}) default: panic("unknown field type " + typ) } diff --git a/tools/doc-generator/writer.go b/tools/doc-generator/writer.go index ac7c602fe0..3ccb9a17de 100644 --- a/tools/doc-generator/writer.go +++ b/tools/doc-generator/writer.go @@ -62,7 +62,7 @@ func (w *specWriter) writeConfigEntry(e *parse.ConfigEntry, indent int) { } } - if e.Kind == parse.KindField { + if e.Kind == parse.KindField || e.Kind == parse.KindSlice || e.Kind == parse.KindMap { // Description w.writeComment(e.Description(), indent, 0) w.writeExample(e.FieldExample, indent) From bdfaf912198c6400f9700981bbbeff0ea3b3c1a3 Mon Sep 17 00:00:00 2001 From: Richard Hartmann Date: Fri, 18 Mar 2022 14:12:52 +0100 Subject: [PATCH 19/30] Document project communication channels (#1509) * Document project communication channels Signed-off-by: Richard Hartmann * Update GOVERNANCE.md Co-authored-by: Ursula Kallio Co-authored-by: Ursula Kallio --- GOVERNANCE.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/GOVERNANCE.md b/GOVERNANCE.md index cb6ec41f94..37473b95d6 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -161,10 +161,10 @@ The ex-member is If needed, we reserve the right to publicly announce removal. -[announce]: https://groups.google.com/forum/#!forum/mimir-announce +[announce]: https://github.com/grafana/mimir/discussions/categories/announcements [coc]: https://github.com/grafana/mimir/blob/master/CODE_OF_CONDUCT.md -[devs]: https://groups.google.com/forum/#!forum/mimir-developers +[devs]: https://github.com/grafana/mimir/discussions/categories/development [maintainers]: https://github.com/grafana/mimir/blob/master/MAINTAINERS.md [rough]: https://tools.ietf.org/html/rfc7282 -[team]: https://groups.google.com/forum/#!forum/mimir-team -[users]: https://groups.google.com/forum/#!forum/mimir-users +[team]: https://groups.google.com/g/mimir-team +[users]: https://github.com/grafana/mimir/discussions From d5ac7bf303c669b46b7b1c43edd8b5f0a89b5615 Mon Sep 17 00:00:00 2001 From: Dimitar Dimitrov Date: Fri, 18 Mar 2022 15:14:14 +0100 Subject: [PATCH 20/30] mimirtool config: Add duration list tests for YAML (#1508) * Add duration list tests for YAML Signed-off-by: Dimitar Dimitrov * Make duration list test values diff from default Signed-off-by: Dimitar Dimitrov --- pkg/mimirtool/config/convert_test.go | 7 ++++++- pkg/mimirtool/config/testdata/duration-list-new.yaml | 10 ++++++++++ pkg/mimirtool/config/testdata/duration-list-old.yaml | 10 ++++++++++ .../config/testdata/duration-slice-new.flags.txt | 2 +- .../config/testdata/duration-slice-old.flags.txt | 2 +- 5 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 pkg/mimirtool/config/testdata/duration-list-new.yaml create mode 100644 pkg/mimirtool/config/testdata/duration-list-old.yaml diff --git a/pkg/mimirtool/config/convert_test.go b/pkg/mimirtool/config/convert_test.go index beaeb91198..0b1b497e07 100644 --- a/pkg/mimirtool/config/convert_test.go +++ b/pkg/mimirtool/config/convert_test.go @@ -237,10 +237,15 @@ func TestConvert_Cortex(t *testing.T) { outFlagsFile: "testdata/uncommon-flag-values.txt", }, { - name: "duration list flags with single element", + name: "duration list flags", inFlagsFile: "testdata/duration-slice-old.flags.txt", outFlagsFile: "testdata/duration-slice-new.flags.txt", }, + { + name: "duration list YAML", + inFile: "testdata/duration-list-old.yaml", + outFile: "testdata/duration-list-new.yaml", + }, } for _, tc := range testCases { diff --git a/pkg/mimirtool/config/testdata/duration-list-new.yaml b/pkg/mimirtool/config/testdata/duration-list-new.yaml new file mode 100644 index 0000000000..3dcc6384d2 --- /dev/null +++ b/pkg/mimirtool/config/testdata/duration-list-new.yaml @@ -0,0 +1,10 @@ +blocks_storage: + tsdb: + block_ranges_period: + - 3h0m0s + +compactor: + block_ranges: + - 3h0m0s + - 13h0m0s + - 25h0m0s diff --git a/pkg/mimirtool/config/testdata/duration-list-old.yaml b/pkg/mimirtool/config/testdata/duration-list-old.yaml new file mode 100644 index 0000000000..dbe399272f --- /dev/null +++ b/pkg/mimirtool/config/testdata/duration-list-old.yaml @@ -0,0 +1,10 @@ +blocks_storage: + tsdb: + block_ranges_period: + - 3h + +compactor: + block_ranges: + - 3h + - 13h + - 25h diff --git a/pkg/mimirtool/config/testdata/duration-slice-new.flags.txt b/pkg/mimirtool/config/testdata/duration-slice-new.flags.txt index 4f8b02bacd..b745138646 100644 --- a/pkg/mimirtool/config/testdata/duration-slice-new.flags.txt +++ b/pkg/mimirtool/config/testdata/duration-slice-new.flags.txt @@ -1,2 +1,2 @@ -blocks-storage.tsdb.block-ranges-period=2h0m0s --compactor.block-ranges=2h0m0s,12h0m0s,24h0m0s \ No newline at end of file +-compactor.block-ranges=2h0m0s,12h0m0s,25h0m0s \ No newline at end of file diff --git a/pkg/mimirtool/config/testdata/duration-slice-old.flags.txt b/pkg/mimirtool/config/testdata/duration-slice-old.flags.txt index a722ef3fc1..e90915496f 100644 --- a/pkg/mimirtool/config/testdata/duration-slice-old.flags.txt +++ b/pkg/mimirtool/config/testdata/duration-slice-old.flags.txt @@ -1,2 +1,2 @@ -blocks-storage.tsdb.block-ranges-period=2h --compactor.block-ranges=2h,12h,24h \ No newline at end of file +-compactor.block-ranges=2h,12h,25h \ No newline at end of file From 75ecdb2a44d239d9eba538cb9fd43f3ae3661545 Mon Sep 17 00:00:00 2001 From: Karen Miller <84039272+KMiller-Grafana@users.noreply.github.com> Date: Fri, 18 Mar 2022 10:23:37 -0700 Subject: [PATCH 21/30] Docs: add v2.0.0 release notes (#1501) * Docs: add v2.0.0 release notes * Add a newly-resolved link to release notes * Update docs/sources/release-notes/v2.0.md Co-authored-by: Jennifer Villa * Revise per review requests. * Update docs/sources/release-notes/v2.0.md Co-authored-by: Richard Hartmann * Apply suggestions from code review Co-authored-by: Richard Hartmann * Revisions to release notes per review requests Co-authored-by: Richard Hartmann Co-authored-by: Jennifer Villa --- docs/sources/release-notes/v2.0.md | 66 ++++++++++++++++++++++++++---- 1 file changed, 57 insertions(+), 9 deletions(-) diff --git a/docs/sources/release-notes/v2.0.md b/docs/sources/release-notes/v2.0.md index 30e5bb7058..4aab8f4d7f 100644 --- a/docs/sources/release-notes/v2.0.md +++ b/docs/sources/release-notes/v2.0.md @@ -1,29 +1,77 @@ --- title: "Grafana Mimir version 2.0 release notes" menuTitle: "V2.0 release notes" -description: "Release notes for Grafana Mimir version 2.0." +description: "Release notes for Grafana Mimir version 2.0" weight: 100 --- # Grafana Mimir version 2.0 release notes -Prose here about this first release of Mimir. What it is, and why it's great. +Grafana Labs is excited to announce the first release of Grafana Mimir, the most scalable, most performant open source time series database in the world. In customer tests, we’ve shown that a single cluster can support more than one billion active time series. + +Besides massive scale, Grafana Mimir offers a host of other benefits, including easy deployment, native multi-tenancy, high availability, durable long-term storage, and exceptional query performance on even the highest-cardinality queries. + +We’re launching Grafana Mimir with a 2.0 version number to signal our respect for Cortex, the project from which Grafana Mimir was forked. The choice of 2.0 also represents our conviction that Grafana Mimir is real-world-tested, production-ready software. It has served as the backbone of our Grafana Cloud Metrics and Grafana Enterprise Metrics products since their inception. + +For more on the story of why we created Grafana Mimir, please see _blog post link goes here_. +We have also published a _FAQ link goes here_. + +Grafana Mimir builds on Cortex 1.10.0, adding features we developed to run Grafana Enterprise Metrics and Grafana Cloud Metrics at massive scale. As a result, these listed features and enhancements, migration considerations, and bug fixes highlight changes between Cortex 1.10.0 and Grafana Mimir 2.0. + +The complete list of changes is recorded in the [Changelog](https://github.com/grafana/mimir/blob/main/CHANGELOG.md). ## Features and enhancements -- Feature description here. -- Another feature description here. +These features and enhancements distinguish Grafana Mimir from Cortex 1.10.0: + +- **Simplified deployment experience**: These changes improve the experience of setting up and maintaining Grafana Mimir: + + - We revamped Cortex’s single process mode, renaming it [monolithic mode]({{< relref "../operators-guide/architecture/deployment-modes#monolithic-mode" >}}). Monolithic mode now runs the required compactor component, and has better configuration defaults, so that it works with fewer changes out-of-the-box. + + - We switched to `memberlist` as the default store for Grafana Mimir’s [hash rings]({{< relref "../operators-guide/architecture/hash-ring.md" >}}). With this, users no longer have to run Consul or etcd as external dependencies. We made performance optimizations to `memberlist` to reduce its CPU utilization, which ensures that `memberlist` runs smoothly on Grafana Mimir clusters with lots of active series. + + - We’ve included our own internal best practice dashboards, mixins, and alerts for [monitoring Grafana Mimir]({{< relref "../operators-guide/visualizing-metrics" >}}). While installing monitoring best practices such as these has typically required use of Jsonnet, we’ve eliminated this requirement. We include dashboards as JSON and alerting and recording rules as YAML which can be directly imported into your Grafana and Prometheus deployments. The alerts are accompanied by [playbooks](https://github.com/grafana/mimir/blob/main/operations/mimir-mixin/docs/playbooks.md) distilled from our own internal operations. + +- **Configuration parameter reduction and classification**: We removed 36% of the configuration parameters in Grafana Mimir. All remaining configuration parameters have been classified as basic, advanced, or experimental. This is meant to make Grafana Mimir’s configuration more approachable for new users. In a default installation, you can focus exclusively on basic configuration. As you become more familiar with Grafana Mimir and want to push your clusters further, you can choose to tune advanced parameters or use experimental parameters. Refer to [parameter categories]({{< relref "../operators-guide/configuring/reference-configuration-parameters/#parameter-categories" >}}) to learn more. + +- **More-scalable metrics compaction**: Grafana Mimir's new compactor uses a split-and-merge compaction algorithm. This new compactor parallelizes the compaction of overlapping blocks across multiple machines, and splits blocks in such a way as to overcome Prometheus’ [64 GB index size limit](https://grafana.com/blog/2019/10/31/lifting-the-index-size-limit-of-prometheus-with-postings-compression/). This solves a problem that we've seen with tenants with greater than 30M time series in Cortex - namely, that the count of uncompacted blocks grew indefinitely because the compactor couldn’t work fast enough. With its new compactor, a single Grafana Mimir cluster can support over one billion active time series. Refer to [compactor]({{< relref "../operators-guide/architecture/components/compactor.md" >}}) to learn more. + +- **Query sharding for improved query speeds**: Grafana Mimir introduces query sharding to accelerate the execution of high-cardinality or CPU-intensive queries. Query sharding distributes the execution of a single query across multiple machines, to significantly reduce query execution time. We have seen speedups of 10 to 30x in our Grafana Cloud Metrics clusters. Refer to [query sharding]({{< relref "../operators-guide/architecture/query-sharding.md" >}}) to learn more. + +- **Federated rule groups**: Grafana Mimir makes it possible to write alerting and recording rules that use metrics data from multiple tenants. For example, a user can now create a recording rule that adds metricA from tenantA to metricB from tenantB and writes the result to tenantC. This feature is experimental. For more information on how to use it, refer to [federated rule groups]({{< relref "../operators-guide/reference-http-api/#federated-rule-groups" >}}). + +- **Understand your metrics cardinality**: Grafana Mimir adds two API endpoints to help users identify high-cardinality metrics. The [`label_names` endpoint]({{< relref "../operators-guide/reference-http-api/#label-names-cardinality" >}}) takes a metric name and returns all label names applied to that metric, as well as the count of values for each label name. When run without a metric name, it returns the highest-cardinality label names. The [`label_values` endpoint]({{< relref "../operators-guide/reference-http-api/#label-values-cardinality" >}}) returns the highest-cardinality metrics, and can be used to get a count of how many series have a given label-value pair applied. The new [custom tracker feature]({{< relref "../operators-guide/configuring/configuring-custom-trackers.md" >}}) takes this one step further by allowing you to track the count of active series over time that match a specific label matcher. + +These features are no longer considered experimental; they are stable features: + +- **Cross tenant query federation** is a feature that allows you to issue queries that aggregate series across multiple tenants, providing a way to get a global view of your data. Refer to `tenant-federation.enabled` in the [configuration parameters]({{< relref "../operators-guide/configuring/reference-configuration-parameters#configuration-parameters" >}}) block to learn more. + +- **Zone-aware replication** protects against data loss due to an outage in a specific zone by ensuring data is replicated across multiple zones. In addition to promoting this feature to stable, we’ve also released a [Kubernetes operator](https://github.com/grafana/rollout-operator) that makes it easier for those running Grafana Mimir on Kubernetes to manage multi-zone rollouts. Refer to [Configuring zone-aware replication]({{< relref "../operators-guide/configuring/configuring-zone-aware-replication.md" >}}) to learn more. + +- **Azure Blob storage and OpenStack Swift support**: Two additional object storage options are available. Grafana Mimir now supports AWS S3, GCS, Azure Blob Storage, OpenStack Swift, as well as any S3-compatible object storage. + +- **Horizontally scalable Alertmanager**: The [Alertmanager]({{< relref "../operators-guide/architecture/components/alertmanager" >}}) can distribute its workload among multiple Alertmanager replicas, increasing the maximum number of tenants a cluster can comfortably handle. The Alertmanager uses the tenant ID to determine which replica(s) own which tenant. The replication factor is configurable, so alerts are replicated across multiple replicas, reducing the likelihood of a dropped alert. + +- **Query-scheduler component**: The query-scheduler component solves the scalability limitations of the query-frontend component. We strongly encourage users operating larger Grafana Mimir clusters to run this optional component. Refer to the [query-scheduler]({{< relref "../operators-guide/architecture/components/query-scheduler" >}}) to learn more about this component. ## Migration considerations -Not sure that we need this section, but it will likely be helpful for first-time Mimir users. Probably add a link to the [migrating](../../migrating/) section. +This information is relevant only to users migrating from Cortex to Grafana Mimir. Those who are not currently using Cortex today can follow our tutorial to [Get Mimir up and running in 10 minutes](https://grafana.com/tutorials/play-with-grafana-mimir/). -## Bug fixes +Grafana Mimir is 100% compatible with Cortex, and the migration from Cortex to Mimir can be done without any data loss or downtime. + +Grafana Mimir 2.0 is a major version upgrade, and therefore it introduces several breaking changes for those migrating from Cortex. To make this upgrade as easy as possible, we’ve added functionality to [`mimirtool`]({{< relref "../operators-guide/tools/mimirtool.md" >}}) to automate the required configuration changes. We’ve paired this tooling with detailed [migration guides]({{< relref "../migration-guide/" >}}) that walk through all required changes. + +For a demonstration that illustrates how easy this migration can be, please see _link to Bryan’s video_. -**Probably remove this entire "Bug fixes" section, since users could not have seen any bugs in the first release.** +## Bug fixes ### 2.0.0 bug fixes -2.0.0 fixes these bugs: +Version 2.0.0 fixes these bugs: + +- [PR 424](https://github.com/grafana/mimir/pull/424): Fixed a bug where cached results for step-aligned queries were used to respond to unaligned queries, causing the user to receive incorrect results. The new configuration parameter `query-frontend.cache-unaligned-requests` safely enables the caching of query results, even when the query step is not aligned. + +- [PR 224](https://github.com/grafana/mimir/pull/224): Fixed a race condition in the Alertmanager, which sometimes resulted in a tenant’s configuration being replaced with the blank fallback configuration. -- Bug fix listed here. +- [PR 551](https://github.com/grafana/mimir/pull/551): Fixed a bug in `memberlist` that caused large messages to be corrupted. This bug fix, in addition to the memberlist performance optimizations, enabled us to switch to `memberlist` as the default store for Grafana Mimir’s hash rings. From 6d13dc8430595f535d7dc13c5fbc37035431616c Mon Sep 17 00:00:00 2001 From: Dimitar Dimitrov Date: Mon, 21 Mar 2022 08:48:19 +0100 Subject: [PATCH 22/30] mimirtool config: small migration and flags output convenience (#1510) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Output only YAML when only YAML was provided (same for CLI flags) Signed-off-by: Dimitar Dimitrov * Set frontend.results_cache.backend when results cache was enabled in cortex Signed-off-by: Dimitar Dimitrov * Sort output flags Signed-off-by: Dimitar Dimitrov * My own nitpicks Signed-off-by: Dimitar Dimitrov * Update pkg/mimirtool/config/convert.go Co-authored-by: Mauro Stettler * Update pkg/mimirtool/config/convert_test.go Co-authored-by: Mauro Stettler Co-authored-by: Peter Štibraný --- pkg/mimirtool/commands/config.go | 3 + pkg/mimirtool/config/convert.go | 84 ++++++++----------- pkg/mimirtool/config/convert_test.go | 40 ++++++++- pkg/mimirtool/config/cortex.go | 10 +++ pkg/mimirtool/config/gem.go | 2 + pkg/mimirtool/config/inspect.go | 6 +- .../query-frontend-results-cache-new.yaml | 4 + .../query-frontend-results-cache-old.yaml | 2 + 8 files changed, 97 insertions(+), 54 deletions(-) create mode 100644 pkg/mimirtool/config/testdata/query-frontend-results-cache-new.yaml create mode 100644 pkg/mimirtool/config/testdata/query-frontend-results-cache-old.yaml diff --git a/pkg/mimirtool/commands/config.go b/pkg/mimirtool/commands/config.go index ffe1ada7af..04eddfbee5 100644 --- a/pkg/mimirtool/commands/config.go +++ b/pkg/mimirtool/commands/config.go @@ -8,6 +8,7 @@ import ( "io" "io/fs" "os" + "sort" "strings" "github.com/grafana/dskit/multierror" @@ -137,6 +138,8 @@ func (c *ConfigCommand) output(yamlContents []byte, flags []string, notices conf } defer closeFile() + sort.Strings(flags) + _, err = fmt.Fprintln(outYAMLWriter, string(yamlContents)) _, err2 := fmt.Fprintln(outFlagsWriter, strings.Join(flags, "\n")) err3 := c.writeNotices(notices, outNoticesWriter) diff --git a/pkg/mimirtool/config/convert.go b/pkg/mimirtool/config/convert.go index 20b6dfdd44..ba07b89306 100644 --- a/pkg/mimirtool/config/convert.go +++ b/pkg/mimirtool/config/convert.go @@ -5,7 +5,6 @@ package config import ( "flag" "fmt" - "os" "strings" "github.com/pkg/errors" @@ -103,14 +102,15 @@ func Convert( return nil, nil, ConversionNotices{}, errors.Wrap(err, "could not set unset parameters to default values") } } - pruneNils(target) var newFlags []string - if len(flags) > 0 { - newFlags, err = convertFlags(flags, m, target, sourceFactory, targetFactory) - if err != nil { - return nil, nil, ConversionNotices{}, errors.Wrap(err, "could not convert passed CLI args") - } + if len(contents) == 0 { + newFlags, err = extractAllAsFlags(target) + } else if len(flags) > 0 { + newFlags, err = extractInputFlags(target, flags, m, sourceFactory, targetFactory) + } + if err != nil { + return nil, nil, ConversionNotices{}, err } yamlBytes, err := yaml.Marshal(target) @@ -176,42 +176,53 @@ func changeNilsToDefaults(target *InspectedEntry) error { }) } -func convertFlags(flags []string, m Mapper, target Parameters, sourceFactory, targetFactory InspectedEntryFactory) ([]string, error) { - flagsNewPaths, err := mapOldFlagsToNewPaths(flags, m, sourceFactory, targetFactory) +func extractAllAsFlags(target *InspectedEntry) ([]string, error) { + return extractFlags(target, func(_ string, v Value) bool { return !v.IsUnset() }) +} + +func extractInputFlags(target *InspectedEntry, inputFlags []string, m Mapper, sourceFactory, targetFactory InspectedEntryFactory) ([]string, error) { + flagsNewPaths, err := mapOldFlagsToNewPaths(inputFlags, m, sourceFactory, targetFactory) if err != nil { return nil, err } - var newFlagsWithValues []string - err = target.Walk(func(path string, value Value) error { - if _, ok := flagsNewPaths[path]; !ok { - return nil - } + + return extractFlags(target, func(path string, _ Value) bool { + _, ok := flagsNewPaths[path] + return ok + }) +} + +func extractFlags(target *InspectedEntry, shouldExtract func(path string, v Value) bool) ([]string, error) { + var flagsWithValues, toDelete []string + + err := target.Walk(func(path string, value Value) error { flagName, err := target.GetFlag(path) if err != nil { return err } + if flagName == "" { + return nil + } - newFlagsWithValues = append(newFlagsWithValues, fmt.Sprintf("-%s=%s", flagName, value)) + if !shouldExtract(path, value) { + return nil + } + + flagsWithValues = append(flagsWithValues, fmt.Sprintf("-%s=%s", flagName, value)) + toDelete = append(toDelete, path) return nil }) if err != nil { return nil, err } - // remove the parameters from the YAML, only keep the flags - for f := range flagsNewPaths { - err = target.Delete(f) + for _, path := range toDelete { + err = target.Delete(path) if err != nil { - if errors.Is(err, ErrParameterNotFound) { - // This might happen when the flag was using the default value and was pruned before convertFlags was called. - // There's nothing to do. - continue - } return nil, err } } - - return newFlagsWithValues, nil + return flagsWithValues, nil } // addFlags parses the flags and add their values to the config @@ -322,29 +333,6 @@ func prepareSourceDefaults(m Mapper, sourceFactory, targetFactory InspectedEntry return mappedSourceDefaults, err } -// pruneNils removes parameters from params that are nil. pruneNils prints any errors during pruning to os.Stderr -func pruneNils(params Parameters) { - var pathsToDelete []string - - err := params.Walk(func(path string, value Value) error { - if value.IsUnset() { - pathsToDelete = append(pathsToDelete, path) - } - return nil - }) - if err != nil { - panic(err) - } - - for _, p := range pathsToDelete { - err = params.Delete(p) - if err != nil { - err = errors.Wrap(err, "could not delete parameter with default value from config") - _, _ = fmt.Fprintln(os.Stderr, err) - } - } -} - func reportDeletedFlags(contents []byte, flags []string, sourceFactory InspectedEntryFactory) (removedFieldPaths, removedFlags []string, _ error) { // Find YAML options that user is using, but are no longer supported. { diff --git a/pkg/mimirtool/config/convert_test.go b/pkg/mimirtool/config/convert_test.go index 0b1b497e07..a06ee39c7b 100644 --- a/pkg/mimirtool/config/convert_test.go +++ b/pkg/mimirtool/config/convert_test.go @@ -21,6 +21,7 @@ type conversionInput struct { } func testCortexAndGEM(t *testing.T, tc conversionInput, assert func(t *testing.T, outYAML []byte, outFlags []string, notices ConversionNotices, err error)) { + t.Parallel() t.Run("cortex->mimir", func(t *testing.T) { t.Parallel() mimirYAML, mimirFlags, mimirNotices, mimirErr := Convert(tc.inYAML, tc.inFlags, CortexToMimirMapper(), DefaultCortexConfig, DefaultMimirConfig, tc.useNewDefaults, tc.outputDefaults) @@ -246,12 +247,16 @@ func TestConvert_Cortex(t *testing.T) { inFile: "testdata/duration-list-old.yaml", outFile: "testdata/duration-list-new.yaml", }, + { + name: "new frontend.results_cache.backend == memcached when old query_range.cache_results == true", + inFile: "testdata/query-frontend-results-cache-old.yaml", + outFile: "testdata/query-frontend-results-cache-new.yaml", + }, } for _, tc := range testCases { tc := tc t.Run(tc.name, func(t *testing.T) { - t.Parallel() inBytes, expectedOut := loadFile(t, tc.inFile), loadFile(t, tc.outFile) inFlags, expectedOutFlags := loadFlags(t, tc.inFlagsFile), loadFlags(t, tc.outFlagsFile) if inFlags == nil { @@ -348,7 +353,6 @@ func TestConvert_InvalidConfigs(t *testing.T) { for _, tc := range testCases { tc := tc t.Run(tc.name, func(t *testing.T) { - t.Parallel() inBytes := loadFile(t, tc.inFile) inFlags := loadFlags(t, tc.inFlagsFile) @@ -606,7 +610,6 @@ func TestConvert_UseNewDefaults(t *testing.T) { for _, tc := range testCases { tc := tc t.Run(tc.name, func(t *testing.T) { - t.Parallel() // We pass the common flags in, but ignore the output. // This is so that the always-present options in common-flags.txt get output in the flags instead of // in the out YAML. This helps to keep the test cases and expected YAML clean of @@ -639,7 +642,6 @@ func TestConvert_NotInYAMLIsNotPrinted(t *testing.T) { for _, showDefaults := range []bool{true, false} { showDefaults, useNewDefaults := showDefaults, useNewDefaults t.Run(fmt.Sprintf("useNewDefault=%t_showDefaults=%t", useNewDefaults, showDefaults), func(t *testing.T) { - t.Parallel() in := conversionInput{ useNewDefaults: useNewDefaults, outputDefaults: showDefaults, @@ -655,6 +657,36 @@ func TestConvert_NotInYAMLIsNotPrinted(t *testing.T) { } } +func TestConvert_PassingOnlyYAMLReturnsOnlyYAML(t *testing.T) { + inYAML := []byte("distributor: { remote_timeout: 11s }") + expectedOutYAML := []byte(`{distributor: { remote_timeout: 11s }, server: { http_listen_port: 80 }}`) + + in := conversionInput{ + inYAML: inYAML, + } + + testCortexAndGEM(t, in, func(t *testing.T, outYAML []byte, outFlags []string, notices ConversionNotices, err error) { + assert.NoError(t, err) + assert.YAMLEq(t, string(expectedOutYAML), string(outYAML)) + assert.Empty(t, outFlags) + }) +} + +func TestConvert_PassingOnlyFlagsReturnsOnlyFlags(t *testing.T) { + inFlags := []string{"-distributor.remote-timeout=11s"} + expectedOutFlags := append([]string{"-server.http-listen-port=80"}, inFlags...) + + in := conversionInput{ + inFlags: inFlags, + } + + testCortexAndGEM(t, in, func(t *testing.T, outYAML []byte, outFlags []string, notices ConversionNotices, err error) { + assert.NoError(t, err) + assert.YAMLEq(t, "{}", string(outYAML)) + assert.ElementsMatch(t, expectedOutFlags, outFlags) + }) +} + func loadFile(t testing.TB, fileName string) []byte { t.Helper() diff --git a/pkg/mimirtool/config/cortex.go b/pkg/mimirtool/config/cortex.go index 412fc01c53..b00e2f2381 100644 --- a/pkg/mimirtool/config/cortex.go +++ b/pkg/mimirtool/config/cortex.go @@ -38,6 +38,8 @@ func CortexToMimirMapper() Mapper { mapRulerAlertmanagerS3Buckets("alertmanager.storage", "alertmanager_storage"), mapRulerAlertmanagerS3Buckets("ruler.storage", "ruler_storage"), // Prevent server.http_listen_port from being updated with a new default and always output it. MapperFunc(mapServerHTTPListenPort), + // Set frontend.results_cache.backend when results cache was enabled in cortex + MapperFunc(mapQueryFrontendBackend), } } @@ -528,6 +530,14 @@ func mapServerHTTPListenPort(source, target Parameters) error { return nil } +func mapQueryFrontendBackend(source, target Parameters) error { + v, _ := source.GetValue("query_range.cache_results") + if v.AsBool() { + return target.SetValue("frontend.results_cache.backend", StringValue("memcached")) + } + return nil +} + // YAML Paths for config options removed since Cortex 1.11.0. var removedConfigPaths = []string{ "flusher.concurrent_flushes", // -flusher.concurrent-flushes diff --git a/pkg/mimirtool/config/gem.go b/pkg/mimirtool/config/gem.go index 4a35b123f6..c811ef5a8e 100644 --- a/pkg/mimirtool/config/gem.go +++ b/pkg/mimirtool/config/gem.go @@ -40,6 +40,8 @@ func GEM170ToGEM200Mapper() Mapper { mapRulerAlertmanagerS3Buckets("alertmanager.storage", "alertmanager_storage"), mapRulerAlertmanagerS3Buckets("ruler.storage", "ruler_storage"), // Prevent server.http_listen_port from being updated with a new default and always output it. MapperFunc(mapServerHTTPListenPort), + // Set frontend.results_cache.backend when results cache was enabled in cortex + MapperFunc(mapQueryFrontendBackend), } } diff --git a/pkg/mimirtool/config/inspect.go b/pkg/mimirtool/config/inspect.go index 7bcb3ee7ba..abdb104c32 100644 --- a/pkg/mimirtool/config/inspect.go +++ b/pkg/mimirtool/config/inspect.go @@ -209,7 +209,9 @@ func (i *InspectedEntry) asMap() map[string]interface{} { } } } else if e.Name != notInYaml { - combined[e.Name] = e.asMap() + if subMap := e.asMap(); len(subMap) > 0 { + combined[e.Name] = subMap + } } } return combined @@ -610,7 +612,7 @@ func (d *duration) UnmarshalJSON(data []byte) error { // stringSlice combines the behaviour of flagext.StringSlice and flagext.StringSliceCSV. // Its fmt.Stringer implementation returns a comma-joined string - this is handy for -// outputting the slice as the value of a flag during convertFlags. +// outputting the slice as the value of a flag during extractFlags. // Its yaml.Unmarshaler implementation supports reading in both YAML sequences and comma-delimited strings. // Its yaml.Marshaler implementation marshals the slice as a regular go slice. type stringSlice []string diff --git a/pkg/mimirtool/config/testdata/query-frontend-results-cache-new.yaml b/pkg/mimirtool/config/testdata/query-frontend-results-cache-new.yaml new file mode 100644 index 0000000000..54edb305d5 --- /dev/null +++ b/pkg/mimirtool/config/testdata/query-frontend-results-cache-new.yaml @@ -0,0 +1,4 @@ +frontend: + results_cache: + backend: memcached + cache_results: true diff --git a/pkg/mimirtool/config/testdata/query-frontend-results-cache-old.yaml b/pkg/mimirtool/config/testdata/query-frontend-results-cache-old.yaml new file mode 100644 index 0000000000..a30688ca93 --- /dev/null +++ b/pkg/mimirtool/config/testdata/query-frontend-results-cache-old.yaml @@ -0,0 +1,2 @@ +query_range: + cache_results: true From 733e513fc0567e1e67ade6e24a963a9f684a85f4 Mon Sep 17 00:00:00 2001 From: Dimitar Dimitrov Date: Mon, 21 Mar 2022 10:27:18 +0100 Subject: [PATCH 23/30] mimirtool config: GEM conversions & ring.instance_id (#1513) * Add GEM-specific conversions Signed-off-by: Dimitar Dimitrov * Update tests for GEM Signed-off-by: Dimitar Dimitrov * Update GEM descriptor Signed-off-by: Dimitar Dimitrov * Update descriptors with hidden fields Signed-off-by: Dimitar Dimitrov * Set instance-ids for GEM's admin-api too Signed-off-by: Dimitar Dimitrov * Make tests pass & move GEM removed options to gem.go Signed-off-by: Dimitar Dimitrov --- pkg/mimirtool/config/convert_test.go | 303 +++++++++++------ pkg/mimirtool/config/cortex.go | 94 +++--- .../cortex-v1.11.0-flags-only.json | 9 + .../config/descriptors/cortex-v1.11.0.json | 257 +++++++++++++- .../descriptors/gem-v1.7.0-flags-only.json | 9 + .../config/descriptors/gem-v1.7.0.json | 314 ++++++++++++++++++ .../config/descriptors/gem-v2.0.0.json | 143 +++++--- pkg/mimirtool/config/gem.go | 108 +++++- .../config/testdata/gem/common-flags-new.txt | 2 + .../config/testdata/gem/common-flags-old.txt | 2 + .../testdata/gem/common-options-new.yaml | 5 + .../testdata/gem/common-options-old.yaml | 5 + .../testdata/{ => gem}/proxy-targets.yaml | 0 .../gem/ring-instance-id-new.flags.txt | 7 + .../gem/ring-instance-id-old.flags.txt | 7 + .../gem/server-listen-http-port-new.yaml | 5 + .../gem/server-listen-http-port-old.yaml | 2 + .../server-listen-http-port-random-new.yaml | 5 + .../server-listen-http-port-random-old.yaml | 2 + .../testdata/ring-instance-id-new.flags.txt | 6 + .../testdata/ring-instance-id-old.flags.txt | 6 + 21 files changed, 1088 insertions(+), 203 deletions(-) create mode 100644 pkg/mimirtool/config/testdata/gem/common-flags-new.txt create mode 100644 pkg/mimirtool/config/testdata/gem/common-flags-old.txt create mode 100644 pkg/mimirtool/config/testdata/gem/common-options-new.yaml create mode 100644 pkg/mimirtool/config/testdata/gem/common-options-old.yaml rename pkg/mimirtool/config/testdata/{ => gem}/proxy-targets.yaml (100%) create mode 100644 pkg/mimirtool/config/testdata/gem/ring-instance-id-new.flags.txt create mode 100644 pkg/mimirtool/config/testdata/gem/ring-instance-id-old.flags.txt create mode 100644 pkg/mimirtool/config/testdata/gem/server-listen-http-port-new.yaml create mode 100644 pkg/mimirtool/config/testdata/gem/server-listen-http-port-old.yaml create mode 100644 pkg/mimirtool/config/testdata/gem/server-listen-http-port-random-new.yaml create mode 100644 pkg/mimirtool/config/testdata/gem/server-listen-http-port-random-old.yaml create mode 100644 pkg/mimirtool/config/testdata/ring-instance-id-new.flags.txt create mode 100644 pkg/mimirtool/config/testdata/ring-instance-id-old.flags.txt diff --git a/pkg/mimirtool/config/convert_test.go b/pkg/mimirtool/config/convert_test.go index a06ee39c7b..0177c9502d 100644 --- a/pkg/mimirtool/config/convert_test.go +++ b/pkg/mimirtool/config/convert_test.go @@ -14,24 +14,71 @@ import ( ) type conversionInput struct { - useNewDefaults bool - outputDefaults bool - inYAML []byte - inFlags []string + useNewDefaults bool + outputDefaults bool + yaml []byte + flags []string + dontLoadCommonOpts bool } -func testCortexAndGEM(t *testing.T, tc conversionInput, assert func(t *testing.T, outYAML []byte, outFlags []string, notices ConversionNotices, err error)) { - t.Parallel() - t.Run("cortex->mimir", func(t *testing.T) { +func (in *conversionInput) loadCommonOpts(t *testing.T, yamlFile, flagsFile string) (commonYAML []byte, commonFlags []string) { + if in.dontLoadCommonOpts { + return nil, nil + } + if in.yaml == nil { + in.yaml = loadFile(t, yamlFile) + commonYAML = in.yaml + } + if in.flags == nil { + in.flags = loadFlags(t, flagsFile) + commonFlags = in.flags + } + + return +} + +func testConvertCortexAndGEM(t *testing.T, tc conversionInput, test func(t *testing.T, outYAML []byte, outFlags []string, notices ConversionNotices, err error)) { + testConvertCortex(t, tc, test) + testConvertGEM(t, tc, test) +} + +func testConvertGEM(t *testing.T, tc conversionInput, test func(t *testing.T, outYAML []byte, outFlags []string, notices ConversionNotices, err error)) { + t.Run("gem170->gem200", func(t *testing.T) { t.Parallel() - mimirYAML, mimirFlags, mimirNotices, mimirErr := Convert(tc.inYAML, tc.inFlags, CortexToMimirMapper(), DefaultCortexConfig, DefaultMimirConfig, tc.useNewDefaults, tc.outputDefaults) - assert(t, mimirYAML, mimirFlags, mimirNotices, mimirErr) + + expectedCommonYAML, expectedCommonFlags := tc.loadCommonOpts(t, "testdata/gem/common-options-old.yaml", "testdata/gem/common-flags-old.txt") + outYAML, outFlags, notices, err := Convert(tc.yaml, tc.flags, GEM170ToGEM200Mapper(), DefaultGEM170Config, DefaultGEM200COnfig, tc.useNewDefaults, tc.outputDefaults) + + if expectedCommonYAML != nil { + assert.YAMLEq(t, string(expectedCommonYAML), string(outYAML), "common config options did not map correctly") + outYAML = nil + } + if expectedCommonFlags != nil { + assert.ElementsMatch(t, expectedCommonFlags, outFlags, "common config options did not map correctly") + outFlags = []string{} + } + + test(t, outYAML, outFlags, notices, err) }) +} - t.Run("gem170->gem200", func(t *testing.T) { +func testConvertCortex(t *testing.T, tc conversionInput, test func(t *testing.T, outYAML []byte, outFlags []string, notices ConversionNotices, err error)) { + t.Run("cortex->mimir", func(t *testing.T) { t.Parallel() - gemYAML, gemFlags, gemNotices, gemErr := Convert(tc.inYAML, tc.inFlags, GEM170ToGEM200Mapper(), DefaultGEM170Config, DefaultGEM200COnfig, tc.useNewDefaults, tc.outputDefaults) - assert(t, gemYAML, gemFlags, gemNotices, gemErr) + + expectedCommonYAML, expectedCommonFlags := tc.loadCommonOpts(t, "testdata/common-options.yaml", "testdata/common-flags.txt") + outYAML, outFlags, notices, err := Convert(tc.yaml, tc.flags, CortexToMimirMapper(), DefaultCortexConfig, DefaultMimirConfig, tc.useNewDefaults, tc.outputDefaults) + + if expectedCommonYAML != nil { + assert.YAMLEq(t, string(expectedCommonYAML), string(outYAML), "common config options did not map correctly") + outYAML = nil + } + if expectedCommonFlags != nil { + assert.ElementsMatch(t, expectedCommonFlags, outFlags, "common config options did not map correctly") + outFlags = []string{} + } + + test(t, outYAML, outFlags, notices, err) }) } @@ -41,6 +88,8 @@ func TestConvert_Cortex(t *testing.T) { useNewDefaults bool inFile, outFile string inFlagsFile, outFlagsFile string + skipGEMTest bool + dontAddCommonOpts bool }{ { name: "shouldn't need any conversion", @@ -83,6 +132,7 @@ func TestConvert_Cortex(t *testing.T) { inFlagsFile: "testdata/flags-precedence-old.flags.txt", outFlagsFile: "testdata/flags-precedence-new.flags.txt", outFile: "testdata/common-options.yaml", + skipGEMTest: true, // no need to test this in GEM too; plus, output for GEM also includes GEM common opts }, { name: "ruler.storage maps to ruler_storage", @@ -208,29 +258,33 @@ func TestConvert_Cortex(t *testing.T) { outFile: "testdata/instance-interface-names-explicit-new.yaml", }, { - name: "server.http-listen-port old default is printed even when implicitly using the old default", - inFlagsFile: "testdata/empty.txt", // prevent the test from using common-flags.txt - inFile: "testdata/empty.yaml", - outFile: "testdata/server-listen-http-port-new.yaml", + name: "server.http-listen-port old default is printed even when implicitly using the old default", + skipGEMTest: true, + dontAddCommonOpts: true, // The common opts are in the outFile. That's the same reason why this test case doesn't work for GEM + inFile: "testdata/empty.yaml", + outFile: "testdata/server-listen-http-port-new.yaml", }, { - name: "server.http-listen-port old default is retained with useNewDefaults=true", - inFlagsFile: "testdata/empty.txt", // prevent the test from using common-flags.txt - useNewDefaults: true, - inFile: "testdata/server-listen-http-port-old.yaml", - outFile: "testdata/server-listen-http-port-new.yaml", + name: "server.http-listen-port old default is retained with useNewDefaults=true", + skipGEMTest: true, + dontAddCommonOpts: true, // The common opts are in the outFile. That's the same reason why this test case doesn't work for GEM + useNewDefaults: true, + inFile: "testdata/server-listen-http-port-old.yaml", + outFile: "testdata/server-listen-http-port-new.yaml", }, { - name: "server.http-listen-port old default is retained with useNewDefaults=false", - inFlagsFile: "testdata/empty.txt", // prevent the test from using common-flags.txt - inFile: "testdata/server-listen-http-port-old.yaml", - outFile: "testdata/server-listen-http-port-new.yaml", + name: "server.http-listen-port old default is retained with useNewDefaults=false", + skipGEMTest: true, + dontAddCommonOpts: true, // The common opts are in the outFile. That's the same reason why this test case doesn't work for GEM + inFile: "testdata/server-listen-http-port-old.yaml", + outFile: "testdata/server-listen-http-port-new.yaml", }, { - name: "server.http-listen-port random value is retained with useNewDefaults=false", - inFlagsFile: "testdata/empty.txt", // prevent the test from using common-flags.txt - inFile: "testdata/server-listen-http-port-random-old.yaml", - outFile: "testdata/server-listen-http-port-random-new.yaml", + name: "server.http-listen-port random value is retained with useNewDefaults=false", + skipGEMTest: true, + dontAddCommonOpts: true, // The common opts are in the outFile. That's the same reason why this test case doesn't work for GEM + inFile: "testdata/server-listen-http-port-random-old.yaml", + outFile: "testdata/server-listen-http-port-random-new.yaml", }, { name: "flags with quotes and JSON don't get interpreted escaped", @@ -247,6 +301,11 @@ func TestConvert_Cortex(t *testing.T) { inFile: "testdata/duration-list-old.yaml", outFile: "testdata/duration-list-new.yaml", }, + { + name: "instance_id is preserved", + inFlagsFile: "testdata/ring-instance-id-old.flags.txt", + outFlagsFile: "testdata/ring-instance-id-new.flags.txt", + }, { name: "new frontend.results_cache.backend == memcached when old query_range.cache_results == true", inFile: "testdata/query-frontend-results-cache-old.yaml", @@ -257,33 +316,26 @@ func TestConvert_Cortex(t *testing.T) { for _, tc := range testCases { tc := tc t.Run(tc.name, func(t *testing.T) { - inBytes, expectedOut := loadFile(t, tc.inFile), loadFile(t, tc.outFile) - inFlags, expectedOutFlags := loadFlags(t, tc.inFlagsFile), loadFlags(t, tc.outFlagsFile) - if inFlags == nil { - inFlags = loadFlags(t, "testdata/common-flags.txt") - expectedOutFlags = inFlags - } - if inBytes == nil { - inBytes = loadFile(t, "testdata/common-options.yaml") - expectedOut = inBytes - } + t.Parallel() + expectedOut := loadFile(t, tc.outFile) + expectedOutFlags := loadFlags(t, tc.outFlagsFile) in := conversionInput{ - useNewDefaults: tc.useNewDefaults, - outputDefaults: false, - inYAML: inBytes, - inFlags: inFlags, + useNewDefaults: tc.useNewDefaults, + dontLoadCommonOpts: tc.dontAddCommonOpts, + yaml: loadFile(t, tc.inFile), + flags: loadFlags(t, tc.inFlagsFile), } - testCortexAndGEM(t, in, func(t *testing.T, outYAML []byte, outFlags []string, notices ConversionNotices, err error) { + assertion := func(t *testing.T, outYAML []byte, outFlags []string, notices ConversionNotices, err error) { assert.NoError(t, err) - assert.ElementsMatch(t, expectedOutFlags, outFlags) - if expectedOut == nil { - expectedOut = []byte("{}") - } assert.YAMLEq(t, string(expectedOut), string(outYAML)) - }) + } + testConvertCortex(t, in, assertion) + if !tc.skipGEMTest { + testConvertGEM(t, in, assertion) + } }) } } @@ -294,11 +346,42 @@ func TestConvert_GEM(t *testing.T) { useNewDefaults bool inFile, outFile string inFlagsFile, outFlagsFile string + dontAddCommonOpts bool }{ { name: "proxy_targets get translated", - inFile: "testdata/proxy-targets.yaml", - outFile: "testdata/proxy-targets.yaml", + inFile: "testdata/gem/proxy-targets.yaml", + outFile: "testdata/gem/proxy-targets.yaml", + }, + { + name: "server.http-listen-port old default is printed even when implicitly using the old default", + dontAddCommonOpts: true, // The common opts are in the outFile + inFile: "testdata/empty.yaml", + outFile: "testdata/gem/server-listen-http-port-new.yaml", + }, + { + name: "server.http-listen-port old default is retained with useNewDefaults=true", + dontAddCommonOpts: true, // The common opts are in the outFile + useNewDefaults: true, + inFile: "testdata/gem/server-listen-http-port-old.yaml", + outFile: "testdata/gem/server-listen-http-port-new.yaml", + }, + { + name: "server.http-listen-port old default is retained with useNewDefaults=false", + dontAddCommonOpts: true, // The common opts are in the outFile + inFile: "testdata/gem/server-listen-http-port-old.yaml", + outFile: "testdata/gem/server-listen-http-port-new.yaml", + }, + { + name: "server.http-listen-port random value is retained with useNewDefaults=false", + dontAddCommonOpts: true, // The common opts are in the outFile + inFile: "testdata/gem/server-listen-http-port-random-old.yaml", + outFile: "testdata/gem/server-listen-http-port-random-new.yaml", + }, + { + name: "instance_id is preserved", + inFlagsFile: "testdata/gem/ring-instance-id-old.flags.txt", + outFlagsFile: "testdata/gem/ring-instance-id-new.flags.txt", }, } @@ -306,26 +389,21 @@ func TestConvert_GEM(t *testing.T) { tc := tc t.Run(tc.name, func(t *testing.T) { t.Parallel() - inBytes, expectedOut := loadFile(t, tc.inFile), loadFile(t, tc.outFile) - inFlags, expectedOutFlags := loadFlags(t, tc.inFlagsFile), loadFlags(t, tc.outFlagsFile) - if inFlags == nil { - inFlags = loadFlags(t, "testdata/common-flags.txt") - expectedOutFlags = inFlags - } - if inBytes == nil { - inBytes = loadFile(t, "testdata/common-options.yaml") - expectedOut = inBytes - } + expectedOut := loadFile(t, tc.outFile) + expectedOutFlags := loadFlags(t, tc.outFlagsFile) - outYAML, outFlags, _, err := Convert(inBytes, inFlags, GEM170ToGEM200Mapper(), DefaultGEM170Config, DefaultGEM200COnfig, tc.useNewDefaults, false) - assert.NoError(t, err) - - assert.ElementsMatch(t, expectedOutFlags, outFlags) - if expectedOut == nil { - expectedOut = []byte("{}") + in := conversionInput{ + useNewDefaults: tc.useNewDefaults, + dontLoadCommonOpts: tc.dontAddCommonOpts, + yaml: loadFile(t, tc.inFile), + flags: loadFlags(t, tc.inFlagsFile), } - assert.YAMLEq(t, string(expectedOut), string(outYAML)) + testConvertGEM(t, in, func(t *testing.T, outYAML []byte, outFlags []string, notices ConversionNotices, err error) { + assert.NoError(t, err) + assert.ElementsMatch(t, expectedOutFlags, outFlags) + assert.YAMLEq(t, string(expectedOut), string(outYAML)) + }) }) } } @@ -353,14 +431,13 @@ func TestConvert_InvalidConfigs(t *testing.T) { for _, tc := range testCases { tc := tc t.Run(tc.name, func(t *testing.T) { - inBytes := loadFile(t, tc.inFile) - inFlags := loadFlags(t, tc.inFlagsFile) - + t.Parallel() in := conversionInput{ - inFlags: inFlags, - inYAML: inBytes, + flags: loadFlags(t, tc.inFlagsFile), + yaml: loadFile(t, tc.inFile), + dontLoadCommonOpts: true, } - testCortexAndGEM(t, in, func(t *testing.T, outYAML []byte, outFlags []string, notices ConversionNotices, err error) { + testConvertCortexAndGEM(t, in, func(t *testing.T, outYAML []byte, outFlags []string, notices ConversionNotices, err error) { assert.EqualError(t, err, tc.expectedErr) }) }) @@ -508,7 +585,7 @@ var changedCortexDefaults = []ChangedDefault{ } func TestChangedCortexDefaults(t *testing.T) { - // Create cortex config where all params have explicitly set default values + // Create cortex config where all params have explicitly set default values so that all of them can be changed and reported as changed params := DefaultCortexConfig() err := params.Walk(func(path string, _ Value) error { return params.SetValue(path, params.MustGetDefaultValue(path)) @@ -517,10 +594,15 @@ func TestChangedCortexDefaults(t *testing.T) { config, err := yaml.Marshal(params) require.NoError(t, err) - // Create cortex config where all params have explicitly set default values so that all of them can be changed and reported as changed - _, _, notices, err := Convert(config, nil, CortexToMimirMapper(), DefaultCortexConfig, DefaultMimirConfig, true, false) - require.NoError(t, err) - assert.ElementsMatch(t, changedCortexDefaults, notices.ChangedDefaults) + in := conversionInput{ + useNewDefaults: true, + yaml: config, + } + + testConvertCortex(t, in, func(t *testing.T, outYAML []byte, outFlags []string, notices ConversionNotices, err error) { + require.NoError(t, err) + assert.ElementsMatch(t, changedCortexDefaults, notices.ChangedDefaults) + }) } func TestChangedGEMDefaults(t *testing.T) { @@ -528,8 +610,21 @@ func TestChangedGEMDefaults(t *testing.T) { {Path: "admin_api.leader_election.client_config.max_send_msg_size", OldDefault: "16777216", NewDefault: "104857600"}, {Path: "admin_api.leader_election.enabled", OldDefault: "false", NewDefault: "true"}, {Path: "admin_api.leader_election.ring.instance_interface_names", OldDefault: "eth0,en0", NewDefault: ""}, - {Path: "auth.type", OldDefault: "trust", NewDefault: "enterprise"}, {Path: "graphite.enabled", OldDefault: "false", NewDefault: "true"}, + {Path: "graphite.querier.aggregation_cache.memcached.addresses", OldDefault: "dnssrvnoa+_memcached._tcp.", NewDefault: ""}, + {Path: "graphite.querier.aggregation_cache.memcached.max_async_buffer_size", OldDefault: "10000", NewDefault: "25000"}, + {Path: "graphite.querier.aggregation_cache.memcached.max_async_concurrency", OldDefault: "10", NewDefault: "50"}, + {Path: "graphite.querier.aggregation_cache.memcached.max_get_multi_batch_size", OldDefault: "1024", NewDefault: "100"}, + {Path: "graphite.querier.aggregation_cache.memcached.max_idle_connections", OldDefault: "16", NewDefault: "100"}, + {Path: "graphite.querier.aggregation_cache.memcached.max_item_size", OldDefault: "0", NewDefault: "1048576"}, + {Path: "graphite.querier.aggregation_cache.memcached.timeout", OldDefault: "100ms", NewDefault: "200ms"}, + {Path: "graphite.querier.metric_name_cache.memcached.addresses", OldDefault: "dnssrvnoa+_memcached._tcp.", NewDefault: ""}, + {Path: "graphite.querier.metric_name_cache.memcached.max_async_buffer_size", OldDefault: "10000", NewDefault: "25000"}, + {Path: "graphite.querier.metric_name_cache.memcached.max_async_concurrency", OldDefault: "10", NewDefault: "50"}, + {Path: "graphite.querier.metric_name_cache.memcached.max_get_multi_batch_size", OldDefault: "1024", NewDefault: "100"}, + {Path: "graphite.querier.metric_name_cache.memcached.max_idle_connections", OldDefault: "16", NewDefault: "100"}, + {Path: "graphite.querier.metric_name_cache.memcached.max_item_size", OldDefault: "0", NewDefault: "1048576"}, + {Path: "graphite.querier.metric_name_cache.memcached.timeout", OldDefault: "100ms", NewDefault: "200ms"}, {Path: "graphite.querier.schemas.backend", OldDefault: "s3", NewDefault: "filesystem"}, {Path: "instrumentation.enabled", OldDefault: "false", NewDefault: "true"}, {Path: "limits.compactor_split_groups", OldDefault: "4", NewDefault: "1"}, @@ -560,10 +655,15 @@ func TestChangedGEMDefaults(t *testing.T) { config, err := yaml.Marshal(params) require.NoError(t, err) - // Convert while also converting explicitly set defaults to new defaults - _, _, notices, err := Convert(config, nil, GEM170ToGEM200Mapper(), DefaultGEM170Config, DefaultGEM200COnfig, true, false) - require.NoError(t, err) - assert.ElementsMatch(t, expectedChangedDefaults, notices.ChangedDefaults) + in := conversionInput{ + useNewDefaults: true, + yaml: config, + } + + testConvertGEM(t, in, func(t *testing.T, outYAML []byte, outFlags []string, notices ConversionNotices, err error) { + require.NoError(t, err) + assert.ElementsMatch(t, expectedChangedDefaults, notices.ChangedDefaults) + }) } func TestConvert_UseNewDefaults(t *testing.T) { @@ -610,18 +710,13 @@ func TestConvert_UseNewDefaults(t *testing.T) { for _, tc := range testCases { tc := tc t.Run(tc.name, func(t *testing.T) { - // We pass the common flags in, but ignore the output. - // This is so that the always-present options in common-flags.txt get output in the flags instead of - // in the out YAML. This helps to keep the test cases and expected YAML clean of - // unrelated config options (e.g. server.http_listen_port) - inFlags := loadFlags(t, "testdata/common-flags.txt") + t.Parallel() in := conversionInput{ - inYAML: tc.inYAML, - inFlags: inFlags, + yaml: tc.inYAML, useNewDefaults: tc.useNewDefaults, } - testCortexAndGEM(t, in, func(t *testing.T, outYAML []byte, outFlags []string, notices ConversionNotices, err error) { + testConvertCortexAndGEM(t, in, func(t *testing.T, outYAML []byte, outFlags []string, notices ConversionNotices, err error) { require.NoError(t, err) assert.YAMLEq(t, string(tc.expectedYAML), string(outYAML)) @@ -642,13 +737,13 @@ func TestConvert_NotInYAMLIsNotPrinted(t *testing.T) { for _, showDefaults := range []bool{true, false} { showDefaults, useNewDefaults := showDefaults, useNewDefaults t.Run(fmt.Sprintf("useNewDefault=%t_showDefaults=%t", useNewDefaults, showDefaults), func(t *testing.T) { + t.Parallel() in := conversionInput{ - useNewDefaults: useNewDefaults, - outputDefaults: showDefaults, - inYAML: nil, - inFlags: nil, + useNewDefaults: useNewDefaults, + outputDefaults: showDefaults, + dontLoadCommonOpts: true, } - testCortexAndGEM(t, in, func(t *testing.T, outYAML []byte, outFlags []string, notices ConversionNotices, err error) { + testConvertCortexAndGEM(t, in, func(t *testing.T, outYAML []byte, outFlags []string, notices ConversionNotices, err error) { assert.NoError(t, err) assert.NotContains(t, string(outYAML), notInYaml) }) @@ -659,13 +754,13 @@ func TestConvert_NotInYAMLIsNotPrinted(t *testing.T) { func TestConvert_PassingOnlyYAMLReturnsOnlyYAML(t *testing.T) { inYAML := []byte("distributor: { remote_timeout: 11s }") - expectedOutYAML := []byte(`{distributor: { remote_timeout: 11s }, server: { http_listen_port: 80 }}`) + expectedOutYAML := inYAML in := conversionInput{ - inYAML: inYAML, + yaml: inYAML, } - testCortexAndGEM(t, in, func(t *testing.T, outYAML []byte, outFlags []string, notices ConversionNotices, err error) { + testConvertCortexAndGEM(t, in, func(t *testing.T, outYAML []byte, outFlags []string, notices ConversionNotices, err error) { assert.NoError(t, err) assert.YAMLEq(t, string(expectedOutYAML), string(outYAML)) assert.Empty(t, outFlags) @@ -674,15 +769,15 @@ func TestConvert_PassingOnlyYAMLReturnsOnlyYAML(t *testing.T) { func TestConvert_PassingOnlyFlagsReturnsOnlyFlags(t *testing.T) { inFlags := []string{"-distributor.remote-timeout=11s"} - expectedOutFlags := append([]string{"-server.http-listen-port=80"}, inFlags...) + expectedOutFlags := inFlags in := conversionInput{ - inFlags: inFlags, + flags: inFlags, } - testCortexAndGEM(t, in, func(t *testing.T, outYAML []byte, outFlags []string, notices ConversionNotices, err error) { + testConvertCortexAndGEM(t, in, func(t *testing.T, outYAML []byte, outFlags []string, notices ConversionNotices, err error) { assert.NoError(t, err) - assert.YAMLEq(t, "{}", string(outYAML)) + assert.Empty(t, outYAML) assert.ElementsMatch(t, expectedOutFlags, outFlags) }) } diff --git a/pkg/mimirtool/config/cortex.go b/pkg/mimirtool/config/cortex.go index b00e2f2381..916daee31b 100644 --- a/pkg/mimirtool/config/cortex.go +++ b/pkg/mimirtool/config/cortex.go @@ -16,7 +16,7 @@ import ( func CortexToMimirMapper() Mapper { return MultiMapper{ mapCortexInstanceInterfaceNames(), - // first try to naively map keys from old config to same keys from new config + // Try to naively map keys from old config to same keys from new config BestEffortDirectMapper{}, // next map alertmanager URL in the ruler config MapperFunc(alertmanagerURLMapperFunc), @@ -31,13 +31,15 @@ func CortexToMimirMapper() Mapper { // Remap sharding configs MapperFunc(updateKVStoreValue), // Convert provided memcached service and host to the DNS service discovery format - MapperFunc(mapMemcachedAddresses), + mapMemcachedAddresses("query_range.results_cache.cache.memcached_client", "frontend.results_cache.memcached"), // Map `-*.s3.url` to `-*.s3.(endpoint|access_key_id|secret_access_key)` mapRulerAlertmanagerS3URL("alertmanager.storage", "alertmanager_storage"), mapRulerAlertmanagerS3URL("ruler.storage", "ruler_storage"), // Map `-*.s3.bucketnames` and (maybe part of `-*s3.s3.url`) to `-*.s3.bucket-name` mapRulerAlertmanagerS3Buckets("alertmanager.storage", "alertmanager_storage"), mapRulerAlertmanagerS3Buckets("ruler.storage", "ruler_storage"), // Prevent server.http_listen_port from being updated with a new default and always output it. - MapperFunc(mapServerHTTPListenPort), + setOldDefaultExplicitly("server.http_listen_port"), + // Manually override the dynamic fields' default values. + MapperFunc(mapCortexRingInstanceIDDefaults), // Set frontend.results_cache.backend when results cache was enabled in cortex MapperFunc(mapQueryFrontendBackend), } @@ -130,6 +132,7 @@ var cortexRenameMappings = map[string]Mapping{ "ingester.lifecycler.ring.zone_awareness_enabled": RenameMapping("ingester.ring.zone_awareness_enabled"), "ingester.lifecycler.tokens_file_path": RenameMapping("ingester.ring.tokens_file_path"), "ingester.lifecycler.unregister_on_shutdown": RenameMapping("ingester.ring.unregister_on_shutdown"), + notInYaml + ".ingester-lifecycler-id": RenameMapping("ingester.ring.instance_id"), "auth_enabled": RenameMapping("multitenancy_enabled"), } @@ -453,26 +456,25 @@ func mapRulerAlertmanagerS3Buckets(dotStoragePath, storagePath string) Mapper { // mapMemcachedAddresses maps query_range...memcached_client.host and .service to a DNS Service Discovery format // address. This should preserve the behaviour in cortex v1.11.0: // https://github.com/cortexproject/cortex/blob/43c646ba3ff906e80a6a1812f2322a0c276e9deb/pkg/chunk/cache/memcached_client.go#L242-L258 -func mapMemcachedAddresses(source, target Parameters) error { - const ( - oldPrefix = "query_range.results_cache.cache.memcached_client" - newPrefix = "frontend.results_cache.memcached" - ) - presetAddressesVal, err := source.GetValue(oldPrefix + ".addresses") - if err != nil { - return err - } - if presetAddressesVal.AsString() != "" { - return nil // respect already set values of addresses - } +// Also applies to GEM and graphite querier caches +func mapMemcachedAddresses(oldPrefix, newPrefix string) MapperFunc { + return func(source, target Parameters) error { + presetAddressesVal, err := source.GetValue(oldPrefix + ".addresses") + if err != nil { + return err + } + if presetAddressesVal.AsString() != "" { + return nil // respect already set values of addresses + } - service, hostname := source.MustGetValue(oldPrefix+".service"), source.MustGetValue(oldPrefix+".host") - if service.IsUnset() || hostname.IsUnset() { - return nil - } - newAddress := fmt.Sprintf("dnssrvnoa+_%s._tcp.%s", service.AsString(), hostname.AsString()) + service, hostname := source.MustGetValue(oldPrefix+".service"), source.MustGetValue(oldPrefix+".host") + if service.IsUnset() || hostname.IsUnset() { + return nil + } + newAddress := fmt.Sprintf("dnssrvnoa+_%s._tcp.%s", service.AsString(), hostname.AsString()) - return target.SetValue(newPrefix+".addresses", StringValue(newAddress)) + return target.SetValue(newPrefix+".addresses", StringValue(newAddress)) + } } func mapCortexInstanceInterfaceNames() Mapper { @@ -503,7 +505,8 @@ func mapInstanceInterfaceNames(ifaceNames map[string]string) Mapper { } instanceNamesVal, _ := source.GetValue(sourcePath) if !instanceNamesVal.IsUnset() { - // The user has set the value to something, we want to keep that + // The user has set the value to something, we want to keep that. + // But also when mapping defaults this restores the old default when mapping defaults after we've set it to Nil above. errs.Add(target.SetValue(targetPath, instanceNamesVal)) continue } @@ -513,21 +516,24 @@ func mapInstanceInterfaceNames(ifaceNames map[string]string) Mapper { }) } -func mapServerHTTPListenPort(source, target Parameters) error { - portVal, err := source.GetValue("server.http_listen_port") - if err != nil { - return err - } - // If the port wasn't set, or it was set to the default - if portVal.IsUnset() || !differentFromDefault(source, "server.http_listen_port") { - err = target.SetValue("server.http_listen_port", IntValue(80)) - // We set the default after the value itself because when mapping defaults - // calling `SetValue` actually modifies the default value. So we want to retain the target default as it is. - err2 := target.SetDefaultValue("server.http_listen_port", IntValue(8080)) - return multierror.New(err, err2).Err() - } +func setOldDefaultExplicitly(path string) Mapper { + return MapperFunc(func(source, target Parameters) error { + v, err := source.GetValue(path) + if err != nil { + return err + } - return nil + if v.IsUnset() || !differentFromDefault(source, path) { + err = target.SetValue(path, source.MustGetDefaultValue(path)) + // We set the default again after the value itself because when prepareSourceDefaults is mapping defaults + // `SetValue` actually sets the default value. + // Also set the source default to Nil, so that when updating defaults this parameter isn't affected + err2 := target.SetDefaultValue(path, Nil) + return multierror.New(err, err2).Err() + } + + return nil + }) } func mapQueryFrontendBackend(source, target Parameters) error { @@ -538,8 +544,19 @@ func mapQueryFrontendBackend(source, target Parameters) error { return nil } +func mapCortexRingInstanceIDDefaults(source, target Parameters) error { + return multierror.New( + target.SetDefaultValue("alertmanager.sharding_ring.instance_id", Nil), + target.SetDefaultValue("compactor.sharding_ring.instance_id", Nil), + target.SetDefaultValue("distributor.ring.instance_id", Nil), + target.SetDefaultValue("ingester.ring.instance_id", Nil), + target.SetDefaultValue("ruler.ring.instance_id", Nil), + target.SetDefaultValue("store_gateway.sharding_ring.instance_id", Nil), + ).Err() +} + // YAML Paths for config options removed since Cortex 1.11.0. -var removedConfigPaths = []string{ +var removedConfigPaths = append(gemRemovedConfigPath, []string{ "flusher.concurrent_flushes", // -flusher.concurrent-flushes "flusher.flush_op_timeout", // -flusher.flush-op-timeout "flusher.wal_dir", // -flusher.wal-dir @@ -1007,6 +1024,7 @@ var removedConfigPaths = []string{ "alertmanager.auto_webhook_root", // -alertmanager.configs.auto-webhook-root "api.response_compression_enabled", // -api.response-compression-enabled "compactor.sharding_enabled", // -compactor.sharding-enabled + "compactor.sharding_strategy", // -compactor.sharding-strategy "distributor.extra_queue_delay", // -distributor.extra-query-delay "distributor.shard_by_all_labels", // -distributor.shard-by-all-labels "distributor.sharding_strategy", // -distributor.sharding-strategy @@ -1027,7 +1045,7 @@ var removedConfigPaths = []string{ "ruler.sharding_strategy", // -ruler.sharding-strategy "store_gateway.sharding_enabled", // -store-gateway.sharding-enabled "store_gateway.sharding_strategy", // -store-gateway.sharding-strategy -} +}...) // CLI options removed since Cortex 1.10.0. These flags only existed as CLI Flags, and were not included in YAML Config. var removedCLIOptions = []string{ diff --git a/pkg/mimirtool/config/descriptors/cortex-v1.11.0-flags-only.json b/pkg/mimirtool/config/descriptors/cortex-v1.11.0-flags-only.json index bd57328da7..91b927c6dc 100644 --- a/pkg/mimirtool/config/descriptors/cortex-v1.11.0-flags-only.json +++ b/pkg/mimirtool/config/descriptors/cortex-v1.11.0-flags-only.json @@ -66,6 +66,15 @@ "fieldDefaultValue": 0, "fieldFlag": "event.sample-rate", "fieldType": "int" + }, + { + "kind": "field", + "name": "ingester-lifecycler-id", + "required": false, + "desc": "ID to register in the ring.", + "fieldDefaultValue": null, + "fieldFlag": "ingester.lifecycler.id", + "fieldType": "string" } ] } diff --git a/pkg/mimirtool/config/descriptors/cortex-v1.11.0.json b/pkg/mimirtool/config/descriptors/cortex-v1.11.0.json index 597ba58773..5d02ce0e54 100644 --- a/pkg/mimirtool/config/descriptors/cortex-v1.11.0.json +++ b/pkg/mimirtool/config/descriptors/cortex-v1.11.0.json @@ -103,7 +103,7 @@ "kind": "field", "name": "http_listen_conn_limit", "required": false, - "desc": "Maximum number of simultaneous http connections, <=0 to disable", + "desc": "Maximum number of simultaneous http connections, \u003c=0 to disable", "fieldDefaultValue": 0, "fieldFlag": "server.http-conn-limit", "fieldType": "int" @@ -139,7 +139,7 @@ "kind": "field", "name": "grpc_listen_conn_limit", "required": false, - "desc": "Maximum number of simultaneous grpc connections, <=0 to disable", + "desc": "Maximum number of simultaneous grpc connections, \u003c=0 to disable", "fieldDefaultValue": 0, "fieldFlag": "server.grpc-conn-limit", "fieldType": "int" @@ -1055,6 +1055,15 @@ "fieldFlag": "distributor.ring.heartbeat-timeout", "fieldType": "duration" }, + { + "kind": "field", + "name": "instance_id", + "required": false, + "desc": "Instance ID to register in the ring.", + "fieldDefaultValue": null, + "fieldFlag": "distributor.ring.instance-id", + "fieldType": "string" + }, { "kind": "field", "name": "instance_interface_names", @@ -1066,6 +1075,24 @@ ], "fieldFlag": "distributor.ring.instance-interface-names", "fieldType": "list of string" + }, + { + "kind": "field", + "name": "instance_port", + "required": false, + "desc": "Port to advertise in the ring (defaults to server.grpc-listen-port).", + "fieldDefaultValue": 0, + "fieldFlag": "distributor.ring.instance-port", + "fieldType": "int" + }, + { + "kind": "field", + "name": "instance_addr", + "required": false, + "desc": "IP address to advertise in the ring.", + "fieldDefaultValue": "", + "fieldFlag": "distributor.ring.instance-addr", + "fieldType": "string" } ] }, @@ -1322,7 +1349,7 @@ "kind": "field", "name": "shuffle_sharding_ingesters_lookback_period", "required": false, - "desc": "When distributor's sharding strategy is shuffle-sharding and this setting is > 0, queriers fetch in-memory series from the minimum set of required ingesters, selecting only ingesters which may have received series since 'now - lookback period'. The lookback period should be greater or equal than the configured 'query store after' and 'query ingesters within'. If this setting is 0, queriers always query all ingesters (ingesters shuffle sharding on read path is disabled).", + "desc": "When distributor's sharding strategy is shuffle-sharding and this setting is \u003e 0, queriers fetch in-memory series from the minimum set of required ingesters, selecting only ingesters which may have received series since 'now - lookback period'. The lookback period should be greater or equal than the configured 'query store after' and 'query ingesters within'. If this setting is 0, queriers always query all ingesters (ingesters shuffle sharding on read path is disabled).", "fieldDefaultValue": 0, "fieldFlag": "querier.shuffle-sharding-ingesters-lookback-period", "fieldType": "duration" @@ -1928,6 +1955,15 @@ "fieldDefaultValue": true, "fieldFlag": "ingester.unregister-on-shutdown", "fieldType": "boolean" + }, + { + "kind": "field", + "name": "address", + "required": false, + "desc": "IP address to advertise in the ring.", + "fieldDefaultValue": "", + "fieldFlag": "ingester.lifecycler.addr", + "fieldType": "string" } ] }, @@ -2196,7 +2232,7 @@ "kind": "field", "name": "dynamodb_url", "required": false, - "desc": "DynamoDB endpoint URL with escaped Key and Secret encoded. If only region is specified as a host, proper endpoint will be deduced. Use inmemory:/// to use a mock in-memory implementation.", + "desc": "DynamoDB endpoint URL with escaped Key and Secret encoded. If only region is specified as a host, proper endpoint will be deduced. Use inmemory:///\u003ctable-name\u003e to use a mock in-memory implementation.", "fieldDefaultValue": {}, "fieldFlag": "dynamodb.url", "fieldType": "url" @@ -2275,7 +2311,7 @@ "name": "write_throttle_query", "required": false, "desc": "query to fetch throttle rates per table", - "fieldDefaultValue": "sum(rate(cortex_dynamo_throttled_total{operation=\"DynamoDB.BatchWriteItem\"}[1m])) by (table) > 0", + "fieldDefaultValue": "sum(rate(cortex_dynamo_throttled_total{operation=\"DynamoDB.BatchWriteItem\"}[1m])) by (table) \u003e 0", "fieldFlag": "metrics.write-throttle-query", "fieldType": "string" }, @@ -2284,7 +2320,7 @@ "name": "write_usage_query", "required": false, "desc": "query to fetch write capacity usage per table", - "fieldDefaultValue": "sum(rate(cortex_dynamo_consumed_capacity_total{operation=\"DynamoDB.BatchWriteItem\"}[15m])) by (table) > 0", + "fieldDefaultValue": "sum(rate(cortex_dynamo_consumed_capacity_total{operation=\"DynamoDB.BatchWriteItem\"}[15m])) by (table) \u003e 0", "fieldFlag": "metrics.usage-query", "fieldType": "string" }, @@ -2293,7 +2329,7 @@ "name": "read_usage_query", "required": false, "desc": "query to fetch read capacity usage per table", - "fieldDefaultValue": "sum(rate(cortex_dynamo_consumed_capacity_total{operation=\"DynamoDB.QueryPages\"}[1h])) by (table) > 0", + "fieldDefaultValue": "sum(rate(cortex_dynamo_consumed_capacity_total{operation=\"DynamoDB.QueryPages\"}[1h])) by (table) \u003e 0", "fieldFlag": "metrics.read-usage-query", "fieldType": "string" }, @@ -2302,7 +2338,7 @@ "name": "read_error_query", "required": false, "desc": "query to fetch read errors per table", - "fieldDefaultValue": "sum(increase(cortex_dynamo_failures_total{operation=\"DynamoDB.QueryPages\",error=\"ProvisionedThroughputExceededException\"}[1m])) by (table) > 0", + "fieldDefaultValue": "sum(increase(cortex_dynamo_failures_total{operation=\"DynamoDB.QueryPages\",error=\"ProvisionedThroughputExceededException\"}[1m])) by (table) \u003e 0", "fieldFlag": "metrics.read-error-query", "fieldType": "string" } @@ -2367,7 +2403,7 @@ "kind": "field", "name": "s3", "required": false, - "desc": "S3 endpoint URL with escaped Key and Secret encoded. If only region is specified as a host, proper endpoint will be deduced. Use inmemory:/// to use a mock in-memory implementation.", + "desc": "S3 endpoint URL with escaped Key and Secret encoded. If only region is specified as a host, proper endpoint will be deduced. Use inmemory:///\u003cbucket-name\u003e to use a mock in-memory implementation.", "fieldDefaultValue": {}, "fieldFlag": "s3.url", "fieldType": "url" @@ -3115,7 +3151,7 @@ "kind": "field", "name": "table_options", "required": false, - "desc": "Table options used to create index or chunk tables. This value is used as plain text in the table `WITH` like this, \"CREATE TABLE (...) WITH \". For details, see https://cortexmetrics.io/docs/production/cassandra. By default it will use the default table options of your Cassandra cluster.", + "desc": "Table options used to create index or chunk tables. This value is used as plain text in the table `WITH` like this, \"CREATE TABLE \u003cgenerated_by_cortex\u003e (...) WITH \u003ccassandra.table-options\u003e\". For details, see https://cortexmetrics.io/docs/production/cassandra. By default it will use the default table options of your Cassandra cluster.", "fieldDefaultValue": "", "fieldFlag": "cassandra.table-options", "fieldType": "string" @@ -3677,6 +3713,14 @@ "fieldType": "int" } ] + }, + { + "kind": "field", + "name": "prefix", + "required": false, + "desc": "", + "fieldDefaultValue": "", + "fieldType": "string" } ] }, @@ -4259,6 +4303,14 @@ "fieldType": "int" } ] + }, + { + "kind": "field", + "name": "prefix", + "required": false, + "desc": "", + "fieldDefaultValue": "", + "fieldType": "string" } ] }, @@ -4604,6 +4656,14 @@ "fieldType": "int" } ] + }, + { + "kind": "field", + "name": "prefix", + "required": false, + "desc": "", + "fieldDefaultValue": "", + "fieldType": "string" } ] }, @@ -4933,7 +4993,7 @@ "kind": "field", "name": "max_query_lookback", "required": false, - "desc": "Limit how long back data (series and metadata) can be queried, up until 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. 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.", "fieldDefaultValue": 0, "fieldFlag": "querier.max-query-lookback", "fieldType": "duration" @@ -5376,7 +5436,7 @@ "kind": "field", "name": "log_queries_longer_than", "required": false, - "desc": "Log queries that are slower than the specified duration. Set to 0 to disable. Set to < 0 to enable on all queries.", + "desc": "Log queries that are slower than the specified duration. Set to 0 to disable. Set to \u003c 0 to enable on all queries.", "fieldDefaultValue": 0, "fieldFlag": "frontend.log-queries-longer-than", "fieldType": "duration" @@ -5607,6 +5667,15 @@ "fieldFlag": "frontend.instance-interface-names", "fieldType": "list of string" }, + { + "kind": "field", + "name": "address", + "required": false, + "desc": "IP address to advertise to querier (via scheduler) (resolved via interfaces by default).", + "fieldDefaultValue": "", + "fieldFlag": "frontend.instance-addr", + "fieldType": "string" + }, { "kind": "field", "name": "downstream_url", @@ -5990,6 +6059,14 @@ "fieldType": "int" } ] + }, + { + "kind": "field", + "name": "prefix", + "required": false, + "desc": "", + "fieldDefaultValue": "", + "fieldType": "string" } ] }, @@ -7392,7 +7469,7 @@ "kind": "field", "name": "addresses", "required": false, - "desc": "Comma separated list of memcached addresses. Supported prefixes are: dns+ (looked up as an A/AAAA query), dnssrv+ (looked up as a SRV query), dnssrvnoa+ (looked up as a SRV query, with no A/AAAA lookup made after that).", + "desc": "Comma separated list of memcached addresses. Supported prefixes are: dns+ (looked up as an A/AAAA query), dnssrv+ (looked up as a SRV query, dnssrvnoa+ (looked up as a SRV query, with no A/AAAA lookup made after that).", "fieldDefaultValue": "", "fieldFlag": "blocks-storage.bucket-store.index-cache.memcached.addresses", "fieldType": "string" @@ -7498,7 +7575,7 @@ "kind": "field", "name": "addresses", "required": false, - "desc": "Comma separated list of memcached addresses. Supported prefixes are: dns+ (looked up as an A/AAAA query), dnssrv+ (looked up as a SRV query), dnssrvnoa+ (looked up as a SRV query, with no A/AAAA lookup made after that).", + "desc": "Comma separated list of memcached addresses. Supported prefixes are: dns+ (looked up as an A/AAAA query), dnssrv+ (looked up as a SRV query, dnssrvnoa+ (looked up as a SRV query, with no A/AAAA lookup made after that).", "fieldDefaultValue": "", "fieldFlag": "blocks-storage.bucket-store.chunks-cache.memcached.addresses", "fieldType": "string" @@ -7640,7 +7717,7 @@ "kind": "field", "name": "addresses", "required": false, - "desc": "Comma separated list of memcached addresses. Supported prefixes are: dns+ (looked up as an A/AAAA query), dnssrv+ (looked up as a SRV query), dnssrvnoa+ (looked up as a SRV query, with no A/AAAA lookup made after that).", + "desc": "Comma separated list of memcached addresses. Supported prefixes are: dns+ (looked up as an A/AAAA query), dnssrv+ (looked up as a SRV query, dnssrvnoa+ (looked up as a SRV query, with no A/AAAA lookup made after that).", "fieldDefaultValue": "", "fieldFlag": "blocks-storage.bucket-store.metadata-cache.memcached.addresses", "fieldType": "string" @@ -7882,6 +7959,24 @@ "fieldFlag": "blocks-storage.bucket-store.max-chunk-pool-bytes", "fieldType": "int" }, + { + "kind": "field", + "name": "chunk_pool_min_bucket_size_bytes", + "required": false, + "desc": "Size - in bytes - of the smallest chunks pool bucket.", + "fieldDefaultValue": 16000, + "fieldFlag": "blocks-storage.bucket-store.chunk-pool-min-bucket-size-bytes", + "fieldType": "int" + }, + { + "kind": "field", + "name": "chunk_pool_max_bucket_size_bytes", + "required": false, + "desc": "Size - in bytes - of the largest chunks pool bucket.", + "fieldDefaultValue": 50000000, + "fieldFlag": "blocks-storage.bucket-store.chunk-pool-max-bucket-size-bytes", + "fieldType": "int" + }, { "kind": "field", "name": "index_header_lazy_loading_enabled", @@ -7895,10 +7990,28 @@ "kind": "field", "name": "index_header_lazy_loading_idle_timeout", "required": false, - "desc": "If index-header lazy loading is enabled and this setting is > 0, the store-gateway will offload unused index-headers after 'idle timeout' inactivity.", + "desc": "If index-header lazy loading is enabled and this setting is \u003e 0, the store-gateway will offload unused index-headers after 'idle timeout' inactivity.", "fieldDefaultValue": 1200000000000, "fieldFlag": "blocks-storage.bucket-store.index-header-lazy-loading-idle-timeout", "fieldType": "duration" + }, + { + "kind": "field", + "name": "partitioner_max_gap_bytes", + "required": false, + "desc": "Max size - in bytes - of a gap for which the partitioner aggregates together two bucket GET object requests.", + "fieldDefaultValue": 524288, + "fieldFlag": "blocks-storage.bucket-store.partitioner-max-gap-bytes", + "fieldType": "int" + }, + { + "kind": "field", + "name": "postings_offsets_in_mem_sampling", + "required": false, + "desc": "Controls what is the ratio of postings offsets that the store will hold in memory.", + "fieldDefaultValue": 32, + "fieldFlag": "blocks-storage.bucket-store.posting-offsets-in-mem-sampling", + "fieldType": "int" } ] }, @@ -8487,6 +8600,15 @@ "fieldFlag": "compactor.ring.wait-stability-max-duration", "fieldType": "duration" }, + { + "kind": "field", + "name": "instance_id", + "required": false, + "desc": "Instance ID to register in the ring.", + "fieldDefaultValue": null, + "fieldFlag": "compactor.ring.instance-id", + "fieldType": "string" + }, { "kind": "field", "name": "instance_interface_names", @@ -8499,6 +8621,24 @@ "fieldFlag": "compactor.ring.instance-interface-names", "fieldType": "list of string" }, + { + "kind": "field", + "name": "instance_port", + "required": false, + "desc": "Port to advertise in the ring (defaults to server.grpc-listen-port).", + "fieldDefaultValue": 0, + "fieldFlag": "compactor.ring.instance-port", + "fieldType": "int" + }, + { + "kind": "field", + "name": "instance_addr", + "required": false, + "desc": "IP address to advertise in the ring.", + "fieldDefaultValue": "", + "fieldFlag": "compactor.ring.instance-addr", + "fieldType": "string" + }, { "kind": "field", "name": "wait_active_instance_timeout", @@ -8835,6 +8975,15 @@ "fieldFlag": "store-gateway.sharding-ring.wait-stability-max-duration", "fieldType": "duration" }, + { + "kind": "field", + "name": "instance_id", + "required": false, + "desc": "Instance ID to register in the ring.", + "fieldDefaultValue": null, + "fieldFlag": "store-gateway.sharding-ring.instance-id", + "fieldType": "string" + }, { "kind": "field", "name": "instance_interface_names", @@ -8847,6 +8996,24 @@ "fieldFlag": "store-gateway.sharding-ring.instance-interface-names", "fieldType": "list of string" }, + { + "kind": "field", + "name": "instance_port", + "required": false, + "desc": "Port to advertise in the ring (defaults to server.grpc-listen-port).", + "fieldDefaultValue": 0, + "fieldFlag": "store-gateway.sharding-ring.instance-port", + "fieldType": "int" + }, + { + "kind": "field", + "name": "instance_addr", + "required": false, + "desc": "IP address to advertise in the ring.", + "fieldDefaultValue": "", + "fieldFlag": "store-gateway.sharding-ring.instance-addr", + "fieldType": "string" + }, { "kind": "field", "name": "instance_availability_zone", @@ -9361,7 +9528,7 @@ "kind": "field", "name": "s3", "required": false, - "desc": "S3 endpoint URL with escaped Key and Secret encoded. If only region is specified as a host, proper endpoint will be deduced. Use inmemory:/// to use a mock in-memory implementation.", + "desc": "S3 endpoint URL with escaped Key and Secret encoded. If only region is specified as a host, proper endpoint will be deduced. Use inmemory:///\u003cbucket-name\u003e to use a mock in-memory implementation.", "fieldDefaultValue": {}, "fieldFlag": "ruler.storage.s3.url", "fieldType": "url" @@ -10159,6 +10326,15 @@ "fieldFlag": "ruler.ring.heartbeat-timeout", "fieldType": "duration" }, + { + "kind": "field", + "name": "instance_id", + "required": false, + "desc": "Instance ID to register in the ring.", + "fieldDefaultValue": null, + "fieldFlag": "ruler.ring.instance-id", + "fieldType": "string" + }, { "kind": "field", "name": "instance_interface_names", @@ -10171,6 +10347,24 @@ "fieldFlag": "ruler.ring.instance-interface-names", "fieldType": "list of string" }, + { + "kind": "field", + "name": "instance_port", + "required": false, + "desc": "Port to advertise in the ring (defaults to server.grpc-listen-port).", + "fieldDefaultValue": 0, + "fieldFlag": "ruler.ring.instance-port", + "fieldType": "int" + }, + { + "kind": "field", + "name": "instance_addr", + "required": false, + "desc": "IP address to advertise in the ring.", + "fieldDefaultValue": "", + "fieldFlag": "ruler.ring.instance-addr", + "fieldType": "string" + }, { "kind": "field", "name": "num_tokens", @@ -11204,6 +11398,15 @@ "fieldFlag": "alertmanager.sharding-ring.zone-awareness-enabled", "fieldType": "boolean" }, + { + "kind": "field", + "name": "instance_id", + "required": false, + "desc": "Instance ID to register in the ring.", + "fieldDefaultValue": null, + "fieldFlag": "alertmanager.sharding-ring.instance-id", + "fieldType": "string" + }, { "kind": "field", "name": "instance_interface_names", @@ -11216,6 +11419,24 @@ "fieldFlag": "alertmanager.sharding-ring.instance-interface-names", "fieldType": "list of string" }, + { + "kind": "field", + "name": "instance_port", + "required": false, + "desc": "Port to advertise in the ring (defaults to server.grpc-listen-port).", + "fieldDefaultValue": 0, + "fieldFlag": "alertmanager.sharding-ring.instance-port", + "fieldType": "int" + }, + { + "kind": "field", + "name": "instance_addr", + "required": false, + "desc": "IP address to advertise in the ring.", + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.sharding-ring.instance-addr", + "fieldType": "string" + }, { "kind": "field", "name": "instance_availability_zone", @@ -11492,7 +11713,7 @@ "kind": "field", "name": "s3", "required": false, - "desc": "S3 endpoint URL with escaped Key and Secret encoded. If only region is specified as a host, proper endpoint will be deduced. Use inmemory:/// to use a mock in-memory implementation.", + "desc": "S3 endpoint URL with escaped Key and Secret encoded. If only region is specified as a host, proper endpoint will be deduced. Use inmemory:///\u003cbucket-name\u003e to use a mock in-memory implementation.", "fieldDefaultValue": {}, "fieldFlag": "alertmanager.storage.s3.url", "fieldType": "url" diff --git a/pkg/mimirtool/config/descriptors/gem-v1.7.0-flags-only.json b/pkg/mimirtool/config/descriptors/gem-v1.7.0-flags-only.json index c5fcfb7901..7ce72027be 100644 --- a/pkg/mimirtool/config/descriptors/gem-v1.7.0-flags-only.json +++ b/pkg/mimirtool/config/descriptors/gem-v1.7.0-flags-only.json @@ -75,6 +75,15 @@ "fieldDefaultValue": 0, "fieldFlag": "debug.block-profile-rate", "fieldType": "int" + }, + { + "kind": "field", + "name": "ingester-lifecycler-id", + "required": false, + "desc": "ID to register in the ring.", + "fieldDefaultValue": null, + "fieldFlag": "ingester.lifecycler.id", + "fieldType": "string" } ] } diff --git a/pkg/mimirtool/config/descriptors/gem-v1.7.0.json b/pkg/mimirtool/config/descriptors/gem-v1.7.0.json index 13a2995840..b556bcdcc5 100644 --- a/pkg/mimirtool/config/descriptors/gem-v1.7.0.json +++ b/pkg/mimirtool/config/descriptors/gem-v1.7.0.json @@ -1196,6 +1196,16 @@ "fieldFlag": "distributor.ring.heartbeat-timeout", "fieldType": "duration" }, + { + "kind": "field", + "name": "instance_id", + "required": false, + "desc": "Instance ID to register in the ring.", + "fieldValue": null, + "fieldDefaultValue": null, + "fieldFlag": "distributor.ring.instance-id", + "fieldType": "string" + }, { "kind": "field", "name": "instance_interface_names", @@ -1208,6 +1218,26 @@ ], "fieldFlag": "distributor.ring.instance-interface-names", "fieldType": "list of string" + }, + { + "kind": "field", + "name": "instance_port", + "required": false, + "desc": "Port to advertise in the ring (defaults to server.grpc-listen-port).", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "distributor.ring.instance-port", + "fieldType": "int" + }, + { + "kind": "field", + "name": "instance_addr", + "required": false, + "desc": "IP address to advertise in the ring.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "distributor.ring.instance-addr", + "fieldType": "string" } ], "fieldValue": null, @@ -2201,6 +2231,16 @@ "fieldDefaultValue": true, "fieldFlag": "ingester.readiness-check-ring-health", "fieldType": "boolean" + }, + { + "kind": "field", + "name": "address", + "required": false, + "desc": "IP address to advertise in the ring.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ingester.lifecycler.addr", + "fieldType": "string" } ], "fieldValue": null, @@ -4191,6 +4231,15 @@ ], "fieldValue": null, "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "prefix", + "required": false, + "desc": "", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldType": "string" } ], "fieldValue": null, @@ -4851,6 +4900,15 @@ ], "fieldValue": null, "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "prefix", + "required": false, + "desc": "", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldType": "string" } ], "fieldValue": null, @@ -5241,6 +5299,15 @@ ], "fieldValue": null, "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "prefix", + "required": false, + "desc": "", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldType": "string" } ], "fieldValue": null, @@ -6445,6 +6512,16 @@ "fieldFlag": "frontend.instance-interface-names", "fieldType": "list of string" }, + { + "kind": "field", + "name": "address", + "required": false, + "desc": "IP address to advertise to querier (via scheduler) (resolved via interfaces by default).", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "frontend.instance-addr", + "fieldType": "string" + }, { "kind": "field", "name": "downstream_url", @@ -6876,6 +6953,15 @@ ], "fieldValue": null, "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "prefix", + "required": false, + "desc": "", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldType": "string" } ], "fieldValue": null, @@ -6934,6 +7020,16 @@ "fieldDefaultValue": false, "fieldFlag": "query-frontend.cache-unaligned-requests", "fieldType": "boolean" + }, + { + "kind": "field", + "name": "max_sharded_queries_limit_enabled", + "required": false, + "desc": "If enabled the query-frontend uses a new implementation of split by interval and results cache", + "fieldValue": null, + "fieldDefaultValue": false, + "fieldFlag": "query-frontend.max-sharded-queries-limit-enabled", + "fieldType": "boolean" } ], "fieldValue": null, @@ -9001,6 +9097,26 @@ "fieldFlag": "blocks-storage.bucket-store.max-chunk-pool-bytes", "fieldType": "int" }, + { + "kind": "field", + "name": "chunk_pool_min_bucket_size_bytes", + "required": false, + "desc": "Size - in bytes - of the smallest chunks pool bucket.", + "fieldValue": null, + "fieldDefaultValue": 16000, + "fieldFlag": "blocks-storage.bucket-store.chunk-pool-min-bucket-size-bytes", + "fieldType": "int" + }, + { + "kind": "field", + "name": "chunk_pool_max_bucket_size_bytes", + "required": false, + "desc": "Size - in bytes - of the largest chunks pool bucket.", + "fieldValue": null, + "fieldDefaultValue": 50000000, + "fieldFlag": "blocks-storage.bucket-store.chunk-pool-max-bucket-size-bytes", + "fieldType": "int" + }, { "kind": "field", "name": "series_hash_cache_max_size_bytes", @@ -9030,6 +9146,26 @@ "fieldDefaultValue": 1200000000000, "fieldFlag": "blocks-storage.bucket-store.index-header-lazy-loading-idle-timeout", "fieldType": "duration" + }, + { + "kind": "field", + "name": "partitioner_max_gap_bytes", + "required": false, + "desc": "Max size - in bytes - of a gap for which the partitioner aggregates together two bucket GET object requests.", + "fieldValue": null, + "fieldDefaultValue": 524288, + "fieldFlag": "blocks-storage.bucket-store.partitioner-max-gap-bytes", + "fieldType": "int" + }, + { + "kind": "field", + "name": "postings_offsets_in_mem_sampling", + "required": false, + "desc": "Controls what is the ratio of postings offsets that the store will hold in memory.", + "fieldValue": null, + "fieldDefaultValue": 32, + "fieldFlag": "blocks-storage.bucket-store.posting-offsets-in-mem-sampling", + "fieldType": "int" } ], "fieldValue": null, @@ -9691,6 +9827,16 @@ "fieldFlag": "compactor.ring.wait-stability-max-duration", "fieldType": "duration" }, + { + "kind": "field", + "name": "instance_id", + "required": false, + "desc": "Instance ID to register in the ring.", + "fieldValue": null, + "fieldDefaultValue": null, + "fieldFlag": "compactor.ring.instance-id", + "fieldType": "string" + }, { "kind": "field", "name": "instance_interface_names", @@ -9704,6 +9850,26 @@ "fieldFlag": "compactor.ring.instance-interface-names", "fieldType": "list of string" }, + { + "kind": "field", + "name": "instance_port", + "required": false, + "desc": "Port to advertise in the ring (defaults to server.grpc-listen-port).", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "compactor.ring.instance-port", + "fieldType": "int" + }, + { + "kind": "field", + "name": "instance_addr", + "required": false, + "desc": "IP address to advertise in the ring.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "compactor.ring.instance-addr", + "fieldType": "string" + }, { "kind": "field", "name": "wait_active_instance_timeout", @@ -10104,6 +10270,16 @@ "fieldFlag": "store-gateway.sharding-ring.wait-stability-max-duration", "fieldType": "duration" }, + { + "kind": "field", + "name": "instance_id", + "required": false, + "desc": "Instance ID to register in the ring.", + "fieldValue": null, + "fieldDefaultValue": null, + "fieldFlag": "store-gateway.sharding-ring.instance-id", + "fieldType": "string" + }, { "kind": "field", "name": "instance_interface_names", @@ -10117,6 +10293,26 @@ "fieldFlag": "store-gateway.sharding-ring.instance-interface-names", "fieldType": "list of string" }, + { + "kind": "field", + "name": "instance_port", + "required": false, + "desc": "Port to advertise in the ring (defaults to server.grpc-listen-port).", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "store-gateway.sharding-ring.instance-port", + "fieldType": "int" + }, + { + "kind": "field", + "name": "instance_addr", + "required": false, + "desc": "IP address to advertise in the ring.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "store-gateway.sharding-ring.instance-addr", + "fieldType": "string" + }, { "kind": "field", "name": "instance_availability_zone", @@ -11517,6 +11713,16 @@ "fieldFlag": "ruler.ring.heartbeat-timeout", "fieldType": "duration" }, + { + "kind": "field", + "name": "instance_id", + "required": false, + "desc": "Instance ID to register in the ring.", + "fieldValue": null, + "fieldDefaultValue": null, + "fieldFlag": "ruler.ring.instance-id", + "fieldType": "string" + }, { "kind": "field", "name": "instance_interface_names", @@ -11530,6 +11736,26 @@ "fieldFlag": "ruler.ring.instance-interface-names", "fieldType": "list of string" }, + { + "kind": "field", + "name": "instance_port", + "required": false, + "desc": "Port to advertise in the ring (defaults to server.grpc-listen-port).", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "ruler.ring.instance-port", + "fieldType": "int" + }, + { + "kind": "field", + "name": "instance_addr", + "required": false, + "desc": "IP address to advertise in the ring.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "ruler.ring.instance-addr", + "fieldType": "string" + }, { "kind": "field", "name": "num_tokens", @@ -12530,6 +12756,16 @@ "fieldFlag": "alertmanager.sharding-ring.zone-awareness-enabled", "fieldType": "boolean" }, + { + "kind": "field", + "name": "instance_id", + "required": false, + "desc": "Instance ID to register in the ring.", + "fieldValue": null, + "fieldDefaultValue": null, + "fieldFlag": "alertmanager.sharding-ring.instance-id", + "fieldType": "string" + }, { "kind": "field", "name": "instance_interface_names", @@ -12543,6 +12779,26 @@ "fieldFlag": "alertmanager.sharding-ring.instance-interface-names", "fieldType": "list of string" }, + { + "kind": "field", + "name": "instance_port", + "required": false, + "desc": "Port to advertise in the ring (defaults to server.grpc-listen-port).", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "alertmanager.sharding-ring.instance-port", + "fieldType": "int" + }, + { + "kind": "field", + "name": "instance_addr", + "required": false, + "desc": "IP address to advertise in the ring.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "alertmanager.sharding-ring.instance-addr", + "fieldType": "string" + }, { "kind": "field", "name": "instance_availability_zone", @@ -14589,6 +14845,16 @@ "fieldFlag": "admin-api.leader-election.ring.tokens-observe-period", "fieldType": "duration" }, + { + "kind": "field", + "name": "instance_id", + "required": false, + "desc": "Instance ID to register in the ring.", + "fieldValue": null, + "fieldDefaultValue": null, + "fieldFlag": "admin-api.leader-election.ring.instance-id", + "fieldType": "string" + }, { "kind": "field", "name": "instance_interface_names", @@ -14601,6 +14867,26 @@ ], "fieldFlag": "admin-api.leader-election.ring.instance-interface-names", "fieldType": "list of string" + }, + { + "kind": "field", + "name": "instance_port", + "required": false, + "desc": "Port to advertise in the ring (defaults to server.grpc-listen-port).", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "admin-api.leader-election.ring.instance-port", + "fieldType": "int" + }, + { + "kind": "field", + "name": "instance_addr", + "required": false, + "desc": "IP address to advertise in the ring.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin-api.leader-election.ring.instance-addr", + "fieldType": "string" } ], "fieldValue": null, @@ -17571,6 +17857,15 @@ ], "fieldValue": null, "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "prefix", + "required": false, + "desc": "", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldType": "string" } ], "fieldValue": null, @@ -17961,6 +18256,15 @@ ], "fieldValue": null, "fieldDefaultValue": null + }, + { + "kind": "field", + "name": "prefix", + "required": false, + "desc": "", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldType": "string" } ], "fieldValue": null, @@ -18420,6 +18724,16 @@ "required": false, "desc": "", "blockEntries": [ + { + "kind": "field", + "name": "type", + "required": false, + "desc": "Type of license.", + "fieldValue": null, + "fieldDefaultValue": "jwt", + "fieldFlag": "license.type", + "fieldType": "string" + }, { "kind": "field", "name": "path", diff --git a/pkg/mimirtool/config/descriptors/gem-v2.0.0.json b/pkg/mimirtool/config/descriptors/gem-v2.0.0.json index f69f7237c4..5007b122b0 100644 --- a/pkg/mimirtool/config/descriptors/gem-v2.0.0.json +++ b/pkg/mimirtool/config/descriptors/gem-v2.0.0.json @@ -10028,6 +10028,17 @@ "fieldType": "duration", "fieldCategory": "advanced" }, + { + "kind": "field", + "name": "instance_id", + "required": false, + "desc": "Instance ID to register in the ring.", + "fieldValue": null, + "fieldDefaultValue": "\u003chostname\u003e", + "fieldFlag": "admin-api.leader-election.ring.instance-id", + "fieldType": "string", + "fieldCategory": "advanced" + }, { "kind": "field", "name": "instance_interface_names", @@ -10037,6 +10048,28 @@ "fieldDefaultValue": [], "fieldFlag": "admin-api.leader-election.ring.instance-interface-names", "fieldType": "list of string" + }, + { + "kind": "field", + "name": "instance_port", + "required": false, + "desc": "Port to advertise in the ring (defaults to server.grpc-listen-port).", + "fieldValue": null, + "fieldDefaultValue": 0, + "fieldFlag": "admin-api.leader-election.ring.instance-port", + "fieldType": "int", + "fieldCategory": "advanced" + }, + { + "kind": "field", + "name": "instance_addr", + "required": false, + "desc": "IP address to advertise in the ring.", + "fieldValue": null, + "fieldDefaultValue": "", + "fieldFlag": "admin-api.leader-election.ring.instance-addr", + "fieldType": "string", + "fieldCategory": "advanced" } ], "fieldValue": null, @@ -12366,7 +12399,8 @@ "fieldValue": null, "fieldDefaultValue": 10000000000, "fieldFlag": "graphite.querier.schemas.schema-ttl", - "fieldType": "duration" + "fieldType": "duration", + "fieldCategory": "advanced" }, { "kind": "field", @@ -12376,7 +12410,8 @@ "fieldValue": null, "fieldDefaultValue": "/etc/cortextank/storage-schemas.conf", "fieldFlag": "graphite.querier.schemas.default-storage-schemas-file", - "fieldType": "string" + "fieldType": "string", + "fieldCategory": "advanced" }, { "kind": "field", @@ -12386,7 +12421,8 @@ "fieldValue": null, "fieldDefaultValue": "/etc/cortextank/storage-aggregation.conf", "fieldFlag": "graphite.querier.schemas.default-storage-aggregations-file", - "fieldType": "string" + "fieldType": "string", + "fieldCategory": "advanced" }, { "kind": "field", @@ -12396,7 +12432,8 @@ "fieldValue": null, "fieldDefaultValue": false, "fieldFlag": "graphite.querier.schemas.enable-user-overrides", - "fieldType": "boolean" + "fieldType": "boolean", + "fieldCategory": "advanced" }, { "kind": "field", @@ -12962,7 +12999,8 @@ "fieldValue": null, "fieldDefaultValue": false, "fieldFlag": "graphite.querier.schemas.enable-deduplicator", - "fieldType": "boolean" + "fieldType": "boolean", + "fieldCategory": "advanced" }, { "kind": "block", @@ -12978,7 +13016,8 @@ "fieldValue": null, "fieldDefaultValue": 15000000000, "fieldFlag": "graphite.querier.schemas.deduplicator.timeout", - "fieldType": "duration" + "fieldType": "duration", + "fieldCategory": "advanced" }, { "kind": "field", @@ -12988,7 +13027,8 @@ "fieldValue": null, "fieldDefaultValue": 43200000000000, "fieldFlag": "graphite.querier.schemas.deduplicator.ttl", - "fieldType": "duration" + "fieldType": "duration", + "fieldCategory": "advanced" }, { "kind": "field", @@ -12998,7 +13038,8 @@ "fieldValue": null, "fieldDefaultValue": 100000000, "fieldFlag": "graphite.querier.schemas.deduplicator.retry-delay", - "fieldType": "duration" + "fieldType": "duration", + "fieldCategory": "advanced" }, { "kind": "field", @@ -13008,7 +13049,8 @@ "fieldValue": null, "fieldDefaultValue": 10, "fieldFlag": "graphite.querier.schemas.deduplicator.max-retries", - "fieldType": "int" + "fieldType": "int", + "fieldCategory": "advanced" }, { "kind": "block", @@ -13034,17 +13076,19 @@ "fieldValue": null, "fieldDefaultValue": "memcached", "fieldFlag": "graphite.querier.schemas.deduplicator.memcached.service", - "fieldType": "string" + "fieldType": "string", + "fieldCategory": "advanced" }, { "kind": "field", "name": "addresses", "required": false, - "desc": "EXPERIMENTAL: Comma separated addresses list in DNS Service Discovery format: https://cortexmetrics.io/docs/configuration/arguments/#dns-service-discovery", + "desc": "Comma separated addresses list in DNS Service Discovery format: https://cortexmetrics.io/docs/configuration/arguments/#dns-service-discovery", "fieldValue": null, "fieldDefaultValue": "", "fieldFlag": "graphite.querier.schemas.deduplicator.memcached.addresses", - "fieldType": "string" + "fieldType": "string", + "fieldCategory": "experimental" }, { "kind": "field", @@ -13054,7 +13098,8 @@ "fieldValue": null, "fieldDefaultValue": 100000000, "fieldFlag": "graphite.querier.schemas.deduplicator.memcached.timeout", - "fieldType": "duration" + "fieldType": "duration", + "fieldCategory": "advanced" }, { "kind": "field", @@ -13064,7 +13109,8 @@ "fieldValue": null, "fieldDefaultValue": 16, "fieldFlag": "graphite.querier.schemas.deduplicator.memcached.max-idle-conns", - "fieldType": "int" + "fieldType": "int", + "fieldCategory": "advanced" }, { "kind": "field", @@ -13074,7 +13120,8 @@ "fieldValue": null, "fieldDefaultValue": 0, "fieldFlag": "graphite.querier.schemas.deduplicator.memcached.max-item-size", - "fieldType": "int" + "fieldType": "int", + "fieldCategory": "advanced" }, { "kind": "field", @@ -13084,7 +13131,8 @@ "fieldValue": null, "fieldDefaultValue": 60000000000, "fieldFlag": "graphite.querier.schemas.deduplicator.memcached.update-interval", - "fieldType": "duration" + "fieldType": "duration", + "fieldCategory": "advanced" }, { "kind": "field", @@ -13094,7 +13142,8 @@ "fieldValue": null, "fieldDefaultValue": true, "fieldFlag": "graphite.querier.schemas.deduplicator.memcached.consistent-hash", - "fieldType": "boolean" + "fieldType": "boolean", + "fieldCategory": "advanced" }, { "kind": "field", @@ -13104,7 +13153,8 @@ "fieldValue": null, "fieldDefaultValue": 10, "fieldFlag": "graphite.querier.schemas.deduplicator.memcached.circuit-breaker-consecutive-failures", - "fieldType": "int" + "fieldType": "int", + "fieldCategory": "advanced" }, { "kind": "field", @@ -13114,7 +13164,8 @@ "fieldValue": null, "fieldDefaultValue": 10000000000, "fieldFlag": "graphite.querier.schemas.deduplicator.memcached.circuit-breaker-timeout", - "fieldType": "duration" + "fieldType": "duration", + "fieldCategory": "advanced" }, { "kind": "field", @@ -13124,7 +13175,8 @@ "fieldValue": null, "fieldDefaultValue": 10000000000, "fieldFlag": "graphite.querier.schemas.deduplicator.memcached.circuit-breaker-interval", - "fieldType": "duration" + "fieldType": "duration", + "fieldCategory": "advanced" } ], "fieldValue": null, @@ -13146,7 +13198,8 @@ "fieldValue": null, "fieldDefaultValue": 300000000000, "fieldFlag": "graphite.querier.cache-grace-period", - "fieldType": "duration" + "fieldType": "duration", + "fieldCategory": "advanced" }, { "kind": "block", @@ -13388,7 +13441,8 @@ "fieldValue": null, "fieldDefaultValue": 8, "fieldFlag": "graphite.querier.query-handling-concurrency", - "fieldType": "int" + "fieldType": "int", + "fieldCategory": "advanced" }, { "kind": "field", @@ -13398,7 +13452,8 @@ "fieldValue": null, "fieldDefaultValue": 86400000000000, "fieldFlag": "graphite.querier.split-queries-by-interval", - "fieldType": "duration" + "fieldType": "duration", + "fieldCategory": "advanced" }, { "kind": "field", @@ -13408,7 +13463,8 @@ "fieldValue": null, "fieldDefaultValue": true, "fieldFlag": "graphite.querier.proxy-bad-requests", - "fieldType": "boolean" + "fieldType": "boolean", + "fieldCategory": "advanced" }, { "kind": "field", @@ -13428,7 +13484,8 @@ "fieldValue": null, "fieldDefaultValue": "32d", "fieldFlag": "graphite.querier.metrics-find-cutoff", - "fieldType": "string" + "fieldType": "string", + "fieldCategory": "advanced" }, { "kind": "field", @@ -13438,7 +13495,8 @@ "fieldValue": null, "fieldDefaultValue": 1000000, "fieldFlag": "graphite.querier.max-points-per-req-soft", - "fieldType": "int" + "fieldType": "int", + "fieldCategory": "advanced" }, { "kind": "field", @@ -13448,7 +13506,8 @@ "fieldValue": null, "fieldDefaultValue": 20000000, "fieldFlag": "graphite.querier.max-points-per-req-hard", - "fieldType": "int" + "fieldType": "int", + "fieldCategory": "advanced" }, { "kind": "block", @@ -13474,7 +13533,8 @@ "fieldValue": null, "fieldDefaultValue": 30000000000, "fieldFlag": "graphite.querier.query-timeout", - "fieldType": "duration" + "fieldType": "duration", + "fieldCategory": "advanced" }, { "kind": "field", @@ -13484,7 +13544,8 @@ "fieldValue": null, "fieldDefaultValue": 30000000000, "fieldFlag": "graphite.querier.query-keep-alive", - "fieldType": "duration" + "fieldType": "duration", + "fieldCategory": "advanced" }, { "kind": "field", @@ -13494,7 +13555,8 @@ "fieldValue": null, "fieldDefaultValue": 10, "fieldFlag": "graphite.querier.query-max-idle-conns", - "fieldType": "int" + "fieldType": "int", + "fieldCategory": "advanced" }, { "kind": "field", @@ -13504,7 +13566,8 @@ "fieldValue": null, "fieldDefaultValue": 100, "fieldFlag": "graphite.querier.query-max-conns", - "fieldType": "int" + "fieldType": "int", + "fieldCategory": "advanced" }, { "kind": "field", @@ -13514,7 +13577,8 @@ "fieldValue": null, "fieldDefaultValue": "graphite-querier", "fieldFlag": "graphite.querier.query-client-name", - "fieldType": "string" + "fieldType": "string", + "fieldCategory": "advanced" } ], "fieldValue": null, @@ -13548,7 +13612,8 @@ "fieldValue": null, "fieldDefaultValue": 30000000000, "fieldFlag": "graphite.querier.remote-subquery-timeout", - "fieldType": "duration" + "fieldType": "duration", + "fieldCategory": "advanced" }, { "kind": "field", @@ -13556,7 +13621,7 @@ "required": false, "desc": "If set, results from subqueries will be used. If false, queries that would be fanned out to subqueriers are answered locally. The remote subqueries are still issued but the results are dropped.", "fieldValue": null, - "fieldDefaultValue": false, + "fieldDefaultValue": true, "fieldFlag": "graphite.querier.use-remote-results", "fieldType": "boolean" }, @@ -13566,7 +13631,7 @@ "required": false, "desc": "Enables remote subquery server.", "fieldValue": null, - "fieldDefaultValue": false, + "fieldDefaultValue": true, "fieldFlag": "graphite.querier.enable-remote-subquerier", "fieldType": "boolean" } @@ -13703,7 +13768,7 @@ }, { "kind": "field", - "name": "keepalive", + "name": "keep_alive", "required": false, "desc": "KeepAlive for write to upstream Prometheus remote write API.", "fieldValue": null, @@ -13713,7 +13778,7 @@ }, { "kind": "field", - "name": "maxidleconns", + "name": "max_idle_conns", "required": false, "desc": "Max idle conns per host for writes to upstream Prometheus remote write API.", "fieldValue": null, @@ -13723,7 +13788,7 @@ }, { "kind": "field", - "name": "maxconns", + "name": "max_conns", "required": false, "desc": "Max open conns per host for writes to upstream Prometheus remote write API.", "fieldValue": null, @@ -13733,7 +13798,7 @@ }, { "kind": "field", - "name": "skiplabelvalidation", + "name": "skip_label_validation", "required": false, "desc": "If set to true sends requests with headers to skip label validation.", "fieldValue": null, diff --git a/pkg/mimirtool/config/gem.go b/pkg/mimirtool/config/gem.go index c811ef5a8e..98864286d7 100644 --- a/pkg/mimirtool/config/gem.go +++ b/pkg/mimirtool/config/gem.go @@ -8,7 +8,38 @@ func GEM170ToGEM200Mapper() Mapper { "blocks_storage.tsdb.max_exemplars": {}, "query_range.parallelise_shardable_queries": {}, } - gemRenames := make(map[string]Mapping, len(cortexRenameMappings)) + gemRenames := map[string]Mapping{ + "graphite.querier.metric_name_cache.background.writeback_buffer": RenameMapping("graphite.querier.metric_name_cache.memcached.max_async_buffer_size"), + "graphite.querier.metric_name_cache.background.writeback_goroutines": RenameMapping("graphite.querier.metric_name_cache.memcached.max_async_concurrency"), + "graphite.querier.metric_name_cache.memcached.batch_size": RenameMapping("graphite.querier.metric_name_cache.memcached.max_get_multi_batch_size"), + "graphite.querier.metric_name_cache.memcached.parallelism": RenameMapping("graphite.querier.metric_name_cache.memcached.max_get_multi_concurrency"), + "graphite.querier.metric_name_cache.memcached_client.addresses": RenameMapping("graphite.querier.metric_name_cache.memcached.addresses"), + "graphite.querier.metric_name_cache.memcached_client.max_idle_conns": RenameMapping("graphite.querier.metric_name_cache.memcached.max_idle_connections"), + "graphite.querier.metric_name_cache.memcached_client.max_item_size": RenameMapping("graphite.querier.metric_name_cache.memcached.max_item_size"), + "graphite.querier.metric_name_cache.memcached_client.timeout": RenameMapping("graphite.querier.metric_name_cache.memcached.timeout"), + + "graphite.querier.aggregation_cache.background.writeback_buffer": RenameMapping("graphite.querier.aggregation_cache.memcached.max_async_buffer_size"), + "graphite.querier.aggregation_cache.background.writeback_goroutines": RenameMapping("graphite.querier.aggregation_cache.memcached.max_async_concurrency"), + "graphite.querier.aggregation_cache.memcached.batch_size": RenameMapping("graphite.querier.aggregation_cache.memcached.max_get_multi_batch_size"), + "graphite.querier.aggregation_cache.memcached.parallelism": RenameMapping("graphite.querier.aggregation_cache.memcached.max_get_multi_concurrency"), + "graphite.querier.aggregation_cache.memcached_client.addresses": RenameMapping("graphite.querier.aggregation_cache.memcached.addresses"), + "graphite.querier.aggregation_cache.memcached_client.max_idle_conns": RenameMapping("graphite.querier.aggregation_cache.memcached.max_idle_connections"), + "graphite.querier.aggregation_cache.memcached_client.max_item_size": RenameMapping("graphite.querier.aggregation_cache.memcached.max_item_size"), + "graphite.querier.aggregation_cache.memcached_client.timeout": RenameMapping("graphite.querier.aggregation_cache.memcached.timeout"), + + "query_range.cache_unaligned_requests": RenameMapping("frontend.cache_unaligned_requests"), + + "gateway.proxy.graphite.enable_keepalive": RenameMapping("gateway.proxy.graphite_querier.enable_keepalive"), + "gateway.proxy.graphite.read_timeout": RenameMapping("gateway.proxy.graphite_querier.read_timeout"), + "gateway.proxy.graphite.tls_ca_path": RenameMapping("gateway.proxy.graphite_querier.tls_ca_path"), + "gateway.proxy.graphite.tls_cert_path": RenameMapping("gateway.proxy.graphite_querier.tls_cert_path"), + "gateway.proxy.graphite.tls_enabled": RenameMapping("gateway.proxy.graphite_querier.tls_enabled"), + "gateway.proxy.graphite.tls_insecure_skip_verify": RenameMapping("gateway.proxy.graphite_querier.tls_insecure_skip_verify"), + "gateway.proxy.graphite.tls_key_path": RenameMapping("gateway.proxy.graphite_querier.tls_key_path"), + "gateway.proxy.graphite.tls_server_name": RenameMapping("gateway.proxy.graphite_querier.tls_server_name"), + "gateway.proxy.graphite.url": RenameMapping("gateway.proxy.graphite_querier.url"), + "gateway.proxy.graphite.write_timeout": RenameMapping("gateway.proxy.graphite_querier.write_timeout"), + } for path, mapping := range cortexRenameMappings { if _, notInGEM := nonExistentGEMPaths[path]; notInGEM { continue @@ -18,7 +49,7 @@ func GEM170ToGEM200Mapper() Mapper { return MultiMapper{ mapGEMInstanceInterfaceNames(), - // first try to naively map keys from old config to same keys from new config + // Try to naively map keys from old config to same keys from new config BestEffortDirectMapper{}, // next map alertmanager URL in the ruler config MapperFunc(alertmanagerURLMapperFunc), @@ -33,15 +64,23 @@ func GEM170ToGEM200Mapper() Mapper { // Remap sharding configs MapperFunc(updateKVStoreValue), // Convert provided memcached service and host to the DNS service discovery format - MapperFunc(mapMemcachedAddresses), + mapMemcachedAddresses("query_range.results_cache.cache.memcached_client", "frontend.results_cache.memcached"), + mapMemcachedAddresses("graphite.querier.metric_name_cache.memcached_client", "graphite.querier.metric_name_cache.memcached"), + mapMemcachedAddresses("graphite.querier.aggregation_cache.memcached_client", "graphite.querier.aggregation_cache.memcached"), + // Map `-*.s3.url` to `-*.s3.(endpoint|access_key_id|secret_access_key)` mapRulerAlertmanagerS3URL("alertmanager.storage", "alertmanager_storage"), mapRulerAlertmanagerS3URL("ruler.storage", "ruler_storage"), // Map `-*.s3.bucketnames` and (maybe part of `-*s3.s3.url`) to `-*.s3.bucket-name` mapRulerAlertmanagerS3Buckets("alertmanager.storage", "alertmanager_storage"), mapRulerAlertmanagerS3Buckets("ruler.storage", "ruler_storage"), // Prevent server.http_listen_port from being updated with a new default and always output it. - MapperFunc(mapServerHTTPListenPort), + setOldDefaultExplicitly("server.http_listen_port"), + // Prevent auth.type from being updated with a new default and always output it. + setOldDefaultExplicitly("auth.type"), // Set frontend.results_cache.backend when results cache was enabled in cortex MapperFunc(mapQueryFrontendBackend), + // Manually override the dynamic fields' default values. + MapperFunc(mapCortexRingInstanceIDDefaults), + MapperFunc(mapAdminAPIRingInstanceIDDefaults), } } @@ -58,3 +97,64 @@ func mapGEMInstanceInterfaceNames() Mapper { } return mapInstanceInterfaceNames(ifaceNames) } + +func mapAdminAPIRingInstanceIDDefaults(source, target Parameters) error { + return target.SetDefaultValue("admin_api.leader_election.ring.instance_id", Nil) +} + +var gemRemovedConfigPath = []string{ + "graphite.querier_remote_read_enabled", // -graphite.querier.remote-read-enabled + + // changed memcached config and dropped support for redis and fifocache + "graphite.querier.metric_name_cache.cache.default_validity", // -graphite.querier.metric-name-cache.default-validity + "graphite.querier.metric_name_cache.cache.enable_fifocache", // -graphite.querier.metric-name-cache.cache.enable-fifocache + "graphite.querier.metric_name_cache.cache.fifocache.max_size_bytes", // -graphite.querier.metric-name-cache.fifocache.max-size-bytes + "graphite.querier.metric_name_cache.cache.fifocache.max_size_items", // -graphite.querier.metric-name-cache.fifocache.max-size-items + "graphite.querier.metric_name_cache.cache.fifocache.size", // -graphite.querier.metric-name-cache.fifocache.size + "graphite.querier.metric_name_cache.cache.fifocache.validity", // -graphite.querier.metric-name-cache.fifocache.duration + "graphite.querier.metric_name_cache.cache.memcached.expiration", // -graphite.querier.metric-name-cache.memcached.expiration + "graphite.querier.metric_name_cache.cache.memcached_client.circuit_breaker_consecutive_failures", // -graphite.querier.metric-name-cache.memcached.circuit-breaker-consecutive-failures + "graphite.querier.metric_name_cache.cache.memcached_client.circuit_breaker_interval", // -graphite.querier.metric-name-cache.memcached.circuit-breaker-interval + "graphite.querier.metric_name_cache.cache.memcached_client.circuit_breaker_timeout", // -graphite.querier.metric-name-cache.memcached.circuit-breaker-timeout + "graphite.querier.metric_name_cache.cache.memcached_client.consistent_hash", // -graphite.querier.metric-name-cache.memcached.consistent-hash + "graphite.querier.metric_name_cache.cache.memcached_client.update_interval", // -graphite.querier.metric-name-cache.memcached.update-interval + "graphite.querier.metric_name_cache.cache.redis.db", // -graphite.querier.metric-name-cache.redis.db + "graphite.querier.metric_name_cache.cache.redis.endpoint", // -graphite.querier.metric-name-cache.redis.endpoint + "graphite.querier.metric_name_cache.cache.redis.expiration", // -graphite.querier.metric-name-cache.redis.expiration + "graphite.querier.metric_name_cache.cache.redis.idle_timeout", // -graphite.querier.metric-name-cache.redis.idle-timeout + "graphite.querier.metric_name_cache.cache.redis.master_name", // -graphite.querier.metric-name-cache.redis.master-name + "graphite.querier.metric_name_cache.cache.redis.max_connection_age", // -graphite.querier.metric-name-cache.redis.max-connection-age + "graphite.querier.metric_name_cache.cache.redis.password", // -graphite.querier.metric-name-cache.redis.password + "graphite.querier.metric_name_cache.cache.redis.pool_size", // -graphite.querier.metric-name-cache.redis.pool-size + "graphite.querier.metric_name_cache.cache.redis.timeout", // -graphite.querier.metric-name-cache.redis.timeout + "graphite.querier.metric_name_cache.cache.redis.tls_enabled", // -graphite.querier.metric-name-cache.redis.tls-enabled + "graphite.querier.metric_name_cache.cache.redis.tls_insecure_skip_verify", // -graphite.querier.metric-name-cache.redis.tls-insecure-skip-verify + + "graphite.querier.aggregation_cache.cache.default_validity", // -graphite.querier.aggregation-cache.default-validity + "graphite.querier.aggregation_cache.cache.enable_fifocache", // -graphite.querier.aggregation-cache.cache.enable-fifocache + "graphite.querier.aggregation_cache.cache.fifocache.max_size_bytes", // -graphite.querier.aggregation-cache.fifocache.max-size-bytes + "graphite.querier.aggregation_cache.cache.fifocache.max_size_items", // -graphite.querier.aggregation-cache.fifocache.max-size-items + "graphite.querier.aggregation_cache.cache.fifocache.size", // -graphite.querier.aggregation-cache.fifocache.size + "graphite.querier.aggregation_cache.cache.fifocache.validity", // -graphite.querier.aggregation-cache.fifocache.duration + "graphite.querier.aggregation_cache.cache.memcached.expiration", // -graphite.querier.aggregation-cache.memcached.expiration + "graphite.querier.aggregation_cache.cache.memcached_client.circuit_breaker_consecutive_failures", // -graphite.querier.aggregation-cache.memcached.circuit-breaker-consecutive-failures + "graphite.querier.aggregation_cache.cache.memcached_client.circuit_breaker_interval", // -graphite.querier.aggregation-cache.memcached.circuit-breaker-interval + "graphite.querier.aggregation_cache.cache.memcached_client.circuit_breaker_timeout", // -graphite.querier.aggregation-cache.memcached.circuit-breaker-timeout + "graphite.querier.aggregation_cache.cache.memcached_client.consistent_hash", // -graphite.querier.aggregation-cache.memcached.consistent-hash + "graphite.querier.aggregation_cache.cache.memcached_client.update_interval", // -graphite.querier.aggregation-cache.memcached.update-interval + "graphite.querier.aggregation_cache.cache.redis.db", // -graphite.querier.aggregation-cache.redis.db + "graphite.querier.aggregation_cache.cache.redis.endpoint", // -graphite.querier.aggregation-cache.redis.endpoint + "graphite.querier.aggregation_cache.cache.redis.expiration", // -graphite.querier.aggregation-cache.redis.expiration + "graphite.querier.aggregation_cache.cache.redis.idle_timeout", // -graphite.querier.aggregation-cache.redis.idle-timeout + "graphite.querier.aggregation_cache.cache.redis.master_name", // -graphite.querier.aggregation-cache.redis.master-name + "graphite.querier.aggregation_cache.cache.redis.max_connection_age", // -graphite.querier.aggregation-cache.redis.max-connection-age + "graphite.querier.aggregation_cache.cache.redis.password", // -graphite.querier.aggregation-cache.redis.password + "graphite.querier.aggregation_cache.cache.redis.pool_size", // -graphite.querier.aggregation-cache.redis.pool-size + "graphite.querier.aggregation_cache.cache.redis.timeout", // -graphite.querier.aggregation-cache.redis.timeout + "graphite.querier.aggregation_cache.cache.redis.tls_enabled", // -graphite.querier.aggregation-cache.redis.tls-enabled + "graphite.querier.aggregation_cache.cache.redis.tls_insecure_skip_verify", // -graphite.querier.aggregation-cache.redis.tls-insecure-skip-verify + + "compactor.compaction_strategy", // -compactor.compaction-strategy + + "querier.query_label_names_with_matchers_enabled", // -querier.query-label-names-with-matchers-enabled +} diff --git a/pkg/mimirtool/config/testdata/gem/common-flags-new.txt b/pkg/mimirtool/config/testdata/gem/common-flags-new.txt new file mode 100644 index 0000000000..cc6881677f --- /dev/null +++ b/pkg/mimirtool/config/testdata/gem/common-flags-new.txt @@ -0,0 +1,2 @@ +-server.http-listen-port=80 +-auth.type=trust \ No newline at end of file diff --git a/pkg/mimirtool/config/testdata/gem/common-flags-old.txt b/pkg/mimirtool/config/testdata/gem/common-flags-old.txt new file mode 100644 index 0000000000..cc6881677f --- /dev/null +++ b/pkg/mimirtool/config/testdata/gem/common-flags-old.txt @@ -0,0 +1,2 @@ +-server.http-listen-port=80 +-auth.type=trust \ No newline at end of file diff --git a/pkg/mimirtool/config/testdata/gem/common-options-new.yaml b/pkg/mimirtool/config/testdata/gem/common-options-new.yaml new file mode 100644 index 0000000000..82cd88b570 --- /dev/null +++ b/pkg/mimirtool/config/testdata/gem/common-options-new.yaml @@ -0,0 +1,5 @@ +server: + http_listen_port: 80 + +auth: + type: trust diff --git a/pkg/mimirtool/config/testdata/gem/common-options-old.yaml b/pkg/mimirtool/config/testdata/gem/common-options-old.yaml new file mode 100644 index 0000000000..82cd88b570 --- /dev/null +++ b/pkg/mimirtool/config/testdata/gem/common-options-old.yaml @@ -0,0 +1,5 @@ +server: + http_listen_port: 80 + +auth: + type: trust diff --git a/pkg/mimirtool/config/testdata/proxy-targets.yaml b/pkg/mimirtool/config/testdata/gem/proxy-targets.yaml similarity index 100% rename from pkg/mimirtool/config/testdata/proxy-targets.yaml rename to pkg/mimirtool/config/testdata/gem/proxy-targets.yaml diff --git a/pkg/mimirtool/config/testdata/gem/ring-instance-id-new.flags.txt b/pkg/mimirtool/config/testdata/gem/ring-instance-id-new.flags.txt new file mode 100644 index 0000000000..c4fdc031a1 --- /dev/null +++ b/pkg/mimirtool/config/testdata/gem/ring-instance-id-new.flags.txt @@ -0,0 +1,7 @@ +-admin-api.leader-election.ring.instance-id=123abc-7 +-alertmanager.sharding-ring.instance-id=123abc-2 +-compactor.ring.instance-id=123abc-4 +-distributor.ring.instance-id=123abc-1 +-ingester.ring.instance-id=123abc-6 +-ruler.ring.instance-id=123abc-3 +-store-gateway.sharding-ring.instance-id=123abc-5 \ No newline at end of file diff --git a/pkg/mimirtool/config/testdata/gem/ring-instance-id-old.flags.txt b/pkg/mimirtool/config/testdata/gem/ring-instance-id-old.flags.txt new file mode 100644 index 0000000000..c3a1274074 --- /dev/null +++ b/pkg/mimirtool/config/testdata/gem/ring-instance-id-old.flags.txt @@ -0,0 +1,7 @@ +-admin-api.leader-election.ring.instance-id=123abc-7 +-alertmanager.sharding-ring.instance-id=123abc-2 +-compactor.ring.instance-id=123abc-4 +-distributor.ring.instance-id=123abc-1 +-ingester.lifecycler.id=123abc-6 +-ruler.ring.instance-id=123abc-3 +-store-gateway.sharding-ring.instance-id=123abc-5 \ No newline at end of file diff --git a/pkg/mimirtool/config/testdata/gem/server-listen-http-port-new.yaml b/pkg/mimirtool/config/testdata/gem/server-listen-http-port-new.yaml new file mode 100644 index 0000000000..82cd88b570 --- /dev/null +++ b/pkg/mimirtool/config/testdata/gem/server-listen-http-port-new.yaml @@ -0,0 +1,5 @@ +server: + http_listen_port: 80 + +auth: + type: trust diff --git a/pkg/mimirtool/config/testdata/gem/server-listen-http-port-old.yaml b/pkg/mimirtool/config/testdata/gem/server-listen-http-port-old.yaml new file mode 100644 index 0000000000..46ca5ee38a --- /dev/null +++ b/pkg/mimirtool/config/testdata/gem/server-listen-http-port-old.yaml @@ -0,0 +1,2 @@ +server: + http_listen_port: 80 diff --git a/pkg/mimirtool/config/testdata/gem/server-listen-http-port-random-new.yaml b/pkg/mimirtool/config/testdata/gem/server-listen-http-port-random-new.yaml new file mode 100644 index 0000000000..c74b6e44af --- /dev/null +++ b/pkg/mimirtool/config/testdata/gem/server-listen-http-port-random-new.yaml @@ -0,0 +1,5 @@ +server: + http_listen_port: 1234 + +auth: + type: trust diff --git a/pkg/mimirtool/config/testdata/gem/server-listen-http-port-random-old.yaml b/pkg/mimirtool/config/testdata/gem/server-listen-http-port-random-old.yaml new file mode 100644 index 0000000000..61fe3f9764 --- /dev/null +++ b/pkg/mimirtool/config/testdata/gem/server-listen-http-port-random-old.yaml @@ -0,0 +1,2 @@ +server: + http_listen_port: 1234 diff --git a/pkg/mimirtool/config/testdata/ring-instance-id-new.flags.txt b/pkg/mimirtool/config/testdata/ring-instance-id-new.flags.txt new file mode 100644 index 0000000000..b39097ad1c --- /dev/null +++ b/pkg/mimirtool/config/testdata/ring-instance-id-new.flags.txt @@ -0,0 +1,6 @@ +-alertmanager.sharding-ring.instance-id=123abc-2 +-compactor.ring.instance-id=123abc-4 +-distributor.ring.instance-id=123abc-1 +-ingester.ring.instance-id=123abc-6 +-ruler.ring.instance-id=123abc-3 +-store-gateway.sharding-ring.instance-id=123abc-5 \ No newline at end of file diff --git a/pkg/mimirtool/config/testdata/ring-instance-id-old.flags.txt b/pkg/mimirtool/config/testdata/ring-instance-id-old.flags.txt new file mode 100644 index 0000000000..6d79dabe86 --- /dev/null +++ b/pkg/mimirtool/config/testdata/ring-instance-id-old.flags.txt @@ -0,0 +1,6 @@ +-alertmanager.sharding-ring.instance-id=123abc-2 +-compactor.ring.instance-id=123abc-4 +-distributor.ring.instance-id=123abc-1 +-ingester.lifecycler.id=123abc-6 +-ruler.ring.instance-id=123abc-3 +-store-gateway.sharding-ring.instance-id=123abc-5 \ No newline at end of file From 76fc77c69984a27a8b73e7c58cb9402d859e3a02 Mon Sep 17 00:00:00 2001 From: Dimitar Dimitrov Date: Mon, 21 Mar 2022 11:42:56 +0100 Subject: [PATCH 24/30] Add OoO instructions for playbook MimirCompactorHasNotSuccessfullyRunCompaction (#1504) * Add OoO instructions for MimirCompactorHasNotSuccessfullyRunCompaction * Strip out private links Signed-off-by: Dimitar Dimitrov * Address PR comments Signed-off-by: Dimitar Dimitrov * Fix JSON formatting Signed-off-by: Dimitar Dimitrov --- operations/mimir-mixin/docs/playbooks.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/operations/mimir-mixin/docs/playbooks.md b/operations/mimir-mixin/docs/playbooks.md index 77a8d2fac0..c9efb52274 100644 --- a/operations/mimir-mixin/docs/playbooks.md +++ b/operations/mimir-mixin/docs/playbooks.md @@ -455,6 +455,27 @@ How to **investigate**: - Look for any error in the compactor logs - Corruption: [`not healthy index found`](#compactor-is-failing-because-of-not-healthy-index-found) + - Invalid result block: + - **How to detect**: Search compactor logs for `invalid result block`. + - **What it means**: The compactor successfully validated the source blocks. But the validation of the result block after the compaction did not succeed. The result block was not uploaded and the compaction job will be retried. + - Out-of-order chunks + - **How to detect**: Search compactor logs for `invalid result block` and `out-of-order chunks`. + - This is caused by a bug in the ingester. Ingesters upload blocks where the MinT and MaxT of some chunks don't match the first and last samples in the chunk. When the faulty chunks' MinT and MaxT overlap with other chunks, the compactor merges the chunks. Because one chunk's MinT and MaxT are incorrect the merge may be performed incorrectly, leading to OoO samples. + - **How to mitigate**: Mark the faulty blocks to avoid compacting them in the future: + - Find all affected compaction groups in the compactor logs. You will find them as `invalid result block /data/compact//`. + - For each failed compaction job + - Pick one result block (doesn't matter which) + - Find source blocks for the compaction job: search for `msg="compact blocks"` and a mention of the result block ID. + - Upload a JSON file to the markers directory of the compactor: `/markers/-no-compact-mark.json`. The format of the file follows. Replace the `id` and `no_compact_time`: + ```json + { + "id": "01FYAFBE9F0VH6555R3J1CFPHP", + "version": 1, + "details": "When compacting with other blocks is leading to out-of-order chunks", + "no_compact_time": 1647514725, + "reason": "manual" + } + ``` ### MimirCompactorSkippedBlocksWithOutOfOrderChunks From a9295bb5fda0929a481e576ba0c279f1719d7b2f Mon Sep 17 00:00:00 2001 From: Marco Pracucci Date: Mon, 21 Mar 2022 11:50:30 +0100 Subject: [PATCH 25/30] Docs: move dashboards to hugo bundles (#1514) * Moved dashboards to Hugo bundles Signed-off-by: Marco Pracucci * Updated screenshot generator tool and screenshots Signed-off-by: Marco Pracucci * Addressed review feedback Signed-off-by: Marco Pracucci --- Makefile | 2 +- .../mimir-alertmanager-resources.png | Bin 132596 -> 0 bytes .../images/dashboards/mimir-alertmanager.png | Bin 81104 -> 0 bytes .../dashboards/mimir-compactor-resources.png | Bin 49463 -> 0 bytes .../images/dashboards/mimir-compactor.png | Bin 84237 -> 0 bytes .../images/dashboards/mimir-config.png | Bin 23524 -> 0 bytes .../images/dashboards/mimir-object-store.png | Bin 72850 -> 0 bytes .../images/dashboards/mimir-overrides.png | Bin 23824 -> 0 bytes .../images/dashboards/mimir-queries.png | Bin 107415 -> 0 bytes .../dashboards/mimir-reads-networking.png | Bin 119301 -> 0 bytes .../dashboards/mimir-reads-resources.png | Bin 190005 -> 0 bytes .../images/dashboards/mimir-reads.png | Bin 130763 -> 0 bytes .../dashboards/mimir-rollout-progress.png | Bin 37548 -> 0 bytes .../images/dashboards/mimir-ruler.png | Bin 128696 -> 0 bytes .../images/dashboards/mimir-scaling.png | Bin 39373 -> 0 bytes .../images/dashboards/mimir-tenants.png | Bin 48095 -> 0 bytes .../dashboards/mimir-writes-networking.png | Bin 83185 -> 0 bytes .../dashboards/mimir-writes-resources.png | Bin 131831 -> 0 bytes .../images/dashboards/mimir-writes.png | Bin 133337 -> 0 bytes .../index.md} | 4 ++-- .../mimir-alertmanager-resources.png | Bin 0 -> 137062 bytes .../{alertmanager.md => alertmanager/index.md} | 2 +- .../alertmanager/mimir-alertmanager.png | Bin 0 -> 77472 bytes .../index.md} | 4 ++-- .../mimir-compactor-resources.png | Bin 0 -> 44903 bytes .../{compactor.md => compactor/index.md} | 2 +- .../dashboards/compactor/mimir-compactor.png | Bin 0 -> 98273 bytes .../dashboards/{config.md => config/index.md} | 2 +- .../dashboards/config/mimir-config.png | Bin 0 -> 25076 bytes .../{object-store.md => object-store/index.md} | 2 +- .../object-store/mimir-object-store.png | Bin 0 -> 72322 bytes .../{overrides.md => overrides/index.md} | 2 +- .../dashboards/overrides/mimir-overrides.png | Bin 0 -> 23863 bytes .../{queries.md => queries/index.md} | 2 +- .../dashboards/queries/mimir-queries.png | Bin 0 -> 67776 bytes .../index.md} | 4 ++-- .../mimir-reads-networking.png | Bin 0 -> 112758 bytes .../index.md} | 4 ++-- .../reads-resources/mimir-reads-resources.png | Bin 0 -> 170116 bytes .../dashboards/{reads.md => reads/index.md} | 2 +- .../dashboards/reads/mimir-reads.png | Bin 0 -> 102922 bytes .../index.md} | 2 +- .../mimir-rollout-progress.png | Bin 0 -> 42478 bytes .../dashboards/{ruler.md => ruler/index.md} | 2 +- .../dashboards/ruler/mimir-ruler.png | Bin 0 -> 146385 bytes .../{scaling.md => scaling/index.md} | 2 +- .../dashboards/scaling/mimir-scaling.png | Bin 0 -> 37885 bytes .../{slow-queries.md => slow-queries/index.md} | 0 .../{tenants.md => tenants/index.md} | 2 +- .../dashboards/tenants/mimir-tenants.png | Bin 0 -> 49454 bytes .../{top-tenants.md => top-tenants/index.md} | 0 .../index.md} | 4 ++-- .../mimir-writes-networking.png | Bin 0 -> 82699 bytes .../index.md} | 4 ++-- .../mimir-writes-resources.png | Bin 0 -> 129483 bytes .../dashboards/{writes.md => writes/index.md} | 2 +- .../dashboards/writes/mimir-writes.png | Bin 0 -> 124848 bytes .../mimir-mixin-tools/screenshots/app.js | 3 ++- .../mimir-mixin-tools/screenshots/run.sh | 2 +- 59 files changed, 28 insertions(+), 27 deletions(-) delete mode 100644 docs/sources/operators-guide/images/dashboards/mimir-alertmanager-resources.png delete mode 100644 docs/sources/operators-guide/images/dashboards/mimir-alertmanager.png delete mode 100644 docs/sources/operators-guide/images/dashboards/mimir-compactor-resources.png delete mode 100644 docs/sources/operators-guide/images/dashboards/mimir-compactor.png delete mode 100644 docs/sources/operators-guide/images/dashboards/mimir-config.png delete mode 100644 docs/sources/operators-guide/images/dashboards/mimir-object-store.png delete mode 100644 docs/sources/operators-guide/images/dashboards/mimir-overrides.png delete mode 100644 docs/sources/operators-guide/images/dashboards/mimir-queries.png delete mode 100644 docs/sources/operators-guide/images/dashboards/mimir-reads-networking.png delete mode 100644 docs/sources/operators-guide/images/dashboards/mimir-reads-resources.png delete mode 100644 docs/sources/operators-guide/images/dashboards/mimir-reads.png delete mode 100644 docs/sources/operators-guide/images/dashboards/mimir-rollout-progress.png delete mode 100644 docs/sources/operators-guide/images/dashboards/mimir-ruler.png delete mode 100644 docs/sources/operators-guide/images/dashboards/mimir-scaling.png delete mode 100644 docs/sources/operators-guide/images/dashboards/mimir-tenants.png delete mode 100644 docs/sources/operators-guide/images/dashboards/mimir-writes-networking.png delete mode 100644 docs/sources/operators-guide/images/dashboards/mimir-writes-resources.png delete mode 100644 docs/sources/operators-guide/images/dashboards/mimir-writes.png rename docs/sources/operators-guide/visualizing-metrics/dashboards/{alertmanager-resources.md => alertmanager-resources/index.md} (74%) create mode 100644 docs/sources/operators-guide/visualizing-metrics/dashboards/alertmanager-resources/mimir-alertmanager-resources.png rename docs/sources/operators-guide/visualizing-metrics/dashboards/{alertmanager.md => alertmanager/index.md} (82%) create mode 100644 docs/sources/operators-guide/visualizing-metrics/dashboards/alertmanager/mimir-alertmanager.png rename docs/sources/operators-guide/visualizing-metrics/dashboards/{compactor-resources.md => compactor-resources/index.md} (74%) create mode 100644 docs/sources/operators-guide/visualizing-metrics/dashboards/compactor-resources/mimir-compactor-resources.png rename docs/sources/operators-guide/visualizing-metrics/dashboards/{compactor.md => compactor/index.md} (82%) create mode 100644 docs/sources/operators-guide/visualizing-metrics/dashboards/compactor/mimir-compactor.png rename docs/sources/operators-guide/visualizing-metrics/dashboards/{config.md => config/index.md} (82%) create mode 100644 docs/sources/operators-guide/visualizing-metrics/dashboards/config/mimir-config.png rename docs/sources/operators-guide/visualizing-metrics/dashboards/{object-store.md => object-store/index.md} (81%) create mode 100644 docs/sources/operators-guide/visualizing-metrics/dashboards/object-store/mimir-object-store.png rename docs/sources/operators-guide/visualizing-metrics/dashboards/{overrides.md => overrides/index.md} (79%) create mode 100644 docs/sources/operators-guide/visualizing-metrics/dashboards/overrides/mimir-overrides.png rename docs/sources/operators-guide/visualizing-metrics/dashboards/{queries.md => queries/index.md} (82%) create mode 100644 docs/sources/operators-guide/visualizing-metrics/dashboards/queries/mimir-queries.png rename docs/sources/operators-guide/visualizing-metrics/dashboards/{reads-networking.md => reads-networking/index.md} (79%) create mode 100644 docs/sources/operators-guide/visualizing-metrics/dashboards/reads-networking/mimir-reads-networking.png rename docs/sources/operators-guide/visualizing-metrics/dashboards/{reads-resources.md => reads-resources/index.md} (78%) create mode 100644 docs/sources/operators-guide/visualizing-metrics/dashboards/reads-resources/mimir-reads-resources.png rename docs/sources/operators-guide/visualizing-metrics/dashboards/{reads.md => reads/index.md} (86%) create mode 100644 docs/sources/operators-guide/visualizing-metrics/dashboards/reads/mimir-reads.png rename docs/sources/operators-guide/visualizing-metrics/dashboards/{rollout-progress.md => rollout-progress/index.md} (82%) create mode 100644 docs/sources/operators-guide/visualizing-metrics/dashboards/rollout-progress/mimir-rollout-progress.png rename docs/sources/operators-guide/visualizing-metrics/dashboards/{ruler.md => ruler/index.md} (82%) create mode 100644 docs/sources/operators-guide/visualizing-metrics/dashboards/ruler/mimir-ruler.png rename docs/sources/operators-guide/visualizing-metrics/dashboards/{scaling.md => scaling/index.md} (79%) create mode 100644 docs/sources/operators-guide/visualizing-metrics/dashboards/scaling/mimir-scaling.png rename docs/sources/operators-guide/visualizing-metrics/dashboards/{slow-queries.md => slow-queries/index.md} (100%) rename docs/sources/operators-guide/visualizing-metrics/dashboards/{tenants.md => tenants/index.md} (79%) create mode 100644 docs/sources/operators-guide/visualizing-metrics/dashboards/tenants/mimir-tenants.png rename docs/sources/operators-guide/visualizing-metrics/dashboards/{top-tenants.md => top-tenants/index.md} (100%) rename docs/sources/operators-guide/visualizing-metrics/dashboards/{writes-networking.md => writes-networking/index.md} (79%) create mode 100644 docs/sources/operators-guide/visualizing-metrics/dashboards/writes-networking/mimir-writes-networking.png rename docs/sources/operators-guide/visualizing-metrics/dashboards/{writes-resources.md => writes-resources/index.md} (78%) create mode 100644 docs/sources/operators-guide/visualizing-metrics/dashboards/writes-resources/mimir-writes-resources.png rename docs/sources/operators-guide/visualizing-metrics/dashboards/{writes.md => writes/index.md} (86%) create mode 100644 docs/sources/operators-guide/visualizing-metrics/dashboards/writes/mimir-writes.png diff --git a/Makefile b/Makefile index 7489cf5508..83f8e5a0f2 100644 --- a/Makefile +++ b/Makefile @@ -468,7 +468,7 @@ mixin-serve: ## Runs Grafana (listening on port 3000) loading the mixin dashboar @./operations/mimir-mixin-tools/serve/run.sh mixin-screenshots: ## Generates mixin dashboards screenshots. - @rm -f docs/sources/images/dashboards/*.png + @find docs/sources/operators-guide/visualizing-metrics/dashboards -name '*.png' -delete @./operations/mimir-mixin-tools/screenshots/run.sh check-jsonnet-manifests: format-jsonnet-manifests diff --git a/docs/sources/operators-guide/images/dashboards/mimir-alertmanager-resources.png b/docs/sources/operators-guide/images/dashboards/mimir-alertmanager-resources.png deleted file mode 100644 index 605d12b8d5938ae63dfb29f50cf96706d917eeca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 132596 zcmZs?by!2iU)VM0tHHO3Z;eO4#A2ScMl;rK@y+@ z=S$By_ulu9@5z&$J+oxiTJxKg$(o(G*V-zCk7ysEp`j6~sVeHBposzbtUcSFaMz_yS9vti42Bd&O3%{0T^~76P+s8Ef-ke`I&sJq+=S0OOoGpL3yu6H@hr%a==hr8vwnkD{ zw!eKZcXjvbTkSYLp6gs}I^L*XgDvkL9OQ#{M%MeT_PUUpb$&A&mxm)28{44~QSg~) z`0g)jd#C;7c{@kf=H0`^y_qBMC~|wPd%C1ktIE;UeGQ}y?y;CzZ$Dp1hHWjv&URr% zuEUGf8v`CqqhHJ|Z9$Ih;LX0|2IsB)iQ`oB8~9vSt2cBks&eq-zQ5bZ{`PL?hConn z_q+ODtCquP-@L-&m7{~8(1_U~VAb5<)%y75O!|&n|=P^t`3cGqruyN$27Aa2W~Vy~WAaCxY~H5yfB9AZvp#gKMz25H zWiH*a<5%)-sPe$V<&}y2t(RDGS9@i6I>L;7IqGdvHN53}j)jc_Jcu6jBP6`{hhr8@ z#AEYy)b3Ry>BSeC-5l*7z2}X;JCBg3>8FSOXlPH-)D-330GAJQb)4wbsJd~(zFXeZ zu;ImJQns4Z%`Pfuew=C&v>eO~f5&VU_*!Q%!t2o@7NHgq4g-eto@K!x7B^nln1$OJ zI@MwBj=ypc^!@;M zzbpJc0yH%Ednk`o8%y9n{F0x5Da7A_d@^|;nagv$zx0<%2*!t-tu3h3Le&WRU+MSp z&<^??bCl9c5mf_)5S;R1+?K+XT*Y$+c5u3s@xhwJvzUOtWVY|p3g$9JwNm+S-Q4Ah zB%n;vLG}xC^kY{3*=0fodsoNs;{(pXq7}sp`y?y!HURK$34DZoBkTqR2tTXJi_T5)mcIS{v&zhJEUi!gS*;2v( z6Ki!)OM@MLCENH63W-csiEDNgczImA@Zxqq2=9w6qbtTs7esk$?sa2=Vdb2cWEeS& ztB2aF8rtta#!j9822|$8zzd#^@*Gm{-0BwlS{jqn@5K4oY`1!+;}-n|C%Lzi^H1$b zuZ5*9%lIwr6$t+Oa%d$@;_?DFID;yoHfB(Ksv(?jPr9E@BK6>bSl&JC*PC_%Ju7`t|D>5&!IN0D)oS>TW8zM& zFUN4yF=fpS?QYF4$)gsG+Q zhQe+9qb(8LwKX&dYC2=yP<-wWqRGh_p+ zeHbM3k56lp137V&B5|)DBEV;RQbDa~p|S{DXUiXyrzVYpbr@|1h0)wOT~*_ZlyhqR zH^4zZx&E`{-N12`bHu1S5m=KGO!>7ZN`l0y5J^%dw8y(-ssn+la; zo-civD(-D;F7z1#ud9JL`U}l(a(-WD#rsOt9oT|27<@iz+NZ}a&?UGB0-V-AA?|hi zG&J_!3KpH0vsr_>Df&$WzejL88a3(^TJ^OrxzLa&P&4Qw?kD`3k(Pt4KtyrmgujnJaTh?y_!a6D5n=zCUf7AFv;upkirk0 z^X^dTUtz|r1Dc;zR_blq`5dA=FQfX`@QAKTcl$rq8 zGF$1jZu}ci!^&!4>FaSuo+`U6s2F%_d|ouOt+8&Hb<`HAJuc2}@8|FHftU0nMFSIa za{tJZGMB_F>P+6Du3zeb963MEsx;1oTvDj*WyUV9zXfZt1Z(|SqYU{NlmEKz%2Ix* zMy*8&j`dOsK})z5M=hL)hTv^z&r^@Hzxw0DALDG<_+mt=pg$5AFz?qMKWW+9q~>TW zda613>}#{bg&hb_%Hy-|-URhH!W#NEi88g&#Hx?3YR=I=^l9lnaPOJbi1@^8%D6;r z%rJ160kTs{;AD?1V>mtI2zqc0?{ECn-onP3jEH>&h_wz#+U~=cN~Gcsa5okpaRGMz z^w!KZOtj^zGi9JS`Dya}DUDlV!F%SF^L`U;QCbHZ=Cya`yeh50C1*@4cM}4b`Z#%Y zh{wF2kH+xcTu-Z_>~nk4O=rI)=aP}7p4JxNQtE@8{=QJ9hXthyxpQ$~0nlOnQ>N?r z^cT**At^X!t2@Hr=Z(`8eYTGM?FArXB|X6~gIvxKd;5hwDKdmmMkcU(Yszp z4YX!F_EPspP=2*bP8yJqYoP$~{5&}h+2#C}=?Zowmb3N!j{)yHkT7%N6%j_q17D20 zM8_6ET6+srYQiwlMX+f}t60~4wE#%!e>N-1w;jL+6=g;u4j!lJ)*0>>Y#8N}4_0Cg zug-epI7WZ|Am_)^j8I<9W={LT(I|&-Z6i-jY#t9R<%F4Z0)@pB1X4h*_SV~@KmvQELRI1t9b2Vc7EMs#}Q9A?CH)UMg-I{d!tnAbU-E5 zMX4qx3nJSR+k~g~T)Jd0KKX?0Cy1(KZ8dY}7*Wx+K0{avCo=jj7)hb;zU`U~RZjzQ z;WbLUP>(X-jg2#1sheHFT@lA@;66~uXH!e_#7)mC?GL{)S5}pq zpVvq~1=sjQb|i}aj&#a^NtuJ3_sDqcW-~;n-NfHJ=kHXoRlNBq4c!9ObAj(sb00ie z%rT7gbg@P`3`RNJw)}{=Y}9eqgoR2CRC3~JlTJy^IcsgEB0Yu7a+{n62bP2_>mY>d zh>Po{v5mAmEl&Rmcg$^~VNeyN+UYe}H8R0)<(ugHccA-s&UOp-A}gCvN_M-v1#85$ zXI$uQp_2Zmoa|WN_q@*l2szG5iskynnH_GmvYY-2f3A;zJ&MzdpmMY8&{H56Lf7n= zC4mo6y0thNge-}WUR(IANvGi0flNWyNzkCcy~AlCH&8FE-oAYAo@Bglw4iuk zKo%8;reX~u0L|9CwkeJ2Ohh6^SMt_qu2XtGAc`Zh*Gvu_?Jq?d58*9#bdrSSkuTe9 z1|;^S!ElBPgvWkYTiOx>a+H5XyNRkLZ}iP2(J~>SVTN`=+V|cP5z!;ly4swZVQ7+n zfUmw#fVewkD)+b*1QYxK zXRg{^^@J>157+fDJ%u-v=~oe3?PJa94u|NEfc8&5=L4OdE6^`$H>qjF54TOt^YkkI zsmd;=;fKm1NtZSfvu?+CVWpf!UR2i4icKZ{C8g6ke_V!H;u(VwHT=x zINEesJO&6DW4#=-1@WCc2TMq|vh~3-X{xFw6`_RS!S+JRcSygaD#co@x4LQ|Jvuj2 z>;5@#A#iM4No=zpAtW_y4W+aq;O^NfHCY~%Y0W~2MEC!7D%0{XlUlV|)yJN<=>16q zNxcK$2gIfAc@{T|fqR*0X_3KS@BDdKlQ!K&&<8mWx0>I?$9r8BbdKO^zP5la5xr7X(M zKbkAp<_YcI3dXh@zr%PucJ}NuKL!q)Z&#C&+y)-K6!Jmm({Y`MnbX|8>6(kE;VyfL z`>n6DcE5&pMTmKGC;!YQ%+ZDx%+w$gIiZs*>4WPPrX>$_d(x<^cOT~3EQ@qM@>g-53x>TMTKmofyWIloyR z%ypFp-g!H2^LIFSI|n~vLOZbl->B*$>O7`gx$yv9)xKK46LTNYxo!Ts46b;6%mAWw zgwvnqT?94s9a&qx^f{=O#A^exf~KA!``uT!`y!lV}9-AsF)6+Si-g0QQw2{hnR|V^ZinE?Y{M2d&3@js{hY_`zOL*}ra8WZ(m#^3+dURU zC5)2Iw+YO*Gjmc5N7a0acN{MHp0N{z`rfmMWmlxRe0BkN+lohb1W?gC;{DX;3RzWt z^vx!u0K@ImHF-Wh{2o%an-I2ea+5x=^$UA56?b(HT~phB12FX0Nc{SKsiRHizQ8N=N>Y%y zRa!0t=!Rfmi{`VIrS7ZzNerr59jb!_l}&~af*FK)tX;Hb#HA z_G^$k+8Oz4!zS7jY1tk-mxd<1T3Q%pwSS3~lLMSrwCLoanj5fcA{3)38^Q_XC%ukl zlg9;88|L^dzwPZFJt65PfMbB@^lJgC=7S$`@gUehbO2sB8X%N9{AnmPs`(5L2A7>OA zSOyK$zhyF(6ov#foSLQc2HV1U_ZYefg5=;}bNX?IKn6Hl{tbSIBxBVUWMcVLu3SKh zWyt}}I)SNZRv`pl+^dUg^eU zZ7)$mwc=J<+LQC-JZ2LS`aLpX{!G={WXqth%(;OyJN1^j2M45&cvPM75GGah*gF)U zl3!^Md5Qnd(pPRWzI&wx;}HkkR^sq==@Q#gkwI=-s$Q*CnS8N(&OIB!&%hXQZPuLQ zn)>7R*eOuT^opwVc=w9X@1H`+Sp>Eb_5@S9K56rG7$;UCeaXV-tSc8hSY~KzrsMTQRh%v7@<$)GUcjg+ z9!STs9v!a!&@wnpeQaXcBw-uGu5W7%+K;qcBB;yqQ60D!!3KkJxR*0)szU6ro!^?o zIEb+w7y9VCj{8-f5ds-tjHSJjcF~jS(F?z$nHFV?{Y50d^OX9 z)1i;}9jWnfCsjm<3dx}O1Ql+zb~jl&LHNAb?CV;cxOQ_x$X&MDRC~)tymH48Ub+dF zQXZx#V?qmyLPD(_rgJE@_Q{d9_VbkKcgasV zc{qG$DFNI;8=Yf5WpciFVqCR(zwnkS$OjjhGl=lRMKzI&()Oy!buPzm8@xXcWGfj) zWVIgCo03htOTlgJKR<|@im<3;9Sdx%hJe2$dPz!3cN(Y+B-*k*U;~3ryg&jQ`45gd z_6iJzu1s*}JeAmjP*xvmtV%r4uC1&RHrT!-??t2jBM@$hCCT(r>_GC%)|y`bSxDQ+ z@1hGE`vhX)hR6J~@2B477+KpZ854UCLi-#h|2>gFD}o*@gaC(z-i z!iQth3m2>LqE_r`SHJWiHWmi3({n@N4h6q!*?e=x-(#Khj*B~t8s<9@qK*Zz{NUmz zyuZoQZq$5IV%7F54H0co6=wmp2Scx$%~hTDZ#!|QeWfm%dk%p@tM}NzEIbYp)ez{m zkAPk)B?8fC`QC(fO#MD#^#;5TEM3Td@Yi{vz$ZJGxfHL-{(frlsl5_}2dBr015RZo z=vt5|1vgmgxxO;JH1wv)xA9< zkA6m$1OGrb6~gl_#>;_AaVKY<4-NqV0j~W4Dn0=Q8*nptTETHRX0gXVa4s2K&ANiD z)o=GV7T+aRcG_{BKD+t&Dl01)7vS+Bi!05(p5hEZ%|d3pnQ@d+Q3(H4XuQ4FY(;-A_fU5*%V zm;Zu~CHW_Y*zz;N;#Ejuv(oamZ8C@$9K}~PJmvxCG%pERwb~ysQ6R*%{JtUU{26_k z--E&1a(v<|4N$=@@yN!Va6feZ-5=j?mF5wm0|_fI6Swcroa;UR_yk{l#9;*b{SpSM za5f7_^Pfs++kZ70E+7(ty#hwyclQh1_d*EA+FE=Re+ykx0iBvg zVw@)Ig=qPQvt5Miq=6}dYoK(^^?^>i#wfJvW0s$y0frHR2Rdw)vlb=PfBG-fLQcCU zT(h%7F)Mn{uY2eqQrtC|K2ea2oD93QU)0;{^`Ht1fzQN%X<=W1C9-FEYl{ZSb|NYh zb0*uH%Zwu-L!Gb2o{*KS!6wIDl}rL4m7nOy%X)m`3@jgaAoMTvsEzQ$L{>?}LETg|Nm#d1%6-a17Nk;HMRk@J51NP?G* z-ADP;H0_B`J(4n!fbrKt_6^CnD*%#@Ns+M0fQZMtzTz(FcF?#wz4_q3{QJ=g`MtQ2 zi}}W5UN0nc>b5@dk1wf{rN`;Aap3dnPJHHg2sH1z-(p22p6_ga4S~b^0*z?qW+j=t?Lh)`Gz0Q#$C!JyWSH%rg#Hy(4Syg@ z>xYrlS-%Q&w0i|m`5N&(Pszggy)AgRUn0%D|Ne*>fEGH}SMla&mT=ITs|m+lj$Z+_ z+Z)Xgqk=$WgZ4#2l%BqmisG~}v3juo`+S(H=>x-a=)9&f@;3PvJ4h;!@D@Z+ns1kD3(A{^kPnW9wS$^O9a$ThuPJ!9wf7pQ+Ix zGx5Hq^|Z95ikulQgb%$&e|tWE-n!(8E07z9d>5SEUK)OU&O~uhgzHnV{;(I18tmQIMSU7|&RMqol00S%l)Ioatm z;r)~x_xDyghW77~4+>HLvj+a6Ju?AWP$2Ulhk`2|#mPih@Vz4HHix2mgC2!$XFX8J z)Fw7s;UEfUJ-H(cWj1zvm+*p0=`7Y?1@yOMi>q zt|08E=GD%~Fnr`ZRjCCcmBx^`cos{tR;8liAz|VLBj-CgNG5&OW|oq?<f@{_2 zhb%T!`oQiZaAO1Dzx$#Hilrvu`}r1x)PS0;M*c^0qByzx%E$-(n?1r9`JMt~K}?z; zDx9+VG@cgGY51Ni*0*#m^XT_q(Os$&zgl3~8?!I!Rby*$xzEAA-#5Sa zjUHP+cRYBt?jHYD!u$Ch?3V>Mi~?8v?Kpi|x@d~cj3JMCPQJnVxPiu-xyh?yD(d;w?xNHqSPjsat61qzj2k7i@@v|h{nb%4l5d3 z17?jKZTjfA=-0*$=BnqmV#N8bq$aYg!43>wnxHev(&XGaj)$*KeeJ2;;ZMRvW}Y|T zXAfT$bB=E~tiL-~d}NziiHjHyf82NT;&04{i=uDNCIP*6(k(vR>5!n8Ka`B?Qh@7U zlk2C-X|r(B)R(4uEq+nt*>Mg}m2(W*m^kDg7JNR?Cmb%a zww!0lvVp(au)f6LO@@o-%v^l-N?6DlO~7JRH8*FhpSm1 z!N?3An?p2mCb`{OkIf@kY`#asT6k?riNeK?N0xyN!jAAu1{K^gkqqLe3J zi=vI{_i4CzRHTSJaHDCDN!?`i1w`}H=LrzyosV&uTklorT2X8NZ2P_c;~nGcvC-;M zaf2!;qRnweL1Ff#CFhHGNgN6?)txI}9yizZ?+-sUt=^4^+SkqdeEX^@I}dynKk9p! z4vYPsch|! z?t6+}0rm=W?D{AgX?8&HH7??q>$`9q_WQ|5U&wMyC_ zR`#YW_Bj(|(-IvY^7NLp{cPZ+V85|R{OiuHzE9(V6R*y0fzoHAGZrtSX{iX$kxhOF zoniv`E3AaL;mvCvmtw%KK+I5TcyPyFN6R~=#lX{NVoA{DBUtZdlH03a3LeH;HD=Qv zo&r}Mo{6FOo{MvP519`7h<7I-(e!YEq@mR4e=l$hKz9Nf2=DJjl|cX(h+zD$h1X5+ zzg*e+JvVg!w!=vIFyPP8_>@6^wW9H1Faxk4*q~VLC}f#=$Q?dPAr?fbfdp`WGk^Fm zOR+bc(F+qujP{rE_k#WJc&I@~(E%Xbk0_(iK(RhCzBpP7MeygIX6Pr4wf9RZzbbz8 zBs67Thx?-!k3l+K`d+*_YRq`JcTuVW+yUD{E->78Evi(COi=7lS+x%CjwffrupmiF{oiw63H zL-dgCuSiL`CyCW1>pRg~*asMj0lxxlFG&}IC|m0ovmW&w2UuRxf2rZwP}*su18X$n zTY_IbCk#<>8zy*z9V-&$yLW>1mswm?mBcP-08n(}!4H!oZ(;=v(JO;+HbL;~dH9cO z3>)-ftqq1JXC$XBYD06OAJ)X@xsr0mxuM~W|LCR%!0dz49Gul_Wp!oukfiMAH_5I) z+hl+zX9~=lxz7!wVForx)^DySqEYOf@}6GSV?jL$qu%m6L}yje8#&AhzAa}w8?|@( zt%Vn!T}3K$-`=cYgV8rwMP2oFIK8GFUoFTy^)|mVSE!VEF?&l78Zx!BKCXvH%ilz0 zJ$bbxQ^6h_V7ktg8xc^79eGQR)x-fZ9WObq7|qxn*z-P~R{Fvr8RU&+_Tvbmw3GY@ zB(l=EA@wsfKL+2;gq=j#H;g)4LI6(78|B$zEqD_0c*l(2mMQo_ib(h1FvM z;M9F(=t7M>T{A77(@>K=8VZSP)bL_k0!W7w9kqF+vpx!U#Wxs$S!Z<6vz)hq7N{TA zd=MohHt72j25_5>_A#NW%PUQw%ykhvL`kcAWgAY$6P+a>r_-JA<-aw78b|lczSk)x zKa^S+-A(kDgpGdR8?FtWY{^M-crhE~NFMn1`1lj@HOr=L^%=WNT|}4C5Q_DmWBOCjQq0;%-+-vJ?VLX~d6wCJm`tYrUJui8$<2ezkiJH|;V4+e-0#b+#fS zTl33}wHqzZ5=~_#;Ezw&o5IQ59MKU>GRvaVq^>g4dK-iJrL*kDy>+@SA4q~q6LtLc zhGNvxG;_}QpnPDb1x{=SagsuZg6np@_~iW>!FJ`Uhtl6vP*MYkSccm4kjxP>PwF(ME0)ekC|re+F5LH)#?v zOUAEe);wojy+>1+=?UGbrMs|VAwIDk_@xBkf2qY9?i!7l2|g0iKP4Qg(!^hcK`W?0@oL!vy(jc1>;2g`3j3$>m_FafZaqO(#w zcOGdm$nmi}?4)oX_CmYeo)Ic;w=?C&9Bd}xGI^3Y7Q*KI9$*Jb2QeuN+)iYfMfzO}DNqGeT zI~$eGjy@d98WovuBHXkc`F}r@Dgq;hqg5!!QuhVkMi{a)WZ=Rvz--+s0r^iK4;VfI z+Trpgo6S%NJrX4ZN|1mtoct_z)`r_+WtGSVD_dCumWF%V+paRR_yAq=zJrd64jyhH zd1(;B7%NwI3M~iTmHyZr>$hUSZNh09EvJ$Sb>MJ@v#XL)h`@`gtUR_eR#L#&np<62 zxdo@W+~Z7MghZ-guJ#+1?V&W%;BF16KwFMCS$$viw11=0R=XRJZ;dV1Z!;DHtg!%C zlaj9HwSVkJ=I_G@LX>YzV1NjcrS-Mgnr(m2XKZiqbWQylIkz9kIsJ2E8^vCp%a%9N zQ}`;r%ASS#>)xlgYvbgaN;arjh0>9MqIReDN<_sO{*>?OTslUasYgOLN=LuY&27E) zF6aA^Hi5p+)Jf?ZJ}xB5dGg5N8w=1#gl5%U9F<^@q0C@EY*1jL@muU`<&CnSYcptM z@cLBJTN4~NYuJ9eWPfWtG-C&gR&(hzhSBpaqNu=i@`VNcJ}U4cD1G-A!hnak&^j_6aL&W zrBZPZurR!8?uLW!hl8qNUibj5>LvLH*r``q!0gsWI7) zx7(8&cZ=z2jZ5?=-))l@JdGj^-%h@`?R*+tnI{SzbL$Gs;d4L!siST+98)e^!Y43c)H1yFn|L|3XK_qEa)MWsdNYU3pK zj~$k>II~Rg9jXO_n5ejSMBp*paC; zLINx;2+}U^XBWbK1HKx^4vzWxAm)to5#A`MZ z%cQQH?3Jy^4@$LWHUy-CTwn;gom-drHkNDa#WXHS7= zDa(jRUJLN{^aAi+3W4OhSN!1qrb91lh65;k0#5z=fkG{T^ZPu$)vAP%K< zUpGg%t=VV>!&mz&Z44stc3U}Wq8{u{4uh9lreE^T34os@kq9KGQQ3cCGpa0hk#IPq zvR-6)tydTOT=bCS+lb-7OQ1!g4oFrlK{H@ud_?`|_DRcRxu zTYN)D$D>!$g18Fo!c3_t&#^~=pT%O%a*&{tGkS%cDKOr_6A&>!kY|EUDTFM{w^+?w z7LvDJ6$jwvTgFTIdWP+hjs_x3enH!Sunmz!KXw$LGoA9!Rm;Z2t}g$Mud!WQoFQGs zA=$y-_Rci9+WB~|GN3@Tq4M29>Z>PPjDRL`AFNM4qV-3NMh|y3AS90@5arIs$p#ns8FUDzn((tt7#9 zF6jeV(+&SYUXCv7V>iUCy>y|C3Fo{s`e@Bc>h^Pn(G4ns)#LQye(FQaVQevvAFZPn zIpq0MAjh?p2;B9nLin^3VMqOT?SzV2o?`rRr^QF&mpvw*H+bXnb0+-XE7g`Lzz=%z z6ZfhHu0u_KIY<0}#M8R7*$|O|w&WUGRi3Pf;!rFK`e0vF@t{+%xpRH2I`DZR+Ko>G z8xf(x_%+Qs71ol2@fO=@D{UK#&uF}5>MOn4uJOWaY|tPvD94eFRSw=HdAQDMLtwD! z&?QaKo%1xoq?}yUX9XJX_ZW=$@ob4y$>daMcA#o=iS99{qE2YI)-qiVEymbWbT?qC zk_^?Z$e<8EP;EGI!e5eE03a;-c>fI-sN$PLm+O1DtE*C;T6P2$U$DUuK6ppBusgq& zqedfCR1Sv*|BIi*m^TsVgXw5O=$Z!3(i+7cUnT>{TCA7tIzPk-_2+^f=Gn5qvCgV>|S9%mgtv6e3a0BbR-;&A4HvC3NNeL4P`q zgB-+fr}s@0LYYi&gzn5)y3W98_mfZJ=Fl8N;15#j)xhm9{W_0KqH3b&=gyH`#}aVpj4UTm+{L<^VsMIN5}yq;Bq_AEsjn{J4XB4e%;PBmUjd{-U;Z$rry@;mU*|C%J9;Sh8@B{ ztnV4A{xK$8tD1*MaOFTMD*MuULp7fD=(Q6JjgSBF$|QAH(uyH_Gsr*C)#z`4*U?;IO%dzXaZ* zb$^zjFY9^M=4dA9$Onoo)!LJLBqp{sVl5UknF|{JWhQ3b2z>CvHfDHZ z7y-PEQ7kvF_OoHRloKXIX+G=ja1XyUX#S~643@lXTL&qeo(x71h?jo+0UsRjI&AHA zlf&*l+1qzqkV?=TA+SrJ>?Fw_dh81NkfXU?-Pxqc|Ij^y+=@zZMvSRay$bMyv$YmQ zI;#(EPE#0;)9m}aCvIHgc?{UsPGVWH&~8#e>m+nce#h(oAH*_qdLVgEtiF-*qDyIT zSi+~BUlyRu2UrQ?_Goz9X`&CXJRuWS)l;X%!<)z9?S}bpsg6s$6PIjg`vN3tybGmP zzcF~@B=(FTFi|*nmqdyL^Fb97v$1xv^t7@4oQQg%W z1$kL2kRmpQRLpNSyP#(}hKBlu&tBs9aAmkGPj!7x-fBk&XGu}Q8L5ClhA`gSOPbr$ z^cg!Dr_veZ@)#d2?7;(nP%G&{k-%U}Q{;Rum%Ey;Z0y2Gec;G|+R2KD*hHqY^ydi2 z(#u3pIN;=v#qDFeYwbx(eKf#8`@ZaG)(CEsnD6P$p=FZfM>-G?{inJ{S?66q(jP#C zLbsfL8OC0ch6cEZ=!P=z!5DizyUR1bzQ%X0I7V4w4|cTPTR+?e`qCIYd}gZl-()qgg(;X;%!BFXk*nxZIn`zo8t3G2NsQ*S8p$6 zni03K2pdpZ39U@Sk%k*3JGV#ErHGT!f;K2Z*DJriL2~(}GG3e7b?+r7Y zmW3zZ8kZ4ZU!-EWWtoi_747zfH6tAF)S$;AbV)gZyS%~LW!1dL5T<0I8#O^Zs!PL%e)4gz>RUkEce&qM7ca8%^iYo*d5d`{Zr8?e z{SsjKcIP;18^nPwLzuuiy5VhX{yFax&x8e+z$C}eu)wJS#LO@1C*N?LmP9Sj{i_JW zgYxoFWKDO#1(b=$P}IlQa|YR-5(K<9FkCQ)ie6~;)u(sA-$6dy7AtY<0Uv8v)Ft;M z)W<6(9KYzMaHml>37Jmp=F)`=I0}qhB@ie{&;tdX-98#mzc&b%&_J7@vx*Oeu1+rU z;Xeabe3pM|vTJ1xBKyQKNWed3_9uxIiUkssir=7k*^XYll4{j$GEIr@tEX&xg32Pp ztUr0gD65&)V=hIVkD(C}fn6;JZDRlvVzK82Va4M1!baBv-H z*iPG|`dSSvgpL-{jlkD>2YeXeqVJ^)^X91sj>f)pp#EZbX_HjJQP>g9YSL{^Sx2xgNB5OuGLa{>EhCC2)$(@F#27!>8PS+2~N@ zz4v2)hjyBwQf3H!2Wvt(kMD*z7O+>Wp+0ik&nl|Ve*aZRCUuyo5QzIq-9?s6ScpjB6;Agzx`r5PU*@vf+V7yA3!gMt}c{s@@z3`ogrlTnNY zJedVXO3W80Q9^gr>D-tx0XjYc+zEAl-D=#M8PNWKAg#Ki+y-gPye`!=3i|gw1hdir zmC)u|xo!!@s(2tO)}1yOfa4k7{m4yNV9;08!|QS(s>Ls#w^Y0)yk2EO1D7#SfGT4! z0D0lQo~}QeC%Q)5GmVoE>o(BbVDcf{)*%!*xcN`Ocnz9_k0fJ0l!;qj3`i4Ep491@ zwDD1?k)Kp0_i$a3@SnYQAFg~>g`3&<>N3#YV=r_ue5%GQ7YT~` zv;896m*x4K!Jgl0cg2KlQT@V0$i+BYL()}aB)dVyJRM?k zgb%OM-j@G;5-9+9bEV-j8L?DVxy1|O9dAgOHNuz!sa;``^_1Ax3gGa?{wz$S-ocGc z^ldj*N?Nw>lPD&=J!aKp9FTx$Wf83gV6Ikga08_vtVrjxmY`tLyx*mkOqXIMs;%pF zNzn(^O_DjuI<{;B?3r`)%I!<`O)0(k}!&Hobo?Jyx2bX@?~xgUUnI}6{9#d3{rVKbER#B{JuggL`!>lX;$>{pYk?rzuaLZG2&G=Px;zV;dX~hg_?CZi zgdOfCL7{J~n{=o1u#-7fQYu>lrz{tONn{Q$>67wlY4@$$P2hm;EN3I&XdpO;SpbiTfxc#DXFjUK!0 z@=$_IW6Qk!PBT(FNy2>Zg?8~<^CVh`#d$AmTanYHdNACAO+k9+or(^Zs;B2+R=k~+ zsNH6yUDe#tFD_`usVmHYauu)IJ>dmJT8OiL`lwj8(`aN1Mk|wMfm2<7)E;yao!^TM zu9x&1JIr*D=1fHS{8EPN$2NqO_2KmhtBR5X+h(J<6mv6$o}&;eO?7M2?|5bb1~dTb zFGAZ3!!Y*8M1UE-q5|1E-5p3HMlr+Jl5Vss^fcFRTHKXv2PflqZY8?g^O1=QoB&P3 zisOzjYI20J2gr+6zTU9XOhx$F20gE@OYmL47k(KL+Wk zmD}sb$9EVVcliHsM(g$rv^0dVpM>}P^20qRa!1BoFyvA@^xfb@e^|xTIne!$V^`cp z1+pZ=&UJm$J~bt}W{G~Z$aWQfrJ!z(LjgKSYAxC=j6fDfT7#(420Hz%OX9^DGO~sI z-l(oU#sd~58pbmn=L^D{0La9}H>y{8Q}I|}BY)X5R{{Fh0=S2+xi4u>y68rYFpl04 z@0uD;)?fo~D1+6~5~+bNKY9sTaq^DduocqH>1hrDE1~-WxO|~`)F;nS5A45@NqA~h zS^e`#?I#mWEddrh(0Hkp5IWrB3x`>L_%;qt(6DrnGHO>_qAUhP4n($uM`XF6Tple6 zRU!h+O7vwd={8gT@k$D##zCepGnRf&VlR*cS>j+iraRV}@yAh3qVpBBv{qw*&h{

zhY9~%Ui_D;{oUG?Cder;Rs zlmQz3e8Is3)ITpi5uyQ;jl`iXCb%66eVe_8%?G_&0-l1`Ulf-9KbpRRA<8b=n(mMi zB&DUL8>B?K8wR8sB!@0ZDe3M889HQup-W1-hM^k#z2z9v#QiVjGV_C|vPj;L(mBSPKY1e3Sk4r!EG_3X#e}K{lR$_=pC< ze*r$Y?#t4MJHdPhB07&a^6`!f|1X2l!HiylH4CMExW#ExCAj`Il1(yHR#h zi*D>{%0zwIVWj%gchnV}NhK+Use4%g;L~@0fY)nyNo;zp!-HGZF2AoiW{_+)Ec{%< z)in=EI2WxsF#IQ)z&i1IE~Uf)Oq~$^K7d$$7}4h`+q}6keR8^~_*3G#tpXNK zBF%dWn?Y^kjC9o3LH=?~7aAipqWhLSlYTf$zm3WZP4*Bggy^LDr zA_e&v3+M9HITA-eJNsvG+IH4n=5#-1ukb<}Q(;Pk$#20{(YLy&SG8|qh+BTO>FvV8 z`6KE0bTt>75D1<0zQ~n|a~HW3CRI!wrW^7?M;!7Nr4Y{YyPgJ2qgMJ|UhXeNVc44# z%L$j%c-TN9nwKExy@ejy+2WolT*}7`Lcvb-dIvbW#PyXf-W}ezi{XGMU1TV}!Bo}N zLjm$4GLvDCtaRrvZ1D@;D-ViN?S{AU;axQ7B~ktm%s%?_7d`AI9Q*0Vo-bSx3+Ehb z#)DTW4tAgD(Y-}ICv7kP+M^8+0B@{(&k4VAz!((~{dty0Bn5E#K(E2BxIOBUp~3>_ z>M}21EO*+G^ug4tXCn`W(5hzMt$>n|JL-Ou#Td#ypwJ5=YW@HqTX zZ_C6UzupFyX|>=5N~4ZL(>NxtNCI#_8Wqh{MuMPSk^1=0=@P)*P)WTo*IlGDxM5y? zR!u+o|D#ZufdbueXWGgQgAHUNbNMkE%#q)_!t=UZ3nf2`yI}zJZnZeZfOl-lf5$l} zLT_G=ZWKB=iv>oyEd{5s5o$ud_L{4n!S(t_x zYP}R0q6_Uv51Z#FBu)zO&aR))2smmlqm({AK?vyXki--bk@wGdGPAus59e(z4TdR1 zBQGl0`$bc-Dk?v9n3(*)$!KQ54gvBo?vkT^WAjfk&{y7H>ONvOId6Ku6&(}oi3aXx zhIFJWn_PjIG=Jm=^jw7?oV~rzNm=Gc1K4yMD%hjcIJ&&U_&K->Mo|3DUNs-NQeZ@% zc@edNKcW$p2qRi(y!p42ixb(7j5JO;)$xt4U+a$&ZrIIY_%r{!9<+T~?|~BhD;5d* zF2i|OdEkn6>pH|w+ksnM@@pxD=!(@1;g0c%ywgbcdth`bu7J>TOTH*{&GI=9oy%=^gp=^LFkn{OeF}i|i2hCQ zDbnkjrqs{W)9w;mXjSJg|HW;fxm*w_ z(^+KulXTG6> z**C4m$!#%t(9eW?xclCrgFWA%ukCn;q3DKt8m9L2Jp2iNW<+>xe{QO2=WblO4Msc4 z17|M&-KW$#_5`o>0JQk76fc!>Fp$zN0Z&4C^173p%~i3bSRolwiYrl+!{8=qLY48E zlBQ`gOO)lXlwsqp+W$y`Bwvf#Qe!y(Wf&V9=eZ&ZH*m0iT9v^pCyo~U={wO@RE;#C zLAk}CeXOQqT%dFPX0`e!C2FzIjW~chI<=iQ>!D*WFX2V_GmKG$;%U6~%j1EmoHLOd zrosoe!nd2(r=vK>Z_v5mw9+BPf2zJ*Hd5loUx@FXM*S*{r)Qk~YMVyIHcw-Wm5Te3 z{^0Llt^$RCq6~fh1T6;8liHvgo#ZRk33FmE8*&? znus4OO^mx@a-)K|`H^KdL-KUxRLCpw>uG^^CIb%d;{rSvA(_5qAcu+Fpc6ID0zXvhoht>Q*fw|Vo-r;?Joszqq|AEE&G|JR* zl&UdHL%K0G_{v|8*e~qe$cLQ6-rWOO#E0X%^@PI~+?sy^=x0SJAl>5=-ma?Z5b_pp zj~_Sj_voiEeiuA&bs+`%85X*WNB}O7x3ZA{L@r(a?yAb`hyuZ-e$6TgYrqNYJ2P33 z;K(oYNMKXLxRj#K`#!b&HvvocqfF+Y(Wp86lr3`klOpP?*w>^3+nUeNRPW?He%%?J za%Z@G>9hFQsR|^)cxfL7p?1YMC2iIIIkkNMbNE1q z?co`>yFBbNhBno|@DCb2Y;>>zfol=RQaYvxy*I(U-%knKPhuXO_3lyz7YQ^>(mH2; z7Imr9^N=lhBmualfa9;;Gp+ovr`YE@=wu)4PM0ygpAOOE5IGK#F5JjJu-vCcZHbSV`q3M;5!6gxx&BrWsnso#~pCDUcN~*}d5L>JgzlWoYUjsDTT0nh#I|0>+An$d1IuwVE5`%Gi>H$wkDsfB5%_xfxT)UMLp?jD zdA@%-d)c@Q80r}d3VRW;E#UZLOqM^;p+z;f$-$#^X(jUHwQo~(Db(Yaf=N#w|L-@N z9`2q=(8URD1DL*bV3Xu8G`AOO;w*r9q&?kWVE2j{vZhZJ#m@#~&upt?My2tx*VndZ zUdA9BPkB_3)GF!EFD=AzwF^3;QR28sgDcCM$`C{QHme9U0B@%u8!0iI>C%I}%AG_h z<2NQ%*GuA6b{NdcJDgqKZV2SweDs|qvuBr4VBi+>k?(+peWMvmmQ@0L)6^gbaY0$c$p zp?UW4WJ>n$p+SfI?ah*`nR z4}*4YxUNicpQOmlttK2zQx;DnVm1ayF~m3FG- z$OEsCOor>2D%CAv;;__m16=Ed#NhJt-BAF@d#5*lpEYthB1`41M@5tNwhSXH$(szS z{=5jK2pEP0udAvwP%Chum9;koJQ^JS#%mkHk`kVeX{D)o3N)Q=e{=m@h2`%k`}^7 zD)4x{y9<1h6&*Vnwx$7QiX!bz)=}}gW{Ge=;47gu!xZXUJ-S2R*B7$xgA%|)KvZsoP;!&)JSjA}Mf*m^ihlOp*m zJ#p3Yh+JNR;pXtFm+>96P;Xnw({G`A^C(TRe(1f9=Cq{E4GRa#(M5)uK3T@D33}0d z(6W;`h!TFYqKh}!wIcRYzq38e>7tx~#Wgt^(?&z;q?7rZ721urR45Xvi|ZSp6U;g7 z0Uyw3T%weVN z$BH!?n9*EV@WA~$xopk4y27-Je~ch9&K*>s)04RMDTcBRl;)oO7oSs6kT_`x!>isA z(bl$VJL*m|67gq}viuZ2Rod^<;yO>Azu^FBL;J0m8YSxkIlHQo(K;-(O!XF6V zn(M#`C9)66B*-C@Yc9E%z4$#;ElcjgG6u;$=#@E9(#ghA2@Mfki2l4HH-|^3W|3qa zdP;2z3z*H-u&%q3MLrw2Yea-uwGhQk4*$i#fyQ68RjiXJd2Cut%fd*G^di2A$>#f0 z!WcLCnjEz1=GclsryG3|ts(HQ772gJ)tA((I}5{HFG4B;6hsifKbF^rA^*K5vij3( z>Q>5M#k`@lnl9se<94txgthPixMPi=S(gfxd=#gH8fh*jKUKm4_0F?gw@f{)YJs|1 zOTg#2(1mKfG-I_C_$T;jiE3mJ->=XGVBm=k6&lo#F0ew`xb>APR9-m^`C($$&vooh z22^vrSrtJ6lmm?**d?7**kPo@$p%DMn48fm`Uv@J0YJ_W-+yQ%LbD%=M19w*R1#Y`z*JFY(m5>G%a7phN5pI62~r{hPH5q{=wW^{)rQL?!*}s}7iG`gVm3drSyGg|BLw z2dRb{c}Upw`DXCij%r7o#z<#=pqjDvK^GY~F0=0|&8z5fcddsakIX|SjOtvE7ZVjM zY|jBp%~5fS!bl1$?4o-&;dZ@j+e%`sLSk#NMp_8A63)lt5{L zC5~>lc6-vrgK<;E0J-?6cBT(!kKgJ7i0k^+ZUGmp9za~HowxA0`+Pk5OaGz6(jHNs zKN{d{t`y~rw8C-qGkn*uhzqNPlil2%tV&_` zk1n2;=+_41i|G~hI-i5AD061irupBO*1H)&lqgL(W*U-oxe|J??ITWhz8}6Zg9TWu zl&w9O8Tl4{x|Cy0rG5Ep9L@9X+?PxDF^(SisP*s+t5}=P9zfsE$3t={FQEQ3G9&a< z*Xq~Q;rYJj;rteOc6-bD;r5e-kAoWPQPPrO=Q09Z)p&pih#|EAi+0K~aOZW%A`!wQ zWb-v$G)xk~-A5lwH+vdg7}^?p@!%80gA?vyui$2(fVB-&$JmOT?>#XARSku@elpm! ze=m_!ai`0OQ({Y{ZW8D6hM9=agA4Egy4=cQ|B%4EiZe{UH3e}&WI#r;0ztChXTX#M zrmtHFPIxWH$ll?tG?BY!DeK0gDRLy>WYz5zRF^=$BIRwgdnUs3xx%++2g=gIzVDRL zJn8&-U{wTx{U8Az*x9v8#8rk_uiaMutv`IQPFHB;`x}_a$17I4>)$1L!hH-zLs$TF zH0>l6J}lrlPbG|LLL}Z7fl?-ix%L`#rvWc*ZFQVu;VDIn!mL~*n0$-pkIjvztTL@ePAhQms@ZfZ6-6p+E z!|+d2$)SR8y%J*X%_rp?f2F#Ei&R(;T)rF@pwG7z*bJnAWcB?LGAGcM7-h5n-gfHJ z0FQ=V%1`|PBG=#rB3cG+1UdKoL)_!$FZiOiwe;naZbi&@EWHa-Q6z9f=XB~7I_g=4 zuLIn98%btcf71{i@z#O|=s;{uQLG37fY?O_5s^u zSWbowHN=~IXzg_4H-!YWDLTHTv<()Hz5$hxRPN@c_|#YZ1|H*_?&xa@O23&CMFP<$ zLBnS_kzD=^b^nkJpOtKGyxT^jp4)Dlg7{o<@Lp&Rh=%xQiK!mtgj^Ux|p~i;n;!mXf6093KVk6l}1e@Cy!pM&!P}!|rmMnp( zgityQHJ5r`3l%X>9|E{Az?aouZG$J&WU6B!)e24=RlIe!ak7J@Du@7y&eo0(KYdt^MeD-fZ=g>h+b{Zl_?2sI9`7JS$hsDjD*obvs3UU^}(2c2!Y%M{%y5C z?ZjRw9F}{>_u;fL{*J5lTsoNaaG-~AARt8H+N+#9O^^x9@$i9dx9!|!V`2O~96D^Z z1qktGkWQ-Z#ssVwkvHVv`uACJ1#-l0x+k%XXUctTIo7B^OlHVdJzv;TsvECM(h+Zn zNNd(mT7AWg@dcZg42-u_?U#Q|vM^vi)?z!Bs(Q3e4n`LWm8k-KBxNi-(G#e1KqmwW zas#u&*p(#qcBJTdv{T|4AwTNgHxc5@SYZI(G!|4-<;GoGk0V35aKH)((7(!E=m6g6 zsdZ6I1eb#+aEXPN&HSyc(Fz&Zv~XU4`-;DC8(z?d%tx;puN8I9(QZW6Qs6 zPPIwD+E0`uJf^~k00mh#l1=Jbj9(2pyH1MXdbzV)psq3S$aQ~WfsejKyu!f8X-aPc z?3nQ%Qr}F^sOkiLdvwm#LlEu9+k_%w)kwkN|4?krkh*mISsLVndW*0DwK+cncAU2x zzU4z6zHT#OLLYJ9j79p?@Xwb^5J6-6#)V#6FLB1O^t9YmM^VCvQx4Y$OTDK4}7~Jn8k*S>ayPOa> z_Kxul*gbuvAzoNbwQu*WD!;N+dbK|3X};{B(HrnFTJ=d`&CyzLD+}vgY@ct2f$ykA zylnU^6obOo+>c(ZS&%Yp8S`JNLqAg|SBS*^Ds-O}{W#8+IxWFMlUq4<7I>CFJ|^{z z=9Q0oCLj2vP9435%54&(A*Dl$T#1wx7{XsKI$|#9b7`PtJ78tnPSNhT$_($ybAC~U zM_~P?hHsu@zj{S5)7BHGvk%7W^O+34MH2GTF4ua@3^!=IIEFr35vcy_?VP$t#Gt$} z#q#KDV;v31F%np+7L{Us_*GkK&8pfs;j+8qf(Ib%p`FvqP}84o@uiF&rqlC~BKG12 z9)-a;81uS!SP+rh`4WE_6Tv)(_D>Of<`cw0Me3~94qfQ{?=Y~MaT%xa>XOaj-FW#K3iv~;C1<7x z8kYueSb&FtwMHmYP1#6;33 zdp~HTetd?{r$}|gAB<%5${<{SWZk!~@s0vyA~@g&S1Emyh?!yIpfyPOzieB{`@C6G zAv!=dYKjldT6iwEMF|mXsO}_WQy1 z;=-ag!1RoG^wQs;Z7qlbA*bUWvqhf7iOoUHaPqDwioW!p!kv8{88!5ui{^DPf!KDh zFp@(47e<_6BX#4`v9*g;H3>;n)lt-GYckz0G0lC&TLPjOa}2O?PBoy>^|#MN@Up8v zQt)mUgLU!GbAf%Yk&7yM&sn6q zQ;1TBKzljzi&xuCf>;=xxA0+ul>ZJN*BFBzKh*s8J&5!K@AV(6Ojv+_pVxVx8ci;{ z8_pSg{!N)RLT|^}Cp{Z^?Ls6#2kDIdcOu$KO4j3M%RNCFmeB-<#lqMs6h;3ZY8PI; zT++N^2d}b~&X>3N4F6lrG;n*pIfi)*M`L8@{wC7Ba~3K1GdB@DB0b-M5R_bp~%M?yYSC`ZpckN7tju++~bI6bT>X<&Jy|EDmL2|p^f5oLt*2<0es$0zKjg{ zjE?Oi+Y#h*b~zCDzrRTZ3i#YR?T-oL%vTs=nz4*bbkak?k)^EdZ|-QUJv^?*o({eT z$8oL!r5@}#H}s+q%BWZp1c28{tzdoK^$R|9C`_&JPBiu0c^d|eMy{Z26s9)QkHX-&$&Imfoh90K|{+Kr&)nIXq|tQp!-tW zD>G=J_N_Uv^6>r9)!6swkc@}5LHo2lyUrwRV4rz6GaaCBPp2|HX(n!_B;To|bpJ{j z8CLq!x+)G8L%lXB?5(KNHviP*1Kr1yAV@{d-WA4#jXK;I_oWT5<&nU}oFDpMtxcoLo_S?WzPgjjA!7 ziU1cN+^Eyl4H3m#v5%=Z=GR++z|zBqj5ti;bnn}2ENWp2=en_O9PCslD|Y`N2iC-I zvWmi7V|brgpo5L&nge{I+uq19CxA9=Vo4koMU{QkRYa(!gCFSfFt!mqiOO}dTw?iK zAl+TjIc_{_^m1j64 zwmBz{F0=VFYTLu2G4Eihh%@ZwCkEjMV7aL-El@*1mz5kK3qXE~;X;bjSnnI4r(CKQ zR4~m)Z~HJa#8gi8<0fH(z1{{Ca(IU7@((2W81=$?J|lE{X?q(f*&dXK^Abz*DE{xZ zyjuZgML?-^p=r?P@8%@9S?`|FpD_pv2MAdDU9lRUmNKGpp@S-pooZ^MQs0s19o{)1 z04mc1nIO00%c@4=?sStF`la&ovAYB9P ztE8LM9l13 zp^yP01i?PtH=Snz>#wH=w6Rc#5E3^L-$WR@jQ9%qlnn6h@htxHXp+2Kp8Wh7m^MLcVVt{JS-Y8X({mAA+X z;MJZOQ=tG@1cf&xYir zl~WFF#A($t{uSl-=P7*wIj6ii0O9+TiJ=G!ST8)BxFdn3m-_I>GR=zhwbgXOW+^^NVy%QqAsFz{GNpk@4FTu&xgviuP*&o^%!aQ3ZcGy zr*4W9B$P2r*$Qt6`iQNk-?%qhl;GYD@0 zoXLtT9C8)Y0=qrylX><36067F0DqD)(w7ioYBXgl2QS#kc3B$W<%q^Q^t(2M=>3J< zl=3}W+5At$s-4Bpa_4eCLSv_7Axcd_AJhCB>$`}v^_|G8@O%?r4SSi`u4U7_(4Hm+ zmhJ}Rj-m_c0zWD{e=jqaZ^A4l`wGF85OpN?0k9yli6kq28DSSEP2Lw#-Zxl3ys5@@ zAn}uHL*WvW0D@^&gL-&a^1ZyQA3Taw@BYMpEf^V@+N2{(;Noh|^5Xo=!u72nGNxHN z6cs?JmcvEzOVo#0DvZ>d5B~Rio|8rC?KQ&LuiC#*~*nc>gq_5X#_G|`=z7w48jabeA50D`Tar12vds?RhKK;_&jDS7?< zlkfq5t*eOIBf&qL_f@zw7s@`C>NQ*-$&p zVOPAIthCP@w-(wSnwFSsaC|Wc^@(MC$;e&HSrXE|DBX?Dz5fejj5d^NXXiaeABN`W z`1E$p{sxU<`a|Sd6Z%_W6TtDoUc2DZ^(W!s$Xtw;k31^?#{UP|0?a zoI0tKm*^5Cv+-G%a-W&Q8)7a!47Tt3s^O13Q4Cx1*@yCEeQNW%*e%IlwU35 z^@Sor9g_Pt5Gfkj;TKvWd56pf@X2Z?((L+DO!cH`^GGA`YkjgNXxV_@e`N8AM&IH$ zIYvYQ$Tn}t@0ku3&^K^C#mP*!snL7@4ga6tX=$1tgEtqm+Urea(eXL&}u zy>L34&Efd~2~x&qPlJy*6n8SlWj~ePQ(|Or*m=9UDD5GoSXl1T zijIAV08V+b@G!j(+GNrdScOA4jZZW;Z3}Lm>YIHj*N+ zpXj$EPw~P4pS-Sxh%yX$445nxBu9eQ`T{Vgp3jLeCwfC53q75pmmZGmqan_G-Ust# zzAfwDM;gKqkU_ZC2t-c;#rd0j+)bJ!uh5U?1Ua=-SX6#k++`5N0CU#fB6Xh4xl5A4 zI4Vn*7@J%pC8xf?!b1;Rl}Zseo7+qD`bk)I@pt1l+~ktlXldZ)iA=^BGv)AhkV?bF zdoz2l`gh1&pGN#HW0%AeH=zd`7|v=)Uo$U(q~({N${UyEO1dS;=8k*bc{o_xY#sZ@ z=iC-kj@nKYY&#GY#~5dNK_(Ur||j`A%BXT2%2Ryh%$rZ^5T) z=+Z_$*A@8itXHtFSFGCplO*SNOzn-I2#{}D{;a?EYjLV7v!(D)>JLM||4ND?4=ss) z)%@$rq@c=LQc;y_->-d)G_h*?C`##^X|Uuhtvg6^#V4V`jMgm{4>)>vtDrm6P%&D* zUoRKq1_Q|R&107P;M$wnhsB*x%FzjaqMx#Q_lq^KHCR!xplYFo-j_j<^pb~z1ctqy zjd0c`zEH=mG^m#~u@AqeczZa-moyR)P@bha*%MhzN}x{6`;LUKY-2jTxgy@)!#>wm zyUB06jU?Wn1WV-PLguLgcT{FaE zDCl0Bf6*``5@ZSgmGvbcMfKjFr~ucRja)}%F$-k4Zass_LS8$(G>og|c{GZ;{%8uP z;2_GW4L-{)R+Z&GsP6sMDfSEyzX?MG(7W`{zY2p-;}_W;&<^kKW3Pi3$v!dreBaNy zYTAC)sEJWh*LA%s!6Yq9Vevm@Q%D0!30|l^qDE7rf4DQtpPAHbZvjuYF5Oq6 zeGB-cb@6L_ZGV~OnfX5Gb+uTKdyRBgG!hJbYd3bD42@tpBLj;GHoQMd)*26Xf|DE5 z$q~acV-hK2iQ7DKF}`o)Wo~tNwjg1qlaEHPL=~nB4;+c+USG$=8lf~n8XXr321M6% zJ>@i%s2sK#4bo(uR7Ni?RA-@!n^e_%UWGNzThaTw6>ZCs!i1Ip@ zsREf8W$f|_VuC&HkqW88wI6SDNkWQda*U8D703bvzw9fV`qGeLr<&ZHF3D}IRcsxW zqpuMCyQg26S&gY^CUl{gRQBa1TOA$_G3x3csSd=>V*S=Z!XilZHKllzSJcv_t@2P6 zhQ+bGZK$Ek_0P)y>_bmuDuaE~>y2<$eCt1THr9&H=Yk+IB7F9t`IoLj6aV5^Z=wOv z!H%U(rrna$5r$fxQ^LD^Teca|Yz9O9a2KU0_?fQE18tyL{6mrv90i)VU1^pu<5O@Z zBP_p~EYZXW`zh5a?4Hn_(aTASG9hzcU@>$~*KrV*06$7t-8gzVpOo;71f89xzj6uq z)U>7O@6Hbna`O<7AAM4h}}v8;1;0qkWu3cB9~QF zP^K$}f4Ebg02qfY(RS6@(r0U)z z-oe+N@==%aOh}xxO6RQcp-A?jTp3(In@Wp=757Pzsy_OmC_LUx5 z-oLBosf+=;tCw4T5ezKHvUHP366Uxuzeq81x8p{TLYO=5G1(F;1}${BAWXoXaC%1B zLRHR@F<6AQjOU^2Xa%`C3m7gvke?RRCt?~ zAF@MbjtPVcc)pMTT>^r?v_3a>b(w-`%uLtW^q>#_WKNIRm;!|<`bUfssKwX98NIUP z(y9VMJ~6eOI-xwx{%?UNiDWzt`W|y{jh1twB>nBA_Rm-0d@r@4$DJZ zCF^jZ;TvdNnNpQ^^cSF6#@5t{L3sLis9CA*jD1!_+L^o7&EDS^Zs7V=ZuYTrO$VgI z(rUUZ{`Um}0eEG-`IkrMtWK+JncbZpzM$hY!#%D3PPV|t@AwXOpG#H5v-#qu2qkUK z@urOV7Y~n@n#PO3$KBHipwF_{eRC^-wng#!+O_V%NWfeivUC zuBvxjXKFBbXygn|pWbtDzwkqY9_R7Moyg;)zK$5eP#bV=tk&Cnp|chi=d>ydglboa z4!p+0{n&tDjg4<;P{kW3=cuP^u^z^0^_j=m=C0#dF;GN$-Q4 z-jnRXtBC{|uA1CLY$@OeCR{n!PhPo>G#Ev>iK;0}DE@BtMm0BT3vz zMruRBm900`?0&w%VSc3t#} z@!A>Sf3tg!ic$w>S1$sO!PX9maSw25-O9!a#DQ^S^Puc*{e7FJ9gEV>6h=Fn_wOsa zE}=tgjpGd=F}UqB{60h;6CkD4lZ-NW-0L5+YrDfBK(p&&t|)Wo2sdn+y$8zH5V!WQ z-ID_4Qsi^O)8luPoF5dJzy5&q`0RZwv*$BJL++oPTS`_8OD)@ps9&0}d7F|G zM>c}#Gt&$&aQUZiWeCnXFG2rPs|@$-ZZ^ayq-OfKb%FQl*%h$^#gMVWD)U8r1r=`H zx}U?;O@V{O0>s8N@Gky%QdQT6u|!fK?n6_^`pswZ)Wf%)&+`Y&^v@PLH6w8Au27$) z8ZQqrmi+;!ZcUP7l|9Xi1Mss<)V(&8SLj|CSoI{P!^a=H{_>B%E{0V~#mPUayoYy1 zzDy^Hxjw#>UeJi*m)4}i%<&eU{*wbin{6#Q#XH~@svwYFR}9O-4C%UV>mt1mMf}Bl zkdc3SJ7Gd$vG0ahd#+uZ2WG2Bx38d=pk;L0LVNqX0-t#Z+dXMc~JI34^s&&`-hJ zpOwA_9-b+Ui*+h{Tb|{i3p5MoeqBrO za}Qa@gy2_ccv6t04WQgkix%!ErGEM;p9LR~M)l(eyffFeiN>Yf zzr;z$G}zRJC3tJEnBgSBjRUSnTgPMQ`?bi9=_lHH?-drTcOaA-oAWW$s5j83(=8L$ z`7HGwUVU@hDft*5)a#RXQy3AdQ9~(20#$)3j&`#N~0dmoy9^&gTSzKY?(>_$;u%?Jjw$}C*wwZ46wwoqCmLdGPwVU5t2 zd7T0_iu$`wN|~O7Q<+aCzH+_E%1LUl zx*k70Ovi-gKhnLq-AHw5>zrJFxngepuefQmKbd4jouaVoJe2sKYN$izQm673Lqij7 zzNEJ->|R?Yl6)y?#da2visLlBaR^KQ6PmEVB9Hbs(aOKfj@pAwQ&52nm5u;?MKt{$ z?ODECf&#AhH!1U1n1iR2!ajcoP0RB?i+lR?lTV|o5q8M`Gq)i0!Cud6DUU+{SL#E9 zpuhA}ifWqM>+6?Jldg(=B~tF1pAEXJn%kG&OX7~2*lgEjqg-7b#=I!Q2@}~v%EENd z^W9ta)|S_F*U1f38Di)WL9o)1L*p|V{b|pBYlU#x_KZ3R+u$I!>wow(N{_q}YAJ;lsoA5t;z!JR!djYe0ZjYRoB&a$@KDk>;vc?fr_f(!U*@38 zd{FgfVM#Aa0Jz;?GG|R~`o5?)x>zZk7&E<^KL)&ay%~*Mh03>f-EAeDHT;KWg;h(X zF)k_y{05iA)qzA1i0M-5=x|UgwEgnB5l(lP6)?} z4xZgIzj_YAFMhu-U=U}ORB5k-1a0023NAMEj6KB3!QT=>+)o=k4mh?`l|P9-*k7{P?s)7D-W z7aY)zUch_TOA*m+8mm+Whs%kIn2fl$E4b4}sP~nNg&noqt?5UDBpo{D!HSqwT8xLLH^KH80iW zJyIezBvM$}RTLtb4QE9hQ0!n>Y3z6Mtx;k5!>lrsTSs{$XhR}KTeWCskfs)q7q7eZ z$xojh4&1gZx)xl-A?!xMH3g=sAgc-0iQFJs<21unP0WYtjg@NYKD!An^RNZNf5yh8 z-Y@9qTqX- zpInk!>xT1u?Uwb!1JBZ*zjR)Hp0=-8O31`FBXAYLpA~4P?30fn&nWD)NB7}+=sj?< z`vyH8y+sr-S!w(;_fY>^{axSSnJiP2ek)X_72_Jwbs?v~xyg5H(**a03wE{O`4nW| z@>*vV{A!IB^-Mi4CLZQRbhmoRS2;wj#3GppMtyr*QLw#1T)`H z4(zRue`8ST3I_+oFmT5Iuv?pD1pm|+MaM6d{Y*)ab72scrpc7r%Z`I#kD*Z~^9)lp z#28_E(-d9IQ8rwqkZom?tz*so!_k*_g?-)cX4S9yF+0;hr8}ZZ<+zEZnm91e@AM`> zJ}WJT!rqjf<-+OxryvcTzO$}}CzluV#!dn1r-QSX+tY-gnU~5JulvM~S}782eTAV5 z?qPNxjV6f1zdrY?_lBK5e)pOlzV@*YQMv^894nRbWQXPYkElNLa)t4#!p)}MY;uX2YkMb(3eCju zQ%gJM8%$Gn41KjC@0B1C`~FV4@lqT|Zo@I@LSrh!5&S0BC3qow_NjOAqGA$nny?;MX z^t$i*1VM2xQ$fl!QPx|0+-K&&Yv_3C#9$lhU3Ocdj@rm21`q9vjW_aEA-o@h?9}Ok zayJQp(P9M^>Q4Gdl-S93>D3j=3>H*VEX)s{1#3?2+YX2q5VJ*=`Nezu%!6R6Br@r6 zMmN2azlDBV|LA}m1O^6a?SUFtN4+Y?Uy<5uDq+hj;hWe1<`) z7<6w5fIALEU?$)TGH{P40TU>0becAx0nPY^y>+^KL!|fqpWv0gFDUX5L7`LFNN$F~ zim(z64I296f&W423d7H#xG>CH)L;VPe&H=~6K~76&Bm3BnP)NF>>+-^K;MUAXWRLp zqEJC*Wp?LFJ*6I_5>$|mPTp1d#I+SGIx!dz2Rik78wUkgP4LS$o+oB_b3>dTlM`35 zw`ehpbB=nOkG?WtKCO^6w9b;e6`Fb8clA(=I5vwLMV>8U?=ukmM*M8K%vdw|trW97 zr-6Z32L;glAv6y$BG-He8Hnf2{5tTKWeG&&G~c*4q$Gs5to(q9$6<{&pnPS%+{I9I zMd0#p7m`T;^4SB|CFxBXeXx}!#oQ#v1n3QeoF$W-+Ks0Jr%_&a;-&Y9x?Jhb?W&Uu z#r&OCrOqxocGZ7f+e@Wxv#L=#Jse-l*WKuqO5-JR;+NkUy>M3n6&v3v4Ts^OK;3GW zbVPGIpdHFFslEPuZ&PdhbY)JAPUAi|V-2gbp0wON-k#`mKCNnqo_L7;Da@MPSj=`Z zn~GU5?35N#Lut@0Izj_o0pfGsnmRph35cxC**N?2j9RudHn;ld5JwM;|4vQ^210$c z+&j7@ZCkOs)am>fW9;$74(4-H`sMd#_jF6W0dN%i((6m93MM->S3SS@&KVFoILi9* zKiGj|c_ZY33;R9N5z4SIwULsshFP2V^6WGwIm-x%=q zIE3Dm(&zo)_#*lVq`{i*K;OI`v`Nn$ztzVrLABRDLPe!#Up(FQS3}n6&w}I-sub;N zvs*pJWH{+|ctb(#!xnsGFX_+qQlJp~j#fL>uo}z*@nj!3>tGhPE@eE!CwDY_czfsb zYPl;eOevMlvqGRAQN@Z?L?>p)?4l%NK--b4k+)?&4c|7QynZ0B_7pj+D~@|u{zPCo zHL+c6%tsh~@gr~ObE$5vcCSU{+VuTx*OXTK7h)4n=LuK+X^D7IEH=D6p_6rs6Lb%~ z16KyZt!{F7EuDI9ML+n*fQD6oe?)34YOE%{weQ2EzKH##&^6sk&vDEzw#mvrQ{0Jf zfJcL;3*^m+#Yhi|9dPHwLYllmXi2(KmE9L`W>eg+r&msCdS^J^N3htJiMo2`dQn7B z*y-{qVek(sB?0cX|8W5X ze@Vcj*= z#*QAWGB5blG}Hy86?7OB`I3uIOMj2C04%?bs(iQKDJQ6y-|_46dhFl&w8f)wp>>IS z=8QTyrY)HNX>riK(A)9)ky5$Z`5>Wc|5D-nLI%-gHb7`LCtE_yM;z_VOg&%atVf_R z7qrX!t0+FC7w@@V5te#;_(X_RRjTUKeN-Ku*8t}aBR0jrh1afh9ZVIy$1B;SsD#Z%|2zuA*&%Y5-4cC1r4VC_$*k#r4W{KIH(&LodM?Qxeq{C_I~bKp@(w8vz2of38n#t zXi8p13ct_aHWE-@=B~5?mtv8lUMyb;ZXexxU^boUjbxjritOo-duM1rO|5vum3HKI zvqrLz1Cs@P_0i$xF0q>l$6kY#U{`&9wSA4umc7{gkv4;WlvaIz0-yGz$spw$Ul%H9 zyly^WFj71vG~3Rn3tMsl4k)o5wVzj?PdEqpsSs-FDUUu9-dB6fv&Fyd+*vQi`QZU{t9xy~T?^_|1{{!n{V)#S{HK`s8j*VQL8eDvG z*0D+&G1MHUwYAV3FouWzaZdMOKb*PO!Yi0cK2{3(BG#%=uGPM4e_sh%z6h*zX6!eq zy7cpR58et8Z@kJt6kD$&z=pdPnsFMg{e&;U@9@oC!=jJ*&2r)xt3q2Hy7%ENB}1-`W7C8I>hW;G7aDHA4a$I^6*p zytA!WKE!G}%K=zY>nwc_qaV$v(aM3+cdr$LgWHHY@aaDlY&hDr1aGW0;pFr>tk|yq zT9DQecM=;--d%O>8Thjc({nP>jFDuPUdI(+AsIvBjOtk;->UsCk#x;}YDYBGag&A+ zv5!?F9mDY_Bb~8C>TNRr=IVLZ;2SBu99ktgCJdaqw&;TI(`R>N;fSPHP1s9$ZuiPA zLOxaF6eoCbm;(sco>5=nL*M_fd}YH@8Mr{ct|9d`gEw+@r0=_*>E1Ou6zFQYx& zXomRF-<0VM6-M5&Mrl4$*Q&O7@BHbZrf!dI|m!g8AP;{%;h#`QG^ zZ+~_K2wRrVH|U~6?;AQGKXsM{3&xRJ!;lR@?;8-eJgIN+y>?HRT2cnidZ|tczq6zE z@ZQT}+G3(9rxPRlbNs~Rw)gj=o_t5c`UzJKTby&qnt5|#5tmnq>V1zy%oM6lEJ=~K zqlVQ7zK>0=86CSLX{#Rh5yv{^5~yd%j^|TTQ@6fdCGy(-P2EcKQt#URvHP=JvW4Xm zS=l{gc}Fi9>Goe{g#5^926Sr3rVU?}>C*1~>)&r?IiA~GWJ6OPD z#o9YcurNlKOxRlU3kyX99P)vMICuC!y{94q{ERT&AMp#(2iVnYToGb`I5(4%~w` zw#;`%J1B)!?!+cUM7qT{r|>dWDLs<&>G(Y9ZKVRf zjtg5IjWvDj{wRytMYg;O?`uW5amcKc#+))FeFK4Ne{x3&}O6Ewdz~Ck*G>LLO|BzQ1o?%NvzD78#|tM+5Mb9F z^5pr@R9}czoO#HOb9v?vsJ1OdBh2@vZ(uYz+!N>W3E9>bu|sku8W(r*wcFm~g&+yz z&SV9)1Pb-HR4wqaAF6GL$R{Qw$UGv_!CDn9xd3*WNnG>WiWGy9AnT3@(sx_S184=O zVOeLp3AIKiJ3$>M2VYT)JJm+ID^G7rxY8-yyvFPcTi&Osgegt;83#|4SEX}#82)|< z2$T@S>k?)-Ef2TL^Sr1ldKbC=rs}m3iA(ITQ85pTOGVcJJp$~(eowIyN#6S+fW>#d+JqqNY z-)U!#)VY&VwE;vH3GR%aYZ&q^?l8l(X7<5UnmmSN7u&FX>;61bFgacI%Egy0n+eqi zv&3@86fOuMGJb%Rj4mI7)$!=vy*^}Y6z%uB5;BTEnZFcP)Y#@mU z-sl-T$1SrcIx)~UE}X!&!Ny8FxI zT)}d^xt06lDMH$K449xHWO$-(JJ~=1q5?~>!;!*ET;0{6bhpIh)7&NQdDGE-ctFNF z>UriRSzHMrX2CDQ9p;`3=`UM$Gu$L(8ecP&&#cZ8UK~;XBte!XZqn2>wvT@)Iib&- zHJAmJ46MDVmRxG`^xs6UsZ{7*-p{uh;^73zfa?)c3o~Z5d3`3R-pF2E*~ai~6ZUk; zye51tSkrnd$^kH9Q}JwMm^)f3T*y_ACs>%h7l zo3o#4q5)ZADOvh!jxqTVZ=;^KR4nfIM*u4>=z%)hd8>@8KhvD#8Pk~WKI?Y^WH@7+ zatX!R3k!0clAmK+!vm)2;Z1R-?*}zw!rui9o7xga*3rsa)VF8qW%BjHZ3aATaUeK7 zsgm6ul6YJ}%?_@(-d0T3G4y$CwLE<1Ng~(*cSNV8WyP+7Sj!JwR`Ucg41Lu_3yM1! z6}8yY&I~vYT~+(#Fux=}?gwbUovgf^ewGtq@GO7FOvqC+Zqm<@K~lat@p8M9{)SqTQ-zE@iOAdGr4FXx)O|Nff5!~8$iBL?KycN3$-PR zbc)ZMEFLT1ww&Y4{)H!(CH5!9_Szvm9%;5XKFT7q=*K7<*>yp;_GXxe-5 zR+(_oNp;DTVmDp?cCADAx9?3G?>lFkb9I02$(}a%-pq!Rf$LhmoBJ?%@0Hixr@n@7@%X&$MD+xX?jbdKe&&M|t3Tx` zx5ikFDqK!!QQcWQ_aEV{h0I$kNB8HkL~B&%nMIXHwmrEk=A-%2QVO7}s*fT7mb1I- zcy>RiSv?RqcD6iq8D$4z6H~}#nnfN`?9m659|FHjWke9)&w)>jBr;X6%f~^(!JY%E z@0P=8(I|OI4Jo?Z?JBc3IF2H;O6ZKI8p^0?s~F6G;shdxMx3Y1P4eg)3ica%>?*(3 z#`j>v#DuaGeB=z&Iy0F5sH%ROKsNCqX8VXtR@S_V$$3*>M`Bf+9|>}97W%E3OjXl3 zd0=mrSui4GM4QTXWys&W?eik$4pU#V`f2!r9VUnvcs4Nre&mAS(VLILL9#ROgj!8Z zG9+mzwY6EL!`DcLgxXf#?vcQO2&Gt8z1Z6!nRK-)q=q~E<4Ln^W6#XI?q%Z?-*mM2 zv(jC?WQVtOYPRk*h3iHqSmvu z^r;>@WcVmG1N8|a2n@(W+^}v_GrsK`ogj=gQ02Yv+g0QO#VE4&W$2e)5XiZ(YUzr?biGNz2CmDpj>5(Ln zz}9cG#A+)n`LZF?{j@Z*! zE~sF=Ld6Z?amO@K(0RV-A|$B;zK1`Kp+gHr}}PH5HdjXH5q$90eIGrs%UmSc#Q7p^duH zg(D-*!YeOt#-UXcpZ*Ie6dYaL>9y6ngk7R$|G+LiWB8Pi4SJHcU>7$V`glC7GNm!B zgIr(XT(3nIH@te2x6!Xd%r_q)eeu0cRlOFUQ_Vi>adL{enX#evv^(K`?)*Z~OZl0J z00?%#Cx3E(7Tl&JZFl~hS(e|zvuc;*pX#5g7vm3wgS;}|$AX2_9xFX4+gH~$qywK+ zlrK2Qndg5+x;ZpGv!G&;CW~TnFokDTp`aQ&Y_H3|Hb%8lD61zqOjm`BjE5*ih~rR1 z)UqvNN%WgnvO1tkh|mM%EbcqQ;Qd=&#WEWung!&Lq}3-U3U7ing%KT#Jw%faZYIu+ zk`PN^NgPZ-8@E}mVvxBat%6s_M<#La9^F;FrGC50^=YXN?>mN`$hXb5@@MHD99x9g>9iMP5dYZ-5Y0(EI>0 z%p4F-25|FyK{tbSSPd+VqU5gbtG`Dan8=Ovq_9K*HAsug@!lh|T4?})Ty zITc_#c{TC6S9Ks`*vhO$9Xt-$-&D6HJJKP*l5Ilt0c#Ahxo^ zs+F#)rpzdcFVD}zOy90{p!$Uov|!p6tF}*CFVxlX4z)f-@t6;r{>Hn`aJs>gMB0j-5sR`5cH$|btt)e2@P1i%8Cyb*Xbi@k4 zO|HEc=n`cl%v1%hZU*?_eUJ~EBUe0nAaR%@m z_l957e5h{<{9&+vO%?+9h*M{0cl1jBb+>(f+(8-lFG4bJVSKv8c+}~nqhC5mY=Gr= zXG?o!8R;$o6q|3k8tO5Dn82~Gn7~PYcSXlZjhp#b2&(S4Kl`?_*z6h`orZA>g5?ge zT~CigFu`+Ys(TA+7s^i1UOCBkuRr*7w(Pqy#4pZ%n}-9<3Hat7>C&dx&)mMRjzdEz z`Z6E`G1mLF4zS0u`o^l@6Xd{i&1FXRE-a6Xspggd$a8#WgeeFPqdK*h+$#8xt;+`c zk|j>6a>-t0_C@eW+s1*nY_69gY|aKrrK%V%3!%n08)UJZEDd(F7yXnhg@gDMl-A=+ zI7as-M$eD=)OcNu4!z(Vmq%~+X!j`dV7C`8fa}e$wMy|3LK5p)wCr$=_4eQn4T(AT z2fJ^rB7ne{%7Do54`Y^En;eTvd%^J`a)<(=Ask3GW~Q`eAWBVsRwIYSFBRPE;)snf z??bFAA*xob+AE@1&EN|Jk0;3*#nox`<${xiUF48eMEuQAG!}n^MKBPn2_Qpo3}@`< z;~{t0SMwZI;`*`O?a+n76-;WQ+{4eoi}#`NaBZmID?;F)V>6E&U57HYBTpuM13XZM z=8G$Q{cyJvn{R>W7mgl(Yxyx75&#JxZJQW?!?>A$U0!{QYHS0318{QP4kGE{rF?@o zs-5~>>I|+)ZusZx5HFtrj*o@w#tlfR8U-zI0Yrw%R`_qwF6@4c87Wk(y3N`FJW!24 zSYQh7@iBIWgz@bwTLqE_RdL(3XTEs}mG=6yMfq*UM#*<1kdbPJddwlTda zmnkX-9q2hRnYRf;|1pdpbC>t?(YR>Py>B$rT!rTnhrjuCTaRFDf(ZfUy&6H$_+030 zpjZ78Z@_{^T!I4;w#OP(u^km!f|ye)m|o z6MTziCIp~u!g?d#90_(HdEc@~Xdzm5JJr{li9BM8R1@+M_+3e62(%&JDvM8MYrj3F z7U*uE%O@{C5kPJ}8_TWj=x7mP__u)yHfzwMZ}QK6V5zenejQLV%g= zu9#{I^Sb_W+-8hai@3y-UI3eM1(U*U9&P=apXwBv4Bn2sXy2_$J8gD-XjnrJJZSNA z8L8q@F#+I1OVk|5p>+W<$WWe)WqvAHjIjG~xNzAu6DzMV806Ia@^{ERYq>vx98Gg9V;j7^X|?-KxszM86jO4esuz{ZwDzlC zsuY7)KRBFjd?sL>5B}&W3&Zc#YNf~Y`^yKfqpK|3zo;(3@8iD-5_bM}Y?bVywBYDf zw{{>FfAFPTk0W(FRTirK5noc4Q~ zPj)p)s>PV909nj8NR&{fqz1^k^({c7F?JUZ1*ySSDHh=1^GKEVC)cwBM72JTwmBnA zmF0E^OpjX9!iIBikWPmji5W86Jfb@~@ez!z`Cow6Z@li~nx6dwprQI#L&Bit__fRV zoW&s5Iw520)@La3X^~nKl$fcejm#(tI?WZ|8!Ku?=e=5Nk&>~Pdg5xyV|X(+u)p@T z61Z~?yR%-hef`kuh%Kj9_NGl~keRQRZS`WKj`;uG#0jaB?diTh5V$`%^}VCx>&)01-1U2^ zSIObOz|)$1x~=Nd+HRTA*flOaxN!B0&9O7~3eSmtBC+4X)!Hlwta!rd@d98_fWCz` zt*uA91D46BUBwmo!(Ps`8j(#wa?gqL_{8IY@n&$J>^cB{65~EcdAGFL>Tb|Ngzmh$ zuQ%z1QG{YFCz|45#xF~=`m{QB$Q)RLReV?K}dW_U+ir)BT#>=($mYq%z_ zFYiTgP}yN?fie4M`c(%&pSpB}R5_}5T-#jP3lEfStfXrdkdVh|VP&9mxj+dnps(>* zIl_0V7zkr?K08s#l4_@Y(()LtzTjNrFzDc8*1V3TK*)esMgtK)nD1fQ%?0{TKMiNl zpJpYwepc4nB|tbmw@aWkIIWRRC^pt;f0L^3OSkeQ1rwri{!q6|sdM>8rckah!i%!d zksSCHdxZ4eaSqVq93-!Yva9K;+{y$psyO>4T~=u{uaE_s z&~%&TK~$II2PfF=eA{lM;y7}^f25F^QMwXN+f4rYzjHzN=QCVBp;c%r!4OTi^%nc=ly=lq#q&3=T=zh0Uu|~I6^_^=(=Krb>rr<&0}e@#;I%gF+Ce{xXbgl^4Z~b)GyOzcn#TDw^`$_ z+R6!x+*k&Hof5FVqU{%b;_HXyS0?Ahe7#N zpcSOIZCn>+7xw>x8yqO$@Ihb$qd~Mtt_{>c{^a%H;fuy$D}8fvx?lIF4u`lYE{+at zy(AC0hf=kk`O!)oVm6tlDDG@j{)tE`om)L2B5B!<&kMgtBF%^>f$BM!EVVqOtLfhU zUQVCQ!33m&lQ1`(*u|bM4-PQUp-#Z%C#si4vk5gez{yWj}9?Vmf&YR;J zCEl1NsxtF&kP^sxDRWiplTFE-eIr9&Vb)1pcqaD3I8X>eS;f_nmTbYMR<1psSuY|+ zs^2d4;?qSQb$~Zl0b_P#{zB7c(*vxX$f_n+Sh-iEyP3{7<0a+vU@z9c?B3vJdQqN`C7U$lO@&b{n@QfmWT#!`QoaclgVvYEGuE_h&^ zqiA#Hf`32i<+(jTDBdJ3tdzf-|8BkOd~Dei2YoEN$LANyLsg_B-wjJgZkeuM<=)I) z>gY4@uWEEgcO4o4`B0ZhgxKg|XT!R#H76vtN{wC^9vsOx`#|arU8jZ1Zv%CB4-lil z1r+H}AuG!0jur zxow`>)A?v$M~R*yp3Zk^Kha-Be!!o7E`Fezdhc;iiVGf`H6szT0nC(wS-gGx`Vtwj*L|+t{d%fE<888E6aOJI*XS zqja=*9o2x!DQXwgKci$eo7H)J(0qF75ByFBMOn)&d-j~WaQy43U8M}-k4_^*SvIB6 zaOev+nHX81Q!!??8Kj6%m=8<18$G<`=7FnAso0q{l;{f zzeh9kh`gx^pDmMn-IeGoaWrLK`Qg{?Wxgt)`lxk-a@6lklg`55O5?GN5>Qnjg3J3> z>skLcXO?n4sqpFQyg;q}(M6fUDL*0gy8X8bPj}m69rgr+*Yt66O1;~^u>gmB3!Jh< z7j(ZfmC;@6|coK(^0%N$`x*mdEu1|++|;jm`~3~&2>GDE17w8qa5rbta>HW-#s zyVd}xwP1h$fw;eL_h01uxAiaj!O#ozI8DtKo)h2-$CfE*3OTXlco37!fFKKIu2Vzd zb=|*#gPq|{S&8~~87CVrBv1YVqO&L^P|y(bIW4v~u)%0&ZDi+u$ArR3J)J&u1;uoA z5(UN!06F=};r*CkL$?wX>n09swEU6&&*7$K^+KsWx zKKEmE0HPto0a(g$lzV1OKmfplXu-!DrHn<6 z|25-1F9ejfhxEY}{sQ}7)56-cPu1f-v{m#9%vJq`s{^GdJS@_f8Jfi)t z%vo~x+>h>;c52NhpN9g*smEVA5DPasplZ)a4hFuvGjd{1fU0an{Zy4H(xVjHmf*` z4O^giVDstgf&BIBM-(F0^!cTzbP)i?C0~yBXJU3HeN1EDoP#6LLG<*YUnGb%<8Nfh z7=FpRvB|=gpeBfmBpxa}*FD74GHSYiz8~T_hjRMu#RnfG^ip*0 zSMgP9F_Zw_`NQ!oBOo+}&-0Sl{tZOtrJK*ERHLV|7gLzs7~;6yusBD^VQ+~Gu6K<4 zk*6nrb_UOB*25B+6W#8XCuZ9jSxuO27LjC5J2&AUv7RkXk343EUa>P%>!I9MHcX@Y zQz7Bxq=^4SwcNB!()(=Af}qD5_3KrO#M0hKMHuUVo2J1Eqjurpxnpfs#%$|yVaxQ> zw}MO;HPdxA(fXQX5((>Ej2VYdLdDHbmm+UAC$ zd(Vw+EhA0@spg}p_?77t?6W!?T=EU%evB|8T(%8q;GcrZSPUp7`!y`p2PWJMPUyj=VVv6-3eP4rJG#P3)n`vtS)id8>d1;s^} z^XD>p<+~ItkG6F8_9}rPmnwGH;C4@nH5ZXflr!NcFIHiCZ zzmse0o3z?q)oIq~VC++E_=HgmUXBl#9DSKAkKEtrz|jZh>toV@LeY;XHaZqQMs~rd zW)|6A)dZK0T2P}LoFuPE195(B#zmFS3Ch$aZ9Z`i=!8>_L&lqIG!P)KL`E;Kms&qfICERzt1= zv1uxV*|k{XCE9OkAO_kevOe1=CeVEM$Whdrmt`SFl_wQ*Y_p5S6dPEajFUm{wVYBD z|ItbGk9JwIY|W63)nwQHdpKcM1Bb_rE-hh-ewB%%CdMpR?PRwugSyyj(%=fN_L`mH zp6&1z!p3!f?IXi1;K&cTigttOaJ3J>sowdkA2n`ObfOWD2|n75Ry0mLG%SRtwvuHm z75N8UJYq1x#`;Zvw!EE1D;u7YB-gK9ZK~UgVJ;2*v=Zh{T=?>|is~_idLv6l-8juh zzUYp1fUvqnx3B;MY`X%|ZNYYPG4pxjb#n)tyO3Yso$ZEE-bTe?{4tLn93KD19jS z2KbbECEkGRWaZ2ZGK-S|HV0nng@i$~H|7>oy<4tvg-=Q>Y0XTGhc#En#dlUIoI)?n z<{WiIrsc`oFEk}_R>S&3yzKPG+?*aL-@mlC-7PhSY3Kb@bA1K_#^zD zHl;WBlAPH*v&v2PqDo$#5A8Sr&Ix{qY}TlA6Y_EG8gyaA zk*2lYwY#^Lq)BgL+=#15WMO2-hwVrmAYFnZ2S~YO?%*+M6?NrRja+fnh01}@wsu^o zcNQk@>4WW{Z0dRO1HypOWl(E1@Pe@0{64}*RCA*j2AG>7msbYsu@tgf3-vEPH*6PiaCh@ zIV%eJZm{O)!Nh=I$C*Gf=bk(5A`z%B(RM}nn~^QQisAwrGfSe^^+l>pkAv8n(Nq~S=s^h zsl8RFWr~zB2g?}8VZOqGl{Fi)>;Di`#R3F(969W)SM=dTUOAO-VIDG_6FsW=#4gQA zJ>1vvJAMFe1kHuQwB<_Z)L_fHE#OrR7>~+8miRO#0kCkRuvLIQrr!N^y_alP(mV!ELtWm+|CEGCdAHV#!EMwbv z%m26jZwVv%JNO_HAdmeo(I57I*d|B-uqNtpJGW?wqVDiwW*A*MWY z6T+Cqd5^Ik{abIWZ4$>DDk<6k@bhZAeGuh3S)}we$-aAn_U&qWhX7ulBJ`88q${-U zsyka-uQ2QWegoQ7;os;Om{j4-d2GVoc-%Q#WjgV@C;KbX!tmV1?-T)$>uK2=W3Ijx z8W0cOX^sjXAC7ON*r>ZM9>Ae4zzqwX8lUK!fAZMUpIpS7w8J zyrtF1=&bX-7%&m|@WuIJU)0*mc&)>WE0(q67D^_u==XeL;$CyJl}h9Xv$de#*&RFV ztBC0J1S@aECN>y#)TplWdb-C=;)fA>tv$O*Z(E??mEjmU8T=XbNW4a#+CV4{U+QZ} zK4YU60d1({Z{Q~aD~&9g=(lvaFXU3Lsi#5eu6a!SD!>N*BD^|uM}VA3dFOT>S3Pul z8B1jC*gVHcrtZYi?U_qZ@ag%w>-qMEjQ~)9mK}?&wZKXu!RI3Hf(RtuP46(}e!27K zZ6yi7DCvq5lH&22Mrd*nf38shpODW5jnUBsAqmr~=d(bPHP{OFxZ(q;Ux4&JzKiI| zz|>q|mAq=nQ-~OhR#w%tWO`3h*QQVWmm7IfRs=glUl_}qSzD{!8kT;mXB8Kc- zaJ2RU>${4Oi#A$Gg)(fH0Opa1EGiPChL-;ds}xEMuqgu5!k?=CXmi^~s3ZS@UTD`! zo^DCIQ#)OOv(; z19Sh9(D7<+K02}!=KU7iOmQ{-_(H5F16yZ~H5cw4zCw-#d_`@^Fz2tV`tluReL;Zb zHc0iC4@6+a`Oku{kU+VvuC~Jd(Ao4kBQMddmSaH-J?@aOvQB$#aBKmK;C`&pN~f#A zPPzGexgJ51vT`F%q-#WNP_4dWXoTgSH+|^~Tr1L^MdGHL$Lhd^{cH=E!K)}CcOilC zio${JqgF8nk8fg@MRkYrIiwV?I-;CW^x002?D7sqU7d0&(4Ey0CsRdZ80}N(;Cmdq z8S%pxz6#Pxs*;@|<&^rLuLhQxa&}*o{ZKeKG@kqudNLnBAV|>2I$A>yIr(|eUK6;9 zU3Iv;q~bhAOjCS!0#e{L@D;A*<8g$|h5MKw&-$Ax3vhwK0rgUNY9Kq~a=^oB)yP3e&jr(v4>aQqMd zY&)aLEYc(1IieCtMCUaB+V5zf^Ko=WE}EAJx!&<4@nqMbFdvA(+-Y>Fs#E@jtSW*W z2y?Q}_Z?Y|feY(@CSn-wHlPPb8$cz?Dta1w=Ch&A=_Y(N8|Z%&wCd{Or879$w0&G$ zy|!hn+a-uDb2;%|>4~pAyplRE{$1@oGhSoBXgJ~O5v%NZj=z^YijP6=Ezd!i)g}G;@ZDH!6PbEg`J8_L>WKEXKh-Z?_oy4R3h~&b2t<8 zVcm3Qy@nWYSTT|$npyS+QhhKi`^BU)U6GR6k^qNUE0XV3{fWow5Ad;&*K`h|(=96p zVY`yUWAXYW5UR&qmOwS#=5l;;yCfj~7R+M6^$8nk8b#%3$X*GhYp~nEL~Cgr+o&Hr zP`a(%u)^(kbhCXe@v{<90S{<_2^?^_yGdK=0xd~$F@3#)=JWpkqQ zjzGT9&RMBH`E%K}2K$)5*hP=?&ApPBubK&1N%l24&`pvzk{FnA{dJ}G)r^l{snu$X zgv`Ew5gN#{`wnlV6#O`|e?i&r@iY_3doQ7V!pmY}Ij=}g>|%3OJW{i5+@@P(tJ_h# zay7#=JQy6F_E8GNDnEW}F-j#t!))?3{w0$5eAL4=rYd5}Fy44(tNHicQ{e3fjhT3p zIU+zPFd7?F``v!(e5D=`n7-@}c_50Z-gFm4!}smY5Rs41_FDeAsig$=UpZM5~Mz5(#<8nqtY^H+B?{&5pc77&1DnAteJn|t=;i6p}-wYqcsq6`-W zQ$938t%cXQMK{h$k89@Bb7@ebSa-#Qua6(}rXmOVcKz3IpN%!E&?8<1a1Mf}(ChYb|R(^Hl zY|ejutg6r^d-S4y^W5svL#m`plg8!&xkJi`#^K(c=Tv)qk>TZJ)J{uv6<%0MY!g6B z)7xjQm;b7eTD@H@LGvN?P37cwPNJ%9yf2v}ctHt4m_eX+zh|~DBIHl&sdrJV%Uo-j z%ybd_*~6LM+mx-#{^4>j8K}`-g@fFHRmYcCV0;%XTw@^m$h2Hc&5abH$qUU~j(a4M zj3Jsw1VU+|mm`hAnzvObBMZKK54!&O(@gOgiC?_53Wv+9r$b}&?8|9pYQ*NdH{hLy z+8#Q3x=EGk57B@tOR4i@cEyP;IG2}??m8j`H?2WEg7crj+bz>W7@QJv$x;knOc`?o z;W@y&tA>DI7y2*Nk@EA!5w?Hv>jqnT${~~QtE0IO8^UY#htz(e((?JCrj^W;*n2Uv zvDYVyyNerl&n<<=4^LW#PSbucN%~ zPO4|93n_kZ!=8{qIJF$=U@yW1Vh8fge*=$qEF%_HAana%AAaJ!-$OL}T`+}4{Wb`h zY1Gm(FZo?w$;FYj7w`Qzj^+9pWw?Xgt8$Y03(K<01;VRvp#T=^uiY-_-|5#E`~(Kq zH{I)Bw{6Gzp5dn6O-On{5L_u%27&{(o9oA$yKsZLlnx8x)uJw&DfF`$=B19Gp6lI3 zY8<#ek`b|8;zcBn=T)TslJsFBNEtBw5sni%7t#z&vg$GItK-HX#fK+WGy->-)hOYrUc8hk*>gJdT?BE%RO;#m??!`|@%eC&PQ zbFeZh>0)H)*a-Paqs^RzxQA3srsp<)P7V(_c>U8F+0w;hC&{|6B}lZ@@O{u^@Cox$ z*n`pGPb_}zN_67pq)RmLfDNWwT7y0c4&+l$uqv+EI$%7;%8GpU{Gd1Q>eD0qX`<>; zdLZBHlWGI9Z&37a3+^nih^#ix3#fjw(5J?@4?l{i5XJVhfVdD=HUt0$-p@JQZ_MPP zMK@y`M|VVq)85>u`_?l^JxsRS_}yMRu!MCA^&AsaK?wMZdDepgyV`56hSz#$cl23! znG0yZJo?mT(MvcWksaxG;k%thdjwGY)f>;ax~P{{nHF(Hrbn^Hn4>B1z;DjQ`bYy6 zgs?oB+5KG&UEp)-Jn-CeL9LiGvn4Akuz%G~%Mvq!lG+LXyRUaozkJbQT^AT@LZCww zBH+)r(++&hLjiZFE`uxCyoGxX`|FD3ip5Wgn4<=LWP1W82kP44K;=<{Jl-$jc$@W>?DSatTpR&pm}8 z=^Z_rliwaZfbA7hZFXq^^`x9oj7jpNgs9-ihTM9V&-RL=Cnew*ri%s1#sOec~WbMUR6+A#K;DJZy zY`U_W$Y$Yl?1)C~k$~}}a!%CtYCG;HY3kO8_gcXH+2C(b)^XWL6!jQ?Kk+wUtf+#^ zU1WR{$0tg$GZ~8*=Q%_!Ls#S-`ijmnh1Ot3DBB^xGY~N*q1mTq)PRu|xj{|=2w%nSjG~%W!Z!L0Z zB^#Vlt<}YZz?awg_>0*th7yHjLCVx{Q(n2HBT&^b*w7(xQ-9`mRb=_%g5+F6TaC-6 z@o{-rHsfR3L>2YywGzSYnM#5?HLeIJ!Q*Qz*qVB4(5E{NW))jfY|}ojE=LBNU;nx}4JTOP?ZD6v(C!!QVnUe7is$+O6&Y;2Fou<8tHjaQ8g#->qHc1^Ga#_W`B%%OjWYBy*K zRny|ll@n)9agT334(Kv-hi{lUeaBMCwPwIQ$7+r(d8;1$RWB^%{O6CM21Q!ZFhaQ9 z6})Z@T!Gz9RgNT;@67h;X}!~md(8tREf-hI^*i2-*#}LuodgR=zcwO8*CHNl_3J`@ z5gerOnji-ebvTp0PX9L+;ONHEJvdAI9YLvGj%G!1^WyKgv;v1;h8}B{ei~R$@`LwB zGsQ|y)dKo5IX+sl#s=+Cqc)Dnf+QjsI9OO&t{4&UfP1t1?5-3rOQ9_S{^kx7PYK$7 zSE|ySwiZwP=K(9cb((Y1^C{m#+cOuLS0=x&2Q$syMIqP-b5i^ciAR`Lwf(ZMn4V$d z|D!cvKGRktWzZ7mr!-qm=?{-Ba{AW=x>{N&K;2*kV&t;Stw=!I^IO&~laCLy~NadBClolrA@N{REA19DQr-%IR_ zbh0!At#}L4HMVs--uN+-8_34&nlBC0jOPh1Qq*|(n##cr1?V+tVjE8Z3%4ToNy2zF zWBmFrBu(bxce71?ZeKjy1|*uW`M_VaK=7YCPBYPRWPp zJH^gCFjpaDCmMFS23n^7hi11~i4(C2dvXI5LArwY_f@`hNQu%-BK0g5t^!+BkTv zyUYwzlr6L_)^ z9IU@!@9KZ;y(eOLWl`(B%a(r~s`({}t{tg8C%-dS8 zw2ac*q9^$)q{E1~xm5AVNwh~$!QH{!DTmMD&e3&%1gO$k{zlZt3oUi>zFAh}|KaN` z!{TbTMO}hB3GS{zgS&L?`HW4eb|)jOW(i!AI)*69ph zVcUsG`TpFE_l+foC|lPqsDEp*NGyAyk-psZ3SD0n2ONy6b2gvO2VLFkbOl~_{j{0p z+do}eSy)&cvUZ3H>j!?WJ-YWI4lQO7GU!T=LEOo|dwf*BNqC!rYvG_&v+SMt(K+?J ze<|}3N772cNR=Md1tyKW)&Cl+Mc^Q^~z%W|k`)h~KDc?l5>thh3mqk59u({h3So{e5N0 z6{Oa0r`C_AS@MMAh9*AQM&g&v3NZV=Z3XE6>-%ya%HVLH_VhdGx6b_;Pir*Qtm`vw@`X zU{v`)WGHa*E!P!vWksE&pT1o>B|=C0Yp&9SQKiPqjnp@Ql7=K?2C?@V``-hKQDL0I zSG&{!pJQ|D3sz}K%kaw0-i^bZ<9x{|p;r5mCQteh{9C`E?N@}^>*$gR-$!9KbR#`U zB#Yk0w|?(_P?k{uKb~*rdyBo;b`BNv2mGW=lC?`=6xCbAv{(6(@TFUpMEj9&wH`+d z#Gs_UKx$SJ8_g(%^|P8l5s7q(@g_c{?D@$x{xuE2@E$#?)@GiTWZ-xMVH5NEeq~9h zD3tAdY3f8AH!plND(|Du#7TBJ209M70N$nV9K~dqls8R-X5pn-JPB5~%=fZAwF16O zD-xRbH0IJytf=sU>4SmHXxRG!xbb?(yNc-aaPbZv@!0U&8c+|mJcL+{4*6JJpZ?AM zLK14Z0nLEO0eZ=1>Yu&!Qm0|Z&n_VYK3)8|NM;;-`kaWK1LDQ-!45y-y|0V&ZUt|` zCVc$V>|YN0JDxpR{Lp7QFmtt6leP4RuCV;Dese8Jc3rv>78^WvV!79DDBuHX7X%ib zYm;weRDHcPwO`>*4i%-X9fbAmEAyL}s60=!kHy_nS{Gcujg+yQx zk=l$^$s(if1kYsZUF;TKHS=29;(sJR#u=-=4`+$-vW)8MH`pz_NI`)pz?~5Onqs zy~J^^U4)o&N$W#~SS_J^K3W)^(8>p1U(20zce{SvJVBk}wYYim7MxOgOS#_nH|8ja zCyvHy-|@j@bDS&g#66$N9tKKV+|Zg4&T+xza*a)F9jEOM7$vcJKdyLhZh5&UUrUx@ z+=p}u@sUmi7fXA^rpg#AVnJ+qO>F;EIq;@;`(`#{0#J6McVt9bL+dsg0u z+jIr?f_BlGD!NwAcU)MJ!8x9lm39ko7Fa`RM0F3W>9HbQssx-F=oOdk_n4=*!|kOE z7{5(1wu8}cNg!5x?PQU1m#$aaxg&+aGU<1nd7ffowmEMNe>R0?D7=bsBIy4ZHEprN zPpGReBsFgX@0XW+a@FZc@ig-JsDc>EU&h_q@@^0Cv%iJd;6i$BjfI;Ll_dTQ`|wJORryJzg-WS=>JK%c<-#97y?l} z;`!2cgM0hNXm0I<6%*2X%8hUmulvzg>T<5v)TPl9?+j;H4od0a-MolUi2@mXQQ0q( z6y4iE4bA#wr#-stfORgNwebDpymDBs<)#8vMkUbZBm%xb@vsgnHI6*I`+j3W${5P= zc9o&mX2I{rwdTFj4^HmhrK5?CmX;r7IMCu6_!HHY&QpXL2h7_RXCOb#NxLti3l-u? zIEo1lI1wG9W3u*Qs2>z$o8dQHpv_=8z)ly}KesGamtm=+1zh!|S zFt_>5Od17V22`e0&FlK!(43hp3vrFVQL|3GYCrhmwM`@W-WTvaYFX0Fr3eFw;2H~$ zUPu0$-f&^C-w@}=nWt~xI&VS86@JG{o^RAPt1*pc#chbb#s#V411oEl=PHdpN%eT( z4eJzpW0U05L`?1`uyPk+9Ig26rgUZLVy^OumXdCHpIpbLkpj zu}>3B34rO@$0hcsF#1a4kZIQiv}F|NZcPfIOI@00&I0ckvt$)rv?o2u2^cZihW+r! zW9Ellr=3$hza>Ebz6HDMm78FoxzoufvO7Kpp_B>?#Np&sxMLVi)8X;)4CC7*^wmSF zMPrK;h(KF_A?X!BrnI5l?iMLVU?WHO*;1M7^Oz|#3wgD5^UEB9OF^LSizR!Ngv}Kn z8c!q9nA;yYd`C6fT&0`u4qvVWUozCi@;}*Lqs^hQM!aY~jHC(gHIfNU z-g0ykp=6S~3;|>O3V8Pg-|dsrPp1`+6)xQD(k6I(Pza{qz}xtmQmcX3Y$UTy zo$6G$(a$BH8v-`<(3Q%A>t@Cuwd3zWx#X&KRdqXiO zOvI5lo8&KE#y5#F#uMGq05U7h*2Q@{x5?9p^ocx@7;tlKWi;T7JXz@4ZisAKcR@Xs zDv>G)f#E5s=9cPf-f?RrR^&Ujd~>lmiFTmB3YYDk$OkfRLvHJje|j>`Q~*abIvQ#zV!8 z3TL~JL`BV~5U_SH*mbV<)*u?0{9DE{>z**I?bw(Z5-e{%3H=^C82&zvBdhS9R`utK zZ-PVrdyAS}a~2<7^!7-?vrkt#^_g5Z+3vHWM*a9Z8TRc+wc z&O4551h0K*^ldjBX4*+viH~Eo(eWdGF|XVNAV1%ua}0dB;JP?Yfptot&;8Seq^&Dx ze4&+)Sa9ykvy9Ynj?leNZ9o@GRwtv7@LcQ~FY${_-h`>@M^`wLx>&F4NNwX*w93_u$A?ogV;Po-=NYQs62V1`a$yTC;ur4Ky=G}5_OCo` z5;{jo*;Ff%shfqLi)g4ZBSLVA<#}gB6$nsk%F_q?ZGYO+(^Ox>?l{h95+TD_J6fUj zTCC%8O|xndIPgarml;S&iQh@;L!+R>r)A;RS0qYG-dI@3-VMRKY9H2NyDFQLPqm!& zD{YGNY_spP4NF<87gFECmQ?*1*OTstyISh2NTl*7Z7z)|^44rxet-#wo0Eq6-DRR+ zF&Z4O6#^tzTqv1^DfhFjdEj&1=x2FxR*|ILRdI{p=y6sSyTx{qZ)qEZ2)*O5Bc5ae z=>;df9Q4R4%Y(_O<8-mz!W~0gh&_8)LS`&<7*l4pc9Iz0s&(4hm!I}?1#!R`rJt36 zX19zH(0Bgp*ESVQH`N%NPU~aVLz~~16oeU0(8(Q^qW-Lhm-Y8xS0hqQwz$|Xo71t7 zA!yh=lPM4Rw{=V_EC1p{F5|1kZnXc3)#wk6VqkTf6u^KIUJoolnuUf7pT;1!!3}ZC zuD(?hU#*Pw{T5MEJy@Cw5)GY*_@aL*dqjZw!EFlX7uBYr0>P< zL{~a;S2P)R-;te6?ldb8>G`eY5$z0FZb$M#^zOGJkuG-Z3ujV}UxpvpUf{{`9_YZF zEe{wpCbVct34j*<1xU0KAI%pvsK7SZ5MA+tYsN3vICmO1C(*q){ddzmu3`jFe^cpf0tbZc(|*)&U>Y08U@L{D!| zJN4)0)N&5YdA(FHHXje_J32ZVD?E)G4RCM5K1$7f_#n zP)OBUIrMX*^w{l2)!%ikbkE^tQO*zArs4`-c^dIl$tTZfdz`tOg{%CM4D%4FDt@Cr z5MGdjpWu#d3eHPb&a9be$!P)YiHrMwP4~87>FREM-SFJ}0t?*ez3clz?q*)`n%u+3 z%$&LFZO_ufP4|*3bxKzLh2L6^R-VRXVDx}ZE=ZBMt2OfKq4Koy-C)u}CqL;*Xc@mB>?FtY!@7^~-wu+di7{QF5d=$nq;_z76q9m{Jl8Bba zGSFZ~2foW;)&fPbWU^xJo1J{bu@Sp+`TppD^Q`ZSp zWWcHGOfP@f&fs;&J?P8zVr%ng{6s5jOIS0C*YO@m`@JIWtGCtaxl(Tnd%v`rbb}g> zmQnW>N3Lep3Z|r0W5_g%HIS5=z?tAKWTS1C{1yt7MV9+F{`(~>Ai@GoaUKx^zy1nk~V%9g#La|t!&ZVn_Y`` zgAO6wkh(`{q!z>$)I*Q1h@dfdTDIpQx)gq>%8@}_JAW5B;Bp1+LsnT8osND^12lEA$6!^t$k6ODeSo(5ovkAJ3WqbUF(1#?u~}9EX?&W%FDs zjHH32XdwiRz&5f7tHRx21t;y$IWY>vqx3B^oY)stMm^69XOvt?v+a>1UQN~LLXj35 z%vd(dH`@lxh(FGHl3AG$I;aWz^}KL?$`-tgX=RFBl`>2q1 zj9_!-DA_kH11b5J3>RmF@>&D8+P|o79@Vx193!XFa}%#@)DWe$E*xS{5&{PF31wa+ z7KSQXwdirkn4KdteM~2R)3V>mo59YI27G0REzRG4f<_vQT3@K5beHfnM645N!7YFm zeBapB$b0T*7BqT>9Y))SxSNK+g(>5I;>>n;{TN>`@s+JdcK+?@3l-T3D!ZUp%8PMc+MV06j$nL*5ks zUNjPN6>BW`ls789`op5D1MwZ+(J37e!Aq6}@i&T0BLDEp{!l0>YKxKcZlOZLZ zdS4+A(Xyur7Lm>AgX3lQvB)RoV_+FsSVlP^ne+4u?GTwlaiIdcAObk=_!k=@ikZBr zwn@Gwr9Z@Q_rUhrrEP=1sVyuAEc6Kpq7o$aPnK3KIL=XXqM+{AxJ8D|C@hNYkvH;P zpVe~(8 z-KzfGOk<-WCK#E+<#bY*MP3>BL&uTVkSt?V12m{{ik=y=p*5scU`3jfW`L#Rhb`5P zBPq*s%Z*9*Gwk!};-&^%(DiGa_HIGUgi_5a>A3xv`hjT@SLyTMX}4FUe3+Ag->tqG zpzP=?ururHX!#L7kiGIDoa!*dpnu^HN})Dwq1&S$W2pO3laHB$xR!6Of#YHPsP_u* z7E}Y@J|zwqYpD1ny{hzAe`vm57yESker(hZ{YXFJo_*+ea%{9#%x@^$-x;=GZ`NWw z?;ZuUOs7RHiDq{wpmBenGjIR02c1`T;^S=jZ*InTTgf@IPj-HoK^2J%VTNB}+wpb= z@kw7F?nEU@(rU_T+Evpt(;2@yozQ-7TP{qpVk0AP9x)wCHyY;&V(_pU#k!p+2*A~1 zMbF6$)pcmRGVk0Lmyn$@Y-U3m0gAs>C)mVj_<8vQ!FUTPe3)KejVUa%JMdT>mG&(& z@%QTxeH(T%nt@a_kOD7DlmS~qjsu}&lC$(Kjw?cZvjRV}do)*Zelx#$rCvC-fyiWs z;hRQNHb$Ctd#zbw%O8)BQ+=k$LoQ=A(6#58rSBn-L2oK7M#ILoc z@8W>_RX^np5ji4pCD9V9vZC8K;ESWWJB%fsq@Rv7n;Y16ops9fG2|)WBlNh^w7xZP z*!-G$?1+ZyOAYr^LG7R;>$P1``83i&MnkOk(gqste7Yf@x~jL&Ng0q(yC0KV?=hU{ zgb?7w)dC~225}X@UhB5;4%i$`^1i(<(go}4gAN?hS)K6QT!`S`d=dD+R>CnU# zccvHquu5jz?v>)epdpds*HndX_boD8f%20%^2LwGqA(=0aWS-sg+wQo>hx_5+P*fI zH*wsxwLBtJ=Tk+AZ&?k1_lS;4x6V}TzW0m@{mQS5&H zn_aKtn5#UPqDHiu6hU*FjGoozF zjEBa&0K=X5H}?*uJ~eXwA}jvg)rD+Eo75=vCZ>|_?U#rfkS?%2EUfD{H7L}UhsPC* zfU`J%V2d)t00ZNjej!9njt#b<>^#IP_P9V-8mfqGu6Yx;PAi2UvKwOlK>>iJV?CQz zV9vRPXY3UiEjjkFWYemz)J!~kAS2ys9Cjl^BVT?4wfk(K`nk23Rme;Z{ji`{#E`I-r6P3L;oTJ-z;ccBlYY_kjmRYaTMO@q?9MY|uzy=G zgV6blxGL{Ds~)e~U;H8JQl6#m)hFV^a2I_^#nl@Q)Ex!eQ^s9=0U^@ zUu9mtG98;%!>l~a)mAQDlHqtIykXLM$62r^5qn>Z2>xxV!y`6D2AN zzDXrqmu4QSKIIF^yR3xo1VwopCzb6EKY5dS)(`0(kwzI+`pIKY zbBtqUE}4}lB#oTtDm%A*4sC|CzT*KcI5lX_A0B#DceHkc{6!bWZt%)(Pe(UCGo~ib zwR?*$gQ`pL-IJ{T&@GRn+%peZJ36s2B4+5B#bK(+_th)Y<0DQM)V{OVSjs}n;&WVNaWXr#vQQM-A@wuh&9KNZ~-Hy7co1MOqx6c$}I83tZ+KHoG_6%?4)iC<7 zQJ}%&BL^z&J#$fh7c-!XL>D$HcYZ)FD^G_>6HaqGNF6NCSM10C7Od0F%(kS% zDlShm$IcVDuigkMn8Mivxue2<$m^UbdfQJbO1GPBM59hECEJf>* zo%fcn+oY)5F`&oED;tS0@Ze$8R{{o_2=zdXPlNeZ<_!iqTJP zJjaT*K*Me`%$awk-}eELs>6*h*UREt%Qr>UW6dNctux{zM zSQ~slt0pE{r52KW_F>`~`;fPvRjHdy4>l_Ya;Lq`JU5RhRWF^9&dRYXU1A-gNiUH@ zwJLlM7u~1EhR@0!=6siv9=~H_u~@FBPXF29h)yG}96xav%vM^MfID}j)MiIbm;9CI zL+=r_lXmAzr+LHr{JmEwsZu{nhIxrX zd?c1xc1r}?p(+Tl*NFH4pz&^fc*)oF#IevX*zLQ@;sQR+YXvoxB2B&mM}`@z?w{TQ zn9Ji|N9no@BkQ!{m2ow1%KT7U2&v*7KFwk~aI>>Tb{jW07BQ%H&iiu2=Bwr$Db+bs zW_y*Yw}O2|$YPHN`bh$TN0Bes7x0JzCG?DyGomYnfW`@Z#knaZU-br;-}2R|7XW>{ zm3af(v2?{OO7lf@gvK107O~@cX;aS)bc&LCPOxIT@a=Om-ZR+9qgHo~bQBs|)d)b_ z&ZXu?f>)Hi(6dSf1E5?w=WhS_0$i!W|9MdcHD+$HaAMQsFg^80FndHwhPh@XD&32bECADRJ>-J9~i^#wWl_k+t9RbEfH~ z7hNSw29x7QIGnuX`0|wR8O}{1zWD=ndg=m;zUTE3k)z|v+a5SNY{zKepkKQO_j~OU z!cb=dQC(NHwPjaDN7#9Ezk@Zuz3oFcl}_)xTADY0GojcEgZtzm5)CxIdO4oan%4aws^Ei7-4k&UPSlbvb!zH^s$s6Jpd0-0F$C9y}*N;o2~c zT5I*j{!1_jH#(_2&GJ7bJ+YSZ>dBc~h@td(JQ`_ijbZXI{>6WqghdKVN8=`e4B+&I z9%wRso_pfnMue0HmiGmvokB#IcpyN$*wfClKdHpR8c(`g`ox94`;xemK}G^cH(rEX zZwt0#48ac9_aD6iyErZqK~>3;)t zM~;{$U0wf;z=Rm$Li_`Wk~rHj;t&A9*-va=y!K)IgTEEL0JjESWB(^0<^&Y_;&n#$ z-{eRqTZsQN`}CCx{7JXWe-lh!%{s!L(Ehgwd$JXngVZzm|A;mHbCnBp(xeXupKS4-+>r~t1xP%|Vf1vjAM5 z{$Bfo&nG5uUa*(2|HGDa(L&s@#juLXiRec+_?9)HJ16VP)gwe$9WHm`{?C|fD}L~t zZ;vGoGZk&gQ_WB@L(w*Q zg@zfzW(H^?Yf*x*4-7d#NR}f~sVP?(ov_2uk}owtc|k;LvW;Ah+7i>tKJ?{ZX`6GO zljVNxudL`ko;=krCzTqKfZJj(eXch@iBd+(;>m}09<|bjUztPn*01|dSN!QVm3dF2 zU*tcw>ah*zaX*htF|{-s_hxm8e9zg5ITjQ8EmSmdF$!rIXm||LW2>$;U9!vIsBT_~ zpU@Kp*;F|&xz<^nc}rBo4oe&};Vni4QAJ~+G|wmS-0zHzm_7_$%c-;YR3*=`TN7uy6I=?uz|PcE=A8DpVc^hMC>|wX!^{rul34J={F((ht%F-^+KW_3aV25 z3_RG(D0^f|!~``zLk*B?hLRD9KHj3kn+VPgt{#yvJKXeCk)ATV}x~M1& z*jbrND+AAAuxd;Bq*gbBB)52hN@gSmc5gf2@AnGcd;Bb_0-C8x$r`vAPVZFIrR+sY zO57BZ+`S_za(KLFSdTt!Yq2CI@2S8DR!ThYtDVZl9uss`pR_dXRpP-l@i9fkDMy+L zLlbC)xd)mx0u?@6z8u*_BKdAk*&dp&w+haMW_wxtHhA4Dc(PR{YBtG_^f(x%X3H9U zov$g%l?sjHHb=d155iv$sPiYXbT6n}c6-Rx2(KmTNyV3yD9|tvx$XZtcN3P4)SU6M z|IV*6fUaEDSad0mdt@e@se697x;(UZFVA|3SZPJw;@cwA)#Quxf-}Rx3aVm4XF0-C zIATK=7nnQwLr`dxJevzF|GgsfHbeMyd%0yfqb$pkTR$~Ud-Rz}hK%LbH|sTeUtg+H zR(v9j)_{M@MI{4>6;%E)LtmZQ%TnRsaB`&xp-A@=tjA@*gt(BqYA68wMP0H zq*Bk_m9KDJpmwpP<>Z$ynZEm5iNBOV4gD3P_Pn!Q#YU8do`FxS)loE~meGy7n|Wh` zPOOSVktZc9uCf9iE7QSm7264+kczR42VL(cQDv`^GD#n1_Nz=hClc; zwT1?%o&lw=>l!aAh1Eas{X}m;%dm`@!!Qs?lx9p|sT!RkLogh*u0?k+RsEwUOd(n6 zL;n&=moC_0E9sZNQ{rRI`U}C*dRJG`(JW6O+n9K5xsUwD@PSR`7}#gvHP?YqUL(s2 zlM~OwUDwRT#5)^STZ!o~n|A_-zjduZx(#%?jf283*-)%fJ=4?9W)X~T%3a$&2yjOfTEUqE7v? z%JxUMFAcVrx6-_3Z=d{#yiB^aa&6_Lo>tPKFaDv;CAr zvOnk3-E?ljB^0bX|Ei=T_F&?e!R3|^<{d6JZpu}*Xa1d`M|&N?UM{37yQl_r6B#(6 zZ47%rc5CT_;rj4qnl+z)<}_9c78*AloGqcZCLm@YD1itYFZX`c9;+NqPXc!iSGkI= zdbMF!6Smn}NcR->`w5v2cZRdepw2DH^JxA+xVXPjHC%}?Kk zgaw&O+@%BN#53qml|vL~n}}8}5DAxIWptnf>yH&=W&pvH^*V|Zv)%a3s*cLT&98qm z1|$#3`x7;bZ3@ILigCcmZa+uSE(j{cGb{xymsMu%2@bDsz z2X+5lhLJzE)&&0%D}?la2pYzWirCK}9s`uG(f3)?-m%X;@<7a|FfM>G#~h93MW2Em zJ*I013yia7mn(B@9n8NjF>y$sl-Q=9MkV+C{~Ghc#6qdXpGsf+`Mu!*@rTKBK*i9U z>p_TNwdPRZvU_tK&%w7!mGT*ly4(JK-9H_(8zIoHQ-)IwxA+IzvC+>nHl;i%Wk&(Lo zA|ljH=)Yrc^=Isb9<~h*kp1120Wg785y2pS?r^g&{-wMyjs6Q*`m4M!jjqCm(fR~o z6hFj&tMq>~8-}mq9Q_03`)dR+egDJ$`;QU8m}e-^b@G2(0j!|^TF59L2^fL0Z~X&~ zjjH$sV8PmiJ&9fCil4qXZwx zxLfR0R?)dPJNO(POE=p1skboPicTd5C5MU}L%0_`fI5^b5UymxutF5dJ6QQv&VS42 z@XDT6FI{wRSFlfRdB1;HlK8z0IUU_Z&ub87ES)AE*|=au(*^SZqn1yZu_(2N{Yo0o z?~oT@{x|LcqZb#rZk|JqUHq4rX^II!!5;U2O5Uoh{B={n&Y`1NGPKO(Ic?yN?R#C% z-o~o>PaV?&1kNu3W|=Qx+G55DQbmJQlB*lF;x=tAe2}vaY2~XNa>d4+8kO_sUaV5? zYTcf^Gd^nHeeJaPvyaF4?(UA0LY=*MgZyLMv<|DXu$m9H?@{X&)6l#V}>s(9h)bGKGeZ{!K%BRWiMc5o^Kmo-Q5lDNZL&*?6lv< z3){2*y44X!Da-%V9GO2_ktPqbt^DTI5YHkQq>kxOcJ4+Ft1GABVD7kvu68%OP1IZV zWW7GoYBBE3Z(_M#JyNnXBi~&Ct?f7#pr7B?iH}0UzT34tMLp=TqVFFuFHD_(d*21q zpJ15U{u#rkFo(yEoYcjy@K4mFs<-hMkOg(XW#2OX|4RO zl{^ZoNtuO%IXaunni>0Eb*>#@%9Afe13DTWHDgH6w*7r zpXJwM0{u%_si9Y#h@lP0q>k@2OZ9g%Kqq&|#}eh1EYqBjEP$JM2)^er44U6G^=L^|Eyali$cOC2j(IA+Qn4 z4g5p!%#2~Ks5tm=gAg3G45?wb6wZYuBE$R)u)gI%;Vi==_ydD0_r;#};(EYvzoOYM z%|d`x{8@&qz`cG8Hb!rePM#M;vS+%Rxv+z{GTK`bzdDJNJtvVW1!-uYhNA~E7eo%0 z9S#<7HKn&Us##A&?j8+C4`cc6(DzDY#!TH7nmQbwv)QL*B&dD%&d$o1|Gt@G4_FRc zYpn5hczA5o6{~#WdcYByk@T?3w5Jwwu4p~$f>t^le}hm_T~tzqR*J8W@Z~BVjPSw0 z5zm=87hDgI_?#03+JCqd&pcGSW;bDsCb^2Ge^3+BK62pL*?-t5F#f@R(J22yr2HjW z{liH4L#Fr(w)#V~3coG}EP_jmb2Di`b#iiU#q1zmypy_i`PdT8A6yLojdSr!`@;LC z9MAYSjG{G7xLg_mqjWuC!kApJD&Sy1h<{*RaInB%cGn+X*Z=F;N9uLs_i>E`aI23! zA_*KW{C{%^5}&GAL05%LLz5CotTLr0+}`Fp>W5VC-1#|J09!RN{5CctsFIjYDbd|X z0mma;{le$Npac_BlEqPDm)5F%o!E_35gHY^oBnky2W``mB)(XeFGt%u(J5lMW3^|!E-BQ1Mj>tdd?jz)NJVDl0s9i%|^Ht z=6|_d0C2b~wN%ElS+;9#V`-l0EHMNl!>w*8@!6g;LYDC>8?5c9&Ao6>w@<)ov+JH^ z5m9+6eh~wr1eGnvbw(0N$M$A3Sf}vqa(I>eF6+xo>-A;l^7@R`fFk{!r%fMC@M(CX zn(h0o-)cAd;8K;bD1h!VY{+~CPo1k6An(|@x)!P_vsBnhncau>oxge!&!X!vUI5K> zPHyupAK4(C9CG(b#n>~mbi z1As@covdw=(+c6eOOsWhkv*S(cZ=}kxo@z-mhgX7I+#ZPiyrp}822xF+2x54EImbH7c#+I`PaFB=9BLJ7zIUra2QPN;iG=pQru57r3Ak#k>#%WL`d)DxP6 zxLqIy0!;V^M*4l@aBu%YA;07GX!3Hi%_3(^(*X&ZIF-_Xm`<9wRFMvK1BTI*gdUkn>w zo&cv$tG!bn%_vkeD}J*>l0S5p!jDOVPYC8Qy6S{qT2XuYuVkPb*oJ$+NGpCFS#(WeuT5|^_Tbx1TlXT_Pd$ZMx`=hsV zBNqp3zDtf)-9Q?zq$m&lZ)2UBVw1v^O+h92TBYkrmjO=R)N-bKby`x4;n&LWhCNk| zcoAN8A7Ag3zSpvQ>C;hgEI#EFRybfC>)ouq|Lz&Igzff+f!8AVbu_&6K!*(y>hbDC zWZHF#BwgS+y<#K8&yOs|b3&-`OYnIF)fETIahH?e+<~R*XLhWa2o!@pue){a7%lzJ zK;e1&f}V6QRjLgiED?&^3XVr8KWc%R7jko4jFOQWt%t7*Eb{GZ-I`2_fJoCu&DQ8agXE94j@r2&UU*>s&q$_j7r;Bzc zCrefAHx%Sm8Vs;5#RKzAJPTHuN?2uiSoLjjEI%%44tz;k$J*ps_ls!fxanZ@I1~Dr!!D97lH#6;WxUg9 z#>uFu$E_qCTDD}2l)0nPq=u;GY~}*FFi5UhB^vhiGE?ulY)*xZ-8G_HQh|IR%r4NK zy}es)BFm^GWBR3!_u)G)&$F}E`3a)dA%wk^>gzkFH;UocSpVv9xWIz8$?Hd+TW9AA z24(&rN1Il8?P2nhPk#q`S$Sjn@|{>cq04=T*U%Tw_YxN9-KE<;T9*4wTs6xlT~-u} zt`tPa9n9(ee}XyxQak@y>-&WH-Cpt zm3d$FE-}2)dhbhc{xWSZt*s2P+_gRZ*-Nsguv>$u!+}`5Z^PR z568_n7Q;mI6;C)=g}+lipRx+MY4#}U&K%s$lqj#gA_TghHg_%wx>`;(RpYrpiVb}Qo>J)x z?#uH99b`?}kaM2+-p@z(y3K=RkDKOTWuSnuch-YARQ$vN55JyA` z4t|L@wf?Z)#h}Kb1N2$TyKTpu4V;&Xcip3sXu0$n>A2p+XN8T2bRj^ZZ8{|yRooq@ z|zn6jetd|07&B#khFapIq7wt1& zg;mCW>KYG`K{DyvPf~HWU?ofc>;=o5(bK|d#16qpDCudbWDVf0Bdok0G2EjC3opl3 zGsmpo^VBSF-jT8Cg`tBD6>IZN+*J#cVorkoR7+9%mG!!yspHOQU>yDZq+24dQ?n20 z_rrEpCuFdfzfa7B=jaGPjr z&Ed9b?pf!Hr3f@Mxd0Ve+ns*TXFUUX1gm)42e+@~X5^tFWGSPje>IV(ZUqiPgT#63 zXty=SuI@>uXvQu>y7*0(3e7t4ki|nB+NnlL2^|fO93siwCe%$Lk{@4EhIbjm4QQNO zJyHym0z9rFjl2NB+%ZgugW*hK5uq@4H7qbr9zfKNu}WbzAnXa-kduewgoPJ52h1a| z-x9;Vg~Y>|z@i#e<3r+qy;uM41l!yCcNAy5ZxpWPrY~wJr!6dY6$uIn$k9q{Rt!;j z0j6Wow}5?gF@ZY?m!CvJ0`tM0yjPgyUwQdAX~>#`bbRsPY60w8H1+SBQ*p3ArGFa1 zE}uSZ{8|kW8k3tJZ4Pr5!-19B3GGSFCq@ES!v}aFGAQ~>!LDq8HOXr{zQ~%sv<@D^ zi?d2mwb?vYXZePo9^wsqcKr@##hhA8fJR>}kn|^RfLD9Gtl@ImrjS9^xZWz(w;e-# za{9&DLfH3FC`1%$%{U@|xBsNT@U9O&M1^$>S^l&93zwdi$WOBxa3)6b!qTaUnA)z5 zvZ{hfBcvGd5e@Y@Fxf%GgBst@p@^cYHX$U$dkFWOhuH5V+5}lL6a)w)?n{Y`(Y=7< zETqpq##eBPWh1C+ly#SbSML#(M=b%TuiFVin(;kwA!J0e)WuoZKW^sh?Knrcs$Uu_ z=$2@)!>{%vV0!xRH>eEW3L4IG=Tjf@VgnYq;%@jH$>KWy;v|PYXfU$;W685qP{l(y6;Jja3*Z> z9kA^`2u4!$cFlmTyPO3QJY#PJw*y;MBeF{-zlhZz6`q4LiLz;y9r@}}{2kZ-!8dVz z%D9dtm5KZ8rX=JeeJStdFB~_8`_mKe!4w1++VBZxc7Ed4i!$-y)vfp-WEW7rHx@_s zvEK$84gHAowMc>pPw@Uibz^*Ob|B8E^;^=BfJ{pqQ{UIUTO& zQmsa7E2DpGmI@M(bnv_C+CpTHT%Fmz&^Z0a7hs{h{^cj?)r?GPm8jVxGzS+E&oskQ zI6x&MS#i{d0w4-RYag9&O1kzXV2|TBeH3nwXwG7pM7pWx`7u@F=0)GPo9k(Fnx7>T zbsQ)-Y6{FWJxNg@w9&9#y_VRP?`>4wnRncM4A^&YCWamP0TdWumNb@2Ot3~{*jN0^ z{X@4v>p)bnaEtb*LtQTT7iclmjM1?pZ;#dpO^YH6=U)G@YR`a1^BQZdID0)a&7Sd@ zMUNEfaG3#7A*}jp8&Z0Qi?Ls@C-?4W7S2gfiO364avKY7YkAPQor>u+Rq! zBe>!Y^|7i|&ys?JTMu?p2(c7T>APF7RdUNvA@UUqML~F9`~oOhVr)lMw{e4A&CzXD za^=m+H7JPz0>@(~ZG@E#%dpwpAXJBIf3-gGUDYJ<>hh;bw#X05wYi(rC$JfOE8_XQ z+TH(}V=wJD4u-5IP#gRp=k?XADuNjYb7gH^cdg zuQ0@ac`k`TegQtgsX8eZQ0b8X@tbf&+GesQpOglJM>83`waeg7AAw(qs*RtI-1ubLIOfV6oP@Z3-2Qn~-1v1$ zROJ5nF-xWHN7^bL)Zb`bZ!T;hDMd{&vP|ltD)hBM@Gbz)kpu65io(nov~O}FovCQpo6%e-_c zBDs(i#;=7_#ahDb*eKG-1iu^KF{(#b^Xa=MAx~5Ijkn)F-jjclu-{?IFW7oPhFL>D zmeBD5`t8IDTCyl~n!o-@vLR_&Zll?Diln8tP4bjxX%jT+d`tl-Rg!~hcxdkok5;jh zQ!7oWL20t<*Q_?oIjs+gmc{!p(^B)H!P&xqoeg<)iZpk)kRNO8VK0D7eH)g{ z#lMRYueW&3`wk`aKE9~5kSDHHIaREs7jpm8VUUe{J=got8M^99Trk;K@Mq_(gdJVC zBRcs}2%&^G6^-W2NXpRbz~l?j>2|}zD!xx9l@1LmTz!0wn?vOHu|yjD=^c&W7O&f0;=L(OQT7|UO;i0`+uPH!urnX(dy^Y^J##|QPBs#;Kc0b5lZQ&@HW9D*`kR)_ zx=IvRk}){mD+@S5lM7B>B~VjT(UVZ5;x`r7;vq!`S;|LI(s%u=#0N8rUH21l6eTYa zwztrYB*w4^8N#1jOa>xD_O}czW+dObf8E(Q=umyKK5mO7m)$tE6!qRyB=T^IH=pR< zm3P)4W|$cEE)T_q&l`t{#w+I}I{uj{x~0)XRx5osK!&A*0ly`5)osB@e5@EFv+xE% z1av-dUrU8X3pIX=T)9pLUPYA_S7QP(#}b4uO8I_JdiY|&qE+OCYk(cA?B4PzfSw9RzVZSWJA++W1jAQ5|AE1VM`X%_kb7Oga&VfaPm8 zKwUXpBTA>Js2Wt>TxlAs4zvv76yw8womjwNWjB8dI6Pj*s#hpW3R<)h7WOa7?JL_^ zZS>^2Q4%+qTm&XJTeGF_2AQLKuGUmD*qpt&nvGI26*p09;s~Nk_Xc-tAu#x@oy`(b zesN4%Ykd9?#6HAQS8(y&1NHv{xIjn0ZjpTy7*jfME}mP(3_2z}=qUql%Q_NxAy)ZM zR$wPlurQ*XLu1KC7L#n|jes|~qd?{Z>1Ox3&sRonm@Nd=eY7yrF@X1R zYEc+KvybJXRxs%e243LJjpm3>m*f44Qn_E;jmIxtWN-K%ytNV6P|lQUpw&0eoyB|e z&bRc>+c$#T!}z@`Jn+W9{j+cJPK+F%Y$Sw837KjqzW<(wBfin)Q>_sI_RwiMGe3YhF-2Lj3#;C4e+`iVLPW+ zhkXTtihpghH9JHhDLX#DU&iL_jxwlt2Ri?Wh@+nMk$igR822%7bfjr~eb>YzfY*M6 zu7(el1R)zo&)rydOkg~b-wNg+;3Wx|Ff5uc%L7Y1ydU75o4tSY^Y4I(6u*1%%J{?I z*c-E~ zQNzYR8%a;)MGXLW8klOcgeU4wI8Mmng|241a&+0JBj=%L{H<_F3Wa^Q=IQuj%uL?O-w z>ka~5!HziUHj`&1H>6|S$6)9BP9Lsg>-*xtXy8rA7{^JfXXVBV+CCGbum z_3jkBba!VFhdXoY#tcQ}Z@#(*3}V9Ze*CAK9PkdSNu5+SI1vDaGRNEObe4O)4uzZU zo@l9p4_hsjd!nS1)>{F)$rfmw1eq_$Eff}48Wa&VHOf23cq?wd%L6atW^t2B2D4hA zfeNRusW((Z(-c0(%$p|}6P`nMw7ZM<0MT|1v%?rYofhdTqN9U`R7l{_P~cY(WRzD= z8F&?ygqaG%fEPWZjFIJsww##eQPAa6_*QL6&l9Jh zI80xQ%yG7;Zs%nCkZOMq^JG0CWx3+D99~e+q8X{06hoeRI9w&zRpyw3%XajA3{c%u zkscS^G7BRoAygO$fptzAn(Q5JvdtAXOETb16{7S5bG}+?d@cd5+(k9;`DDtkAn7N2V0mf#N+R4zJWvoGrM3(1UemO4@ zO%h>Yg?a1lfC}gS+34$~%@M$BsiIyYlLrb65D4zR2&*u}{nxK?)Lck6=$GFemBd;FH;47XU@P?ATCCYZ@hsnIq^CBm%tE1a&*e zR4~nqzt+-v2&~L<40-BddvQDGr-!xlW0W@nn5(wXI@aroC22ZDTJvx}nUy)l9h&dP z(Mggu{N+bTD6@!xcfz1IQm#4xc&W<*h75)y^Qm&@4tOC4C?(Glc)jBv{(}JCfNNRK zD_c8Df>J}eMIeK_uMexT!HndbiC5fOic3NC6a0X070F9W z(&BPp$OXjf+lS}Z;st9SE(UZ)7^Zs1Kl}#)yr=@q^c>9ls%G=3I^v=ou;y@$7(@$P zP<+%|UtcekO5hKNCVqkY{iP!AtrO03Vq(3wCb2QW>el%u{C>A^O1}HM7{W$kCztJ9 z9#~_hnN1QfX?KFaOKfemqE;%NCW@{~RQHQ7rDt#|iRn%U)=cmEJKt-nq{9n}7;ekP znn2(a24nh+1w?doAo`+(6wRVEc{1R=^UY@%c&9Jk9{=vAczkMhYMgvFIN5tgr%7qK z+>mk=$fjkULpd+!D!3ALBc8DZ60E{uQz1)m3b8;$kD>-F-c%u9b_3=nKq|&HD6Vt# zeGEFZp~K}ImGzW@EOl1Fj>JuE|(qFEJfET-z0%js)Cg^n4 zPCIa9V!CRcWx1ABLP0XDd#XLr7vPqvTk65K*Jg(48tbqc9Zhp(nF23#O)24`dYBbX zL z>^8Z)SkY22F;3w+3WSx{Y4{G^joGpCaynpcLM32|a1Ck4JNiCGx?%;BQvi6^gOL}| zw`{=&by)~Jf`Tbwh>327^^ELxH!5y+oz4*9`(MGF_DlzXo6=S~dU%%Ut+ujqbYH zV;%N(BV$=#S)jlRCn_n<0!(l_RJMiATClj#Fk`y(mcTpr+3oSqe~Eu`@5k#`ub_8^ zBzxB_;&jj1QIQmG$fjj9QmP=Qwk#LfmUTPV)w$a3@q8KM6qd)~wA_Zqv-9!9Wbw6= z=3Pa|$PjJsv^3-)B(X5cr7d*+K{L8R``mS@rVSG#!J0)Z;6Rq~Tu6R^vej^JNPV3I zG22^|;}!-a1k?H*V6Dkk`8>yS2)uP~;tiiD{*E!MeC9J2J$^U|&)Ujy!|o zVuyHqEX*M!7lRKbDFkxxsh2rU{)5avuzyCs_x*nOlOly==f`elM&yu0mi5V&p6~sh z_kEssPJX7rS#5-#Q0Q$SW1M6XW~>f0I;uLDj#t&TOGY!Ic}X^yOX#|w76~0|8Wm-% zyA{(kFU~!$gHXm+j@k^PrEsjh;dVkpq0HmO9zj=KVsVFqRT%~!uoZJPG+&1@h^cLG zPqQQERR^|9A7|}Mt6|b0tUDMCg><_0mcX0(^8Wo_Jxcxh{@=g&{!h55ju(5c5+%-@=UC-_HEu=lYQts4}>s5+%1!~PQG_^?q*KG>1!aZDjY-{0w39ybu+cP_% zzBY6pLz*&6&Oj@%ogh3-m@cnr!)TfUuV8jW;T~J9M*64G8JdnJSCwW+&#iE(B}UdF z@)%^UpJC>3lK2bVW?;)Z&2G z4kfr$RaTcRPuVq*wYt&SpU6qBEUe8HuPs1vm8k0X`|ag%yKUDH$}oXGv(?GfSi57X zvR@g?p*TU!AxHXxOb}-#*v$vLDr$)4>)@OZoK}l~1?8V#_OR-qXIKpYFUxW<>sDKc z@(y)^RmE=uypR6y zx!$==e)H|UV(!GHDrchu8veAdmvr*WahvJ3@$inll5GD_)L$;?tNB)}>Uxgqv3*0R z%CC{lgTC7T*Rux`6npo&q0u_NQ7x4DpZWabl?ENQ^9qw?XYs1_0*)7k?85~VsN5Tm zFK*!<^aXCkqOaQ||E(5dKO?f8T6zJ+-ka5%==AR-@IoTdZTyTFR%zZG_df~Xg$M^_ zmeN+s%2;&L!-@p5sZI>;t^~K_Ks&mVTV7XlO2t=eV#U9HHdZaOR_pkN-|eo)Y?w$R z0jSPP=^O57el^ziLPV{z0V~Q(Ygtq6nl8t*jL+Dgive%MT@5YKfOA@xG(yI~b?Ia> z4Av{{CU)R}X=ym$SJg2sdUME1}(Rkf?=ssp8 z+D!A^>&p8YZp$ujimC&&lb2gih~9SSoSS)?!|`ryr?NmLY!sy8Gc+3IX7sMd_>w|h zxhe=2%yGklxI&Nd*17Y*o9AIZ)M)>#!0R?|e)>-Xcn!??(v9Fw`%2cS(?g%c_%Z-= zXOuMzk?kcouRbjli*-cv@tJUw9H@TQwhY%)#cF*dQ^3gQk^oe=ADI21do|W>dtvtm zEa7x731*x6h9;%WD9Zr|$_Csr5;KK5T*{bI!WfS;sd9G!lsCT5WHO%)U;)6YIHrO7 zcEI~M^|!D7{NMk4ol1TCkKcX&8@eY^?9J&}X#s6W78i7J&dc%$H0fmr3+T{b4qQno0VOHZa@P>ewL^x}_^^KoBK0dZliVy z;TQX2zX)JG69xhvQN-92$=u67@t&L!HAME)Uv$=@PgR;k6-`(8xrFF_1|B8 z^IN(nQS412D7U?Wlh@j+B#V`(@}5QH3)Z_mj7$4oZzQ}u@ktbHEv+$|Y54-gN5QHP zkc6Nedl71`j!?!xpG3;>t4R4i<{Ajb((k?sKa?}4RL!N#b)E`TLb*&KGpFY%?qEu> zl*4v18J3}-qoHC*^I{KT@N9#I?brY_?8IORhCw;)30YUv`4BiiS&!0Vhz;<3mEb||1`(CNOps2r2Tznmr| zXa;$Am8rD|EQR-KJ{KqAsp62!>I*W(2Iv{@Cu9s!dh33 zJ$12ozfaI%Z^M5Vd( zw}nAmlP%66)XOl-Vy9Gq!{@6)K!Sw6H3^xdy|?-)(dnWe6!ZYu8H)9!>?aa4nx4}*hjpK zm&6|M7P@kM@1MI3ys(_h5QXg3sbbm zO6f_;L11)rO;xX%DdKW#jE2ww&w&+=VEt%L=7sruAyXc7^wWS!r#~3*A_NuIR;_s5 zekEK(uxgb<7A*RUB{HOzzdU}*)A{%$0>KZ6!!2W+APtY{!dVx0V`0s!OhO&cFotB+ zvLsSwWU?J?+Vqfr5*em};L^jrOX+o>0d(d&#T4tdSE%cX#MDY!67a|5lQl#0}9 zkQr~_XmCQP+3N6RAKk}j*p4?i?l&3symk(<;$4rj%vbK(-amI6c;SZd;&m>w#;tMa zO?vGX7`C;Bcgf8I?oR@E$pVy`goy~S<3tDp-eN*=MzJ_1_Fv7dp*R$M&FDT+zz|3= zBTc!D765X!VGubSAHt34Vv&u5{KzRymxM_T7b8^bg_QujSaBOSSPsfMd1rMv?M{c0 zX=DP~wjex2q$I{n&hepuml9?qzDqyhP$E~;Qm0woDyLdi^t}rNYvc679ra{sHWUg1 z;xuUO_Q<8kxUj}D!2f=^)gw= zWZG61TD=X|3a^=)MCp(N@0vV~aP>Nw$AMO;7fa}P^@e9C;FCb9c*Rq@CoV?WwDuTd zVs!Da*)@>p-_%+{ufv=@uI>GE7lAh;fEReAgl^fUb88$@N>6WrVI^3fWDok@XW*5A zH@i-GvDKoz6A1;m`=aVRh{Y=5&UlsL#Zq~UCuqV>6flG|Xya~oFq!VhgE~Hhs_i&l z+}=(YTzx|+)~yES!rHc(0K7O;n3d#xbhO>>Ai8%fSW1aJ4$vKw=H+m--unk$T--xG zpUGTz&MQ(w3D)U|iy%OkWxPVL&USya{iWzu#Bd9M%v+9FC#T|C_F#S7JK%RCIgM+M z<%Sg*T)a~QHxRs0%s((f?qT`-+Dhuza0dhFYp+}a^SrfHOu6j_0AO$MyfkxYOoY9f z3`zN)Mh)@M(1X|wOVW^(`|CO}{b#oOHz8xuaKGmyJWWC74SYMSn6eN1-#CY_ZfIYz-!kEQOlUf##>Buj0e~5kMON@ z>kZJ#mhr73I~6k49TAADC7j!*P*zER{0MxuvPv#6)-i?VYYFd3XA0L$-lw~M{E-ti zTGB?YsY?L`^K#Ja((vCu@FHObFvFJPxn)ywt7TFz4!mSZqh}X*j5Zu--g4zdPh&(V zwc5MvA{StEa!<9HIu_Cw(0y6{IOK*~Eek3D1aDM9VfJNJ@m3jZXP$@>g2h7m+S`{; z;5|0d+zq4WZ=?^Xn*1&b4E7Cte9yGb+4~1xq-WuirE06prY4&vvN8a! zJ|hvIu1$c6{aC2)Yr3(GZLfB@_2qgt!T~ z5M5lzVpiF>b>D^e58R*8^SLQB)qtga@Dt zSf-XgEvQxXI_mz(6MkGeq+e`jsLQ*L4wb^0YsdPMshyuQp`OmXKMp*36Wnwxc`qB?{0aMz^hKF9mlSVaLQpLChB%N@$r?f zaJj&R5nguy03ZNKL_t(U#VhTZfnhLS6L{_Vo`_2$O1^CS)hgaCR}#}nJBdKzl^yUV z%tV{e_^SUJuY2Qhmm4DXpsjinz-yHnG9FAfLYv8sEJ(mdy;0 zgM(ipZi`T&Q(9oMhDlCGJ&iEmpu$%&`2r2sm*aV^6z%Z6ac+fSAu)}*LO&HQp2g1C zBY!doO$`KiFR&<r991rjg)&#nvuLX2&RcMNQZ+XI`$27nj6U9hE5R(Rlj z?M8X49I06M8634|Y9ChqwbzkH`rM7;H>qe~9XuEvLIDRb$*DZgkS{2(`ARM}$>;C8 z@mN7>;lf-D>~8S-Xp4wE^7}OXAWW@1zZnyt3-gri-~<(@#VuP8ZCfhXCLqJTGU32m zI89SXb`*2iPK^cz9TieOf#nW?=Qc=NmW`uUppcd&biqo@Rg`=t+~xGG^s`-s51 zq?AE-#jKNM8@TBtV3ze&4`u@^9@@C~P-aDLXXOCHaHg z5qAH8HRFrL+QbLG9hBNt+B1Nz9aEp&5!%Hzr}ONv6Lsr&S5j=w-UkBSPeFh*lcx3y zM%Jl<9QyY-ldL?Jdj*7h4dC5B-^ifM{oT_|0`KKQEYLm++$FRpodnFQ zIb_8H5wU&~_g-N`*qS$GPhgjz$qKKpdN5(Z3S!^|iY}0Nu|($TqGxvdZo;L)&lfIr z6Ts`FA`5ORb-5sCiA=+yXLH_S%i4ZH#=RN!KNH5YB;Qd@<2jr_fv9Lu+{y-U9GP6n z_0h%BAv@!OrEL5}2s7FE2w2DZ)2I;!?N{LSa)adsbX`P+>n%DmG>i*27aiA+yet*( z^q3&NeKTf~|EMnIZa@gwKQrdcLa1K$aOwmPRe12pc7w%0siZhdspSz8&%1vrMmdMG zEAR|7@T)=DJEMvWUaT<+w#W<7&12uG_T8{ya@*taMqw@R!vOD6kGA6L)$pY`*|%cY zaVa-bwKef?r;r26?N8SO-omPAvyA}nm(2mM+v)ZfBSFl<%fMa2<BD(b(*6c0P5K=KCuC0+{=nDU+agrb(ZxLYQWUQoohM^vMUaJj0sxSx5rnD zOSX~;hLXiGzIq`f@Gf1j40jfb6R?U#^%F?Iji(=|%K^E<(92TsjtE_EWL%#`=h%*v zzeHnGR$oxy9n}#U*=%AEg8kb%lSaDUO(0D@!lKx~XvtJgikRd}&p`c|cjDEMB1<_8 z=5Uph>^a{&)Y%xjVQ6=H1iaFR0^a>E-kk0<82Kp}S!dYiZ^f|EasDxRYH;kicZDK& zU;Jriol9N`yv{}@6z^C^8v)+^)_5}Px{R;ZN8;mthBMl95+hcG2XKO$>99J5F8$ux zz^l&04g@)yS;4aV930aL+KFQ)2nOm*e$Nd$_|Olr0pJDaEEbIr{Hkr}wl$i+M1k*^35YNZIPo9 z1KvRhyoH^Q#dsxeVrEmk0=m80H>QZHUSbS8JSt7=iKBeJi(4QH;NR;{*Ai;MdHg!s zY$FqjFRbIA33y-3s_n*MGgC>>S!sJjRsdy`5sP$K<1?JT)3I&?n0vN1nmLaNGDt;V zfuH@>w}6*WbVV!}>_|%bUBC;y7wCuB1n{aXVgtRWnR!R<_AVFH4^>maK@bIpgN$pq z)1h2^#7xntz6~iuFoD}cRytbZ= zmv6vu5l=tRCy+@l}jr`P0+Id1Ah9?77XHg}~cd zOD`zwu1eV1$e_$EtMm@wefzB1{bxdg7>QVZ0aT6B35-}onYD@*13?H@T;EIvvcOG( z3{o*xY!{(?ECyav?46T!x1zoec%k>=X0#dLtz}pmB3PiVO@BZL+~S6o<+GPVrsC4Z zt^6tI^W?0dPpD?Y%SsOlZ!S1)83c2&DoNIZ_vrdGR}NNkt_%>_>%>xWnyg!FcOSdT zWb&`4_fa(uI8k@!Sre|&1K~9s65Y^?`G(0i;>iHk(6Mn1X%c3;jUY(Y8}-1Lj?KFr zXCAYLjRFF!&XQn>&mA|Jh9y}$tV2?s^tFca84EffMu075Xy{=?vEs+ZLABaE&@*WS z#m@=62Y>#{AAk58{O#Aj`Tkcw{5QNKdfs?Z z)w0|QQ}K#4imbl$GYyEU*Ty`$->ejy1!<41m5FcKo{JP5#0hw>-lfU&3Z9H^ROsFA zMZnwqWq=okj{E_qjr{m89C*s_h#q*Cn0TTLJ4j4vN6pG{lVrCu-il$x=3S6YYyplv z_wB11N8fw{D91WV`g0FgBqmZ?Oh!rFm|z_rJDI5Vi* zRv4o8FrIz2_`-_#946}3Z1Qt}H*{7l6M)S%6(A-rG0nQanu;i^u`nRmp4{C{dRw4b zQ85fQP)x%C6A&g73-1D$?FVSmI0K*@^Q>-f)4G@5V@4>$rusoWQ<5E zliKtgg*H{lEZDXA_+5?TrM&O5eHZVl+6rP|m3sw&Ak>v(GN4nVChA_iAAdj448`q( zKZ(xn7+NZok0i*(Yt+?5vkh5n)Ch$4H)6RkpV>0~MlZ__bn2v>uD%TL{^g$x^V2uP z<^Fd+{@pt<_rUfQZ`-t52p`p&zYae->N>k3czrd7<*p*r+ZrDZ|MI0wgc0Em|ahf~f;A;46tXm`;(by4q4K1SHJ`?a-9`I()Sh-7G;{kFU)~7LA zfFj_9$xg-)7JSp8JU2fGN+4n}^J@CR!$f&caX}4RB*1%|Lc5u63zd&x&)VRRu$qk1 z&0&XS`_{xGOkv5IEI<(h4sE(3vtUhg@s`0hq&CeRzH6JXefM5*krgOf>HVZAtU>gE zSH5@4yaJGOI;4$V$H-@^0hf)kblQcDd|1;LDXW3)d=6%!-{@uUY|p|zfBcda?@xG# z@%8ABM05RRl0_jzB9CPr<=8^)1Am=};n4XD`EynBebC zZ~S63CfjiL&*2&&pGSSwu7&0?qy{^dv33?ftWynPixBsdi)PSn4=z13RrP2#=ygzzW?hk+cN8m)@0VcZr zabsGeUu5u&)P!-$Vi}!%eH{2FKReDF@iwtBC3^0NClcn(8|62vU)jI*=TtuXI_g}y zF3yNvf4t75@(VBgMsf`BB_9v*C;v8j!!0>o&6PG@noec#H@g9E_^jIfu*doBaEQM7 zwES_om*`3BpW@U0uE%phyjI)GTS}g28tzsCSb{17`N1nd(GCrk zeEcoMof(}sp};F%5O1$L&L4&58WNg8QDV4*U5%7QOvWnj-$80Y!3{ZZ7Ca|)w8sKA zt#gtDzk^hC1r-nBvZBI^+QaE%;Ej=P>}1p>bk^+@%5E=s8+kAzp|#r&0B?Kb<*K5% zYefX>%}k|Jmu0aUpR+gOE-gqp!&L(9=&+UpmP1)AY9T~;&vK}R{krU*Csj3k|F<8$ z`xgv6J^J&1gD2?M9gmyS)(DL+Vn<`5LrBkg0f9Y?ag*Ds;)PNerNyr6cm=La6_O`R zXE<`hNE0eq@E$}L`hRFLrxb!N0N37g?6SsLe&eO-bY}O8cblx*@Z_aNCK&cta=>f! zSzlPiTP*K-rC^XNpT6R?{k)}ARjlDzJpfB5*}0BA`lLY`SLp%ViOqO*Zg3myJxTgV z)AV_Fr7XH|(!uOAL=yqqU=Vm^7Ks?lE;XYACtae3zyh|qo{Lnn9icZNX?eLayh2mX z7l%#oJ!RRH&Jw0jc3V?zv6&$9kV&6ydFG8U8J-ImkV;~=)w|~-MD^0-p~&s6KT)F$ zM=%gRdqNt&7cH+P0d(21(9)%CJNs_7Tf@&4)efBbh82A+NkxxjC}B_|l~E5jTd zZhxO#o_0q_M5bJOcE*7`Aatm8R{O9W@Iu;L8Lf?rj|R18sRCmRM}siZgp=fPdf|l| zA{x|8XCBi9SBvjgbZ^ELm(U2QB6NM7?cwA7m=Y!TfK)R}Kxni4E9V)O``1 zG|p7W+#=~fPI{V7fj9L+z#HNav>kx=ygPwf2I6Q;QqMAT_#)O=VHz5E-@_dP)F5*1 z+VIS1Pcv~;O7=Q?v8xMHPCfz_t8 z+>#?%ithxxTOV7{p3Sv@BsLu<_7!-a4R{%VL41P%Z>c3wJ2p^8#*egFkrbd^8+|nL zB~T$k;B7z1f6-bI~`+Eq*U_j*PT%dU)eb=*@!~6CN z6Fi?;2Gwa1YZJ2P^+ySNWUX#I8b?&i#w>OrG0qg3-#2yK{&KsXl?~)mlsz)1MkF#; zm!t6{n1%=rU_zo>EoZ3J2gX_Pq2QgEki2Uzv}s-T&r1Vu-PrmzIs9<>$%QSocd}<^ z432mJUtS$c4YodwAA|(nG4~ERAl)hUyt8@XjuhPeidINwrgsW~feUg0q!iRMO z^+b~?pMozy+Tk#@1bB1j=*Im>733OsfXeQG0aE;IxjMPJ^uOUHfmd1&NUA2qz5?$v z0`H*j2i;Zg)t2Q^KAAIqMjJ<#?Z8i33X-(@06AMNnp;PORECgSv{L4E2LbQt4Qk9K zFit@Unp%UElkFIE*0E@NL%?|7-UB#Tp7y}@9bhCHNkE?Li?JPi^U;X8E~vBOSZ1b9 z%rO##y0R?Gb5uZ%c7)k>FtOElCq3m(#~1d8hC3}WkJ*N~)E#IU@HUid)HR67 zle@W5-P!pCMyxbx5Dz#=!kIq1-pA-y_Y8q#IR;5cY7QF zeNYI?D5f;UT`zS36`PNQ--agM_gOA|Du4nsLDY#Y+iwKIAZN;Klkv2^Z5Me?FZv!u z^MgS4HEZ0Ysl*&h?2rp8?(1Q32R4epz`HJj;)Q|tu%Rx2iVfYM>D%@IG6KZW7z0@$ z6|khJ=D-`&Q!-~EfwwMSpsqnt8nuI?#*uhsCGhT*@{D-j4h6jV(pB#I7xIHnUZA6) zo@l0;4M@LAkZWEjQ4dm83EsF&g>>T7I_l}=&ivt+RpIoR*O|zd1-u)HhOfZ;s{(JO z?FZdO&dl4u%yPPGwrBxrTSEhF^&*b550G=xqrgk;$vVU2q8YQwV@dY;2h_fX6)%7` zIKJBvJFpjp*;G97>v6ZZd>lwcvD`%&AUtf5MJyQ!ww6r!J!;1~4u9Wc6&qC7|6}ib zT2tq?F#bZI5|pwvmhfwY5y z14nn#VfzjGeu4L6+`aanWGALQ9o@GV?3tWeqe)|bd+oKJ^(>e=!g`xWk)(`_4Pu#X zZWD?F?w(lUO*knp=5bT1B% z8SZ8zBfuPuX|GwmC0J6lY!k0NO6}yE;MGu!) ze}VUSMbXC4XSpxv;rpQ(&HHg91lN2Z-RSUIW%Lo zkk7#jMm$Bjv4`+bL+22^(roHF4o(t2F1C6jfY1_$xE7fY{dAc==*jXE1{`jHUPoDD zgNfTiMPb$xPm7Q;9s@7;1zB$5C0?l)Q%`IcS$E%;kSDZ_eB4HHF%frAhaL*vob&c$ z!8;lz9x&XDQ;$Sa=r9#g8a@~1R4NkA*kdY#5MV0|-hsL5e-FH+EA^a|YkNBWbqdCi z9lMixD5V{X7jF<4zRtD{?e|w%=}3;jBWcSBg%{9VmzSbcK((1CJ#h&i&(cZl#k_lm zoP|Tedc8~9M#i>u7Un5V9De;~tlXC`*6xqsJ%ab^JI5!CN}ekAEO#zRZ4D?hT8-W< z+PJ3nFnH(DWM_y;LHD3tGqbOCO5*5tPmH}d1Tk1I@U|49SCVN>wkkrG*UD2x8W%ZO)?0ZMW_Iwu7>mf7arI+5L(%qHo@z`L4dwf&f{ zDg?Yl_{)7oK-}>%566@Ok$*0D<)p`q>1Ogm444Am%+N28!6VGkm?mXOu`2}FbcpYd zvFdy?;VuDA3 zdF2fMzt%s9)H@Xq;SVl`vJGMVqd~if+GUzXI&bKWQrl)%n>EGc$Ej2N%AM{A-XnN3 zax`I7RDuO-sXtuu0CX@|eCV`sjZDj%M;rdp3U9D6d2jb8hl5T77DDg##3jAR6c6*q z>;hr~@nDGC=gVR|w$(20SU zXL7fL7|SIo*om)+Nxs{M7e`|9(W@S1Rv?&$K$?vy#lOq_pFbA7Z%X{!N{Wk76rsWp za=>F6xs}Xb0S1pSA9QM${HM6(7Wyophtn%@Mk3Sn!#1)sX)K@P2*g_~>U5nr!lPmybm#^ve z%YmElW%5-6nwobIj2Z<&-o`yFN!UzFis?>xuoT5-hhUOFU55E<0^ZdGQEO>lV}ymo z!{GH`#1vXeKNh?hB~FD0;|imw8MY9Z0(c#^tya9k(#tB$j+cV>q$bLh%e(#JWo|vy zzX@IgBx!gfM7n2$YFVvb{iU3z9gE)&2b<_Nt;5~x( zH{cDV13`k;ko^6C2cXM^{DD{rnt(UTv@WQ;Yr#zL<(U23ntiA3$&8C@Uj#4g%w=%% zI+zNADK=m!h3NpJ*0%t><|a+W3+qM#+&zRQ)9ijtdeUY>ILsY=$h}VJqMnpepyVW9-;RGSc+E*%<)AiTqG&!0fFp5Nn;Fag zQse^O*BDtg{glWMI#p4wZ0{~7i%oD>{br6=0cAv`1Ia0G9u1W)Ih}IWyhw|9F&^(7 zaGsCATS^7*`8oXLL>lfm&<&PEHXoq(1HVwXVwCLr@yD<(RXPXC1g+siHoR7WuomW{ zfQSxqW|*p=?znQBWwy)&SE3;9zE-Ssj^I6l_v<_7HY6ztA>WdMj|t}>4nJQF{D;

{Sx-~(&5x54qkr`Mh-bsNF`v14jAGNY(NK-u!c5Rfwj3>gvk%vG!-wLej;k^ zn(Ab_*b_Gi{aK_k)03?{n#X<7k&&vR(JXwju{$?fd0WF2v(U2*$bESt12lI;>4qQE zcL;ADHYYz9yv8c7FVHRMk*@c-UR4#sKB~KV!QkC2vg!@>L8lHum_hAGmgTJPrlaZl z`mkj$mu6g%HK0IOJ|luYA$K4-{n~@6r9m4n{JH#_xs|ELCKi#$zI2^df|UvDu*)cH zCbW`;`PKc3ptE*zk~!Q-)kKQq)G4mlJpeDQJHmy-Qi0DH!euBjUNl-2#(nidG+1kw zi`64|kKp~yonxc&Vs$ZJmC&;%M4e#zk2i00Olb;u*%;HfvWtVaHv|ju5bV^jhHUtu z;ov|*IN3y+-t80;r$sn=2|c+f;I$G_tEX5{4b*|>)~y&$Q#~0i&{>+KS-o`CI9^4% zC=TAuWNKQXx@pb#Qsn~s3W zctg3cg6Yr}wUQ@(Ipw}Ij!JU*V7DAhwCnPL9@eg=XzOlNDA3jVq_jG?yNdD&C-#lu zega-8pEWn~^eHU=ojdopMZEe)th#1tDmY&9xU{RAf)No)vfOT_Z{wOkiU0Od%gvwfDu)rWf5z?|_qT!9dX0tS=p2EWGEI9{S{Dta6hcX&od7-t zFAOPl)ozxL#3KdMu*FO%ys~)yK$V!v| z7|j>3f6p*i#LtH|sh_nSdgd6wUWkfk(6&Y)`SSIwD1g3?KN-A@_gKx{ z#GzZ0`})`wE#Lzlnk_!H^LdZKJIQJdbi+qIW!e>SjQ!X~y}=wWz)8~spqzc!PH^Qy zp4iFJjTY2yGjGZb?R(I4i*r?Ub|k#)4X5(tFP??Iw|RhVM>&T#6H{<(OXg_vZ<+z< z>cr$p@^vyfgcZnGN`X`X^y_{0zwDjgZyMPZ$D?wAs8Cf%s9?v!jsO|^v06)O;TKChAbX`qe&A_ecntr6^AGgT z=soA&%M2_`?5$U^YWpR&AGFkmei_a?*V;5|d&{p$9W?`B2u6-;7<5lWv=Qd7LyNgRQFY4Y*R#g{P9 z^WqC%|IRTNoWV8(-O`rTF)1KTL})E(oOg)5@oo4^La+~jmknKzb02RKcPaaj2x+7$ zqpY6N+HiV9-$~WlSwwDHN)43AEM3ITPHOx-CVdJTMFzk-(7Dm7!|SBd{g64ur&X#c zBX{b-o9itMl)2mz6hCR9ED~HcxN{m5l4zCafPfcFN)@fit)8e)DU-iuLi15A3t1d# zcsxvyyhs%O>it010|^-=Xac4J#5P2xP3S@(kN3!qsqkcJ#0FmAWi(wXx|X_fzl_BL z?1+_fXsU)mfSOXP?KhYK@MTOiG7cYxur3H!%X0yR9;WH@tF1xL`p5)$Kb0zCA_xr= zIHQ6bN-bTZ6Zini9TsBzV(bIfNVL2VJO}UD0q^T;muLR+y(m6<%&I6iuW|5R`!)IJ z#pGlB;cM~fjeEo39mJ+KEUwkp!c^%y)-BHoWba@iKf1Q<##?51bQigyWJi2UAterKgAW_P*EdGFX@)sUqnr!b%dtx#Sg}97KO-HDuYcPTH;Em3_hxcXJ z2du@D-bCOWyk`fz_uh))<*TCj%@g|bs|Qy(c;Av=&0c)_n431;depyj)P5{Im?>3< zDXKRL!j$B4aLemqxrqt>~h^9*SFw6-%q@ zFpx>kYmRqrbM&d;k#hRfgV$KKZ-f_3x7MB)sF2s^34}7Nk4%X1iSE9Qo@=_Y=5Fdb zw|dHAGa@(jR5MzTK0?*@ketIaML-3A<=5>-IwWLNcZCR3kE3sJMm8|599T6pj@n?s z0x$3~cu=mmsx4jzTPU#(L0>FtyP$QI5HjRX)!xtyfPWc>O9T&LmcITYC=&{ljJ`^# z|4_D%SKp3ezfXA&5*(f{Aen%NLY|py11h)7u@lFbMx;Uyq9kOu7BrnQq8-e$Wt2*2TL`U2A&?rR?`@J zEozFjUi3w;t?DtBVrK(NFq=!Yk(E0sHL@l*%3`WvmB(;eCct2p7i3Y^Gs(ZCZi?ecfu=f^A zaAAnBO?7?6l01-*Q6@jL58fI;*{_%YJR!KcsPp~)T-*Y0l!WEsz0Q)W+U9kzxl)G( z*dFVp2_*IR3t>X^+8deyST-;q4Rm%OOR@`(3_iEByv345wSoE=iEP1iuiV3=^9PaY zm$hB$jJ*X=98cFiio0uY2oN9y3GR|W2(CfHLeOBrVR3hN2p-(s7k3X3AlS0F1$Ob^ zck`3?{eSoV>(*B_TRYv;r~91KPfwqkneJywq@}q2(}S*nZF%GB=W%@UZ}3}|DCFVS zRKMh7l>c=_nB@KCrsC;B_n-vO$mm|W>QfZv) zxaK(?A(JM8GpwtE#**#6A`cP3-Ylox_oJZZ>1#>_ER1@!@@??}4tS;n38H*dt%(nA zq<%Kh{E|O_bga4HwO#gQ!Y87%7xWl8#WU=xuFe%K@ez(}D41WPh&u5V-18jv`U^i( zKezobDkHWELL_NYaC<&Bz&A(~A&{nw+H$tx6sloMW_xW5VGgjS?lG{htqkF+PUG&m z@(I_o#zK}JLAJwzS&r;sNbJd^NVHaIANI@a z`K%qry-+}ql;K_*&KHil_u?>7@>#8|t+7Bc z8*wU2O>3cj$G5_x+Nq3Q3%Qi?LOwhE7*UZ`o0!#p`fft&H2lZFy@lnJIvq-p2SRAx zPi>p_w|~6C5p3GN!hM@Z{8>o{{*v|-8adIEX;7#eI>Jf8%+-sXE3Dm`88^|JXYj)x z)A)D%2Pc}B_Iaq>{(=$q2VvzJFMeu}@oT|f>>o8wp?=5HMZ&?*N;1f9XaBIJIjrB_ zHK6q=Raq)W6RxpdR&PG(-{xGpU#X5h+!G&-1H zjbP?6xQBEqAb33em0O93m6mH>>0;>dNU%Gz8y>g;1)Ra6!x^#ppd%^Pc1Psf{2Xw) zn;k|5^t-$od=34`%JJ(No=#ypUORWUiKLU2v(>q-V#1p+LECL1VVHH>sT_qT_;iYN zSVBn2eD5Miu*kz(V4mIibzja#8_>Xfmi6mEQQ&I?`!zhUxgUzDB!W^NgC?@Nw?%I< zwR`Ft=N#>UV0*@RkK-zR-k$whF7CXZxFL-&+w=L#ZEO;Z;>#CnEyy8zl_K;g<=Eos zM21^Ib1T-EXpgMpA^!ZHSz>5BV}A6B;7YYJqzD~M|B~m{i%w;cDtsRd`ENWrmR&oZ zM}rp2>2?o$-Ft&Gcbg|&lHEMqxOWVo&sd$c>8Y;_G^0&dz--gPz-a}L0{m(YwHP@>p(c!HXG^0$AEIGP-(QoR}yXJy(G z)uGP(HZ}UFi4VwCtZzyTc;i|yjBUPQrepC)q*bq=SEhpj?5!U)gYe_v%f=52QX!|1 zbr+#2jgBfn8D>$dUWHDs6NzQsg+=m5qJ{ZT$bT`_IevzqG)c2c792cqb*!e`kXZDS zFLmD^*(QcP2A{N1cJ2-K#-o%WFp;l`manvi^nm?9dH;8MxHWg~)Chw(a)`N~bLY|% zYx7}L{^Pewl(I>ec3x6s4&H{Z<1{$_Ez7))uH4kk2cssMfDJ|gc&PZ`r^tV=;XZZI z@Nz-OZ~yd|xZg(IuElps|JA&T)5Ez2oLQs&Jlnt~8nq@>@`12Mv85?d+B`gvyuAu3 z;!DQs;1`ZoB>`RAUsWzA-^?6FFkoakh**t>@EPL81GNX0P?E0_rUBEHr6=y@HVz^* zSN!Cb=WB;y;|NL~G>;(qIuUZ#nc%Jrk@6KR3@}>SDs5ko|g)O1N5*Y)cdg0TaKZI0u>Y-3^uIoU_cQ8@ zUihN~721EdnA14~?eg}$tUo4S@C)ax;vFVz=ud0reof59clq@0M1=Pl z?TjSSzeK~++P>}jF1+^T(IRSIvFa&6C_2TO>>yKQx%eEKjMu_UhVb<=J712`v19Wg z^;8uZjEwVJnAQKS8D7bhtjRoTJ{oQ{KeGKk?Jmugwf zoQc-zd@RH(?5sNJF2Hq?o?yZyP?@6=O#VKz$3o?hB9KBwI%N*Vur@ zxRZms6$j`ifq}J)baOOg?_4@owY~=G_SM{IG1T`T3%e}WVVeHepZeyABi3>9%hY4L? zjr=`nx*bfINmF<*M!9D}G{h#`zT|tc{@71suxIwd@bg-%sS`YB1Ijab!V0ralsHt8 zMvIpAo=Yj1;W8qAETN)&a=+i!gsTjOmsm-;DiBRKOvq*pDa`c!}a}!{^V`%Sqj#_59 z!daDnUB{i;j6eB>C-pemys0Q}NoR}u+(Mzzx`pcpx_{GgvRoh{Df=%=f6rwEG#QNG zbfAoU!*I3uOh~yWSXuR)b4bre{tF>SDK}l|x-pl3a&8Peh3T~n%7rG)y>BE`nOk^E z!8oZX;%dfZ3&V5%rE7nooa`6emqXXWU5;&&Kh56ccLVF?{I9>f#1N#@Ih9ZX>H~t~ zsDPRJ9n@{P?%NWmu*aN_`88dhfWOV{68|~6T%2j_oOTs|n_5;s$(?JKN;yj79eWM~HkPO(&USVb0}8?B=dQ2-|VvkMj|pNK?FVZB&+CcR~d)pCjNg>olAv2LCc==jw~g#;Q+Z2jjCf)+;g$ z5ZvCZf_~hxeD@j>$aCy={5zTsAob1l3wL}0^OgV(Jc{FjOBC-FH`itJHj}+Vj(*?Z zp4_*PQ18BHZXvp=o3rzB$WY{vk{#LKtpPf(ZfiGvF2SMt%C=g@2YgI& zba-J2obrioJG3rWOdJ$=O`nQ35BV|EI)fBMQE`pW+@2-Iv@#Wtu6Z`HEP&tjx3rb3 z#o+n=2h}DE*8dw}YSCjs9cA+xp2y|O%Vnpc zHvsIYuIleQpQ!*;ffn336fP;c6-7FB8NbTiTE_t;&2L$%Wm{Kj1^B98vO5cX%t%SA zQ0HKxI})i~x56^Y{|$b0VqIws(hjn%K46t{DM)3a2_7SG`a%$13)aQJA$Oy6$DU^MndqIVS>k!&yge!|=U8wu2A2 z#^y=FL_be-3EmLCEuOQo%$#F96wOoJ`}l7AxY$8!yso8CdUET#jm6RrDMgHsH$;r< zv|L&YSFaZfWvK==j!q^Ne&1xRWFma9tB{bTML<#e-WDKb@QkHTSZLSzyyG?O<^C!q zOL3bI(&}B^Cax|@NWuC2ZKdyvSF@lf_4yYGq_0d}jipm*groUJu(<;`T;)OY27Ji81hqrRG!}GuS^%9dE32AH#8D+7|aV z8@!X+u<{_3IE-weZsS4%8hJl0?yWym>HDN2+BZMHlSlVSv6!5=Wqr|8VefCCEaq?} zI6$x$Aw+0+lsCFuwm=9p<+|##0ZJI{2B;^ylAd~S^4YKET#+zP97)*#-}GvVkZ=vX zHWF+*PQl|<84`KkgYpBNOp2&=&q=lQo$=AShjEqE-U4vVeCqHHkHGRd`dwWzA608l z7MYnrK+RtG1q=Tx|7ZK@gufM+%jX|FahRoWXQubG!y{3v95f7zq|DLaD4OC%Nhf zje1OJ5eMu}i{hL|hz!$Z$x4vP`7Gf;6~}VX=eSk&A^v9wh<)FPKPB^di9Y}N(%RpX zGHR#tio}T+Mzs7U9P>UxH2}x0nr7%_%$fn!Pln!!c_d&}eB#eiz9sE_Zc5&>;n2^R z2|GetMb>pvU&Qe92dQk7JmoZMrs|{Q%Q)xJr-Jlx|1!aB`?Z8819`+y>;a)%-rg!oIVGZOVOP)|0UodDJJZ3{t> z*Xv`fLg(~UUbVLtybWk-)-Z1wb^r^)+^$E{0Czb)?*>*va*(`Z>uBIv+Gz(;mO78!;OYp7ck#XBN^#u;;PRDL41s=9muoHSeEQ`C(SfaK?s2Il9NgypHn55VJLg4Hxc zngJ1R$lF|}Q`ZyWM*JHc4d@5?@*Jy`t!D9#Nl<(A8ZUeY!X}B^!}*HqpZ!5SiV)^; zLSRXBjzPz76`U0JdTz7jIoOZVa081tw%&z>g8+<`P?4gfW1Q-j@(#yziwk+5Y4AlL zgov(eEcWN2;1EIJN7nucg%jcz&pxqd97s?!==hoUxpF2YnJ*=pZF2kWuF!LHxDolt z6-IK?qI%Rj}6zN(HhAlRryrVUazV6xe_BjHx5HbWLzt!n)~CEdgOCM! znwcn4t)yp!5dlY?P{39NmT&FQn?n(wg~{fQ>V)<%#eC=>M~jJ>au#`bRw$cNKPPCfCrZyWLpO%K!ax5!Vn%!>gS*&Qa5P->E^vUfAt z(}&Psu6q>!!kIW>p-jA?2uSNuOl5>Eyu%MN^a-k)3=-RR>}g~Hs+me*GA@bly=yZ< z3$Drto%bH-!0n13DwqV)I`dca_PbZ{<9eV`ABvc~JIj+Qfv@Cs75HN3x%m@NWWutm zT|mgV$0tbYF$R&GH1k$ndVNi&5OI}+MBzcE&`{to8Cw02UE0C6cphc)KGL+mpf^37 zPet~VTdx7Zj+6F#j7f-|Q{IS7$?6SmTw3)K7w>w(IQecgZUVcX*NAgr7~l##+JrSwhU>D1YzVe&zAavyP*A5s{Sj z5f=qePaUAcBeFlhvK1M9OnZytARn1vJDjCOdhknpJsjQ<+v;URjv+?zylGm+$48E@ z2EG|C&<3dS4RH*QBza{DhGbpg)cGK(*x7R@BJTZszu8$8b|gjb^|n|xo+J|7%|C-70<&si+cG5uT0Ty zaR@+472@^R6_GBnf`{_wglIbzVz;8Qy(LOW>GMw9TTYARfrDSI>BfVaC)5SJ&G6yM zyEI(YS{pjht~}$7FS>hv&hcw?lAmUwZkx=MXlTP9pZpEhkA*8c_{P44F4M|C_qqKW zWK64WldT-ps!qSWbyEyREdCK9GOQbrWK?T;U3pSVFnp24?5HlCd)H2f$1UgClmVTh z^h*Ej7IknS_WbXm4H(^rKyU=dMLeS^bOX^_Xt>ROS+Atv=dH1mkJO@mx_P-y%kd#m zAi1YBP6kO`(X~9<4WvGcV+%+YJQe)xk{+Y8-|mpcG6&VRetEd%pgnFW5aaU^8z zs44mA6B=^Fzuy8p1n8b1cODqH1D6}Rw4&Qb%_<`yABJ5=35yLj+BH9nVMSni1nd$h z2PCQcBK~wPDbGN%-I?nJ#s%H>4sip*JrUZvf*qe9HbaNJPHF!c!V2%uKMvwZ1-|Q& zpp=K6R$FL6ce+M5UhbNvryby?f7?kGMga5^hVh7Xd`Z zgHg^ukb@PU`fO+=v}(-h2f4eFF~=31z>PzjLz9W@&Ei%L_16jkz4d*zoSlQh+vE-6 zZTkd1Ge3u1ouS}9s{O%~E(Cc!%lXB$dlg|6CU2vTMS{~FlQ#9z9icG{(BHrofUh&? zhAx{6rP;e#qYZWVtdwI%>T1fWBsDJ6RNiIrv>Jaf>MDqOdzq!e&q!!Ac$Q%jD{5|> z&QAJ1gb7O)#j$}^aGY8!bohspAJjN|?#CMUm#SlX=N4r0>Z$Dvr!SzHk)k?23T0VJ z%od3>`)_ihQIt-k<@5s@_IqQ74721t9OXGXq!k+k?wzPXa_OZwv9W9}3Qg2ui2pcJ zg+d%H{eYuWtEOonWD>9VMH}8l*-bdR?9vHGQ&xZ4`s=}b{br-d_ZkYDr6c+a(LCw| z7Kj(Kz#GLnXbeMq*^X^G&F`b>T@hMM;Qc0C(vd zv1i;<$hpSK=`1P#ncD&WD3`}XOkbHC&-pUcdE2w_*_@QFnX^A~8Cr3DRZQz#ozCM2 z?K6((<0-sLz|n2eH4>EAxAK?PEhm_geSS4-)zW?JYU0tUWcOl_K@j!5Ci)cNw&oiV zw$0JqC7zbM@oog+6VIT$NJB@gRW;i-B+$Q;lnPaLlz4?%p53U7y6aZkdBVK0jr#Hl6^hchV5&X*2v$U@mTZ1iEzrGuFl&c@^ifx{v9va(3rNkNa;I?RHOU$LSB|U549)aPD^`q;&6L8)94gdH(r{B#I?_0%@=k&_f zm$Wookv_FBCOa)l|4vWu)0k`Kf1(NUz{PY+2{Rp-&6K&uZR}uT)|Y45;=ltxDj z(`v=-C!L(Y1|XT*TUzgvk?{O;M524qs^$zzte69 z{3#Wc4}+*GFq&mSKUU$N+F58o!^?|KTK`N8%`~N(O=e45xMkE%!01T=~%}ycKnEe=0R ztSt!_yzX1Z>Yi3Z^!L>s&DQ(Nmup?vNbt#*4a__4jtPpY1VXXaF2L*iA+B{K@Hz)> zfi?3IV9g(~Wu3xw&?Yw34RWJIWU60JU} z59d^0`{-6&%-TXa4`TUauOEy6_qQa0 zIsW(x6Z8Y)zsH~M2uP#+_vlg7l!m*${~k8o?WvP6C-3WcBiQ|DeVC+k=zR)>(o~)2 zcSSn+-ppqCJR#lj=@?mk-wbm}FUV~@F?h6bTQ^04-n(V3hdXCF_})$0gM^jkQVq1m z9|n5wPWRH*QyP}DyJ3$RDNiaa>0(ZM?wnbY4fRfqQ|Nau$1d?X0bd)SmbqJTI?r5g z3Qk-uh@Wyhd4I~AS@k=-F=`+WEHNd!cZQ9=RwkcTJGZ z=rTPmE;hXXerj=h!M7|QbkkU|#^fiIUd}Gx*xqY)xVdU^W^i;6sbe!g*kH8gRw*v3 zQoVejx-3>|Vvzh8Lf+&CNm<4>w04-D5trG+SUY#dpJo$DJm(kY8nAI|S}7l9+?$-o zeX*|L?I5mXa9=54JLz(z()1*g4TdPQ*wJd$aVR|XMd^#e6pq897CHW_R>@y#fe4^y zZi&)X_Gh+CKBtmABJbgqG<%Tm|H`)R2pYC}JmX;L1lGzP7y(a>B|VF-`Uj6v3%tUo z2;2AeXmd1OnD%U(Xgjx*o0GB{$TgcFlZI53U1lmr~T#}d~(wkwnsuUdh<1l&IS~9%(T*(wEZp9H|E;vu==*R zAYRn~r0-Q_A2;S)vV7`G^hBlNd1@Rr+YKA11r}XxEdsNhT<~Xv-(26X_B%($ZhI?F zVV{0AJZ@I#1@1A>D!27+Tc6S!5s^#IlGQ9&U&t<&HM?H|LGCxHN$`zfi%Py-aDhsj zkZXSUwgT7w?{zud44Zf#vlp)!J2eTVH;X)}1SStoTPwpoUG%QxBR<$=b~K2y`Hz>> zZP0xIcN?3o6ITIB6c-}vEL^#4Y`BM=QwMv$5WkH_{vk>1(!>WDYp>vRONd?iTL>;=MOJ+S ziqty?a>XoP%_UdecL{a)+$a?{3X>ZVaKY_LJl6zes_zxkTuXI+Jc{ZANMea-V~@`tIh_pcbm5-m1d5t90#?;bcuYZRx5`dB-WX05tXKdE%c| zDtukfz5GmS=ZJ5 zc5TijMo|{q$wb=kLA^rDwc)E~`sK{9)Anru$R&4;^b=EvrO zv=V8D#l;QR4>Fh5XU7pIh?mlJ)F{J(Zn2MAb=Gn1r_A$OOHgYU{8xt;5w2+HEh*a_ zIm7Cu@1`<6^{ie_c^OS4WEXI@$>Z-!yB4MJ&<&Bpvgw6Z`5J7?4iO(_i zaB|AGAW3MzEx^i~{MsKdU59;EA#S{zPRlKKJ6qyOU*_p{+SHkpS5tI4s1rJxqUCes zR2I0(EoU+1>TP+sibpnoj$QVo^jU`{PH^It!Phc(kj!=4fTGhYe%ltO5+i$8AbQF} z|A{)$?&1NEO_6u_!e7{Wu^s)IRP)l$lU}TvBsDd&+)%vLc}9Xuk|skq;HF__6k=ru z1CrOAx3J5;zPGTF4Hf*14cdogrL|K4Dx-=Sq3n>2Iud;*EX$O0(RP zp7mWy1J3$KMiC?X>ICXd*OFF8A?VY|Q=3MrUsm+K*q=@TST={MAHOI>7lRY3|Lr^o zR1^Tar1}32?SF~X{~FS8cIOAKT8gfgO=c1JV0C(oTnw6oVT{uz5V`782obeID`w6>u&xn2i)$1bk1 z$NGXQNl?V|~G&5;kc$^C~)f&+JvdBAyau*K9Hi58Mr7srDarQ#|%u_={7W zCm&K@y8YIJ59WW-fQT>9&n0$*c%FQ_dB;EgkIJw3fwdHmQMB)iE1Ye0+CT9&DB{ZO z9cdtsIyz7OG3MGoqk2kx-MDk)7o30o{BoBP?lAWS6W;sjx3T*?jDMguRXJ?&8xCj>eUI(T1X?mELq1>!^L{%QhfkYVQ73ByD>*wo zEEabEM-Dauf<5vn5&}J(<{QrJ`iFu3e~`|@sbK$quXz)lzB`ka)G`-;(4!t9Q-=$? zlG`6&v;p_dp221BMNY>g;GFiq)lRjyiwU70>`4qU)sr;dSz2FkuM=$Q(w14xflFO~ zkmbLc7S*W(LU$$^0{+xO2-Qkmfv3$XmJ$sen;7p{hR;6Y6i%@9;spz7?wxI=%%-5pRvax%8q~&B% z!2dGXi7z~jQlY8Sa1(BKrUobpPz0#Cc%cpIP^eGL82?1vGo z0cn1}p$$7dJPBB>IK1vfKnNGy(Fo$HxvVCu5lU2M1`}t*D-NtAyWV`Cupe{oobt+F zXB%f^2Q1C>|0#S-2`#kjq>8$hTK`nxZf;tRNqm|!LZx>&X5+Is*|n9ef9iJFsS+WC zfN`po*)!jS4pAv`NN0YkLjsZ>UMOjYLDXdtP*BFT=9Zz;UTY8rrp zg3N%|$zInFGwux4W_;w|UO_{C%Ypax-cqbxn`yopVE>Y2(n)$|F%Y!pzis~Z8MivJLPlpWivZu3&EJM(%Gmh z7kFb7a>*cP)F*Py{3jNGH~uGB_`^R8N8_KUflmmo$N)Bdmh@B+7n(dH+KMP^$1C!x&_EYtu;c_dc0?#r)BN$(l3`1xV^f+9kWjhjE&)b)p9?Bi_sG-Y+Lh_7P-r?{ zjjls9EOS1r!``EPzGnHL@D$IwqEm597FXF-a>5j@Axdf*XJt7iU|7iCuEy)_*YRPa zAl)Jm7l+xX4;vror-@3I@|t~{bKR^mqh>qyx8GdMm_>P>mK;wZ&tHm>g4T62qAzCD z=F6IrB&^Sk9u|}n4v?D_4Rfq3k#U0kJUeB~fU2=d0N8$WV<@R&@C(3NouYdk zUnE*$Z2)gcf6sZd`U42&?~Vw(NxyI%((u+&qZQam?u#WN?nff5Pb)){A%=w_0@N>w z=w`=W#%*I}I%`_owsvK63MpU7=*Qp(x7^+{9gk(vh*p0Ox69D9nC~ks-D|K_`~__k zA-1}&X6?DN1bR%sjXY|2thIb>=@gogSb35J{pm+!(B&679HRDL661xlX{>vK5#OW~#GaXy+BBK=O0yQ^=D4bt|U`I}YGb7$Ag+)eo7hmfm&*(i9b zoVuRjMF-cthp7>fc%@!IS)zmdcsDnlq$u z`yo-J`)C{owUulBAShXp_qI6ofXbfqPP7WyttG$(8K48}n$nFFKX&`Mj|=)6t;8U) zy^dsxLUz?KCt*GP#b22(Kyu!{rKZHUYx_Pn@Rk=}empU+jQ?5o47pCXzE$o_Oy$JB zrPxV<_y7%54e?2;+b-7s)u;rVa0CcZ{TSND!j~JXYeZsT>tknviS&HSa2DC@;_z%oWW&~K>wqj|CagF>|c%jDf8#- zk2LI&7HrXJaxsAa^`6rC)ciZ8>8t9NfvPJEF3Cei2+b)0Pt35Uump=2;~9luzqK3* zrfdiy_!!6`@Y}*dFXA+Y6LLKBsrm)w5e4YJG|shVJsxH^M(Q-`t3dI%V^k@ zmPFP_hMqwC{dz0IM$wzh7IUtf?*-*JeAFn(-7viN&2_DW(&T1AGLVrIx{6GKnilKE zyi=3z1|2atNJ5>*k6}ZZ#NA^>HpWwdZEpC0ddw0S=bYl1G@QUXw7W1A?0#3K{Eu7_ z$IvDPG58!9QQeLzJUkxDpMRG1Ekz$E3}HtQbT@gUe(#bShpM8tw44re>uMT_WhIKl zVgY3wYF9Q`_N~mVWLzwUQlDCI-gtb}@Lp|Rsp0F|q|dt#(b3{J$8%M!iV4=?=bRJ< z5UMkgkg5QUR5pRB#PfHE8L-53_s=kAVLKJ0XfKcTeae@FhW7bSkP9fBKJCSZ@`p)b z@ZmVMz30k)BF&5rW>IaYR0KEO+Vt#QSdUjJ-=6zIn2q?D&Q~&!`r8s+l`Wn~$xJ_-}u3r3=b2-dv=M|dn_wH_3@mb2`D|I(b;aCwWVt_T3wv5kvRyg2% zjoPk~4WIZFdW@}N5KXxuxC(C&xgZbGX*lROsi!2|p%~!r=p-;CK+m`hoC_I_N~r(h z;v*d+zCR&6_W}?2@au_z2Qm5&Al-Y8OrKZ?;Xp^^@s9YAAEaO+$a}89=zi%bkKKH7!o+XPZak*iQ3*XjDNLXf3)-$)P)uQ=?geuaS%hUj}Tt8BKTf&W1)c)~n05gFY02hsXZ z9Vt4`+o$yHq4~bB$IHjXUeVnJRCI9o2mjX?u$%}64yxkvU26MF^H{-7I~Qh<%lDEY zPC4KoY~vhpZ{jY7yZgx{7{uV3)#~k;S4};Sa#aCIxC@tgVgn@`pBxEjpSTuI&j@R@ zf2Cq0dzq^6fBytxfy7XHzA7PPcBYycXK+CTeF|(zdG*4S3>5iWnjE%l<4UGmc`kH* zyJ|14R8|dzO=_ds+lXZ-l{Bag)XaZH+qit<2PLm*#THBr1*a{CKBFq6+WE@)HS`a> z4ex*Xq5;!rPQQH7ll&Z=+m}ElC^Ds=ElYMZ0qSy91u2!?B0#Ur@BCm6G(%xAK;+X~ zuP&!!Hbs(T1Vlj35fV7sv)Hy+35b7t5908faa=fjRj<3Zw3Y7a^~>D9t*igqwqMks z`RV9G?DitA{dO=CiNi-8>ckU21Tgc4a$UjCT5uvPXIRl?p2Ou=lL$7)LI%Lg`w+j_ znFTQd?D7HTYjp75cM>|GXZ8*eO9+B1e@)!eK@H+?RE{scf-`G$X3P88{SmDpKLT}d zni5fX8GLs%eV`aJepM>$SGz&OwfNM=3}hvn&ytiYo1IN(*mhOTt3iJW$n=pD;kJcldh792;PAd ziFb;vG7$s*z5Rrc9ewor7-=(ICV|f6DJTG%W4`OYyg;8{znkCg7d;=vdBT13q+Ov|Vxy1(Zt+w(RL( z0(F=D)h(P#wb{-dMe+;L#~cN#hlss|eNMVL<{u2>>n643U76 z1mLn^t7SScq|=c-#0$uxNYk?r)WQw{m)YQNNH|{ach~q-qr-evfGqykTN{^7+CEgL zNI!mF?m4QHPn(j$zNV?Rb|am1&g{qB{hq8g>L8%~t|3xQLcw#=0OBMw6>#@talx@A6e~cRNyHR2rsQmC%pQ z&z|tVmG*;QKFK@=xO{N+kykBZalIT)&*;CZU-?iKckK&(J3Ge@#K#4Yx#{MqmU+VW zqXNIKwTG3neznTYDqrfnn8(PquX*`4l{zRluU} zn=)K>##24^MO2!U@EKKtOd@HL<>@4NMCI;%tj&fNN}$1BI8EQG#`$xKuAxp@JNw{* z`vY`BUl+@j#(}Q^R>F4|vb+H;ev{2@n(CH__XDaPBFm$%L}TMGJS33XjQpHU_&)Q-+g&I!DPAP7Z2y*@ zV~xT4el933@{^0xX%nh8P2${?Q4ga#rvW-BAA%{Ew8Y;tyvYkCiDls4AtPpevyP0f zal*FRXKzRFNkE4$@s1c?jSiZn50at->2HP=ijK$;pm;Xaw}1ax5Bn8MnjAJjvL;+k z8bY)Ab?ViU%L~|9yufnj%!FoZTW$ddAvhnP#OCf{ zuFy#hs>?c-ZYUZZ6aHJqY(ufPl`*pb)x;YCymt)P-Oh?Clu%{PIDF8=Q~GgaY-^PJ z3>vo6Z>1L+LIX+=<-o+nD?Wr%;*%d-n$HQyo*QiC1`oUELppt~rzYp-eh+R*N{IN( z`r`Di0I>JFNY#QD3gQFU-wXR5x(`+>=hahF?X;WTcuX2ddTM)do5} zI;1RbEuS+ogg(}GgCDf-?|Umw^rZ%>{0SUcRaook+qu0-T6ogR}3%*c{+@4u0>W_83k>j7-2WM3o?q?+?vVZ0G zGcaVdoP0^x@_F29i0nL_O!BjrpoD?%cJx*avBO(Q;}JC@>*(gc%<}|u3dxy~!XHn~ z9Rcu&a2u#i?RS1@?r_nNfy_U@FY7{p5k1+Vg-jV%Zcs|&9;b?QvmCui;tfa>HS|b} z&^VqJ954m+DT`<3wwcDpXlAL;+P;&w(54dwu4jn>X`ePagdR7xXLbt^p-Yn5j$Rz} zyV^Y@1gcts3-~XrDg2o~lB69Ifs~NBavOg0$4Jo8f_l?RMxJ+_K~f$wwar<9=QD3d zq}|s8vgG7ntC-p%f*pskMt*I-ceJkga_;PWzbP;C`@3FY@El){)pFmK&&Awb%^g79ZOL9gr1T7{ zezH~O=bSUO$z1Dx^lqq56ye(NlG8h|^`w0$IW&Rz`0ts-uAnW7PxPHoOoUt;`pcmM z4s)N8q5%`?PCw&QCSHtnCK|NyyU0w4J$toW&k%z4%9YuqJ|X*5L5Nop_Htl5K+gZzJu|6sX>)l#VSR}rA?tr4$#qbTy0eUL4l%x9%$`TgR=cu zOY+rl`GGZ!ZgF6%3oxNdj{Ex-bE_SXV$0_3aEt4ahxd*+0MRRNj3ISPvM`JS34yHb z?cLWV>AMx2(~)c%=gQheQHghML+n`!_g6xS*El2JmzK#us`hJbH&04t7x3AT~m99d8uz|mzt6Q`v zWsd7+@(q-n0T7jfjGpZ=z#>Kf3b8ET;KKKN>Tc4xyR13s)^me1d2CtI2`nO+d_gVr zFG({U2(!U-cyo?pIv>w7P|@akC~3Mi8pt9T(r7Mp`#a?q$tizoWiPu}k3lpwAnTO2 zTb$+H?9|0Nn}U$udnI2!l zgA5#k6Htt>m>xZ_%{`X;az^s#xU8IJr`<# zKT=VVY(&U=r09IL*w-cv`eC=WZ-lVtuA?|ZfeHIt3M9mfW~9K3t^&(3@9+8jN46-n z8|=!6pDfX05pdD903SVIf%LCRem=J=|HZn|xe1PC%MQev`DRD1A5I0bAjT}6Sj|7O z(uUqBGbEs)+9ppC@!f`p!+ z`w+rxe8!b+g5Bi*#STL=(4{(I+$QN7#c}Px*}uglXz?P4?Xw$E*!b62++?JO0L=Ka z>g$MF?-o6F)hu=kDYVt|)r0zTXFOB@J)B==wjh{!z@(s#ds4h0KCk^cZZQ!u>$j}J zlKu6ivtmWK1pY&Ne!8j-i^a2@NKW$H%OP?pvVvb;(r9=!nyw9F?Kbv{9V6dl7I85_ zx=zOLleQ3`*-7i#bX+Qj=36T)mOiLNa+pMzcCbW@=5z@XSJ`E9-)eu;Kb>RYFl| ztfUUk_AZb|XJJx_O{z6kaDqU^!g#!LQv~RtJAAvRP9qN7?y8;@ZFU{+OaLV1#z3N1%vrjX2u+j6M8hoSC48aA(&te@x}=pi z9Bok-HCP*s>xsoYRFN=KGC1vt$nt5(qH&&S;h|80fJf%&Mqg!GSBqwo;MN$^83Eh) z{lRPhYkO7S21ICB+L0gl)?wiTy<-YJMMsS?Av+IWdT~ceF9LJy5N%a({q%nulzGa32@HQ+b z(!`N{mrIVlW@uSVm)TOS{***bT)A*yVE!v!b;#~L`K_*$@YIjbDRS9I*@5uo_fUOU z*KKt<#^s!zPQbv2Kp9c)c(S!0cJBmsPNJplic8rsh*Hr_^;W*WQstN3NNR%=-asjc zKq34h`a_z@-yEQ2h7kRV!Ah1pjq!6Pn!+!UnEZ^RT50my+1m{)+ovm(vtZhW2l%&T zyWt1zmYfr;ihMe;#c5wlpMPgM^sPe?C(sEqm>nDC%`BdHmloAnQ!F*(;TgN+{*D1w zOc)Ox@j97H;CIHxGoZAHj9qr98yVVFM%>lPcw#H-b_2q49(lj?-kmH6p5CRESlXcy zSz;22+pBp9F7+5=nLd(CObcY}H{>_oiUj;rxQ{kLn(ISHb~na7@S4ziW+wmhBOj6)f>q)qQN ztHsl$3tZwTokN$k4H~B!95|M+l)rP5lZyjGoKJhBmw#)eZtuyu2AT*@jZ-25j;_$BF0Oa&_jo;CE$O&F-EUV`Ntqj)5M?Z(mzp9MI8#_rMV1BE2sRE#SO=vN z&xjO8oTE>ln{FU29B}a^YmfRzHSut8d|SfeW&7njLjoj60~RgqeWP&&V>QW)sx5hZ zxGg2?M|^;8I*FAceQrV+crxMG8tm=8Gu>Isxo<**9uGg=N_^=t_&`6S7%%0T8+}=* zt-tsrYX4-eMuC9>t>+yzDc2ymjpMY($xwgdq0@F-ZcOZr+fyt^|3FHrvY_Uv6Ii3) z*EyYEF8@FUh`Teu9g6{3`OUrlA|}=-PFp z>@eiOwz?IsQ6}ox&ZcP;CaqEIP@9Ahptz}$?%rYiLI+RgLZ0{Z0}rI0%QWeyfN9zq zeeye%zNsM)5_GtUdcSe|spMo?k6Eso8_BS-wyYNij6KxA8>%M;5c_D${pzZ(r`|Za zc4;KTIc&!}xuU`Z^`)9DQVC6??_2DAV_sK?QGNM!M`6xEwwIhk+jsmj+CA?*(KwOg zqF2%NgUfsf5#KOBC&5@W}XTWTNmqRS^3}0DvAe@Nq9Usq?4>EvPe+}$C}Ko)5o{-)#xGEpiJLwrVU~~n zCaWvaG@*ay?_p--UR}?~8PhN^`C=nQ2@$GixEQ3XAD!mN`1n-!tme8wl=U2g1an`) zVVA#M3cdb4O#AKO&%htw7V!#m#K`TLau)p&XxQZ2sqF-WBm{N}SyDRisi#TC{C}`| zsIN9w{6CC+b#NTL)25l(F*7@6#u#E|ikX=i*Bmo5Gc(6AubG*dnK3cb?fZVe@9OUA zuIm0!jb>Lf>Ze;R&1j^4{uX@a?d-$~$?-{=iOh<=^P_C#Gn;6;cb`zrvd!7;B{sFR z^Vx6KuJ~b25JLk7{Pfai*)b!Mimbt=bW3!jOV4N#X^gMVOPf;&9ZMcwXR z90u1vfe5|pqYjg7=g|pBx5Y#Zw-9pt0d<4y6?FxKU?zTJUcrp0ETkA5wFU*nL!{T+ zxm1(Jj=-DN`cAd`N2CCLV;N{GB~*78&~j^p3a^#W`IE7NgIZwdgzy34sAj`LB(HU2&EDfU~j8{2B zn%fbEf7K{aK@&@qhpkrGYA_nI>Kr>0vr+}<2^ZEURBguGikkxw=_&N zM5?pN>9UI*-sS!=_ItdiH>-}7OmLV@m*Ih1gZ6VIXg1h#8BG;=eV&M#!%E^mwni7_ z65SZ4vR5%YoWE3=t9vxmEbP`7WgjR9c=*3iei35XTD0jP%0*UX&u8mP_R#-XB;N`C zschgSqpG_h?uY}k;2=jlS6)>ygoT;1(3p1h!8i94GjVb`vD|ZPL&@1|hX)p2Bh_%9uUZ!r=Pvsl z^Y~W~EU#++$^}sasV-}gb1%iPukas%fsG|UnuX^f+=L1{9YaeuFsrVIo`ESP_|7c0 z9yv4L+~pIiV`HuQ1eG72C`joGX}b~P!nCW3DgT6VdW$7 ziVrWqusm?DJb)<)mj6tP`ixW^S!&eIu#e3WdxYm)G;}4I`1xpwocd(kX?kL-#t3Y&?GX&(zunN>HZx8?rmj8qMW6uu

qu+wYG77*WF0j0X+_r8VwXqx8KzM=0esOg-pxU0PB4JZ+0tF_3Qu)j|h;$dJa zawu*_#NFh6NTu}jmdiF*3j>-BOlHa})p)T+tX7th7KBbrUN#6tzk)5!t~7+LrD(f9 zZfILxR9t&KMyia@HTBkaXqKa}Pv4&F0v^Qb3Q7ii3C3CCn&}@eLKki-aE%n@JQPzcC(;Ydzp)@rVz-hFjt=!1ds>uI*ez-|x!A7Rm{F)*ZO0?vpgd3&1T zmWM%ihJlFP4Z-^LmnE1x3KULrX=b-;lc{FNGu*gMo=m~Zz2w4)u?MNUNa3mBo|*K} zJoq2{>v4D$0+%^Cf=;E;LR33?kwhWV@c0!^OFti=J$K~;TDH{W%qy`cR4Co30SK{Z zco*c@nO0HcU74>@JUg}F(u_u(yIeuMf`}-S1trTR!jS-Jd$| z^iPVPUqbBjEgq-;JQ*h4ny801QG9{DoOZH~F#b@oyPVQp@$xYRaJ&p&)RacgVT=p& zc<&e@_7#o>SmrL9sxh5<=}KEl)AN^^M_U_K(D=#aV+Vw8tjSE+QZqj^Ogb@_c-(o8 z6$apBvf3Qr9VV{*!rIlQ%SE^iz?b++RNB>VUw<;Qim9j34Y@Rd7r=c4nO?_v;I5dG z+2vXfL@+Oz`hN5$H~$ahiIbM3%V> zR)vaO12@}inrmYHdFHEB=q_3DGiM_=hkdu{KcTl?_qg*qpBkQy?yn6xpMu^jAnI)Y z#f}I~Yo)pus`?kafr$1zHC&j&P1xiEt@+5R1*sLTZ2e8l!T(pu3$vj*M^33O;;2&on@UKgj%%FjFs8Ord^7dn#2NC3-&C{c?kpQG7Wpv!%&vx&D)e$@B! zxWKOz^DThA9vdBaAAt+_30~Ne(c_dBDxk=KNBr+_D>Cs0y|h6{3#%ODf#0W61oeu}rYpO2HTmE}2|}sdF}e;l}SF`CiE8 z@OY3K^4a#>F^Bopzlh0?>{7$ryx?97>3`{d`$a4G`sTk!0=xA}@~K%4smTr9d~uLs^~Y zSX?DdjXxtUJR|&Br-hMf9(WI66evJo7KAFtQY2@68tenWa5&XDqovZ9svPvq;aQq* z2eh)GzmL*51J$~XSN{&-sQo}WZ^LZ_#-!U6PW$wSUOk4pU_tK@X`7Vm*@iY%bl_PcMnQlAR1ARaUJPxayg=K<;bRq%4M0l%doN!;KFGh%;AFn5>ZmeHh=GI;eA5T-u!w?OI`b zXvkK~-rJ5jIL`?+Qj_H1uQYdBk4TNYh!p(zFnWD2Mf5%9V5DWFC_Ru^-xN% zh~sr}?Vi_FnbD-XGxVR2>uKF|Q2X!S-%NU5k3BwjS@qY1r!Vt{-F~#3S&8vULMnKt zoerdSX)@$DdBNql3d`kA@w2tEu8T!9La95+9&dI|%b&+u8=(%AV>edJxYFnlHr3$z z2&2Rk2Re34+N+lDyVe&lW^0!aw-K-$QPpt14-BU0N6M4V+KIBkX&PnioQ($QR1Jy|>~&=IG{mY-xdWJceOq8iFP z=l3C*=>$p9SmY(pPJazf)p`lny%#O0y@1g$`W*kz**lUQ^Smb{@G23uXV%Vu@`C4i zc}6xtKAiH3y^(9id3fk~Jp)lN-rwO~+Ys%)?|p07sSb@U zj|0nO2ZL%bd-!?2Ih!K|u3=5XFZpn~%baQUBb-5qmi@Cy5(nxAMS>iYWg#e3ce&5j z!-s6}GC?Tvev(-0Y)J=#yMbFlLALz!H=4p#6U@JV6uD#V4Rpc^%@apL zKEyT`&n0SgjF9qs#7m_bMxa&npjM!yNs2pGkkLq`B6~)BgOaUOZoyNlM1F&W1G7YPG-E`ol?{9y}m(7^3?ZP8PY z?w6T3B$W;;$C z1T?XQuQBjz()ZbWw{MW?WS5Vflktt4vNPMSYsL*CX-Vy`iWBO?YYL`49@_8zg(PC4 zVgzqSsGW`;O<1{I?G0HtJrJzTdOX({J)Esw^G$i|l@LMuC<9j6KH-#o3UTG)v`r<+ zt4<_$HWrYBhlAkPQ>d}$q&fgitZL1Y4wbv5%L|Qhcd5%@uQ+ z$BBKN61d^<@;zV%AY*WB{>v(p)oMf!wPV(eP;5NF?@^w?M#$IMu4_K?Wbe=9q^G7G z-9V%EA4haeRV*gPHB9?Jo+vNJdIRKh9Z2zdCiS849HMR*NE*CwHLuQ)?LCMZCT z^0^&n4aW}^F7bwmtkvj|s^VL@!okJ{ri7NbAH|1isvhHarxrF2JT1=2Qog~43(XhM zjW!*1tFR|tcNhn+!z*ntQ_}?Q0-FFCpD|Gz%M>+#GF0Rsh)&@rm7!SjqW)gR>V#Xh zmj?tF*I6joCpPqvgg=p?OR`+tm4WV;>jrAUd2<2!Rx4JJq?yrwbx;-9xs2J}Vet_q z)d?Dh9=eO}Og(Zj;t8+4l76`jCXq~S)N8{N{ajaSA1lSEOUnV1qRi6BP#_D?X z>S&mimv3ZrLKkbxI>!^|A*9`!Nq6w$t=zg0;T!<%-_aNIEAy)*B*Fsu%1~+zFm$FZ z!}y~{!pQ{SR0yA}E?-T8J4!ucBiA+wKR`jBi&~D6g4pe8)+?HYK%BGRs{<@{5iymP z39J>GbKQnc@r~)`17A(>SMukx%x(##2;_l;9BHt?4Xn|@b4wIPXM7d>F?R_owDIdU z4n7*c*G}kHK{2rmW*3BHk^MZEY>{MroJ<^L^&C$|!Npdt^SHJLk8~pl54VY z(SlAHI<5_wAwk{Zj#)WwX%CSwR27`I*K6D#ij?B_whXco%jkH`2C$-gn2Lf4dP|Bv- z`EK$tOK~86maraXCaq9Y&Pd-2jP2IYLN)T$PvS?6z#Xwta=B0UYYGhWi(Ean3iAF* zf|l?s2_bE1m?GVny-tZ9t|OVhM^AMw7?ayc=j<6zsJZssIL0qhXP63qttlsaHrcUp zMBE+(yH=uo?2wnDHdl&s9a+*GUrjfuLykAP#3d40-HWqd4 zlF$oA1Z-sGI^SvjxFPJ>6xzA}Ch~kCJfzZ8v?Ld2Pl3@h4zKc8usym3YMjCk-e6y@G2IxU$~DU8a2`#Jv9R z`K|rjr2stG&)jczR{y;g;3iR(H|pE<7Z^cL<%7YxgA4h2$`8lXb_?E! zI8I|C!Qb{*CRb@#Pae{=(_PKYCoAR#t@*LFzs;2K89enBBj2FIW?LY)3K(1m!#YE# zq8L@%!Bok~zH%tnjX*Ud!Zav>4hYpsy(a)7ZiiyQm z232IiHZ`VP9E>e$>%k&=&74`5-z*mY?y6o*WX)Z| z4N3@c2gUp()U)6OgH%PNKE9?+KjpS|dAQFn=>D@Nav*F8JMym%1Lu`>LqQ-S%j~3= zCdo}BrfytdRp?pctW++;m9+mZMzvHi))^R^HleHQSIHALvadgk0&)RqMe*|*E(s%8RB0h}LNXOU z5(az%F}J7g=z7lODTYC$DhdM(DIE506_{M|yT&qje3O0~D((?tpbp6WxTlp!A)kGb zitXbn_MP0Rir0oWQbO@luMTw>>IT6hTi@To9rve36f$9c_e^TRvul9PxY8$Hd%IV2 zeOUtu?$0&9!SgxGJ&y*Mc3+Et$2J4oGgomPviC3!2PELprutd2fG@)6wEs(Q=M0@s zQHsH}ThLcz9^YRsGb6UjJWP^C5kP?@1an!KQ;vZ}40th`+ywAKQh(sjyD_l3BP;Xk zr!$) zjw6;I@ky|*`Y~c8v*YY&ZEQ=WzTp^7R-KUIY{Wj+My~rme){(ugO*-@+A{7E4ZwiE zkV-BR-&8jV8vY?x%-Of!dP;u)OVwk`T>kVUR&S?dR>qaAgnWXns)X2Lj#@+>8UY~_! z_yG1bOS1hha(5|RtVnnG@EGvQoasn$wh4f5Az2bUweUbTA;J?>sF@jn_-)dJJ> z>5et?;=1hv7!PC(I-(Q!+>_@Kx;3e;1PuIja6tLYpvO(3*_sR!Xd{uU7097WV5c;y zwJ7+4q*$r#2nSK0(;A#SuRlv&3=4cG}mymkn_!iv|fKT0BaIP1J56zPnFR4Z;m_;5)VWOVt|nY>O9wsS_;Z713!I2%oFS@GmL zrFAVW)J=fl;(hocyEsZBL^?C>QVBTAz(e^BbFE1xuZfNLPHihGe9Sb;eLeFeuIiNa zZl;?=2OadAkEbi4Zf7{aEo{vKXbwYaa_U1n(`If!LX1%k>ZrEqsUT##4O*w&14B$b zcKFD+4QTDcKi$murJ-dtDmskX)@hREY-?p$9OY3J*!}irx`FiR?>=hR2mPmLx9~2{ zc@M$YtD#i|9?z!Xw{Skxc}eZO-!f{C&0K7(jWSP0aUPG!SLlSNM5b=UxuhI+ST-Ww z(z`j)XdxwAwoIBqu7O`XgC5ck)*jBW8}<~qm_kVWP$)uNWL{v9eU`SUP}SH4)Sn&~ zg>wj16Mwoy$o3h8N?WjNA%sCb-vX&`=KcZ6NAhv@17WKr*Kfbv;5XX?YHL6}`!02z zkrBC}o=y1$hk%}obm#B-YzmL#{~sPxi^JLowjbisYaE6_hjj$e*~81$S1TQ(Jn6txs6jRQPL z`D6(05Xxg1EK^J<3VEn76Mo@X76j*~ttJBJdPLF6&_{pu3ac5T(-0LxnK`v8D>!_D zX9{Q+XG^I$vt^^$k?T2)&A_}MJ!&gJCWM~QE~j$u+){DF({iOJDElsNS61p_Y`>lc zRqUwpj$<=X*#E$z%N`k;+F;67_Xu&VDCn9^()rH(687`){d3C&uoFY*vHx4|3mfVn z_{A{t&W`(Oig!`09xK}P&)xX%j5ER-;pi$sKjtyEuyZRp$ZJ&;0YTF17{yz?7lr<; zvshh)G-m)|-IYvDU>PhdY*~?3FOLqGz-5w)%aS4j4?%tds@T{OW(9g-J^XVLoCbw8A`bpO6h3~jnlf5#3oFPN@04t&Eh8yeN`#)q+ zdyUO(XQX`3`VuceJI1hqusBJf$c)ar1Pn&fR|hn^DuvjF3UNAZ1F5&w`iN(zVp18s zu&H2X`g33{a`uP9N#&O*eYxphzOi6rJ2UnY;Lk5umJ(>W9n$VDS5K5?&lIo^KHt<+URo^r0F+-4w@?c(Imp@xqgR@8v9Dni zG0H0S&RoQtkWwc@CpR5Q>UUnOd0E_*xw&)N`x=?MJN>u;p@#jcA!~h4U(2>^58$7z zkZxhgI~|J(h$f;VG+3#})F< zqru0&VW3nPNk7on&69rT3#~KgfC=7ZXg2lwqN!hBn=vbT%9fzuYIH; z9Tr*%XhJZbV8CdCl4s%*DCr^0Z*z0M<$Yf)N1x6N$w!%H9Y~D6AY}O_`tpNKpAPFU zr@I;~rh5O|V3MGoUXbMguNf<~RUg~q_22dV+fmEZJ3JpI{ZQ#MS*;S`gkL|jBHy^4 zIgSbcDoiiqSV-~X(7IvQ!5!Gn|6p8b`tK3oJ$g0S5 zB(RN~;5XEfNoX4cD)K`l16RbvGgSbN5LD7Tl*{>K(B@Nck-{TH-Jd8Ap{EzdkFe0B zO>dch5M@m}vjm{#qpgWW=vpu&;+BGWq7o}7wLtVWfnzhLXIDMXvnA8<&goeTgxqRo zB6#WX;6}-`TJn1B2Fc)Dh(*qZ%j+k$c|`WE3juGkh_^+v5wQLaZiK)CRjWhwH4@8r z*oS)AuXnuTFjX59kfSL!_ORCIq5GvEbdvSb1Is9)&6lBp1-$xl+%Rs94$ICML@R|< zY$m4($TDe53Xr;m`0Fcpqh7r8Sso#&kGwh0Ei?|K?Z!iIE}k z9sRDfarPF|`Y!U%4idOQ0hnHvg&G7ygs0U`p6Cx=SO#fMu^i(BY0O1-q^&f}85As= zkkWnEsWCymtDe`*3Jv(W2nN$?#S;D_$NMM<(1R?%0?!3sKbx?cIaFUbPis~gB`G{3i%>R}KxS8bJ$%+3_c6{KXk*gY`QBWzDh$MXnu0hi!y zC4RLn2JRgO;1DX=T4N8;_w))A(9luRzeicT!_Ko8L*11rDYCK=7_AT=5_g60>t4D!2U8!e73}ruv*gDtW^( zXbX#QbVfM8rkdkoO#7zt>boU~&Rk~WKO&*GQE}ZxaO+5)crbfhyh=W6t+Scj* z$Eb_JWL0qOAigS|s%^s#fZmX1pY_%>pA1Y>QX5354kT z+ZDc%J%rvYOMW}>_#U!_9zWekHhR&mpj5qu1FWSDx_lrM%pgc?s)-!qZ=1Ax_%XFQ z7HXpNg*rL}^_RxaQ5KBidBAY2Lv7Y!s*-G`lZS}3;Ewlxm+mk4Rg6|G-Qi+N#eZ7FcU|G1qap3XS_{_pPG{@H9%wGhv3mRyxpJ-2boRNFh=_I0*0_z`- zh^Vt2V}kJ8V>>gaHy!gxnSW*Ufn6=w;4*I)ry{jGtgUHIX~1ovNL%I71s4g_KoKS% zU2ADA1dJ&9n0@0reI#K|N<%C~0ymaTmg+@T#-o)otPQqIqBdj1rtc{sFNs?me?q=( z#YpDuif^q9`Wl19f6XGJvCQM?x!O2XlwE3LL-Pfw*!5TmGb$MiOO{Az6$Yt(>V_ecd2(iOs*mZdMPO@!t`i(K8$cMJdcal_#(y9bAo;K- z=FH@*xe9}6f~4KpPD`T)1JN}}PDDPyRGLAWt{H~i#t|-n6uSZkg)vVFTM#F~0!0=K z(G}dFz&mO5@iYGMtg5P`B;m`nC1r=-#oA__e&=JA#%4EDir2UD9|{cvlx|^^_2LfG z`f{kOytL)vTSWJxUh|BEY7;9hLcy4eXC9KS8l1RdyF`n!uFy8j%gbAjVg2m@Lf27j zX8XH2CG7-w=4cN)!gB9=PW+bN#S10!wpY1zjT+Q{g~7Hb&L6`zyWV!rkmE{td{C-} zW5v0@-3l{!H)}i!)^mQzq-(5FuKCaG|x40v0Dc0K{Z#*)f+)Y9MP3U-?A=qrRgi`m7t6&y^AM=e{ zPM{$({Vf#yr{6jPp4lv`OhkKuI$FMUp4(T})FROCPJQ@keD?L-1n~R9Q`7B|Ml7lg zC%xJMG+BK5wMTu_%_E~-(uTc9w%*^0qxtw24a6s+Ap#JBfAfshP{k3qym#{`=+ntL zSI+^LfCwokbUqurd0#W0&9gJ~taWppPDOC|#$REwRWYxgiFmC*;~(k0n|wTin^W3u zz~)3jq30q1{bHdx`r&gW1JHOPc>S}L_yp$)x~VtU$nhXOy4J7jj9NUKDzM1{Hyu}K z9WEXAHk-E&&R?Vai@tOS6FDDMnb1+ds?-_naTNwC;CP__^sDhzn?Kdl<#7FAqvdW* zs)81A>bFPVaU<Th07#=J0?_Q5DGqc7SF?Ku{)9fW(%kAbCF2qh{7N;7v8OU7R+ zpGCmu6V>|=8Sn`d5ZAO9qV6GU7lL8cyg`kC(vRrHU9%mMRgbDdy+nQ`fA`IPa_hh@ zMW#n;9*I_R5$pYTuew=IDLRK+a0vg)GFNl>qQ&EQ# zdt4CCc`L+v{3;R>g%#_)Zr}%Ie=z%Q3|q-9NnU;yF!QJ)#5ee(IMCG+zlJ2XKnynS z6uCqABq@LVIz9l2L;E*pTRhDCmbyM2)X*0QZ8}Sal%t%lH9e%<_@>Q&o~kj~#rkbB zL0EbpqdY5iG5bY=)3*0bt|V{aSF5V#l@VDw9ii^6DW$~^i&=Q%l%M>0@|TV+PEQCs zdks{|CsK=x*84i<;r(cJgJGj5o0A$ENz0I&vsb3Z;f{xyiZQmRybCV8OH%0RffnE< zXx5t4I*q^LwofxX-Qj;}1-%QD+6j8Ht{@tHD`w~w0Yo)c_>L@X3YYGhn)%%16PR_S zqAri(WG^!WPk3vi+SnSMknHaidlN+1DE<`;+GQ3@KL!~Iu z*bF|G9!r@0Tt^BTlNc!`d8rUG7B5(W(!{M~>pvjFBiZMrV?cr0gN=A!uK; zEHYp0QMXYFHpHEAG3h7&j@+nX1TOlwEg$(n2|LMl@<4QFV;t)QroT~hhM`EcYUe9B zNWu^%oviGARDO%K!me#;=1?J7mdqOq+smikgXEtrHH4`hi~q z2AWL%0lY$4n^-*iS7}`NCmQAv5U~5cn6|86d;{iRH>PM1x_k0n1-`Ct4(@t^et{$% zrt@N{*Cmj6nTFdO0%1H55oasR<9f5rEl+=m_4C?(E2xN>JLQIsA?ik784@SL^Po$pRHrO1JgjQVCKD%lGDu@cw6Qa67D9x(i6Dv~9~P zczi6PV#}y5aU-`B7tq9ElbiQ?*b%`Z^DpPr$OOA&p2W6;`-G+j4tH_^!z*p!H#Fy5h%iAjlf|7YWVLy8g$)J zbX5DhzqW6G!fO5)sC{?-V+B%dV2{27S4$)I)~QChzb~EeEOiSJG1oHA&t=3>XYds) zNblG0%I*TqM>cV3?1NVqgC6RieIeX`7p^~##)z7O+z$suKl`&B6JEPoJu*Bm+~Pvr zjxV7~i*`q>DoKb?I}~*4ycgUyYrOA+f@X8atFGPG&xzw$JvSso9bF{Okvj#>`wQr) z{<@-`V%&MGlBQ>UTCNB=zuUBT8f{M^owH;5EBborl^aisGvo=m4+{ypFMg`{0xpQD zZ%DlMI{HoCRJOGw)8)7uiM^0Fix>z=c&uRtdaC?N`}p4x?(67jC&H+-ZvFa~Fth52 zpXvlfU+>EdHa;0|S=RlnTPACcVUae2FdOaq{8y8bD7mR8x!Rj1dq?5_e8WTgA?f;! z2jDlyGmpLfJnQKtIiE+TtT&y7i`~HB;EDRKg2rEkb#0|lj-eltg1I$) z#pgbg`|WXsd)kx%z@dGlXk@y5HR9}g=~oZI}p z42R?}@f()I>0(&&tZn!sB3~#Dal!9ff)ZS(48MiGl2U7=4yP4GiG=flCNj&oN|HJ9 zEMSc9;EV;C1p#p$XIN*CUuh?zqWr3MA2dAd1@_aLt~=7w9QL@eH5@($9?#A_{mlix zbt|s;KR6!3#f^U<_HeE}=rdCE?PE`|RRMl2LQyo{y(GvD7>btb-*p5?ENg9B^YqiJ zemC;l{Fe6!aCm!LLnQH+z5Da(an(tAR43H^@H%dd@dev4K+!W!V<@&)?7!Cn=oKK4 z6x_7m))7?xMHr_9o*}3`K?Q4kH);#f`2HQ_Nr4#p&{V*GJ6$?j+FdmzrM{|sP=W98 z*Pko=X^TS%v`Fkmfl&DActb0+?yva#D?>QO_*tVnl%c{>aGg>k=80;l0n{BA=CkLk zAq;)rMD@!^4E2rl4OLZA+-^&-TE?8RuY-mX+Rw82O7gaU*`|OkZ3E7aL#oj=_ojI& zIXo0Zyc1&$fa5mN4!F%~bGV-}8zlU4d|f{9rgK;Z@0|P})_8UL0cR;?`cBrVrTS)m zaZJm7fDYIcTgM0?ehscFgCOt3n7pY~^QKDXE+d}}rc{ohYm!#x(IE|HKV7}sMFW?; zy42evE^~UBmcMCeyes3&P{HSJm3SS49L8rttO*^M4U$uU(g7|32*r z(}C|&*;KLcR!A!)VCZQPR@72Q=S}_knZYf?(dScqaPc37(0tJ0*9rbF3Sp`pZ{pwY zbZwF3{LDF45%no@@-AccYvbp5OG04W=Zinyt@%_0pSz=}8oG zQw?KR=jH|-4e_=&`mNeOmW^G#)tCj`!~bt^oR9IVDK^?*=xb!7aai=hqH)0Xp`&sB zNuW#*0DND3=jSbiA@FCU&Yu-^7d>%IM;_%z#2 zy-F76Y4~!FfLq@+f=Oc%(3o4oa?PYxrE7hixPt3cMrgTd zF*Tv0_=R_M9JFBBH~1Y`Z2y=>i5$IXM*mtU^M2Kk7%Gz@?QJpD9T{6Zf22XZ8Lvnl zoyOs#^p8{;9U+GV%R8HW!59Z7Ygy_>b?u-8db$Lu{)+@y_Wp9&sw= z*Z91`reJdgWB|XH^4&dKB)Vf&?yyh&$B$YCr5})C)5d0 zwif<5_GLl6id4{eL_c)d?hgH-`;&0zQA@h>>NY8Ki0|u-kU!$hvFV)QBd&CR$&2*m z18w}@Is=HeCcs?9AAW_G(Mlu;>Cca^J=+Pz2|?|Sb7w&X^MF~Zb{{vrGmb3-(P)o6 zwTEgORve4H2>*)s9$AG>$vicJTZ0nDCO5b1sgULI_inrKGcgjQPnU2lX;Fx{1P&H; z8Y@A%n{5#}YUEUW3ai!yr#WTD7{s`#O_`Ky&)QoOn+A%nK zh2t8_ApN#%G>4&Hp`Z9T)g>vSx7t$Bh}uVZkXSGQ_0J}Z_s}2ap^4@BGG-r5kQS74;eCvY<*-jUMI%b<_2WD1yi|ieSR;J?UpKa-fzVP4MXoz$27?9 zAb`4+m9EEMzje+F&2|1)W!_)cfln`!ajw=IyFs8UmTyx1D!@UQsLq_94QhSMu{&DU zw{T)YIs-4&+*ExKNhL@pz_M6%}X8YP)sLxMdrS26m5oQ?wQ8rq5PWX{WTC`-W z81M0&E6E3Buqrx%D$Y-W!5R){P{XWT{g0u#O8A%AvR+#{h7vtfim%I6<)yi2s7h*o zF>S}+`ki#2*r#x3|0PPPq(6meFJ4evqO#%a;p@{zuAgfk0QvPl&ds9V17HOuPzL1r zEc#F=xXeA?tXoOT_aWW}F^t&ibT2x; zVp1oF6#W*uY&VYk4Qi;Nye>l{G}fK zPdnk{+!E7x@#uqk^^_$s+Z^N|aS3V9s((QPhHb8@*u7yLiYLu(0lvPgv^=~0Xu4~^ z(pLW-y~EX{88M5{tyif1==YynmMcM_ils~rlE$b|srknJBiJDyfx|D*tas7%qYIBS z$|8s-?Drz;>s9~vJ6=f}@8v;89lHvyeXPSl1ryEF^hHTfhrs4gXGXv1_V_*8&@n-~ ze!ww=Rfe$6Tc`+>bCUT>?^?!;rpD<3vr5~1*K$4ckKJ@J_un6f!9FWHM{EBw$98Qi zB2}*vY#aj>siwX6>}_s!G1mFmr#navQ?1$cmAAZIrI&uGTwSi_5cRK2kEvHyQ8*^7 zp%A_L`@!8zZ(#Ie4bdw5)@G_1xAtjL#nQX-!xmN^O_6S?zqmcf6 zxyDeaf$QC<@?j-qm{tvE+FRaxnwan^<{)*q>1!3%VQ0>>`_i`+bk?a(vk2fnb=_2* zm-qO?v9=6Ig={k^GdAbtDT8X_p?bkOO6gg2JgDXk`XXN2a$6|t`iv68y_)jTFKIx& zCBFHncN>o8l)2-x)#e)eQM!?6H$*??&HsLk*_?g3TWVXRkU|b8+0(iLiK~gIqY}i~O z{YtPoth&BYfduvLHt&bpAj2yXzdO5>F~k~P{-*8Hxm?^ZK#uMD((=x@DnabqHh-d; zxqj6GCgD)^%v+~DS{vIFBS+wc1`GsrY#N+@f^rih>5U znivl!eT&(5ICtwySzTDJ87h$bVeYzNZyHqgXcUS4)3!lFs$t3W|8&Fu9)%<)79~SX6DyS91VddbEduXao;akx@`T?%h{-6$EhGJw%bp8NJva-dJy>nY%y^WiYU{=*O48 zD>5lW`!%2k1Ta}v{dEr18v7F?99(9wpXU3VaW&ByzvNu@In=%}c@Di=ZeFtQgZ;d< zX4~p=+r__bxL=v(v@-%qE-g`GqJYJR-wGa%m1@-rKu150@nH>h7};eV?LH)!0Noq( zEV{tK5?QyDxiy%M+l!?4iGDva{X%w%Y0<0qlH&#wR!PGrJXY%>Xj@PcY_8r2FafI1 z^I5cmgJEoNHj6TN`qYZmWCR^l1*p5N*aDA%NVJT`q?!URc~f0()}aGh%8R6*vOMvu+6bqzS5 zG|$9?1&dA-cLoC~7z|{^|EX=T|7iWck3T^4NrNSMm|)-&EHO+Z7^%~P zp(4=IsRPlF219z)+MVyoNA%z}-4f)vYq#v@s#cP=J6mG?AbGNpLq9BL60EeG$0-N;_1+XrL6o zO|qq{ti`-ET{$uAQZsL@!#JHdQWBlE5jVHT+effkpu=bFDq=N zfd)|I#PZ#}01S##^#P15g0B{#P0KHAkV2_H|`F>Gf3)q7uS243OM1y%pcq)t>*n?8VyD0&Y;4IS-OM zase5M#nw_E#ba{db>@JaroNYAWG|Gh$d)bHvQAmUZQlvmvyGi(nHfuy{dW)gem~Fieg1iVzh5u8 z=bUqG=epkKI%mc`_hqL(6X{;fr*mt}kUx2~B-23;Eio+Om78tML!yDRc2wQVb|9o= zq>FDSbOPbn>-4h~>op_qz=UVpg zxY-xVdiXT5f(XgWliHIrFrb<@06{MS74kjz%AZ{(Ls}95#=_zq*uCB?3UvoVVj)0( z$6x`n_&vUXd7Y)ekds-BRikmjz=a_zS2{F#dWsv&x4z>t@26YgtC#`=$3Wr{hi426)|G)sEj^iIp z1Rw_glL7T07?o0psPcD@V{Z3-69$3EYz)HNCuplj7FjPZHTaBvF5`W516T}M-*GK+ z#XcuM1+t8Bqs}oR@gGwHFbehXm@spPhdX;;r?zLODj}g}f+pf`CtudE2-!?fq6kIj zb(`}cs4S%w9U4`5^twWobdaR490#QQZ9Xbb(ehhyBHz&`#25T>Ww5r;f8$RanpL#6{ z%q|{FgPatVDwh4eguK4=zKoneXHS!ZmNHtcsB+otwz~dib`)%lE6%ryRItJE5}+r@ zl7>fJJcAt4kZ$knH zM*|tapITm4FkOv-Sp*!khR-MotC2v#XFA~sPdK&-PKM4w!G1fCOzBM0_Qx|xI57#c zr;^@MgRcip1pi9|{2D7f156(bwE;MV@cwX+z&MfhRD1{t6emeZ8Ek?YaGifOoZ1TZ zoS1;z4XiZoWlQ&hNO!60RwLPaht9YAvZ25M&D)x|D2?~9Yr)Z72AW(jjsZasRNgw$Xa%y;tyOff(`$kJ z#-FNJ;~1nW$QFNXpNAk@eus2;sZy56BpJZ`&VRs7e};k`IThcL*A<?SGOaCB{g2&#y{Me)F&(nXUY8rQqvPvC z9VJ}X=A?hDz?w2ZNKOfKkODAO`a?$`+m@{~n;JNJH7ky6j(;FA*^a}S<=DNILU_i@ zF|U?fri$cULD;qAXY2@+w@TO4ol>~8lxUFT$g042RL$)QhQ|y%Kb2M*$OOOjUXg20 zHtAt&w~}Xz{q-9?e*p(AXEz1qQMg{*^SpUkDOGE8pUjVeo>fONk1IBuLi4Ek?aAo#fCXgwB$CZDf|6_HE6k!i=wH?B zwD4xOqw8qU3CyrO3y&vz${Gwv-~IdZhlvf$ztQR7!@PN??!gb4MQJhHnwra}-G&X} z(09&Uz)@u4EBO3yTJOH-3CITgm+26&D>fgIHB_ls%aG^u7C+~cP%kx7RogcTY69O1);c15Rx6%Yy)*SFYk1R(w+mMkIW z!f4$+6bZ_=|LIvv8r`dJLWm$kk({oKQ_zBIOp2}UL4t7i|1aMHk+-m|sfGtEIf zpDdlT-zQ6ICUqFi9$$wijKf&36yVbx(pYoKCWGQf%7MDQ@rBX9SdU8W(NMy_WQKu9 zb0s;y%;5VtpRoDDDQaFbYQkN_^^Z~anqW0sacp%0GUd18f?SkB9**`LXQ>ggRp1J0CWCNG}CH ze1gcHN|BpM|6WNg;f;^r;71m80KVFHx^*w>7MaKn*P#8vSb(F7Q8y=suHjDn<1?k1 zB&hYlI$v!9mk%zag@}fIJ)A7-(|pU0*8Vv`%3K>TdJ!&6SUz)z@LM zB1pQ@(aJ(c!S%{A_i16r#0dYIgKY{qk4RX_dbu7`lZ>2*#~cr{MQDwRZy9m!HeRsG zdE}#M4al*q3B;^B1s_N!h&;v^LjlgK4W zRv_iizSimYV^5+9%)60Hz-TdeqsI4HGfI)8>>V8j0Q^*_cGTcQdT|dCvYsHq#V9=; zX!Oq(7I%6P32ksB0(=tG8|6ksfEasOwCoP~)jxfgnG=sK?TrV0>#&sr8Y9yP_CG;4 zlE+-93$piry^1uqImg$23ocFsx;cW*#sAvR zN7HK8jVz9y7)g&K*h!%)CK(zK9PoRokiz)pyGZY+odu4BTUdk7CiFJ=s9?j`DY~U; zMDV@b^H7wnuZ8Jr++KlXY^u4q_Okm5tjPZ*xl4erdoA}Av*nCO_ims6m`wdBZ;3$E zK8@Nvb^YACoyCl%tgP-D7em?Fr$pE8rY3p7+PP(-?pPU(ki@<8dMaHgrYK7~Ah4~+ z7GuMHVNP+GgFG+*Lb3Aw5o{SkssTwm-Ps?hg{?{JtKK@N&_1%cTIC_{ zu~D@=Sy~h`@`eJ=%(sefKgS-#u<~+7kOrVMeo!LEAE(*;`5v?xZ=fMgG_Lru^Y_fu zb}9+=3uB&ynS+LyhAjeNM(*qzWZ>OxWQ`^)@HpL4z9{x`o8p}(_tDZ$M)A|roK|Ds zEJ<6%tMTD7d=o~BCbsGnz(!M+0h%ysMrnl6%Ra_OJZS6e7zQVxHLl_+cHcX1vRA#YzU-@4S~ zt;(^IX_J^!M77sJ3}}uWGAs9SyTA%NNLU)f2dIIdf?`r6Yx7T9bn&-9riU3-6l3K) zcJ>P*FVtqlS2VpKYLLdGP79`!(se$KaW^#euQ>cAkW zsZ>s9Q=-HzxOE&;eE&1@(kE-=POgm)C1wOwZz1u&M5#hX?8-0rG*AP)hpdF4EX~IK z&dyc8RVQcEnrNQ(s7>hnwq2OvD7ymFpX`f(;05TQV1#(ZY$JbnMP|-QH!C`$sI(Xl z+Kyj2g~h8nk_??u^3K?P-mq_88CpSxe3dSAuBgQ-PBD4FTV&H#K)YEt8RnNvz|>v; zr_+Q%`^S&=ADfolsv`J7zLS=G(}dwTJDm|e^9;@1ZN` z8dlk??koULp>d^q<;pscn?VfO^_DZ%vSs$tW7)Zd9u;k9&9#(iY@ILkpaMvtM2PJSvr}Ss({KiPIdticgB-Q z*C4Fmcf#o9vpG8EhIgXzDFj>_ATRVL5dVDr=S9#cxy(w0#DM^_Lc};@a9@;I<6^hZGZ`WeE zwG(ST#P-hcQ#t{4` z8KN-Na5!zSHl zWlcut1Z=jUhJ(;$g3>6o?kb{!j0E-P9e6D4g?=qQr?lS405y`S%x9faepiRO1?4af z+C1-lQ^9#Au5*ksbJ3X2i8OmAFRCQ&@4W!5cVi}O0-wqK($Hd3S0PsJz&C$;Zefc6 zwY}2Uo91RZMmxSua`98)r>Xs*AlSmn=)q}tDrcUMCH#JS18R0$M};tkh8RGpLe+5?OYPz9;CE>Sc6WP8jXLy!@6W-Wg!p$*d^Yh>`{oKoMyKe$vJU0yd zHl`2f8VjCd3QnLs9SGACNeE7KxDi=Ng|6m)tX%f=i9Y@AB{x!jP0pmz=~evwHk`$b>jDd5Yd#7^0aO&gkbX ziMlcpWkc7eu>4%0pmXKLp$qQFl8u6*g|ZN)wDv&IVP?eZ$6jt}%&utfu_u)cjoqbM zHI6M^QU)27Y)MSc-X=1hZYA}!d$K2+8;l?Bb>1{%^SlhX^lkKo1uiI|obgga$Wsop zURXt=rgJwTu&N+cWkk{#KBI)LTU^WziEnY-zsH0q4i1*&$kiRw3V@ww5%l1eGO%)? z5FyyeQ(gEFR=9QUR6aA@w~Q;+LeYrG6>ZSinEZ!f1JL^Lvh{(|GNJ7`Xan&3QVfNr>aj%NtVT>1o{eD)}OxTMSZ`JK#H_zOrE^P-qI)ofgm499rGs8-qEMm8%6|D%&K!s^%p+= zN(yf#ad}>fqHdSo{7Q9tN+bnV?VlORls(DH!dwu`5hHXl?af^*p;PQ8^jfg|!69(1 zb47_2U4Wi3W9YP3(v=evSW`rEf*KhEN7K7sMeZYxSV>T{{zB#ctQPCn?5u}S@u5|tmG#0qEDT@~OsNyLx<$zQp$e4&O2<#z%rs=H%>l}uQXZiJ=K zQp~MQ(FLlg><%xwxIrCXh!qJkXGnT$bMgG?EQx?P2a$v;%vi(`jq67TosukD4QsG+ zQ%XH;**nWDlb6cfcjps2j0hktH`EUjx12ae?wm~0NJb|;ChtH%Fj7+1(%~LqG-mND zBJd3fQZ$oe+2pojqD^Wdiyjz7N?=uY^;W#_+4**MhC)WipI>F!jsMrcoj{m^POq^$ zSk!T#oSJU+!NxnU88aeC%Zmn+7^7u;;Byf#KxGh^gZ72Y)nv~At#U9r8~TvuHq!< zobE60R3)=KesM@KW9}&)ojHT?P4Dzq#Pf|FYkn39a#u-lOFl)k+rm&&mY!?Fbs~g@ zR+#&!8y?E-7W!@d>6~1MvmDz-2kuOYRK)k516ZUCn2g&Vg*=@XTr8VyG>PdjBJa$j z-we0{*O3k~v=;JV#?tu~CQ z-ruh3-Q?GLS^|`#Gn0$l%worv;01|nY{MJHuf<%sv6orjcr-cOf&jNyt?;1Pwim%O zG?ogUo7+x1@==ykM>~g9$1CqAay4uzJyb{w7tBqDzw5}sj$@a=kx55DTQmGHw zSwgngT+s0^+?KFJ@ZmHa+(rz34?(`j-Zsh$QttUHCMWgJ$nMI<5Jp~WYuW8Owf$35 zXmUbZvhkHS+{QQEdNEqoeV;St!yZKCaM}uytiGckKWAbKN9W6Cf}3U?SUqpsS5xNZ z-W8uu(J4ofIfsK7UYn?NFI0EUL6wH&276rQLeZD1!et652*NuC7)v@SqaaEB-f#t| zdiH>u43mAwgmiPT;W{JkJT6OwJT8U#6}+XMN+id@+XsOp02$ zpWJt|F9QC%i+>g^y@o8ygT9nf z$xu$5utEAUJ(z!nxjow-l0(O~vRU(K&8_Vzt7q~Q<&${w)4lb+J?qz6ArREA^cU~8kzpZAxfG7TZxQ3~Nw4E+IvNd7!Tm<$sK>n*ON1DB^28|oaFFh+|P6d zksxJ9k6nsiwr>l$asRf(l#NLs9o)I$pMpV$?3Zin{f z@CS(xYFl{{DQcy85=n@@MTb|TCNrqR1qyVtF1%BIY*EJW$*aZO)#a`$k`wvk@}+!{ z@e7;Cwri+_I2q|XzW(h&d*|s8)&H=nPA;K<8~G?u9_yMrl01H;^dQN`gDXD0*nE#` z(y73qe%$+#mC!;wM8eOgDwEdfAf0|l`xAWl+yi^L;SfE0iQ%hTJ5{Ew*OB3vMW_@U zUG>Hs`eU?`rdxYhSfZNqX5Rh&Ix2B9=iNv1I3u(P>pu8>?1SqQ{Z|2Bq>%0Bj$TaN zOiR)4Na6Aos93(mF#heHfV}>3m#?)UbG}2pN%{*Dhkwe^U53Z~H$wz5-elkhY)UX# zNsPm1oO_ER(&UagzZ^X9Wx!@B={VYl*?<1mzRc3-e>!I&*75Uebf@?|cOh!98Z%ga83ZYY6RgI3hFb2K6Vy^YbvrG} zTy^)~Fa`^Y<0?0UOkoKDgmdR^1GgJGxlcM4HX~b;2RRwG#te_R+vB~Glf8OuYyeXK z1Hp2pr7=6Gx{KI79R42;^>;JJ!s_)swHL~`^nryK)3&$WE@nV-NSaU_4ISFK$T{Kt zs|)b??`jVlJTeo7e2vU7G3stfH!#j7aV9>u?zak-CLs&O1$Fw%GN4CJ4_hY=Q`7vv zJcCP@(^yUD#%)%sU%%Ub=Xj1W$}6lG zAATq^zvq7o8$C8e3>h^%%8oMX^OXQhUUl}EN*k`<-%YDZST!HF5r?f4nHJKekugEvz&b3aGq+iLlevBLUW8`p253>q1a!S&IERm@JKpAQCd-68uK zc@^n(5KQd*_ zX`%ajBSj)rGm{^{G;In!_sl-&`?G4)l~4A0a&o0#69)$#ImEBGlXekzlKm-+0yG;S z)DOys`2CgsrBTceL+|K~9fW`Q1#7hOaQ^^U0)d-Ck?hXoD1)Qv`qB4HuQ!5!PEOTC zZyY7PjQ0_maWffk)O%+CHa@>MNl9|Yv|-V6d*K`BxX!T>e!^tT)J=L}muti)@v{_~ zPj}#bC#ki^J{9=u(oXQN*#*c7q&g#TGYUi8Rb!Pr+-uuh6L*ZQ6!YG@b--seGJbE0 z{7L3}{+>kjQF`zLLC#N2Gn7VHpsc6 zIy8VQ?eF6KTY&vPH>%_amk(45qZh7Yg|Qh954Ay0-Uftco1;`4I9%tr6Todw4cc;4 zk`zsJtK{*)!o%CZ0?mjC5Mvn87pL+zK*b;e8+EQlUC6?$Wq%*W;fKYlK}GAfRqqlU zS+&BKPwABa9MS|mTK_0yuAY0oRI(Rqi4UrJ=z{4o6FqVO{FX%iWWS}GuRZNXOEQ2K{>8D?A`A)A?~pPRsCsN4BfLF8y`gVLIXHK-pS(|e0s70LNK09;&!e;9>t z(|~ta{d+gYm7@R8P3lKpX?AR!1W@e9(0G`uuc9q3Pd-4AcivQ)UsNu(QpIV|I8#@B(kZsKc+ zN~o<1y5ZiW?3Nd7rtVMpk(xiEdG?GpG%d%L#=}^?zDIUB&9ph;05z)TkFYL!o`O=@ z&482bV6S9c<*CTrGvbk^++U1q^KxhWjbxDb_!un0>nFXM*7v${vkovxrbDTgjtO{H z@)+i<`n2yLY^VAZF`f|0k0?134yc#o+>^WD8)^Cwv7*%Vw7bKpi_KrO*|nTh6l?rm zX*m?ATNF)D)-($`{oyW-pfqeX!pN1;*tE)gGjeCX3W}`BB$L(=l5}un5#DEc0bh)K zT?u1hO=k^>c6tpk$?y(4EPWAt450y}Ouy2W3s&03*aI>!VlR9v) zkd^MD7-rL2Ju^v`xspi%F(x$1uZVFT(r#Pwy@|PujPBpl#V&D89NuENI(KNyn1cTQNyb8C<`+}D9d5jHkgqm-Pv??R zGiZ0?LM;E_4pnqL7v=({i}|9xwIfW=HPjkWT*)_GL*ZuJfwJ-G zo#vqDfKt!V&2d9duGAdRIXdtcHQ0CZ|Kuh2Y5RXO<`p?N^(0OkVXIP8v^VqAQ(AhG zqKlRNMHm%|vt?q!ek6ZAsejz<`ouAJ>eWyi@xlDXuZDNSVBn@)q3}bfHv+_t*@m*T zCS{~UUb+1D3@YlmRC8drhpME1%6(|U&ZfY8z~1dE^N>tJrQ8K-4&-j@#7)Xs&itMT zgG}(vxmND#sB51J2WLyoCstIe`-5?#9=4Vh_i8`=mC*?wISP8@q8V^Ds6efaEY##?2^c%w1X#U+fv9bwcQ)EzZ0%^^4^gAmHg7(!tGMFdA+gT z-A4@p97wO${Y{;dm(aO$gv8_+8U!Z+?#jn0@~DAI`0RStNh1u(ZJ_!eTmPRJ5HbYh zmqc0$!Wshb6@eBq;(xSWlj0ic!0Gib$=UU!)8!#hQ?$9Vlc_WB>t!P?hYPh55h!EM z>;>FMrpLHkR;J5kv2@Vh&CcL@k#TY6sh(%ym7nRFJY7A@N~CMvurLklI{JUk`a33B z&!`|#ogAe$Rj{eX0ivYlPVFae^nrst9+i6k&AvMHXchF&U{gIO=-s0Mkz;rj8%k?@o;6x+ zDm(*zJ=VTDO;{4#Hg>iOElVsrhyo!@LYoyr9k$TKJuf7I!{I_NIz4-He7jKk=o=#yMf zY24G${+a-MLL0E;hlx#Mf>*x9s%6nQBqJs&gmE1nYwulgf&_j~+ywg_60!eC2zH#v zPIqsKzk$Crx0CF65+MH~HsO;nWTz9(k&*F*;*?$AWY7`!5bRe9L8iev1{1wAL z7VN*HkE8mVVt`@;#ow!%w|YhePK9l?$RM>2cx_uwsJ_vLOGc3ms&dqEKw(6l`FX~Rtt+(7Ies23eJ(wsr<$c1AonZqixMkVv9fo5*!tn+=8Dbhh4oE->? zqhr$AlceKwgKv!`XK-a~^{dJ$gf-c@R=*vsq?fMw*MMMRWpysn${pM(P^(8Gui%hM zg-Y>XEBPGz8y>4uIff6*N7NF z)*)42-OazupDbGx;E${=(Ut3Yak!`<)}@lUz(W?>%zL;u%yc#vI>fXoAtCX%i5I(X z{{tC6&DT@49VU!flsWDfH|oWHIB;c^DGAeLq18!wJ8_8|LK1r?LIuOyOp@c+K`-qc zj`pm6>pasL?-!%j&lx5cTfI!q=Ss47GirPBw{q1TVn(Zn4l`F3z-uB#7q~^;aXFa$ zI@Fod>dl=HM&Z_O+CXx#j{CsmUEF{=#YJJUj?2vv33H1lJiKR=*~G6CcnBD+-dMDC zYrZ()xG1bmgrn6Zl%zi6Q3AE_LSH8&lj11z0#C1P>X^;Dpm4E^!l#tFglB3+=KpGW z&2Y+brWUypA<5Dg-#vCS3+~1F<_>XE>P1uwgy!J<8RyRgrZ%0~s9LpFW|ecda!!dD zcOoQzP1(B{ClNQ&oe|oF!)S<1)N3rLG`jeapQqt)&w_-ufH|D04;}7d=65&Tzl22x znj2#%eMVW2+syXa_fnhjTf@Ogip*=~eD#~Gq+VVfCYC4d=7S>ECl~W-HdhZP5(rOh z&Va|#A$y_+bGlzK2viVv@gg(BKXnuo46DP?+mYGCI5%g9BpS_(9o$HK!U~QT_@^Wr z%Jh#t6Ul<7_h<1N?Ou-`j+aSog>N?WPy}}L&bCJ^la1m*(F#~>c8og>=-H~tv zbO`%^4|Ps$ne2FYM^DpKR{f{zhD4HUja_*ci$Z>zwbw^$Im@vV@33o<;Gre&qeC6* z+2GwiK+k-e;->6uUCqt;0(`uSE(g*^z{pHH3S~gQSgS>hcN=rG#K2n!?>;zp0T1sr zY_wjC9M|a(o3hXolIj#gh=(3!K#f$q34e~#1>eanGN7U)6-e+tz^9y#xBHl@o*%&H zoZ35!@UagfFXijD6>Zq;$S}Wc`(({zzFPC$P8x8N+oterzQ! zs#h=yq;Bo-ttLEd5u?wH zbKMwJnl}})6n&hu@XLWQmZ~GG&+ajC5OczE~&s(0@^fV{l6(XXvCB4oziOV(wB(i zo+4%)!Pu5C>zIN9YYm0Vv8)2xr~F11NwsO1-YM;L&A!;|i19H=po+HrleOvcG(zUY zxjjeUt*=9qB3e7@#gYqF>&24pc8ZNPZl28M+bW|Aev+@*{Q48YawoaBvmU$Y`vz*c z@=?o~uUjikLAQwQLB=dJL8lrgweH!D4Xc#@BT`l*-LV}DU~;TB&h%8fC+zpKzlTd7ry{$K8h5DfRudvW(FduE*K zGEB+(cNsjEl?UQbuzh7ysJdNKzpLM->DjhJuDW%^gEq~HDfTP5@v5NCkuVS~pbv*Z zX_;?cK~^uuzBw^Q;{F30NH_!DjISd20n2?5l^2Cu$w1iR8W+Kj8O|Dium9-8K^UZH dNY?|72_MJCJjD!oZQ_CdRF$;u7Argo`ad;1A$R}) diff --git a/docs/sources/operators-guide/images/dashboards/mimir-alertmanager.png b/docs/sources/operators-guide/images/dashboards/mimir-alertmanager.png deleted file mode 100644 index ffab48689974f84613788b8965acda390b751666..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 81104 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 YUWpe!b+Xrx4*KZn7-<(>yz%IN0K~pl^Z)<= diff --git a/docs/sources/operators-guide/images/dashboards/mimir-compactor-resources.png b/docs/sources/operators-guide/images/dashboards/mimir-compactor-resources.png deleted file mode 100644 index 8c129245053276e5e2b971e35ae2f4d6c5b913bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49463 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

74q{gz=~M6Zj(R9QW~GNL`qzB-zGx7g>$69qwL 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 diff --git a/docs/sources/operators-guide/images/dashboards/mimir-config.png b/docs/sources/operators-guide/images/dashboards/mimir-config.png deleted file mode 100644 index 9c524a2ca1195cd74a907521d670e0faf27cfd98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23524 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 diff --git a/docs/sources/operators-guide/images/dashboards/mimir-object-store.png b/docs/sources/operators-guide/images/dashboards/mimir-object-store.png deleted file mode 100644 index 033c8e074bca6711e86f3c2a9ab253f51712b23f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72850 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 diff --git a/docs/sources/operators-guide/images/dashboards/mimir-overrides.png b/docs/sources/operators-guide/images/dashboards/mimir-overrides.png deleted file mode 100644 index 9f00f51da338b8ee05cdffddc6126c9a8cdf19b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23824 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 IsrO<353Qu(fB*mh diff --git a/docs/sources/operators-guide/images/dashboards/mimir-reads-networking.png b/docs/sources/operators-guide/images/dashboards/mimir-reads-networking.png deleted file mode 100644 index 9f90ca99f4ed1c2d2535710c2910396febab3bd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 119301 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 diff --git a/docs/sources/operators-guide/images/dashboards/mimir-reads.png b/docs/sources/operators-guide/images/dashboards/mimir-reads.png deleted file mode 100644 index 41898ef711d5bc869597e1ce24c3fc22b0895ed5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 130763 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�D82(;j6+hXGD$&S|n{GIY|G+12UA9khN` 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

T!1Y5t3o3fN|MV?#EMPDMRTJ%7R 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

21)`-rJBa) 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 diff --git a/docs/sources/operators-guide/images/dashboards/mimir-tenants.png b/docs/sources/operators-guide/images/dashboards/mimir-tenants.png deleted file mode 100644 index 580d8e5eb32ecc42e6ab7fb8140eb037fab05b0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48095 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
H8z;bd&r9UOg0)$c&Oj(HUj~g;C`C->m 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
SU^umr574VRy7FGGGTmV^o3Ii13Y*{lY@U9)z&y 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 i_8)GJ|KWQli$vp9wAO0Vr6v+Vq diff --git a/docs/sources/operators-guide/images/dashboards/mimir-writes-networking.png b/docs/sources/operators-guide/images/dashboards/mimir-writes-networking.png deleted file mode 100644 index 81c9f0a296eeda9e4117c2d65009e10a769e5333..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 83185 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�Oi~Xv@~2;` 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 diff --git a/docs/sources/operators-guide/images/dashboards/mimir-writes-resources.png b/docs/sources/operators-guide/images/dashboards/mimir-writes-resources.png deleted file mode 100644 index 31a4cca94626cace316ed0291ba6221110c5d55a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 131831 zcmZ^~byOU|(g%tJNpJ`d+yVr52oeYo+})Sp4#5|<;F91D!7Z@3E*4k_9w0a@uvl;w zcitxV-t)ab-aCC}XQsQlx~rzT>Q_Cp(dw#lI4{UwAR!^)D9C@%L_$IXA|au_$3#Wc zoWESuN1UG7NUBI8A=Q1sx;H~Z+#|bd%1I&Bj8pC+A)z9vD{IS~UtCNLcfV%gJo$6H zxwX|+^L=lBFFi2e>FEhl-?p&0lEOyu&einw{HOd+jl4MlcVFKA3ypbgFmmXuDJPy^9qV)=H^@4I%E}9Z*OkgKNftn zv<(OjTV7fHH8Gx%otu!DY-DQT=;99PYp5?NNlD8Z8X2vvYaHwE6@Dkx+1(>3BC)fx zo0FUv9hYEb=P34GW_^8~-lw;|vH8=lwc~KniOK1~u8#7`@2zqbVG+?))wR>VXOgts zic88n+N&qQ9WYfXeG}85dgt7j;P}9@{Z^45Eue?9J(t&(IiG!-np%UM%HX#T8R4<# z?Op0_Da0Rqi*>kCv&8uJHgER^3Ots_or_uMVVGf zg8^n;Ce{ghQMJJ(=CQitM!E(57M9+jfz(vLn=(fWi~6%uI^1d(whjXwZQG5j3%v6a zi`qtuP}7%pM#FuIOS{5nH-F@`ach6BPK;CasG5(|Z2ns1nqpCv-N>Tk+NhBgl;d7z zQ2tpqAWB+(pvba6GIr+Z%FMast$9kl-M6)og)wKl_M)Jm!cJ=^HOqw7o;~>QZ{b_N zyQ?-1+>Ly-Ge*VSTcRSI8=A62q98M=_Q78odZQbT7AGMKM<92f4P*7=Jganl@$~xP zuGi@Y6X^*?FvdsBLO_+ukM`AC1{|y`a1M(oC=d zGUex`wcTY{H&(j4xOGrnBH|a^HQU|@Dm!h6Y6K0>HYh~ZZ3h@>Z63p6ZYm!6IpssU zCAntby2{6VySv?FzcywY#r^5ZWc?&0dwz6rUG=g!ZMYfEF_iUyyDp*}TRhzy2l};Aq`>oKmllP>GCyC93iE_HUoCucg z8LF?-&PYMQ`)=H;(YsOX=Lt?Z|xJ-vW4WepF}FhLIimhr$ag{HgTq0k!?#Doz797jf9rNs(iyV~$|8AQ=> zAtv`8Obfjt1|4V~i+>PCC%@ypYRCI420Rofp$T>lsb+KUGiXLLn!!TIiO&^vRn#w< z+aVc|?p%86LD1j*KU!rlmiJM8TVp20Pp|FvvkEc4im<#f$)B(#vHNr9@qX%F86+<~ zuxydpK|2s<6;yze^Y*|x|5ry0>CAmbL}LX|t=!rqZ_=c7`e*+U%*uT!LyHr`=*}b% zNgJ%uG_K+qR(L3K{XyHelk(aL!%G`1zJA@o4y_p;v@K{-ZR|WC@>PQ?zD8SA2VWf} z-}UQ#;V8VDaWqnnEra2L?hwR0KVUOEd0|VO+b@od@f2)K&QSFST>#6kujd}ncDiw-)x2nrX%ojFssS4 z0{wDb0#iORA%7;9`&^Cq_|R01f6X&rKgs*{{BWJQ6PNGy-ZdWR(3Az~cbKHosOJ#d zUScwU{M|NU5l54!RuJppbE9wT`HsbckiCa#+aG-!G#TrGZ} zT14IYM({Gcvt+UIMSMroyE6H!Zs-S3ZDX_OT?mA%kqD?zJ1@AlAnRcOPd;ouX=qXg($HL6M`HQvEg~X)^{;>ZB~^y3kA9( zXY*$xCiH+2KBIRA;sUI`ciR`sidHElwZ1m#I;daXNG>9K1c}~m~JuoDD>NN>Sb5Ebqf4Wfw zm60YY{VL7bXi(s@qCM5sFP0-Y&+;zjR-L2g7MW|8{aRUKOt`F8lp}haPQHXYg+QMb zzT9|Op(I)JAj#G$JVT7%t^5ZZOZdkqqAUQ0S{qt`H1;!TIKAAy>QA&4UyE3eGY&qQ z;Sczr-F%|#OY?+r6(f8ucvl$%R341yEHd`%lWm+xvH1kT(q6y(PFr5GN;zA7PN*jT zoiJvO(u82T>zDim#1)(m+}#a|9UB4qE4~{u9yHqirT@hx9JGGZo`2BdNq$B)ZxJeD z5j~ft9}#mMr?Xh*D`GSK(GG5}Ar~OFS;|*y@&z*D+ct0jN0~!~pF*dcKz8iTYwoCD zY+L;aW(u0Zw8OZ?1%u`^?B9^ho>?SFZMaqV7!dc5>=Wh!3JPi%H6~X-Umy2$BC6qPts!_nc%J3bS%F`g0 zynBSSoOD$`+g#`cs{Nu5nJT3r3$q}Akc-M|cu zkb-L4z&F^Ikt8_P9Bia>Ew>l;pbk*hkuuPKMPA?V8lV6ggpIkc`vPqtu&q5U%zU{s z6nGl%qOP*#xee|Kj?H zPxi%L{Y|X4j}EvPZ3Nb-=~f2>F`CH8rQ_}uL#i4CEQHDBxT1yZ_O-wINHeSvE~;tM zMC-j8Y5kmCZ6OIJ8>}&?4=v%@Q-XCSe9l759!m=cqgpe?zBSa;>tm!A4w;%1T+zDw z3esrz+jrS@^j-I%tB%H;>0v_x?F_PRGU4LJ%1kO$@vhl;TOG830(SQEPy6P}KqhFm zU<^c5Hfu_B&^tRu$j)J%ucVJe(3lO%2amB3zE$m<7mtHvyE;pW79|Wy-DM!iTO!CH+R9Rt!F6JJLcw z>GTanRFQw5FU@19?r5Q#`X-s!OmZBt4=mC9zJYU{d3vM_-~u$73ujW*bahT@;I(Mc ztY!kk>uc3r>oswFDh(vTCdSMqeK-)d#zPp%$PY!uSUffks3p5x8KG2U^*1U|imUPu zjmmK?>lzGn*!RPcX--iT7p3f!Ky$8A*D*0 zk9A}M6dWdMlAW}Kycmy$QJpQ#!|FC$dF1BRpm@9qnJ=h3n+z(NQ>n3Ba$7mGjrUEO zH)Jaw^Gt5SNV0LugWdzw=7TfJw@cY~^COtqeOvN!@9BAaPCw)S4etrFk zLbV|vyHf^iTkL;0=k%kIf7bI((W=*q9$L&k`>|u=4SNu4)YYe7axCy!9%|<|fI1F( zNq+kcCPD}s%h+uNHwjLa-t4y|C4{@>WA)3u6&Ej)?X0+Biw1TmPFK?Wu~A^C>*gm4 zL`C}m?oo}oI&8rX8cyH*RhwN-6fL_v`!p}wG1K44i8~@|$d4J|`;}TSA7SUX-<%Y~fy;&3+`d_dOwMw2$}hi7;j%;ereBL<>AB(( zbiKc-dn)m5BLbSQYJ-`FTJCpg5TG@R6c&!C!skN3+F&3Z;4jFAOCg~9e;Zt;D+00L zx_T4xae8=6&{GUt%|it24%U0)1zQb;5fJYAZ_>*A?Ilj}_xB%eNAUS?67Uz%BmGSY z{+k{ACn2EyH_U%X|CcHJFK<{=iV=b_<5ZPl`IRgMu=r>^BR6=ffv=*-oOKYpi8LRX z>{IGj2E>QU-doV^3GpgII=!{oWe997*FQ+|v*g;=b0wjEq*2}0i<1hxWPSmceK-T2 zBDD}4{1Hrg&wv$~r~H={hcPn!rbl24A1*>#e6Ih9{#Ok}n5v+m^H|_7&54HHS@Z$|8Y%F_tOHD?b(D96nFE^Md(0Y_uMP7)LWiN1(L&$W z_1k%=DDSPTfYMz?)kWwBw!1Z8(dmSC;JV|(_^xu`P&m+zNHglP{r)v%KjB@+)Pptb zB3W@x83i6%6zeUIg53lhDrt#~w$@aLB3^SUvKpt-RLohh-;nYQtE^_8bxQ<88zglBQ_5q$$Z_^O9Mw~aHq2?y*Y{G4AAs= z(S?d3)lYOuCs&rNeUgIY=q#NLzWAC>9tt9zSOqUrYuML6+a zeRO3jFlh-_#&Y<9MIH#Kscj!Sxd2cEL61(PLTeABx;@o%Z6RgT3%^YVY zX_}EMFS)*`efVxpfG~=U#NvZaNVqa5@9&>a#VYCO5DEr~8$W!#;dL&F_Q3s&Ka_%0 zreHCTqTW?A?^Z&Wd~c@RcfwDRDS1|NCdB@gJ84Q1G>Q58do}}qh37*UgY@QTnP;8M zN#HH@zF~Cjk7s*?%B-}|l_6yOc;J%=GLs>=MF_P>NYM^1XggilxILU%OwAK@Q-tmu ze?=*~1(d=TFg9{4FHmuugyo%kVzCPTrl^>e+k?kwndFSQ`;2iys+hM*j*9f3_>G?R zS83CckLjjga`}M+bT@CE9N?$?*<_xsH8y%Sr`taF?Ipj>S|Z7*W%^mu<{)=r6$PWw zl$FT1?Alc^CKNxBvw0CL?EF^c0hUN?;oKAy6sn zwIR5@nOCAt8`rT))(o<$tQ+}6>$d$gxoaM~rnhUFOpsdPOe#AgQ}crK_-GR;N*0{# z8jL_bTc3>0!-oyQH>toGBhnSU_f68y7@FldhAg&ScQ;8 zMP~7|@`Ku={;oQlq7gi8%FvpnjQrsA|>~wvR#*i+#rGJS|n#cGq zT{$pE_?*kZZ=nh3{$M!!#_;0Ku({Gm9)3$PG%E+LG85;E+j6WJKW>w#;M$ro!Euv~ z*5lL|DRYUs%7Hidcz?NCN#or#d#F0vvM)EI6Hh0s19L)WY~-C6RWl0fnQp4}O5Ahv zZH&Q=+JAOvHVd;T)Ji)7_jOLjV#?T!E$84^u5z(Kq6Tamj89u$yzd68u)0VYkUYsb66(j8%Ou@tv{*Ghqw}Py02oLTe6(YqXs+q?i_P@*L)b?!xR))9;rGLWejw zMe8lkd?YMdG_NpBBVPe;k?6t>x7oU{J&j|mlC)dYg)%GRwfEKTwzKLSY$EFJ!~uaE z4yAS}@1Q~`d|u(xuKIgfcO_pNzNfu<$Hmj#_0YJLVd0$qa(@?(pNPYY*_m0ZS`T)? zs;dzmnAzkeY{LPCA$PwgxIf+uK-kcPyDk8#$`s2HI`=&O`?HJr*Nxo!?az`zfxULv z0&8r28bMAMn5JZpVui%V(Ts>_jQ}wZUa)r;mIy%dzrc+M=6~b-eup;9}&8LBI{>7ljJDACdzSDUt5*;X`%DcEoLecSrs4|9{ZZ$uX=63$Hpa9CUyZU)@KqGPijQlrJB$0b37#*kszkM7)9ljz!?Cv7&KUN~-3^W4A4`R$&|A+XlZ`YCm0R>Mg zVJl#3^F5)qU=*aaR7i)v5PUUv7>HWI%htsXFmT>w3D-r>qkP}Zen+1EJ5y6zmj21 zT?Y&8$z1r~tik(A&aI|IlJf5*Gqfm8?+*b65+c+`Ukz)I%m3x4T1Jk9$XF02_V)$A z-*tr8+V9CbTb%_mZrb?gKXG(k# zoG=+g%vg7c@wTXxq!&D*2lQh_kpikWOl$>T9^W!Vk-|}6;d6UH0)$}wSRg3;KNMc9 zP>`|!E#N)){UD+P{_!0NmyH18O@pM*Wh@$lU3<3n(UR_xU7#e`g>*i#G2h4~miCIH zZ$||BXLIFdVC4$~G`W#%dt<#!Rfx2K(a7Be|0WLT9U;H4vK$>}+6evr>AVp*(J*Es z1oJceGWHx6(9qM2e@r5IWE3$GeYHga)Pp@R4au%nrIgZ^lYfYKQ=;Z4hOa@IxT>(367JoBXo8gbnDbyqU<&9E`E#Q=zwxDhQfE1!*Av>0# zrTU`@l^oaEQnlU zZ8c{u7M_u-@PsMI_=-4@JMqMtL)b$nboy2&Lygq%DAys&;M$m@;{Jit^`N z8{_d39vA(4RulHuKQZRUjic80KSC(7M+jg6u_84q#(R=hOdFy?ei>}@h5Jj2rzu^j z4GCBkEOMT8;Y$sS8At6+oGaA!CQLjm{9G#T7AY#O^M^9=Nwd2aE3SP`Ri0)peDSL1 zAJ(`7ZiB==XQ}r?b4UiEFJc>Ls@aUR4(|Iuc3pIM+Ol&s?8-ps?yQkrk3)J zUj3t3P3NCL!oYKzJ?A8^z=Op~H9nTM;+n9*bFd%z2TN~`mAG|o35v^UJgb_y+iBEE&;z&p1Dpf`d3OKE=DeJiOEc|~`%et}UHp{`<~u(^TqbhQF+6Hpw7)pg$`hKSC^`rnNrVgSU9c_==3XwBIh=oxe7=N+R!Z(g z_*YVE74T$f*AR06b=1|Qw)9)}w-#1MyZ@9Nb)`_lXmaF7-1HKZr|7JkTqz6gKrE)8 zHhP1L>5oqB?d2QU-x8W!$Z`1aXr@J|j#}+=9qr2WlP5V^ECW*5#!HoF_h+bPc4M_h2T<|$HQP?4HdDA1co|7D-~Xgjb- z-n#Dxe|A$9-ogC51$?jJ`<&Yy%a_pQ25jLfWau1Y-}Dc2R<5I!F3Zl=gl*!$;xV+B z9WM?lUI|vX1QCx?TmNM2JIU*(z?xXV&RB^9)LIu_Sg}s$bCUbzUx~HPcRW9ce)T91 zzDrx5=)cQlo5Md2aWhA+8Yndm?9Iw;8@db%{GoB?yIK_6ncb5Ywf?2Q!-dRki2KBb z4o_SpNp!x@DEdnDpL-5TAjRjRMTCR?SRf*1P$91Su`t-6LH}{e9taPP44?Y1XMQvv zyyN=+==Nik@Yox-h7RGfYmMNKXD26k|ESC&VGq+dC)Dr%aY6Z4hZqFLDBM5d7yRe% zz<-+%L&<iL632{#FNsVJnGsHPQ`T+cv%b# zJik{Yc(ILUs)*l{l98^uc8cVrVRH}Y` zOhu@bI#GEQaPa`W>b$L_u3IiaI-X|Xe*`2yJ~w%hZ|vmwc11GFx{RF3;pom51)>}q zFQLJw5|z1knqk1z#+5-AlH6QMPF{NJcsp#|&_FO^f_oy~`XX4>)U?v)^0Im$B8{rp zjvPDy@oV3*`k2?+$!%8=Uxw%Kr0%^6j~6bKQVE?CvwFYge&i|?XC;>-o<$dq*XJ9gpSmNm{1mmK02&_t|s}g!OR7}86 z4`8cX-a-ahZCHBQZE+%P&*PRhx@}^zVMv?K+d|iz;cjxu%0ymcX}znHxdL|9t#7uR z&Z^-omRkx0O;PpSy>#SU&g~A-)LycfUbJ+Y*ieW)N)DfCzavkh>^n#^yUzMuyQz;c z5{)AR9vhcsFB2Z|L<98|yaIpJsie&butgFQEH?i&2?z+%j=HnQ1s87FuQ_=kw0wpE$W{>s&bT1@p>q8yrHa1u zLOX7&&3Vrri40g#i5%N*tzcMV{8tW53ESg#!pksQnEk?BNmdROI^on}Pea-4 zgaY_asT1z(^k&if8K)mB$y(@nBI4L&BNGDIrv2{(QhTxwJC#Dey#y1tv>V2KnqO-= zibDs-hoa{y+oArO$uSzbOFz!#x8>;F+h}08v2nr2!A#^WLw?;h)|%HuDr-~|hDg0V zNIh7Xz~_jIFVf>!-I+r%BV)}*{=Oh7))SM?OB!c_lN5JF|{6V=I90$7vQ7UVWZ*NO0z(d(^&AF(d&Oh zQq^wRR+6tephC?jOolO)ks+PHwH1P1ilwJ7?S`9`?1Dh0jI}Xh-pBXqnbS>ZE?C|{ ziqOQ6mJD*vKCiGo@9tPsC<6oXaoaPOuT|7XkS$eqlLIO+oYEtDS3I1~CdK~6wfB>{ zPOLL)C=L|N9OEq}8HJ&ZdVH?HlR3}cY*!sD^v?2RQ98_xzUU4XmM%iO_ReLk1hUWj z1F{&>l5^Ci)Yf`F${mXec%w5}Z~E}9k|ZqWOJ8bS1W&KgPsripSKcxQEa5slg)?p+hp_nFh4&s+{Wzq+}E zQ*r|hnsdd$kQ6ihM~30sFl68N2}bL}VxNJn`!7Tn$bPG)v!8OKHt zPwXR$?-_qK#y36pmJ55G-xz!@>Hl^yuR?eg{Y3c!9Vd8*g?ojzXMdyBu%`a1h!WTd zF|bh^#%x2@dcPK5RlN&Cbz4@9D{4ZALPWK2P5>qur~`NTS=M{R z93vBgp5CSXn@YxQ4({;j8oBaQ4+lqgU;A#ZF{3bg!>>DnsTrKPZrp7T>U%Gok~N z88Zfbqpdh`pCWr4v^PCa^$#?0PBamZ@)DN_Z06n5NkRT~<5Z_hg!W{hfRJdoS_iAg zW?FB%XS!m*u&MO9>oWkgs6mxiso&4o)Am_T!FGW(L6+<)7n4CGcVx0n5pMPs+I72& z!$_7)WmpJln+r1eE6GX^Dl(wZYT(tLi>W`)z$0#mw^FGRq<+YU2{{s9n#|cx9vg>_ z+(g9WdW?_%r`vrx&0&>Qn$gV-(xz@Un*0v1!es7zn z)fMWYu|4|)?n;>e-L4dv2rR2PdsGatqN0G56uMaP0B0%4AuV0Q9j)uTeYXkZz(Jwy z_G}(`J=REdac9L`pM1el54W|no%|PZSV}}U+$f+7&Vjf2x0ih>qZ^RrsP;GH{Itvi zz%Qf0Jq`hn4W?c9M@yuMJ1%XjM?twss4j~RB7W(NiG%9sRG85gv6z5MBn+?*9tzjp zwm?bR7I>E*(~ZCVHS+vYs0ribO!6SBEIaqFyo;N<0k3$3n@W!5FDWlIZwq4k{3(x5 zf$2x|>Op&0AVLsautZ}}RH^C73q|EOSkO!gm|>F;0dVJ{0T$6FgH-e90&mY@W-q-x z!33rQ2w=RcB;M@e$c*LDo4;`>=rgKUd(9X6RoazERsW3&{Kuy}v(FFS7<)^2YDq&I zI$<&Dp*7q;K-zmEgeP4=f&TuZx(h!?T7Dl_98bHgsaUDl9M}KuSvqs znTfJSpQ?YA9Nm>*hDBl~H!<_1C z6F4x(Ofa+dBX=B`NQ)*tB`%0btVZwY@q{@HCJ43LL9VgnC4>6>e)wpCR;MRLmk=oU zo7>~0OKxq8-tpqWZx8QxwuhED^et)GLW;QiynolW78Tdl*Hye1WVUkBOpIu`r|y1b zLiFD1HE!|`d>vnels3J*&+^O{o(DpT^pWtuu-e=n78E(uEe-agzU-vmg1|4Wd}(&9 z);vCU7+h36&n=3ul^+HEcrC4jp@3QrRU#gHu&~hPnSm~`lGTA@^^+MJGb;L7y;#lp zO;3BQBd6?xGPbu2d+OW0TGGRotU@-NKLAt7kz@tgypYe}S>sv7689&RATCKDrD|H> zW@n}N6aU>9Tf$(#pbpgiy~fJEE}7(kw(K52wnrd$crD=Z5_p+$3a`83YI7<7{nRG9 z@vFH`G~tT8DD#&yw5?OgqUIgQZm)SMF{N&~`trNxqU-M+2Ye%AnmEGC$X%LnE!oUh zo$>dR#utO1DqZ1kmS`$aJ(UhI(?x`=NIXq^CKt}X^t0FZMwmOsxspz$rQ8!-z7~x> zl=oH4`c$ANmR+P=$@*K=!5|h#TyoX|vNZgdtT3CayFLq6aj%y5Q zb?76VH2M=)4;wR>R2rlSc>@*(9va%RMv(8IB7vc6xFIbmn#%;f4Qoz-UPYTG$8!)i zbUdHV^JMQ!^*#{iUD+k2cm-$&hzBmy{Aq6VvX^2_E&{~Zl~NH@35-+mI*{@SMIthp zL>uai%KXLoT=gpb6XeG<@A02gKNSsk?BKbFAG(B^XN!3ZA(Bq&EGu>KUqgjS37(a; zU)1`G4-YyauMUQ>E0qH{lhcld4N*a6Ha%Eu0c3xS3^H+(v4+ahBV}psAE?MqLcdPW z*Mn6yAs0%<70q3NOj|9ebKLT14dJhAS_LdTRD`i=N7{lsbs|R{mY(N^hR)gL<{XT~XQ4jtxPW#TV{5wRzW)@a zT&6!v?ZHxcITUgwcZW-frU5TAkCCSo(|m{prmkrAPjz)*=-y6wT3T6^e0^;io*yX6 zBa(K?-@g%Gr-%h4Q`I)PNwweKw^?+30la8T9~U?5N!3k_zRwCC8RId&IWTxO*~)1j z8PdXMm6Kcdkmlj*czb;fBo;in76J0S0yfyu@3AB;Lfe~@|0*yWF9$j^**QB|KA`7R zhb9JFJrPqZNfHl#r7|wGl|KgxFEvltc__yO947>O^Q;?GzNxcFUW5E%`WUs8XYN7( z{s?<^sQTX9@$I>7AOjFbmBAKA3fj71z%IBP`|`PAfD<^s)FCrsvxvUtjbaS1{*mAW zgA)?i@#0F)=5tbMJm$i+oEA4lFx=1V)5}lk%HoP_+8XrxL`W1|pCz7v<4hQUciDi$ zqrERE>G_3YDJilFF4W+k1$bX4680~cRey{2-=>oT@uI`-4vwhb6`z+lAvXHWLPo>Y z@RUCfq%m9d7*)J7@|1DTv*6AACIU3^B1HrHa;aDyK~C(#*$J*e{cC^}g;t-49SjM% z+Zy}D=PRD1*1~I5>0N=`^u??M;7Vk050DV}ysngHxEdiO1?4%XNoK zb&+H|Xb~HWM|l0=J2%_gY>b1nYnyLKD(h#-85=Bb;|#^y8G*M%)D!hdHP*>%jPp$G zA;HGd57Xlzr1N-vMY=dXcX1Vx^oRH0 z@F*m;tI-s&YpgKvb65VZhZqS^`p>~9m01~Rd*BFr^C(Sw35=|#jNE1PyqU^tdwQWa zPc+w)UhdkHSBcmP_F9^HF}N0q*r)Nvs7!>Q+fqey1pPXncnl5~y`jE~{FK zUXSm%mZZ9-1s94w`Ofwol>^lnhPL4;F;w~Wu1_(3KTE>A%2857?~7JU0BPfoi7^X( z_C*YF5u5qvC#uZPrYcen7GDFW9f?*1%YLi|o^{kVe5XY50 z;)f%WaTi8sU(ZHv8wK63n5>JQXYap#cq`1C6}vh0JuWid?BeLH9+O*$LNbywUKoWM zI+z(5Slv^#D-PcIbZq~igah8`Y3(@gD|%Num0l*qNXDhG$S(INAOLrfLI*d5*6I8j zN|oL+pRGD?m$MY;l#>|X?iiw`$r^YdC{dRgu5?S_40cC?_6roNQ2@i#Pf+@F0)<{x zvX}gr{?j+e?zkLcKol$#HCXk1FO?%&N__YwT6*bJQ|>dDus;BhQ2w6LzO4unS?kz- zp8PxU>L>=U{RHx@uTR;4#5>dE*P*~z4>k4=wK(unX)K7SdXM>;6Fy_KvzA3AzI3-4Cik{7ywz0T@_eYf*=xRvb57)s zZOy`KCxn=U*=97%Qd&shlU&C0Hz8vM7<7Ue#FrAbG|tRJ`*Tju?$pP8osTZ!j{#5H z1M%G}n53Ax*6q)rPVwgp;OsYXX~;koFC1T9vXi~bbFar|!B?8cy?8;swE%>ba@Efj zKHX#{Q0woGob51a3@9ZL5POYUE+RpgQto3s(m+6ie; zyKc>tzO0nb9+EkW%XjD7A{C?wJ-5|FnfgBQ%~|-QZRW{4eI}R@`+WbtYi|wbK4nemp6*k##COMd$0|s4r9*L(NY? zQ_k1!r;pggLH@>g*taPHsphH08N9*mvF(zQpXa*cPEIp!(wS1CQxo_fBnoxHyB{vp zq)ASGvzxB8?}|z|K9^Xi738d`7LfhEOKO7|vF4*C7FLD+UB>0tZvB*)&ls&b# zLe|mIxGof$m^#M^$S1xvoDT9S7PA=>FOWgg9`4`Yo!}~{szkUSv@V`(nRajAbYm~y z4tfi9shF1=+oJ~SWu?X7hDO2tnUT1fq9oI0w@Bv358rv7e>xo0+V=fxy#Y27lDLPy zAVfrRy8#YQIg19|B3^rL79J0GK5Wd)a=m`_S+{_9$;0q`fu{AbFt=Df6;z+j#5RE$ zLI@833^A|UeaQ+KrVKq72Ijp;`2t4*Tc5%23}unR3yW|6DENHOd(!k4FL1K-ru-5u zTFz8!_}P{svDVsYb~i0WaLJmKmo41UduXwo$Ni^%q_f@S$IG>_mtd;J&2M2zxODQi z3XLx>X_pR$2X6a5$ECSif8|eQ;Q4`}^dYN&@EIM?E69MRU@UIQar~x4oy}_pBB3Rl z6Uoc@QNOc0@ao+|SNH1jgUz?LGy?Ok>F1`T9Txf#W|ny5JC;g=Ps_$0DJb6)ID@Fdcn13M}urg&@n z8sj!fc_z$&VE8>t{jcBh_!ocRZf%Q4TI+A)h^YO~0v34hmr&L?+h9I!LpC1d;VqY? zwuWs@45G}sf!~$S`P>#$l1~yaW?hdALNU0>83h~OJe9Epwr#Qgl=9vZ9CRMnAygUxisdxn%Qs3zZ2>L zwqoPcG3l|GzI_xq!u29Owf{L3c;lY?7=Q*oyiFGbVnC547SKVmyI6EVUX!=^jO6T8 zI+R^RxrXX+U@Gn8S?D;OU?7h{MMl&3*J`#ENig}Kd6x;O z=_}2C+nj}cLR0j-1FY;11~#Aq;-^TL=C`a% zyX8Yli1KhJT4{l8oh{E~aQu3dQtFS>i#^8#1FP9O8-PC$9|x3v6vV6c)Ad|`g)P|p zF$vqj`nhc2*Dt(3LqrPpXncKSTSkn~2eRfAd-Uar`X;mf_|e%YJZSHu2tYI?q!~<>1z61bvS%3EAy>(D zJ@pDirDqJ~6nKdQhScW_xMoMb!#;VTrRvsTP-=<-ydZJZ!z2iKD8>6~BKrDdFLIau z+3{!@TYh9*-XwtsX!SQ#%3I{rPz?21?`I{Z;;Bg&n3gkRzXJ-8n<3SGFFZ&+A?Z*q zWz%q;xljmI+(ME9tS_F;Y&eL{9w@lEmsKb^fxUe4m2*x$k%^tTN$<;>fR9SN3E`=! zJ)}?XRh9v{Ltjh!o2_unHA`b;xRH^-#iUvQ* zr^?`#zM(I3ds7Q&NC4}jp6in_52OL=F^3?N@J^_CUp`}FTF&itXx`Z0w&by0d`X_| z)v?I-=DdvuCCp{1u7pQWG=k@pd3ut2s(`2++Mdc?FR@WLaCqd^q3bN4IF3XcS`@QB zWKzT@T_Zs9@IminxP)Bt9VR9cIA>PyZETp1*UKG}soh#k;>uLG-U}!xRc*NXNVY-Y zm?9;f9jI+Rs`r;edQQNl#Qtu9SiXNm@rGR#F(XQM1a!MB)0U_`*Jxg$%w(N?HHIx%BYdFcT6}c zOh1~XOdKYgOPjnQqhT1^C@p3sBMZPp=zar>IIs$ z^CarsXYjMZG<*Me)CP64U7|le5#ej$3r)`EJ$-M;R53V>s&vdygT19QI=l>t!DO3l zR78RkYg6zLo-XpqqyaWPn03zAdJCa2CZY>Kx5+zsZ3`c4i|5L!7DHI<1HY*SrC5rk znLYYn;B}uIi1@A293~e(u(gzyKO*C=^Xy-G%r3mfpzx6(I6{YduTVdYCz#z6q6~1$JheYhK1f7(9GU>mK zKV7IZZki_m_x$-`{=Gj539N$Ns$;JfP!H&XY)sgjRrPflaZvSebkHW!V?# zo{3*q^DE0kNs|fz%+vxn5s;Spahul*`gs^@Gv3V|mI3$orvf%;XE42$C>+XI`m*Y@k(;pzAU=Ekk+$K~F@3)AB}4i(aBxH7H_2LI>a z-9V@27K(`mY=^ZCAY>)1kpfI3Z*HUzN>tv@6kmur*6LEj8d;= zj#Ka&lp@cO=CF#aVF<&->rcvAAy$sTF|pui^f^PRLUlQ;zGpSc$XP^)_xGnl#&Y>1 zKAKZ8-_=QLg}|1I#d4#(c*$rqI#W?&A}qwBF16*jLZbpjP5tT8UmT8wKc6|{nfZW< z?W>@urRzC1M_9mp-M(rxW@FUVg;+Kl7X(wcIMHE%xAf)T=Mz?Xi3}xS(*pniAOJ~3 zK~%Y(I_74sOgM5?i+XgvWqeEM5+Pwc8!95s@Z(9XbT!g8I+6b{`9LMT#w27_ZF z>wHX-ndSQgquvR9=gN|$axwoeryH%Q6&;pXuEyipXF;8x4t+`6lBRXs?j@vdF`^$g zc;g!oyx=$@#LYo3tm{UUbaH#Z*#7Fl1HF407L06xcL~jEUpB;INZg2w;W*3ONoRU( z&C?y8%M+eax4Bu~m0i;ZyIrf^7v{gzonL4g*&fF;Y*%u-FQGvKn=Q1LmRny^x}{tS z8MLLng*v27hqB^**b@67T?lBF?41XFmZ~JI+xI1NDYeyGZRKK?wXAFzsmTe z!x#e!B6>x{vS}*hVYz3t#>7n8JoJ{`pFR#V&N-gX`JLbS{k})q9`B87MO#xFt)NcF z+NT7s1jK2Q{=xc^0Op<_^Sn9(7UjuEPf=CT9lZmUXzeT3Fh{uE1dcBhfXAy;xDP9EN@zI3yu@5RyDiVJQOM%(#Ive1J3%)3#jMq*sRyP4iS`Xt2%SH zFLnV;pQ`y2a}-4oIiD|=0PJT&85PTNHWAn{4x#U znc2%^(rNtpJWB`5`0KDAjFrv6jWKNvK);pPgzsgcROyRrya?Yu))?dHA(7koKy)|JQ zi7&sxDTtapuG8qrKCqgtuNTq9r!z?crhx})oQU?z?5RM*(f)eR3;+@CP^NRM#um9Esndv_ZH#TK3IA1;K57cInN%cpwMtp zK|ruzB%OOTKUOM@jS=&8V?Dj0Wb183{vD^LBW8cL^(`DaeT<-hGgSHXxKe~})A#iUtY37xA2qi8M1 zF6YrOvQrCae1N8k0IZV>t~J^Vk*Wvw-*vehYR!blKUq0CdeZgknp!}j2pneYzH_3r zL`JG`9f0?k=scPlM1{dMC!!G&FCYM32t8WuJ%kkX(Z*H@6SwwwcbUD$ZAAo~S_&Hd zuEE<@b2XcHch?*)wTs!1T5>;|Y~afYNfq?Ovb_Ba>tvJZ6wNLE_3`JcOL=@7Wu>AR z_-|41wfp2Uz&(}N{VGfOIRbt(H?LL~_RNgfjhn2gb%VyOt$|~~TS~}I6+vOY1WI~t zr48OZ?bPX9pANiWx+I9^y5XA#77GbJ!0!K4dW5T*U+{;TM5;R7Zp4)^MUsBo*&A1G zo|9t2Hk+G*X}JmtM5ti&l?3VccqkhsnVYbY1@%($fLeo8Ck*VfN}@II$*NS^q*ep`%OjICyrjZgiL)}`#gJ4=2o|cN)zV4`5Az|;xRlp9^U>(<8obPg`JDmqI#&6x z)ROHC!eO){Yb8;*&jq#f{Sk##vn+VuWs}j(B)b70pHT(|a-pD9#A$t8QRcwIGs7pS z2n76r`@lPpmW>Z%u<9}4RBud}FTvecQ9BChI#{J13tlgCc>33L{yiGW)oWn;;BCuk zN2^jW`_qA!wJUHc^5V>WK$>eSD`KcrdV2p+$tp%-GY6YQI(-7G6t#@ke{Sz<59uK- zRL9(w+=xsCMJ;u=l+ChVh@yBE>KOIX=!evq$N_mlNlfZ96g}&mDwX_gJ_4g42za~@ z0I%_I1%*@(4w`I!g^iJ9=Zl{cTh&Y=R_?Cz4;*ccR2e3mjl~ug3}Q$WOX9-99a`B` z@}VQ4!eadP>{tn0A};>tY3S+GM{V%__=FwryHwB=10`SvKg)-+Suj_q<_G}ZJ)@c_ zd|;F2ql5SLYZm`ulcc@Z?WZlLDc|&>_%*y;>A8iS#(1~SlBo!lpumI+umaT-#b6`8 z;LOYIRXf$djg7Yl9kxBnSv(EyG^@^=Wsji1!16ta>U}HIZ}NM=vW6yo>jqLWo{&jB z(_qr(*aT90I0Y}!y46xJlP0&jI>x=810LFhW3|L#OV8|Kc3Kp_qhhv5t_;9S%Y)a3 zbJ1Xwhw;jYw|NCOJu9O}Wj1QytpdSvbySgM{^`z!c%&YQ=o}H@#3~!VN$^TX#z?V- zU(Jp+*P3IOms)Z^n+#0217OKBa5(BZw9DEDU8}Bc-@BY$xukxEsdcP`-h49xyV!S2 zRT)0%<7oLj0I$B5QWOwlJBzJYEY@nZ)O)i97e z*PkqEuWH3dHzhms4FtLWvc5F4abWmX>%#;2MllN$wz~!uq)I|66$I!=LliL;lBuBJ z&bDrhD`7v>vpKhsvV}{{Ud?~og%zSk5%x%6w(Vak!J60s;LRO$aU=y46w|c4vk(9y zBz=f^qfuqdT`zTyFy8M2)Izjiz(w-F57;a#m62qb?{l0`J=cKO#ga5b{QR>PG=*f3 z@gJWsg}$t$;7+P^Rz=fqW9$`R;QmGlyj!ihlh1x2R`}7u%kTa)ebKTrKJ)gH%Kty+ z&ObDf^o-*jx>z^;C#*=z%9aa6x-MLQ&hctiSvBLuRj%L!Glo@=5ZAMwA$qavUwvo%6%*Ur zT^4$8#(}^%BlFID-tYT7&-*+bvb7r@#Ao2d&@u1|YJQf$j>_lDQ(teA5wu9h^FH^2 zX{Swbflj$a*Y8Q8!cJ;^Dd$5fOzv^U~4PVORMHT*>L_$z!%*-z3&14F!DS*CkmW^*E zc&qgbxMm@e4vUfE!OMz_XRG}l6>yS1$jA=Dw8G+GES$u+`NGMnNiq87H%7Q9)O@{^GkOBWyMg8F#U))f`Hr}A=wE{?wf zcwaf4wtrv8S$KN}&nT6*W_a%Qot6UVO~>bd5;^kv4saG;dYV}Q9J9%s)xSl+oyAr2 zpCW}5D=0KY213#0iOnP6g)qdhn)DY0jd)NlZS~gPPPsC19cpRmOOSIKV=vpr5-p>u zO0_d&b-}JCOU;10veI_Bo`<~N2k2gZd?q538CIKTHQ4=PXTs10AFE`r<5i4qr_=l~ zckgr1?c;XXUp{0atx-uTMKPQ9I6a07v%7$~{HC-6#hWP;4EYVV!q*O7a@`C|_1I;2 z)Sz7L=$IWGjHltmUUOJ!Sm$~01^{?{up^Lzw~FC%LJ>Bb_SEVV16z0`M}3L?VEv7Z@>>a^(s!BKG20HolGE?S!j>SNH6hyi&pCI!Y(t9Lt17 zZgEue2}WC&oB~REsdd<4YL2=lT+POlZNQ70zNYp8kqVomB)(79ACRgS>N^9cxL|MY zKLB1vAQoi9v_^1VuK~0Oc&j^Y;KEEejdP%B7lL6AbtEyP ziO3BY#bYJTiGeT;9ok4?#8;rN|s-u$Evxj=QpUND(Ja}I{ zoi@3y#N0hmND4^v_}5kN_DOqzkYwiP;qJy8!M(gg;$ezf0;*KoBZC$pKwj_xd^B%R zdy->;ysF|VN$sMcjTW3@5aed%^Uj8o21rkrWKP> zm3e~!D1yI@$A7T4xpNG>b8|d*o!+8Gv15ht087pkr?2ezd?`VpO~OA1;kZS6R2b#3 zL@Gh2_Zk!^4n{04UE2~AbP7fDS?#R(LK${vWxI;Ehc^eT9zi1$dSCEBy{wE@@Uqv79u)M}kaVo`9jDzrwyWS%~~|M#o+{Nl*x zhsa(mnR)Rn8~*v5r zdp&}V2U(G1sCdX*5h1M?Tu0Y#g%wc4K(51_tOgIE0AHX}7!nh;D-)-h40ZUiE|bZq zRIW~xSgu3m2e_q{jp8JD2_VxZDWkt($q;5@?td|yj0#r4t5Rh6^^wjU4NYrQXXWV2 zgZGuwX+MLfC;zFn*+z$zy?x6y?)Kd{4c#&Om*(ry2LjGNBPr6Mzm_V$k7}c~C@*-S zMQ$(4+E?KK+FGp@wWb)Vyh4TyEjTq#Bi1fUG*N$nISD(ICL`o~OUJ<5!y9=GY?N%q zSbFSYX8}rwLLn`rynp{TzbP>p@(biTymU}A)HTYyeLoah?&-O%KdPne>0QpdRxfNM zsV1d*9@^;DmeV|Ml~)^rS2=nAVVr#bsE_89HSoN&>4D%1qMPre#Y%hq}l&G|TgGp44vr!z|zR#U#M z4eETr=nr|{zqD6ScqMzHlWT@e4*adKM>TeaFyZi)#(Tx-ERHWrW4hK76y9nP_2L4I z2J@v)>@%{l?*+wa-#b4vjJlnIQXRbIks77C6{@Rut^Tw=8(bURosm9DN|%s~d#eS! z>=fdVgXt#ANQ%?R&|wD#w5e?Ylg?a{QVsB49+|R5%Q;rU7cT9-_jK~Mr+Bps#@z7i z__*|sH-}dSzc^~0M{KbigxTi8VPE{=!+$?rd2;V7@w;n>NMbWxu7Wp;eA~f`K7sd* zl-eXGbZQ;mj7!p0C9fT0$`v3A_xAwHh%&L9=xl8zMP2W#lh`_yj+N64 zFE4c#+LgmCnOygA@Dh%QA6Bc;0y|d1aoDb^`P*;{A#{K*^I^UgwJ@wX&w*D%_X|AG z1zMEw6=Miz7>xS8E?-d1o^&O6Xw<8Qjnr-@80rZj8@DeZSv%(xjH2B+R#;n0&I$p| z`~N)F#n@$pMQJzNZ?0rOcR5Vith^SfEI1jMV+v<)lE!4i)_`OXYmANiy7_1_-d8lw z-;iJ;9L~}zqkl`S_P-=}Up1XJdh-+g$lTn|-kh3JD%0sYcn8lw)AnS=TIZuc$i^i7 zzPG04Y@g2AMs2nc&cM6qtjb>Hq*Qu?-#)0NKuSvg8JgUkkf8vWB+09d_&Vn^Eh5fYHjvSS&>4Mz-DP6?SV@u$FiWS8`3U~ zl9&Wqn}s$cc_DdGi3#b>rRJFFVp4H~)}@M}IWP&gYKpHj zi%Mk@0LfcS+*elTig>GR z+4)#-SWGhy;?FHdz$At@Yc#{il zAsm^K{z)&2ezBkrH_R+j;ML9f-vO@_u4ghK4C)PITToAerckbrPk-FLv*Qs``&i!v z?^)2V?ibuG4n%EV+P4%i6h)28bFHOM-%3FNWh!1M*c6uq@%L{cL^BcEVr9{xr!zPO z-kK9SZYb6w4RxI=ej=V3*y75Gd&>dz=~y!F^1rnoCBJZ>=HaM+g-Bv(JY)t};;eUJ z7P-1{ZsHLHRSkLZe8v5v5vPm@>Qw&`ZlU@Ik3)!SX!*0_2hTJYo%2mcqw}R$Bi)be z8wx>BsdJc>b4&y9vUC@dsZ`8cNtb8fyzk)6a5dk9!A}PCCQoax87Wu5E0fhBGuOxx zX;;5+fDW7IQQTGT?y6Vvc(M`<#ot){d!w2jXGtQF@QTIm;;EJ6CM>e6-Ia6~>yJ!) zmZ(wK@xrk#4jb#a`1+FW#sEd>2<3Oa68GkddGV(M=uhAh3J$E30K9Gtqw`%KWg2_2 z7%c|qhQ~QUGv8B;5%DA2Dwz2*)V*$`Q0c@I`!V&3OnU~`3OP7Ss9j<1u40J!We^LN z`)M&w23OA`90=aySP;{)JP;E?UuG*I5XRX|ZAnmO&lrb>l*)MR zlEvxu{Cb@8Ip4Ea1urf%*8`=UN(BcXEJkMi;$O^4_DkUXjdt2+h1Sb2|FwEv)Ym5! z2rPp&@Q%*YMobbyUvs0PGhz}f?RH25dNZ3Ua91VHP?o*4KYuv6VO;mt)s41Q2UK_3 zA01cd_4>C3FX%+4Z3;5JQ@!aQ2z-BvJM0R)Q>{ZZIw}I^?I+1t{xH@MT*#+WmlEax zdtq3hs=@L4Z4p&>`R3Z_3Fcw<#Wpv-F=YGXiYB=NUpV>&;?(L|TP4Vg7pcA*ykj+t zja?v49=6#bI4Po9y)C+KCC86MCI0?TA4;$d@CInAQ+@#y)sGZ-N0KecgQ7Yb@9&3` z|1aJs_j+h*C6KLYZ3~me4_lasnL#(c@;4~Sp-rE;g zG&B3od)r5&^VDDMK@Q+^n8)17UfqZyfBBBZx~5B_=`wf$qot?bbMQviqI1tyO4dKn z#Z)*_RyD18Iwaebl#?a85L!07#8YzVjC@W#fbM#oaX{W|x7JQc!(+5ScXzQe(Tr~N zm>iP;%~~axs>g^xfD;L7Mo?xko~>9I*{PxiAL4u#eJ)PRuiP|663B zE{-&Z6n7FXo=mL8lN%Wh2S-?Htyc5VK=5_JT^`x-47!@{?0RnO^e(_nkA%iKlH zm@vjugSoK~f;4h(G39t6`(GE=ew&>(Haxy+_*qb?^ggcs1VEHriCK9xTv&Iqs~B&F<)8 zcN{(Xrdt)ZcAilZjaNMDJ3ezp1H*&hHTIEuBGJ^;=-T|$wOfm&lEaKv9qwU;acEL5 zzudJj_TAl+)R*upbRZXx37ItGsVvE2geQjUGgrYT;4TopxUlHTBox)n!-o3 zj(I>eSOSzPvJ)D6KrknS3i^AdrOpFl%TY%!aHe!iB1LYjnYOKbODy}Fv% z7eaxAtw*#S(#t36!{)78e5U-vEfisIE(WD@Ssw-sa%npa4Y^#4?a65ToJdDj!Apl5 zYv84z{-Z{Lp!$fQ(~1~d2Q3tM54hX&TSvfakTf>xkrLdDxfWF{+%jjn3&6V=B9oiG zioFpXevf0k;!}+N0TZ{m-6Xdu#slG(v2r>dyNtr|gaF5jGT96OugiC^q_#WP8Tfr{ zZ*OOOHR|+6olzwavw*xojBe)@%S+nMQVE$0Np^Sbc52s|7V~g8z8MVjt4S?UWYjDg zmeg7q7uj}*H}f}^jR%N#9H>z3_|pV;h-=AO<6x4Hfv#EL0kP$6p|fcFk0uIRM%VHO zwp=RirZsyx91d#gaiN9CineN#mc)xpX7@25cuCD#!q&p&$7NzdO@0ytb%O;k8eq-2 zbT5svyki^-L?EcUzu#ibg$t8Am_%+jg;UG27_`fkCFCZKNro|f0;Yqm^9Kn zj%QLrZC`C{NH4V}wK-DhCX=&db8W&@O0}CR>Cu|4tuNX}`hxgELNWF@iyNjJP|`E9 zHaf+WOVB0<1czqaVcJoMfFK;CFBrlfQ%DHGc&?=Zt6Or}+yiP)yKl}ny?Zh*$uq+c zKJ$IP&+qpgCb{96J}`J|4j!l7;Van*IHHlly;lKBr6PcloiQnaAPeuF)tpM?mwmC0 zKYB|;G#&n(5#AX_#g63V!(?0AL;ko@pk;pj^~ZPB{m0eDY#6y*t>S_|a}e%wMOe}k zO`W#;VqKv_;eah{#ZP|jGjtvi-4NN@+ws0B3z@U0s+AyEN}dR`D&RN_D@?C<4S}9J zI!iqm<=M37-FT%Z7W{ofLYjzZw$wLZSbGB|HJ>J~<<1XzIF5WlY8QGt*cz21g_<`K zYLh1W4K%#RWayl%GT720c@_R{rxs-y!{pY0T|vTfJ_J1-#&!HR{HMb}@eWNTE4yp@ zW~4)A`eGih$!yzDf9%!#)Q?Q%_-fKS$Un#BY5V_>F1YuCcg2|0TzC7e(!AFl3ON_O zdV#*wN6@r`cDYlI{b3DY5#k~|a}(qyfnoFQGOr$~f){xxsepG+@4L9814!PP(bLV^lJ$kqsLb)extr%ATz`L&k zTN5>vSK=z4Cv7gNwwxFhJnG3cP~T57yq^A?YC8#iEwT&VHB-%6&F~0rak$-%mOj)f zX&bpXV$fxglRbO4Mdj=|6{bEZ&xR<&FC17oX?Xn$0B>KIRRwP;|+Ip*|I*&M7sQJc9*4f;&uQ4AOJ~3K~#S%?Gkv{hoVuU z_l4UR5h6&gDd_d&a)7&O=WKW2mAJGz%8XU)k+ta9C{WpW=n%sWb$16FiN);JT6Qd} zrc(Jl<}Vg$Fqzlw?Z|+2h)lhzQjxL_yX^|4QwJHefLrVPZ4sHEf^-+|Q)No)3|jFT z#)_fP6_mv2jv#*P174yLD{5%^lX9-+E7~Qlo56i7)@p{%Hi30-l7?5r>+6=Yqcg%% ziL%o8JPVngE*==X2aeNDAc%5-7tzY$tzMvEO$yO}Mx~HfXOP9QAPaH$mapd@BSe@+ zjEY_GniL9%2ha;Eq$GLa`}0;rAYk(O@$r;zxr7yL2|Kx6JuCVQsgF8uV&A6Y-W1}? zyEYN4BPXSx-}t+oBGFAz{9e0m>6}iD&RT@mm)-u@hK5utU>i7n)c9n#=1cOor)Ygs zebd(Lx1M)BvE}R6m-9j_hLk;Wvvucc<)3Dr?EI_6!{G!uoP~tB@GniF@Nv^_*DkhI zKJuitx~Ep%SL1Gr-=XIN-HLuNCpebiKqSmNYsCZ0{b1>hYwAgtwl^NC8X+)CvC7`#bW zoMD`0F9sRVDcIU=_eXwwcWaJ#KQKY0nePmG{n|AYE8jyg^W5~<`vsY0wcvK$4kwdA zufEAyELIAy{HvwKl{}l75qHcHCdiCpfw^L_`NXkfGv{2vb$3b_cWA{)pn{pPPmyG| zKG-b=B356;AU=16AbHsc=NGqfP8^NIq zX&_1k4M-Zrp)<2>C2e{7<;zNa)EI!h45ia)wza<%Y7BoJRIBq$vui!&pdGFar*a}p zQf{nuDHQvCG}EP8P?7+=iF9I<$*Q%zsnVL)AnKp-wF5rhZ?CSKjDc`z0gN48w+ zW=@Ak7$*Kg@thQfH=JDxM6WHXRW6U)!D9JWQ_EyFbGaOeuKIoMoGUjf^be6Z?iim> zG;%2R0l|ClIBou5JBOoy)S9i4J^)^+aSwP;bE_2yS*x`Y<(O`2RdRR>NUMh21#iRz zOCcWARxPLPc{F657-?WQj@kiVtfYpN&a8E(YvFUn%Y8IS1sj@WY$E+~8;wRb1s2xlRDyW2iN5T*!L)w?iE8e2XQa`?671|Tmykrjk{D%K6X>Q@n_ zTv@Zr-Ks#{9+DmjdO8PAE93ke2>MPa^J2+?Zw0tnTGZ9wt*OTN^;m%3Cs zRFnhL4TA`RnJ;2fc<|_80DxDde7N*#1%Ovyv!?Z*^6ZL%o|M$RTSZ&BSe9lhE?;R@ zshS;_di9Jgj#EMAQUmtzc)b2xpKT`zyo1;LB$LvgZKn)F zmjeH0?tDYr#?Ls8z{}F!o6*Arn&zkr=As*@*WxXIEsYl*dlnlbiM z{`5)*d$qfrz^^O|$&x%g91|7a!&USXz5lpYT0CEtNuI?j*TOg{!zc5AyXthWX|#)VMVb+JKI*(H zvkwdgq9H=r&ggL^&edZ)&+GcI?BTb9I9=W^tEnOgANt z$7SX|%NO7K-*>LPwGo`eM*5}gkbG?rfH&cJ1H8TZUF(%eCIN<`fxrYn6;7VA9gqyM zh9JbA=-;yo45oa&7xJhBjYntE00=;Z8gCT_oW-7zaCInY>5%IyyRf|A0E8`dBO(i_R8e zN}KhI(Cf4Hyf&0sj#vm^X;cgDFGtpc$}fkROOTa9kYEBDxpC-qrQz1#K6r0D)XPm} zKEq5*M5FUh>^u8$2Z8|l39mZ3MnEJ)6C=7libqOGTlt3o@0Hen#2Ak=?{Zy#KN!qC z@4$T4{+!Fy)OS(C<0TQ$NqEgN&${NHPskd)lE`=e6^={1-!EY%7!?HWfePL?CTmdb zeRT(Y$3({pB-J*5GRS24;}_rAt#+Q>QW$3Cqgz!hwrc*eytB zo1W#Kil(R9$QjF1mue(c(&ttge;(>iPqrXFp=_ zKFW&@1|}&A03wx7^-b{0!*m|ykd%iR!-x%^@&mp2GXoYt!;9dBpORKjGJ2nLqm7I`NV8? z4h&*6#nQ?K?NpaVHOhu1o=+njSL2QO93~c9 zzjyHFNRWDxd`LkCuc_l@wl~3RQA-3S8p8;JCbo-+7Gn8YzdELb^dq~uKKMSd-#(`I zy4@J&PPyHwt1cH0!NVYPxo9oE?Pu5{`NwLhK`rv82BqzY zHBl@U?Zu`|+0&bdqHT(QMyaf2OupDEzz4`&bJ2!ph<;$nR!FK1_04Ci-P+eCNuQz|DQ~m(ot-;`#H$kp}vkCc`LYh-G13g1S+q zjMI?)`roewTC=g%2kFpH?zM-O`B%ZG!Jy4E?7Mw=+^e6Q{Oq&a&5pcip_)bj-hchA zvvpCmf317I7DEHsZf}Wtwf&@AgJhfs;B{T?$kdNn^3GA?zJ6`VkGGTf=(4BM&VQYm zWsWttMEpk1(rxeW#Q}I7jD-W>tqe$1`&>`+X?}APJ4*$db?cc8EyK_=kIrcO>~vSG zO;QFb0KEUrj`II^HK65;iIl``T&sobAk+W6tRF<_ZrzUE-rUjU=nr~k8n_Ieaq<;e zAwPP50`TRdS%|FABQXEzg~gVy;IxtC)0~E@5)ngEdBN8%vAi`F9lj6LikTCH7aYgL z5}9bczCy~;WHP_BmR=khO3v^uUw(oHH(1o!btdA@hzsPiI1dx2E29*Ea7S}~m|In= zxn+|mPAG|lgOQIhD4H*44CrYcL;{YmFg%6IL(_iO(j1z+d(@2c3+sp>FjKGZU?gf< z)v!x~(3OOJJ{S|#uBQYwLjOW>pk)^59wa|=949fI`&T$$gW*8k@PZS#oWl)cP+JWm z=pKKm|9(Ndv0%>1DF?>7Qpv&;4-TXY&y*wSwHIh)_N*qo$wZ?JS6w-24nGhU7d|!! z<{YiUShk`P9ihH|@Z!jhTstLs63F;-6}+D3Z-963)*h*vF4D!bILnj18f5)WL%uOy z1s$@0ANas-#J`z4-;g%aJdX2#yKQ=JjzTU6YoRGS?9LXZ>jv39Xsorir7E7Q+@;Gx z8ysJFE*Nqtwz=)(I!}*DTx@Ve;&j9mMoV`lq%%w0WHc8;O=FBT>iLLnQD zjQ;|60b9M5rUS5fS}c`2m9+H zg_VKbHH^AHdVQaH_1r!*LCT!W5yFm!ZSUS!ytbn|;2mzib0?rdx{%;Z+?D)Q4lt~t zznbxS=?B9A$fC%I0K;j|S8VHZ+v+$Y2WJh~&ed zn$fdjRD^r(*WE-~9UolP{12-%HbUO&dvA(#knGC#@dsou`=IjP1EjaBuD8-zn&Daw z4JBHx+iZ1p^r{{VtNq{}S4)zP1f_=EnhBsb}!QnAGKJzj6E%H*Fn> zOOgiOm_LOUC-V7Bn{%VzWuJS#dik=I7rjI}O>3x4naj2=!hwE5f5I8G-!}u+p;3-* zRkwy{UEDGZMg1Y1i&_;0SWFhKt1b4(Y_66e)J6v?dh(IZXCo7JkxuKxa`|?7^z`Y$ zeseS7lP^U^q_O2V8bd)7?WMB?kC~(3hrv?`4n3x1gbbll3~zy>qM(7d(Jw8=jg-p* zy*yCuzz3&C6`6LuQ#m$*rF-VR1oTbD0u;r`W z^SjFrJFT1KZ?4^s@~!Dj(oQ!WgT86c_mtoE4(GrBZ0p}ac47I2<~zrx2Qnnhh^g&O zu$B*oLu6a}HgkmGQAwA)P1nc2=z8T3vLya=?&;F{@~5M*e^vUtylBKZpkPsk=Lw*? zq>$~F2T9PUCvO}sq*5Q4IF)={-q0|eK*F3;vARO~kHCOl#MaYz*JEKxHj4}m#5@gS zj=m?~)?zhEexqc#{rd&ONzY)qC*-&F_W5#|bE!k;|Kub|^J=2IK@WzpkYE?+U z{Fi@;>cdQVNnlwWypK>Mb3{La!p(Bo4B^itXPK#@+NHTWHo_AclBH1CcjZd^&Ef8& zMBi{Y-10+tF1xzwW|a6<2bTYR6k=;mR=N9RY zMHx*prm|5E7zIHaXzO1f_YJhUP*4V?crO%8I(RXLmyJ1C9S%!Yo)T#qMHzqFdQ#@& z*)3^ey{Jg4ak?T*R?kDlaA(b^4A1r?;_>XFWQhR|EpCEU%|KpxTFo2(Z3;afk>)+Y*`1d6y88lSpVk1Td)9Bk=VIw1@Jl#Zfh_g zJE$_5Ovg;6Wp=&x0S&2VsK8YEwL z>2&U2egWTksTVOE1aI9@OR;uIOR46ku=}-h&Ry>JR`j-j0(rHM2FbGh8>+6X-c!7L zu{Evt3w6czQj^YVHMb}E*=R@8PTi)CgYyfEzj^RZym$G}XJQ=rx09_xqLmXI6-{z6 z;hBdx9;!Q)>bly;S>?b$VbR&%#9}t8mm>Ca7jsHh_l`*J%`>Y9x+8X6?rx z+1w@@Y?$TBN2F(w`HqfZ8d63A2a5JgiI4ywaw38p^&lS=eL6YrKK#$g$%s@_#kkAe z&ql9bv2j(~nb-y0`II$hGlLsZ8 zV_66}+Si}U`#A@>;M|NZEWc`L7)u^L?C297G%rzb3uZi-!e*0FMdqmSMAN*2+VUnh z<9@v8IGYhXB|TrcnQT$*X3aet@3FW7Qh12Fe(5u(!O%oJX`giUo-9u$pSskwRwxJc(j?Cjmn zk`w!a3&^|K=4!0IDAAczBa#JVX_8V6YHMgO_B>}}JEYTIW$S~5kp1x7`Tl%<-`^kq z+!QM`MOzn_4teca3Z7jIVwzQqP%b;^!4om)euumwrl<`#4F(1VXsKyf+1YvRlQ11A zKsyMPg#;@5`ZjBVG1uB1;)P~?}XIEWZs0uhjXX&+d)wX_UKU=bsa<^ zcE>re(wAJ1dW2xSx2thU-3BJ6lNaEn6K-BSA6tpDfW-xxDE3#01ZeO2xEta-zVdz3 zxg0OU&1kF^!13LH02DXDidv@jBc2(zY$VA~-f_e4eE$#ti$><3kyf2hB=(_YEKFNyW ztjbqmJ+)Q;_WnWj`jVEl+5Q`NZKEZ{yB};WF|ES=+Ur)LTz$}SAVN~yS&FOdZ26;W zh8lBg&$lgzH1sv1RMlXvTYjF+m?Vs*|)$kuD=F>D?SI24?gf-7P6Bu^dZa0{_9oqK}eLX~k zS9W((OUb3c$dVd087>;~ZIP%69RXIZwU{pl31S>4HCNY>UjKb@E3!Gs&mE#YL6IAB zj9SU#y<^$IKH{{YW-fgyDEjhy2~}aqcRsTuAML#U8ab!T4h*o)LemGdD3ZoD2#CY1 z>{#fpU&SqbXGhqrhmU>sjjNtB!^faA3i8yWjw1ry_GX{i?sXe#sJGy0bEYTa_G2^8 z|2i@)-_eIx{7pDGksKr=f>0)kn`uJGsU^6BZr> z(|1lvET!q-l@;YE0_aC#ET%jRg>z7(HmI`TaWfu1kP69*Bj2phdl0;6LBPtAobmXJ z;FToknoBf=<9V5P3Qo|;vxsYoeM6+m?En$@SiY1&XK3ZmDR(%`E32Sy1%JNu5Kjq! z@xV(b7<{xCGdWQNgQ0O&cOZ>cp+%#iYQ=L}*0dK;B}Q;JNg9vi_%IcVotnn5?kU7w z2wrJz4IYpATOFaK3DhZhj9`&&R^TsM5cGFj-TV;KfQscr_E~DF2wrm(f|nBB`yYW9 zvc%G)gZIU<2HVU_;H}n>m3)=1Vk_ipJ=p8!B`v!j#rV&or?m>a6$4NeJGgm|s#G6z z)V#RY#Z8uSYsEN%uPTON__hThN_*#tQd=^Du*~d(x4)x`{nh1k<&PH=6E&5$iSm!H z9K1e~nzmxF@3ppzUFKC`ly14C(M4DDMZbR_8z6=1_SOD9* zLF(-JlaDUp1Oy>M-W6n-ug#=(#D)M&&bT+?9x%}$28n82^iN_X3r(J`F zS|qMmL)zWAire})y<3O4u}T}yj9r|Yot?AZ^LGe>Q(~s?-|6YG)f_$!Pg^405s!W~ zGmzmpl5?f}S2w5phBTb+aeXn7d?GG;{H-&No*|>qoynv&G=*e016$u=@IC+#KdJ%+ z1+NsTHfAxP@GSr=v_62xShidrB=q}BRYkO$CUE$IDS3XoUdzTYY$&@R%Tfe_7X>Cz zz6|PRa5WkWZK)x67FDG|0d7Bnp%TTw;=`|lv=J8sMrSPxfOJ97L%b-v2DPz(a3x7@ z+5;3Li|zxk8;n+3UP1DnVfk`%Kz{8?G^zpqxQs_Pp0tPRr)eIEX}LA}MB2zA#jLvh z*nSIbC~%>6=dq2PDW%n8019s>bl!~cjhkY1Vy})+oil=StrJd7r#rk}kyn)rvJ>!# z0EK1caX)q{cYrdvW-L^nWBHU+1g{rb3!}B})hk|#;xZHmSu&{S){fsKZ%(37MA$im z$A~^9L&3pOl<(fn{qeh6&Wg3QVW?R_ZBI3LTe>2pF*#ozlhsj)_j~k$hy&yBH-rd#mCY)&1r<2e6YikedkJ|lIV5_C1 zq2W$;MXbe$Et&ua_v6W8sKH#FTSI!K`bdFtv*9a|o?1oFO!+3aM@<4o{$-1bZLax_Fz+aWKh6`msSk||9F1*5v1 zJvU?-9dcpD1Oso!5RQcnp-&&litlmfK;dWk2kl8P9DZZMjZZ+gHDNIHSZqfuT`V%O z&3ECUTRu^Lh;sdAeSkN*t|;yGjSo!gmWvHz@KV`LRg5rFyc}03_{JSdy=jE|D6gi| zvM8G0UY<=PTpy+#w!0rAlQ}|@*Li$$o~6%fsiq-IpNrBR z4&XE}p2pRawqqop-?hg#{?hFPb8~knsFcPwZMW!44#RTKo#~nV^Tv!%d=+i5k)QA7 zoV{gOTuak7in|AQ3+@DWO>lxc!QE}}-~^Wd!5xCT5AN>n?(TjjdEULB_q&e#IQ(F) zHQim^RrlT9wbt~i;_TU!dz`vmYIjzh@fi{ zbwW^(g-NtzdS!dm{MLlmeai8J2_z?_4b2QQEDpB`aU|FJoehlnr99pcqK&qGxaB`_ zY*yx6We%S|Y#uDqsIVM;yEBJ-RmL1cP{IiD79T zLLREyPUUssspLAkq1KsJUqoG?dIt@PbOK4yvo~-nvZEmMuo3B15*2b0>5CkY=*VN$ z%#oD>ViF`|m}4>X<-gX8>ZMJPAeT;yB810N{AhX!t zb5(yHVISwaMp4r3J0_}k&9m`**%kYAS5=SSqPoarHhe(IW8fw=!0V3imfn-C{=MM? zaT}#-(WN%qMU-6h=A7dr2iUnc2Kmuz^(?6ju*i#8Co0=sn}dr)o4k=Ec1`C$@re+5zqlM zXs?lRKI+j}xJd^sn4&Wz@3-uhfuh&?+-(s4v0kf#-@@~2b&J4V^~fIN#Y|aRtPhy$ z9+Z#c75Rg`n*usd|-GI&G5GZ{59;LT+Az;>|fY~r4w{z9`S-d8&L`J_;!>u1s?*Qos< z{7vGq$MTdtSzX;9{M$c1ckW~-({GkBiUO27p2sSLUIyFTc9Ysq)|Xe`gzurD^z=5M zF%h(r>jIk+M@2dzn2kzEGIw3R7IxDaAt|fYqJhynbj6#x<7|pKycZQKGHOu4uoAVq|_%reJA~O6 z8(NGCB|_rFKjy;CT}Cr_5S40;i3{YS&UtBo4}esU+UH%0u)JX%!=UaArP%;DxMh z4zP+PD>cc>J!O~_m6eAS^NBg(Se2u(#)O%DcHAc>mOJ$+nD3?#Ot;i{cqtLY(TKJ_ z(K1nYyB3EX9ogr*+K_@m2QEc}>{`lxNybl*DI)P|ZR4|uI@KmSP~o(4(BMCwSu=}| zgGI|$Y|SSXYQsKT)^cSfk=5odfyo!nLm$)H*=$69j5?-F1Zu%=xE3TBT>~U1*&S9w zrrf~wILu!w?%Hyfy}jX{LmVufU|6Ehw}%A-nwB~J7(KpIAA!pLt)$x@m?W!ie@?sGmUq`rVdwC0FQV%W>mb%ymKoWEDmFQqAZgwW3_oDvea_q?~tE&dycDy z`>;JJjdeHQysI|~5Zs^7Ar?jeKQBh~GT8BQ`+_V^izW6A;g_FcM-7$nHv(|XpQf|8 z*HZHXwdX4$pDHSKB|Vc^S>Lm*9x3A)xB^6zVIb~)P7V^xierS6Iec*djC8(n?~p@6vzMjRu@#h_JB#LePN(qH7iCgrnr?zA zz4U_P39)46Z!EZK2kL%FWZCKHnMZF!0mwaHT4@|LclG+1tHfnC?|wZUbZ9z+ z3}T;T+CeJ_7!5Hu(=Q6W?Cy=yzr}b(cW@FQchoa8EQ|~22|{Yi>DO-8$ce%^ZH~;o zx_Xh@IKm^_fC2XRytmc~$xRqwYUiv4K#ZepjbSzc|k7RG{hTbs%Onj(LJp52*) znYTC8w*~Asb5a~eRdp+GcEMu2cF_kjYWwXoOmD(aRbn)2hYk0+SWT)>N&D>+S+#GP zm4=|7a88ccTo>Daov)qy0&n>}>S*AgUi)y*C!*Iqjy>1k-3b7*s5kmq@-;|6?jmkX zekUKUD>jpM!y_}wc^_Q~mZlEJm8C?%;Vc^0A)~H12)4=bx8wEa*eS5^NhFk|#&^PV zWJ$&`%hYzQ-^Rzf32}uy+-KUX*_N@;5KWddd*yL}wn(ot`^M|e041q`u$&-Ewah3` znsQ8|GlXS*rO;a2$zS&TpK8qp&@e7~>hVE^Z6qx?s=pf;pevrkcp4P%{P)89tnRk?kCL17_a%{}& zL+e2-@)SVW3HEN7Ya~hqF|XnpFt3I&6*-)#gyy+4ARDg20fwCk2Cs{-cc68Cdl|af zw&+$BLD)%yqO#O)$hJI869?lR9{QzweCnF0j@+L@r+bd70k zb>xG#-xep2%|X4*R|;pl@|D?`^`Cn`Y0W%xT}SI`3qY!{AtA-z-@hPUu)ZTI_{#ra zpy?=rR0kgxbrmPzLmcEs-Qn0r*p!H{`x$5Su{Y+2J5E~^W0cL=Y+*+Ai zJ3Zqaz^FokFtRXlg|_M85g0CF} z80@YtCfl_yK91V8J(^PSA=WS_n3_p~?uFoA*OImz>oJcySHepH?4+}K)>890W=TIt z)dHbgu~2Qutj6$BXDq??4FrI5oQaJ%Br42F`QB6|<4j{m%`qnIa^86=S`4dC7=$DN znXpkJyHVwsmgpbB`>w`I8gO0f36XBWnMcEtSL*>UWNRLM#|eejQH2jc*Vf@s-@&}= z_u$57O2V{8`%Q(Di_!Cs=hS#r3p^g5JNS@>AF0S zdAYq9sJ2bl7dzNshqgj53IJ5K}c0yv^QlH}c-Gyt2eU3+>(xe*9 zvR@T`_f^B3rZRyDYtPNU~y|dIz-&JYA8e; z-rv75y!j9u&(LMwr6@e9ka^~pPdNpp6ui|}P`V&25etX?%4G26I~SCm+2m7|%szi1 zdt#;U4THk^qEKE&K(j%*5N7IVWZ>aM#P|DhgoLbEi^JZE8a92Q!N?I)XiXFmT{M56 z68KqZ)|?L;slAZ(hV$oG;|!31PgI zDifD@-FB4Mk$|PXd{&@SE`Ag88IyY6#S=~wes{#qegyW14?(g{#60ws!zY(wu{?ss z<~$O1k{HrNNDa&JNct-y$Y6Gt4ZXX*{`a7}FgGl^Rt$lS=_by)j&F1e8lyo%9{$|t z;=epEWcKVW7)VYP2Xozq0nB&oYvFAK7rApBPHdmvYq?u*8HpJIEh`bEBZ=~ouuTnkmoJOIN0(nekS7?hYy&9 zNAB`3#I4bWnbs04WcUx_$Secz4pT)RP%syB)2xs>bfFh9c$Hb3} z1V=|jkM5KcX`V0B0Hz|hFlfJ03dVk?L@hk-Xq`P$4}OLf%MOlSP67W!42YbqeW&iQ z8p~jTtH6Q+cU_FEqJ|xc5hS8vrx%a5S?V^}gMyh1v!$XRP|+0+P;rff6S0n&WJUiJ ziBYa=Xb~~t{UxmUIT#65ZO(*CWWFncj&ie4w+5ML(!AOX?zpQKKAO&ah(PYAP+m~* z*Deo^q^=z7Uc`LY4h>f;8Kp@)hkJg0(`O@zv9h*e60^9Dacz$j9NmSl^Y zm*F9)-Om)}7+hpLr~OcRUZl14c*uhD*JdXp-$C3`6#;rG@o#dU-HGsOwK6a>(}!#N zD~7*?7Kb@z+a2M0AF|Lz^zib~qOw@W`>BIB4mE#;4r-m-E1K53$B>w$Q!cu&AlE-& zg_;JX7cz#6tyl7{^wkrfg#AMHoAT zNZj)v)L%P0TP30Rj<2;_5HLNReR%kTu%y1 zFOta<4BdczT`=k};Syc9gp_(!#Y*KEiPr z0XYs0wc^YVjnZThVoASwq>EWX6ThcrL!btnY9HEHa-EF?7h}*P<7Pw!v|$FCZkBk_ zuC_MFpJ>tsb+pY@V*cNMlgW&YqbkOJyQ3TB6%JOeW?=VcLcNf^Ayv#~!M>pT8Ex;G z8$$IZu6im$p))Cm2DX3^;9OOke7G2lg3FWbNy}hr>1S_)OqQZXa$suBAkNUYx-j@r zMn9O+dR%FBVSxamqQ?9+ArtRi`_EGJF4mB-w)d+woyOXlbhy59-ToXb=Qo6rtV*}k zp+68<1|D_Akz8pP3)V^cB1j<+tJ--U17GPKDzc$EcdQe=CCtjH=;(|dkJ?*Ej~uq; z0AE<0zxNt29_Ot_f~lb#jw<~<_*+4(k>6N;v7}830tHLeeys)S0+ygJ(Rn>JN1Wg& z+b7jA@A!(5(awqyP}tF5(47VDLEd`CwuK+%$6`d4ALW85Eix9@8OkZ2gxF*ESRKB2 z*@ecj-0TALng|t6UlT+q@H(Mj7j0R9L$n0KyVI4{Equ&#+dX{OmJgFVsN4Iz zS@->3?6^a={Uk?gDZ8!vg>3jzNk8#ouNB}E6NomSXh_1;%Y;5^rLcvCxfUarL+5PN z`OVXRB6gSQC^_ae;{NOo#|*O=$ox$T3P|;nkyUo8%RI@^H09Hh51Xa3ye1BmF%RRM znP@;?!`($@{jN~sYO;3fK2Q)8wiOJ`U$vRRT zP4tCD=3Z#jO$nmQH+8Wn<3vH0);vV1Xx%O~9BG2z^+%-PzD`1V0he#z7G4BSAkIsY zD&L>|A`;w9_j$<>{iBRc#nf_huq`|(6-(lo)v?;9wrMhFq5I^aL|E=9xkbWzndGJX zwvYBtShW^f=U>ws{GF$6vrxiW5_b+Hcn|D`1JZ)O1uV29}47$EWI~&v6Z8 z{s z)QTJZyp3W*fXlM+*ykerT&u%M*M3}Yqi&ykG?N3?`TM1h>M9R`_ng~2Y-Z$1Pu};R z_>5_{dGL-!>if@SB4TY0h_Kt`jLoK-HYY+S>El)eqj>%3CaJ&s1@g{|@|dw~XlEbl zP~`yb%+*F3hinJmVr8^7^z}$wHLINw3Gi%aqQuL-3kQA?rMIV9rUd4pZBa1^{`~gR z7I?q%0xxiKnP1D}lCcQ-n?=?3_{it#N?2)V>Lz);&A#rwmz?}L7wS&vodfS6S*=7O zV>Mq}>RQqV;Udfd2YjuO;4K<6YjG;>6DACeydIk;6ATmb<_+)K>XLrTSL4#azKwjV z`T95kh`{&`m*u#oK-Cth3sL;amefYOo=6n;)3fh6Sndd(pjaao&2x-WBcv=K5oz_F9oNq z>i1DmQL-m1#gvvzzr(F&2=bee%Qhdzj>hefQ%$`>5^}Vz!GJ+->KP;ziK7I-M!+F2 zU2V{;TgkevzOF|Fv1_Gnxt+T2ElS^~5tw>{T20ccxl{SkqW4P!AN|wkVv*`f^@UtW z`aEW8{N!41=L2B-700z0D3~I`C=RT@koKr;y;iC?n{y<&?iT6JXj0uS>SJjz`t#9g z*);u{neV$Zo43!4;Z4oG^u1mJRX_tb+3Mv6w0ekHLzKijMBlP7znP?_B$e0ZzQR%R z2-SDDhM%l#H8gq{K0E?|Lg(&xKN$L_B^I|%B|Jp&9@byU{u1PIX?f~!8+Ca1vR*Z* za{lU5v}s)%7AvO1`@@7l@LS77axFkU+N-D?*BfEgOrJYykfqxo%HcrL86lSJ0)sO{ zk3%`l7lcj%!zGT!$rc*a4GIx4&6`JGfZfQ)}}oYDn}l~qvq4Zj&qDA zXD5!daVw(MrBd)oX3b@V7$htd8MH#mwDpOEHoEgQoLFRVClasUTFz%$Lo$rFt5wRF z-g~j}jV>I&_-db#5F7Bd`#zUfq3VYjCyw!b8%X@Hl2D)NY8lcXw+DCydSo_yni?y{ zY*{=xO_G3F+X5x$I@G7U=yF$hxCy&o#9@aQUT}WdnH(!w%t*&y(1hs<>*cYu{c-zzv9>*BKO^7FJ7ksZhlXf`jr7Yb3oF^GT74;kT zB~Ai)`4*bM(Pn}S0prqkj>B-pWG4R1urrrDZY6fa5g8m)m zjdlA@t7mfOIoQ@7wgq3e+dnHZjUu$N>awd-yCUgyp#c#_WJg%Se6m2eLRD?mTtMkJ z4_g42xfFvCO|UEGa)h)7s-?UVG8?|_(Pl$UK7T&ya~R zlVoB8*JUo{&x6l78zUZ?Mq3IsEe4?$7LKQJRR%N@94pthZSYZt)vZ3kW2AFUe z(|*)91H*`OhLynQBsP96M|WK>_~>+oK=ezSDzpQ=6gF-zA^(@0=!uOp27ccedukaN zYtP~ace%M2Uf^)_-as~;NA>i3S)Khw+@cphf#ke>3vcr7y%czsJS@sg<*6T1i)cr4 zs^USEr6RJ-5f}=8F?4u|Gv*W~CtUGPWYk%sygD*Jr@8Jg$5fTzKx@n=W!S-zU~mFD z9U(RB0DM}lyan!T11amzs4wS0(pQlUwOnK;^`mB6?#Dwwdcm#;g?1N}+QR|@bD-F8 zbNN~DaN2Fi6c`!Hmdqy)m2aJHPA>hV7-9wa(8mQE!q+v3P-{B&I1gSw_XEwe6^{6f z((w0U&eCz5@EJ9_FoCeJlk3Z;2}NuIb&+l!TrVlcR=KngX`6lrO7L1XY-|Z>#m7*u z{Q4Yoh zNHh{nEK{U>ET}|?AJa;WGcnm}h=j{#;k*MPjM&q@l0vX1wS83zLLWfUlaJ%#h%jRQ zgoO2RxQl`@q^I`>v<{>rfh7EtS+sCp2ojGjak7f@2PG~8oJO0gMkYByKm)o}ANCJ9 z$4W~49x1-eeg#OX$XZ3# z^^s$pBiTNfi-tC82fWiwti(HPd{ZNr?S61Y!?Iv8G5(6w-DpvX=IL3}Ex6=*vriC= zt8U_}I)Lc?WYk~1!CTp1E0c>J(bWzf>U5O4VfAAK-`+Wy09e!Ajw3401J9#4S-R57f(Ua?bLFIpAb~$3Md>-HW_>u*SuY_NNf`76Gl+*T+LtxX6d7(5-()1y2o$c9MDN2PfGJS#l#M4K8S&pNpS`MkI?UPNr(E{8aGdHD|`Z_TW$2R0S z^9kN&duy#Ue+(AzIO~gxCyM@L=B=}>nG9L;9)|-eA*{*3uj$AaP?PNUEiyZp_^`iG zo0%~F3Xxq8qNuB}dKv%bVa|p98&K%h-LAN*o+w|E%q)2?*O}_?HpEHFQcsS17j#sPwENh()CJHqU$;)&|*|qr@Q5szP zT(BW$byn?v&xKY0E7%hP(7%CoPnDMGl#Im;h{l4tc*9xoP|(qp!TQ_1(nS=KP;cig z`HU|Y(l*LYne`3bAEB7GlnzC1$p^cYXchkznuMSWjGBkOh?=aUZ}R{7T#0FCdn}6~ z_-(_+xTlVjo7yqf2WaufUUMrZb(b)|M-4807BfO?4m6zcaE21PLh=Cg1Qe?bcUUHK zfn4*FACW$DV3IG3(y}}%O^aE4RQ=Q1iV6B$c4M@U=`JcAF}XzC$||V3@~qy`C#<0r zF=^#UK6*W|ihe=c?kLK~DkZQzQjinldGg9%F3C>UC=r%LfbgVVA>q&qVeJnZ`5VaH z?aM)%r2cM@`%s_P*|^?K>8Z!AdVc`!oHtgxa&hh&0V`YwD(!Mz$oun>jjcSOCzGzX z&h0dZkFi5e-YNwxwp{A=OvwM71>k*=TqTNS5h%`988|Z)2bUH0n)p>2DH>UM+)N8l zz9`^G^5;VGwTS>bXTxa<4)9!YYlvg~DMq!7)#TVk#(G-EAVk#~Lf`sg%njWaaZ5~W zxa|`w=GlIHw9eMM_^LcjTOHKV2fnU$clf@@=eyPy%N~)5L+VPcy_2&8wU5e_YV3~U zYA~g#54Mb>BVskrqHEmI6-ZzMR;<+72?nJy01ew1%raY)O!kRk(b@{@1#0;r^@1JB z-Rz6>Qk~PjAwf4`2a5#qVA8d}kf0as)uP%PC|E+$mG~Qx2rLA%l#wBiFH`v(2DTyV z9M?4AI?0?_kf9#^S`9c5rFT)HTk%sMG06WX`^K8?{+Jy zmjoWC6?^zc`r|21Lp4<%D8eIn)_G1XZo#CUKj&# zd%5gM@Yc1xs^s7}rr*$ZTbxj7~dpQZ5~8 zSUU^^3XZBhiVARm`we2$`MYZ~H|rt4L8II_Wt;bN zo7F?Xv=}z7gx8xsNs|=f^mTS~+b|3oIA*;N%B3E)dMGNbEi} zU_`CQya;*U4aL!q^7-)Lwam2%)z5MtA_ubNrCyVQ1AD_KA5 z0OKhC$sq;X!+GK_aX=W515^tHZF_P2=D9AapptNvV2v=enY>eBwc ztWu9{9hVK#yPg4;@ppddI=m6jBE6${%oirZ9;&EA7*i5kQWYx#rx%>(2a{C;-bA%kPRu8yMRt1sMr_ip$LG)#2>{bMF zIH-6Th%6K#Y(hK4+xl$6T&S)!g%21(p0gI1;9~}uWq>u>|53Xf->7ArHvfdTTthL5 zD6X1`9MhP!2kfJlWz(l$@&GSyKQ@vMW10}Ltti$$AITZVup&eE(h&$BL!_QliPXp{#k#cTcZC~AJVk8F`wk>W5G%MTI$0jljc&{;tU8a) zI9BUfGOVz=XzNIHf%Nk%+??rv3P1h@i?A07og0k`Z{k2(M1Y+^U4%(&UBhX%D}nxD zr@tsO+ud>t9wpfTmBQ;t(i+}BslQPfNCapZ5pcbD+n)D*D`$;kgOJYuSs&}94i(lC zM^!)G~qTIMF*7IXcnrR@6VZ|6qkuOyzSYJ1>KiRFCZ{NvwdmYs*{w%__c{rt=( z44*m5w(DX;|EB)kyF`6unBrwE|@!}9BRydGvS z_ZN%_N59O%T~ai#1l$7$LW`ZlRtR9--UyFVI**RZavzpU8du9JZDrpWM>pl_n$5h- z#EPk(Ffh>c2@jFU6hZ1j-Ci+Vd7~K}CxeM7lvGY8@HY~~5S5f=VjkNGAuj=4SPTIt zmngVW4ToX^CRs1fE?=sN69&D3_ObJD3XOinG{sR&-*9w*Wssywp<%sDLFLxUfalp7 zrgPE!Q!ZBvjXyR}c6^g0A(A^|%O161!{)>elIn{uER0=70h|S_4Tme!NqWPD=su#q zTe_gh=gW%r*9FiUqfns9PRs>R@VP%(T=(^*Kjha(vt^&C`^rf-9$Mmcmf)eX#hP;1 ziV&!S$0XDWVN>jNZnH&L868|qi0e?QVWb;dXGIGxg5Xt(mq;79+l*8a13N7c})e21b$U*(J-a&X=M=Vk-gmCb!(6(q&JgN_(;F#@q|sp^bZo+ui*H8P7TlD*42ca+>&S#1HC z#O#5L*iEkR1PmZ7KHk(?Y&^AGz%n0=*SuC~TiQ)*!ILz`Wn%d=frvUqK=%*1-enqJ_N3M}&SEcLHpIG8J$KcKigyd8xIxrCfU z{vlyM@>;v-Tf6sFNJ|{CxuZk`3-;Vq^nNb`(&!=4wgI~uMK#W+I)qo|Ot~&?eu#*n zEK9~7_o~qFdS7etuegg=58>EnEu+S&JK;GKY2_d7aBVG>iwZv)MY5=>KNfR9EWY*J z5sWbgmJ2amc}REx%qHSsQb};oKJyU;8DOr~!Id;2F7HA^8J0Y|{55Tn^k)2d+ZoC_ zEW{d*HdXZBpa&o5iG@1H7qx%WO-Ps;i7A2Df=ByNE))98FoBAMe@vlFzT zKK7+vU$J!?ZLw>JAGMRW^>)9Kp?@Lq+^NU~C>mQtbU z<~tW5?!!~YV?_eY)~lwK$-w#U{WMyy*S3V6w+areaVSyZL3SwKnCS!^pgM;}MS|9- z_s%mlF>I!z_Gt8Kt7?-eOnoK#Lc5&P@-zu>)CT_4arFd)DY5B!{cc3i^T%5f=zNV> zg{3{{5nJkUyETP{&uz18zAvmh71|ZpxVI_Ez@aqL+A+WmcnmQ3vAi~ax%N;2Q>IS8 z5G0ig$zwyUtJJO&a7Ybg(G9|Z*$ff^7@+CFF$dywAqHG@kpfxZn31{=H-j!j{}kW` z{;6|es4fhMPFcV8u9ACkp`=c9Xh5nx*?h5d*>AERBk_ViG|>)gvpa!J+0&B>53*z5 zg!F84JXK!j4pdLiS&p zeU$*-&n}@yaI@fa(|k}wf9$o|ML)EdJT5=%&8VU22)e5@$DMQUZm`(J_58TrX0x!} z8i$Q|#E{+vd*@}+z29~TUxELBmvLM{A>|R?ADMVD_F6g%cMROrZXu0mjXQsCbh?~a zq_(gl`y&C{@ziPkAy7T?zn1a;W0}HkK0Uq9SCdyL)auW?@k7J>rA`y~O~x4KS)O%v zI-=OE-f?%>Q?yy7J|XTx8Ka(G2uz7O4?h`>5F$H_EYJRN;elm6f{f$ZHp zbL=4}u$ZCm5hx|-8Y&Gs0`&rEFt`n+Pb?WI@ufUqmQ;q~y^M4`Y^g1KR zyeM|~7b3C$K*R{lNn6#-b~+<`E-;{%fk_|i?K%*Oiy0$m^KXr_tFZoQJD?|Z4egXD z|A#Wwn^cF#0MyOjC|`-Pd4)|pLb4!vbO$$+tO~6jc2n*Sgyol|U^jbl!Fd0&^en&2GKqMTQC`f&(+FBbP9KuqN{ET4PB7EPXz-1x z?5U&40#0{dK!e(ry)frMi($pJ!U~@aXVH3e#l@G|wV{@Z3@DsL12V1alm#WQds7l} zRm#*Lt|$_&sMUC3-KZh`d5mtira#p)Zn4fJENJ=6MNVvwJT*O;PwX4(sF$@|%>{(+ zr@z`KeZQ!;&dqc>s?Cgj5u4>)ut^wjD$*V;l{PhV801aYMy=s(0lmJuOxgemJ2!Oh zYl{T~ePuq8`%A8P(K_~3;1=Ej=f}0i&A>eD>Q-HZKx0h!OM~X>8FX_2sS`D*Pld8B znNHt$>N)&S%qmd7%^)c2uAKbw4_?44g0Jf1mt zGeDj`_w7W}lTIX^oON#o%rZeQ`9|p4 z4M+$+&*4Qt=uXG*cs9~IH6OwdLCP7;Fy5}r3Fnyy;T$M|R*l+p=dTFo?Y<8u`is0x zxzA;<;`(Wt<9z2Qiy6jlx$U%Z`x2czD>_qRif!_a>t9^dJ_Z$BoBFOa0S@4N=Q4R3 zY8FEZTBye(9E>RYz8`e*x>U;%Kl^MjX*|2LPR!Q4zwOt&Z;hl0tR(PQonw7reokzv zTLq242%dSu!tb9EkbuXR;i%rfD-Ey4?!Aqz#_!Zs;w})D9&Cy~xSm>XSjL*QjrrF#Nc)v%yfS}tFdb8KGZ|Yt z#MNLvApJzVi|9Z>qzv$rM|37FJk1N&2QVKZaycc9ky)Rf4U&v~hGDBGPP@N8H)*5R zx1^ZzO|GK4{&6mK_WriIsGz*W9DmyA8MkB;8Gt4562jto6OZ_gi>BL-59wh1rza+q zHo5JvD8IC453g8qY`rWQyuZZk^)1f+nrRw*Eo-2Jx8ybM+sPZ8b5s!2E=3RpVV_vyQzV^uW(*pq)j$S^2w@f6~nb?o4W?-89Oe&63^KyW4B2H znRBe3>9IACR(3W76yX{jyIvoqYxsD6`#>S#Sq%OUw(vT$EKGRURGK)E=Q3^7)T`RA zeSI`{w!=NO`j7KJgYdoG^almw*aN8N=?U@)=HJtN7rCn<9LJaA$NPwmw@R;x-Akz2 z3kaEI|8(kTL_4s8htk59sdYviHbJg-+Gq|~F%0rn4>%i48P_t*mHCMR=7f$H2# z1!Ldk-ToR}rsyJty@YT4kQ<78jQ_O@(YYCcc>uJMOcGdfm`DF*0-9a~c-H^hW(mz3 z6L4XOB>ca2PtdN~!mwueka0d2NtOOIXZc_$Vu%JZJtonB1>d3kH45e$?nC8dp7OdT zvhO?TA-Y~xILv>_&QUPsC7R$@+mWrdY=4Hxh#c`1Z}LU8_GVeFk3?Qk3~B>^wpR=y zV`Tq3RnI8Tg&izZub^v$oVn<_^2u(?W-pqIq6N$G%0>=)8F$aE;zY{=JhW@^-w}5^;fVLl`-ZaEt z^|o-89f|Kd-w`x20Ll`M~h9y|@&+I?`&FbN*-&ThAm*lFB?zWb%=uFT>=f8u; z3EOf1i2N@JK+*lVJ-Bs`9x_4csQ<35A$*F2d}*96FXR8PL98q|o@2&xg81)fNrAYK z!m$72GJ!m!zi!gME|c@${pI_Ae5i8;%RLOx@JS0F^Z2s)6i?t5M~ahr6mqcNrsQKm zQ04sX(aq2;Yk?I;MP{q82-_#+&vNHh489YW?o90ri=e*=z*d@zH!~tNCVK3#+*Ei( z9VL1Tyk1Jv$(IvG{PL~gs|rYUEznjB@-|<( zQZ-m#*2Y*bvZG$^SYvb;y?kPJ->i{BNhe#kp?Mkqv%S12BmWswG&ug0@5O2wi~_Kh}B2%_4jK*ED4wb)+x7IHmGvlf=ua$ihiXf2VUd z5lxg0x(Soe>aQ{h(l5;No6yb9e`!K=ChTAwPUkfEG}s6SC6x}s#OpsS&_brR`aPQ^ z@YlK`09KgqDF5}1|AYEp&jQ4N17Vb|a8|Itln~0iVDghw--PA`Io3NqhMUOhi;a)= zSVIBx>%Xe#@E7YeD)Fy5s_2e)owj@TJr@%-yqR4eKYSQ&)GprhVEcEexnHl)j|MlL zPo%}k>EqWO9rSoydHAqv8(z`IT(AWja=R~Eh6>Un9$PQw`A497RUW?)J;DMXaTMfr zlIrPlB5TD%f5(O>6Cl#vOm%K}-{OK=ZPqaSp0+ON{2_8ykX#RjpM&~Jx4Fd!Jww)O7)-QUUG^vN%1+jRT$ z&+2(;*ABM)1hchS*RUFO_SxGox_a2o@?=I|TZAXd@T7w{I=#5()Sl;aA=bCZL?35q z_jc644-2Ur{#Yme_M4!nt@>BRs5kf(s3Ihl3b~s50jn4KEU*ies46C#wK?yKwY+%6 z3&c<@*tSg`8(SZn^TLvL(9VUd#ASqd^S#(lAYIjXY9uQ~XJAjdr1dBt&eLAt4~{?Z zeKvpCxcA$z;6C=MB)AK*pdz^SEBtYo>~T;bH1e!2JPDF%+VIjudk{~imm^aQkV3g^ zTZI(_33YEpg`)3y>Tp&pQ*W+-)%SGP6?pI_)xj9yB{>Q9&OTmuw}Dm{aG8dE!3%Xv z)^0zwMD^EwmKg*5IIHZDaYW+qa+ZDskg!<&72_^=TN!cd7hkdvunybxv9t8L(^mW) z{0rbhHT`RO!e#Vg`URDBE$n9bBBQS*$ZV(_Xu3)v_+O$@tw_?91lM3s@ZS)s1Y>Lf z$-ym0kgrmlci*m&GbOKgVOy#uVT0#0j-%bupFZ!j%nQJ|joLmcD^E~A?%_{_Qzk~pNUNnR^j1{KP9MR^;csNrg zE#y42T^0;$3eH2tG8X<|I-HEvF$_N&?n#v?B$Wa^qD#6t_`*~rac{B(4ffs59{>)9 z#ta4qk^}}8iUS6A2?4r*1``Hdg1Y$sEJG0ka-a`#rR-@^>HE|KY3e1ylL&y3t}%bG zYiRuWoa%BpW^xC6*{2Qqsb|gYN5c_!w9>H6G#yBM&vWmVOQPfcO89mjLjT&;%B6Uo zsdH-bak8#$&vFJ}HJklYIMHWM1H?k5=|@*4OL)*|+_3GmCEEbH7PT@@7L&1Exsyd- z1VNz$!Z~PxVO-{u*Er+3i6AZRZ7%D91pQ5e4Tf9kct!Y~1w9<&tIOX=vl*K0^sal4 z^V4p`Q|K?B7^j+zvG;drtp7+~$3AD-UR?nsZ@%|>a>hOe5uGCU9!HmS{KNky!^rZkW3F$!54R%$dvp% zc*|wC7pG$T6Anl2%<34R;)Q*!i2-DBkVV#XQl(Bu5bi9e>em?wG?UB2=Vf?ye|#d+ z<#i(N!8z~3J9^GmzUv184ywM|s}1-5y$g<0U?NgaZY(`$X3uIX!Ha@Iw;wNDn@|I! z&XN*)I04FE^TrC{)r%p2HX7%1=cH~i@~);@8w2LGi1l0OdG@#dz^S*_dc5!ikqU%x z{0;~pJut8y#D6J3st3CG5B~o{hCkf+OBCq875|^gI{d=8lH^6=zU+toFWNDgVNr%y z^T;_%MMv#mXgljut*NAsb9|jq{+Eg_Tf53~xc?GZ40r>cBla)DLvcVv|1%Gg4!)pV zPQm_n8vJKEfR=zMSQM7#p)D?E{x8dd#)#v5tqRXLTdz$WQF-@;x2|xG>uln{WgeH? zykBb4NCBclKdrl6(VE17>%m`o1^Iu-uGg*QIM?a|lOFF#*7LS$Ic5t(@B1N^MSy%z zO?G(XYi0a01sqqFNz#@zi(mGMdY(VHq*b9ty3IK(r52rTtwPi5%@T7z6X_m(hy2q@ zxBf&uIMj_kelTB&y-9V7Rj6(U`tnVfXkA9N$m4Kr#-aQG89%9*_Bv`zgl5mYz!swb8WB{gT!YkDa>~iyeloxyRP6++(H= z#hM*FLl~LmHcs~0BYcpZ%btmzBpZ84YC*LZmK~ZgApOQaKl;Y3mdKv{-I z6e#qyAC$xje;%97yE-={D2}!{wuo~4YqaB916kefZ`uO;kOHVxKiv}B3dK}58L1-O z`O`Wzs@}nGxal;syTm1JHn#G0#e1ytN1q80g7H-*K|o_@V2aK3;Z(?(XXP{u>E@}- zl^(U5h!N|J171lfE^T3&%s?;`^;%70*_OYG6GazZDJ4qF6tD}y4sx85o?b0vsOd89 zbWyn+Gb;~wCX>WA)z(r3$8Q<3IojaH&iNi(Z0A zf9do2+gGHo1o>+4W#mm79^`j{O*YH=ziu;k>$Z%Y`4gTsqUAmpDvtth`)DuFiv5b6mT)PHnGw z_lw)y(JfVTUpngPB*#*We%D?Qh8XgHY)wVAc2JhFE3NyqwTf#Am-4u-q3L1CJ|HlR zc4@n-wlXwO!b5*q+!Q`=|LdQ#0GQawO@ev)Y~WjR;VX;0YD9Pf&GQCC>(4Hwyv?&y z!{3sXZ0$FTRSHT<4PE42PU$bz>baNM!skm`OV}~^`uGGnm?a3<`WM0;HFRvty_LTi zAbm~!1;}kE4)a__e@?u6(>~eLnke<**TC$Jx-5tNi~1>l=7E&MZ@pe^yIE(S9m1*e zUtpKTRXp_7E;^h^(etPVL`nX<@@@hZ_Smxyz3mU5YR^x9sQ6egYmT^B0TZz7TK71% zx9Zl7niJVwk|saY(5%E1&jH(bk)+la$z2v-1Ly1J zX$eHmG=oENP>vOX_w(&(m`?@T%vx*1`mo*^$~)?NE9IT;+x-{2kdvr4?$q%377FZ_#yb zL%aP<+v@#+66}YCL|nm-Yu+FjAf`pB1bO3RtS8Czp1?r={&*MQm*jdq;eWjg=pGqo z$`HUI%3c#^rs1v*C zaY}3Y$4{@hdA>2oZoX)5q)pP+9-eR8RC=VdDyf9Op1XJIsm_wioUQ6pJSxyV1IGMb z$Rf#U<4asXZcZ=Qp9e=(zj_h2(ZOi`n*Xx?V>TD?d2o67gX1#4b`w{hwF zlad2_vlLhkz`F!qW$xo89`8Yf zb~KgL6)!3xO~qA)O_e{_m#?wrz*-K=xb`!d$0eTxuW3h}7SBZu>#Gb+dov0wm!Fmc z@B(2Ewrt0k)eotS(+kZ9mlB02sVu}i zZ!YH840vzll*kw4pePiR9gE9LX7kNnzbl6<0r`KCVxFwJT_z%K`6q+!gKJ?3kY1 zI+s(^=?r*VMssq0`V|E)j}+-~@H*^SoxF8V(}tF((@wH3mW(AI%dwlRLhhx&zyRU{ z*~5$q0A2tufEU2K0>O5~6Y}26KuN(?uZJ9PU5NKBm=~fV!D8HuWSl9J&~#YLWszck z-jJ?@9uSU+XoPb_qq^fPBx%l&_BQTDNs2vNS58gGo%%n7Y|s4boke#;yEt+(@Om8> zFE+`{A-~s`z+uf7&WcbNTgX{vjLq$-m{{y=4n#$}i@Wg@@Y0#O#~{B3UcEOiD}Wck z3*ZItE-zxDEkxY5nHl}+9jEMGLMevpXyg5b=Gi1pw)qHnrHt<=>aMRH=W-Uy&lr-I z0RBO6o<;^-!Qho-1ldUqRv|)jMy!(*yk;gv@yW6%_87vBU;jw+Si5_)$F5l|I{JG! zax&mOeo-`OP0GvyyAbdMWGS%--WGj~6QkrT^A^i2a&m;64y50RKw`emZ?CWCf&@{{S zJG_BecRZ3x`FNCe7fRSwL8xZJy6c-zbk}$B3pr7G#*k=0bZCUcc4fsL9GOoFT4cZ# z5ok^*CJ@f1-Lommc-Gcvp-ypHufcizv{s|jIiZ7BM_kYF=j!YD?J1EuxJGqg;aavf z5b#JeLgL|3%!OK7kjH_dOy?~^;9bsIt?=X|3XPEP0#2zVODLUNS$$0Br$`U6^vhxW zk#0kJjKn%TJm}?BcDsZdSJ)}Fq$EbiPLZsL3&0EDefi+c*)mbNc{Aq+-_&IJ9Q?G* z<#X_}bJnmayt=0F_i5_ogZGKeF0CT=a|DIAEG-o(Qx{b5O1#(MjyLpkeO}MGbXtL?{1(r*}njb1lx`QiYtZEE&FUROx@xb&ngRfs41a!qd|z6r_GQW(2FT zg$XODhy6(RYriBx6$StJ&>bydKGdh3ZHBpH9^%Ch3fI16uc~dP#K?IXzKB4m0l>RT z@GkC<*hC+?a&QG(CYn|uv!)l7*)=ct+Donuyh|I&HWX`5$63KPrQxIa+fc9#q5oKJ zsZQja%_>fd>J_^?J=cG6&clzTds9hqiub8B#Ij7m8&>ph*QA6pLGMD7MKt8qkgVNc z>k_R`d>kEKPX)VwFyA*PFe=no^GjopPKn9ibIQcm^scpV!)=Sd?+;s+54C)t6{(Fxh?>OM;{B?-}-ge)~37}f?79GP#NMd{vS z+~J?FT>*rSiK!DkHnmNBM6|J0YHtJt;05rm3cOi6B$D;I?PYJ72;hB%F<$+VtBpmf z(_6iwZAzKMkF%P zZ0_J^mI#)@?Prn}a$Cb8_UauP>?Pn$sRWKYdu>NaRAcOn`+|5u^$MK5&XXjF@xHTN zyRG53>|yF$y0{};0{L0?^Hfx%vzU-^YaPqC1w@PdM_Zrj`dTcV9QWvd?455+6KNjD z)g|3$&E}4E_wIJj$m;2DanF6B#?5KgIcj`}xwDaBo7@AKlncJ`=0y`Mbabs?`a-Q4 z2y}^4W9FKG6ZsPaLnD;RG%YYwTMRG2(1kz~Lx70~y=3aq_`=+bo_lz=n{$)hlNWt8 zli#nIbY|Mm^L>85=gGIJs24Y9_@q9{=oo+T5Cm?c;?M^lxmF&4^7{`?*WwE3Hj;8` z1I6FdZ$nk>)ybp8__*V2pO>I4cO_8i1iA^K0gD#g3uPu`8MT1Ti;y*(18)wzKe)#G z(jgI{tsnh*ZQ#eSOw57zrw4ET&ixw-3t!Ksw8z(KAM5`by`P?5$n+tGT-F{Aj6Rs; zJcRi?@HFaa&$`Xwj;ScOgi}^&s^}ZyRpaL*Dr2;! z9arU=qcB-^#J!-h%v@7hQR&Pg)t6~%I?g4WqB4OHc-ZGPZ>xa+m`u(gq~Y2NA`DC{ zCU6|OV7Crl%WlOP(ZPGZLaZ*P;jOC-qUtCwAP!&S>lCOd(!nc9Rols&$!h78z(yO* z!W?*W;QgWC{njB7p}mE#1bz(5#2k2kdhnucn>HQT`g%5{vU%A4_r5WdmmVq2P>5#Q zv~Z_e2XB^?^iof!xTV>;aM-;%>8H6`YpSv6F=67W)lE4NW0kD&VkNTzNUBKj{JhR5 zob6B?h!n)*@-^zxIG_YBNSE%S8HBkz6H^f{&Es*U)10!N_j4=BQcYIlz{(2?VRS}h ziE_#O5WU4R4RxBXbQu!y*Bdp5tk=_Fka&xYu?<=D?_O^6zgX5#Wfz~%|BnZHoI@xI z^iX0zQ+1|}%N23-gT>ZUpgeBU0-Z|CGdTgi8<%4 zb>X@8EqJ#c*tTKsXXrI-N=>GY%2qxyHg@}TdSoHfKL?CUGq0Y_L_D*$3q5@1DF-cy zuvxm>`35> zbh?)i6BeSryFo7_a#`w>CWpHGoG?~P# z7B-nY5hkHoOs4a;h@Z9hnoKdNj$5iBnSk9n|m$yN5MvR znAGJrx;_{%jN8nkE6cO-J)U4P(RV;0-vu z((#0}$n6!PGwCJm37q1oQ)lvZ@K!qcIURdgDoz#$tHuSamZql(Jk!BzZVisF0GCx7 zwYYT*XS2$EO+M!aNVE={E%SsxVRAW)+M%7r%a&x$+t1aD^Ds~?Fam52z=Qn6typ1N0b0Uds;8H? zGb`MRqb*3770kF|S8Cv3qYmD93IdH)rV&f%6iZ0w%<`L3yvIJ!|F9pe>Cm7LkA6oY z2j2Au-j@!E$Mo}`{bo(z`TQkknYjMJdkh`^cwfQxov&e2T2_WEFhsT8>u-8oY92{; zj}gq8!*>-20}S^0s*+Fray*J>{VTKLoE*RhZLG=5pZ)L zSwg%i%*E`^h{&XHt<&iYc6$Y`wzPEym~o7!%)Y8)^N_&KE=|_KJIgs&^^-cF{Ytgj z(nx5wQW-I$aaaNzl){KGQGp$jtO(CdVsPI_F8{m-s5mNM8yL2AM4yw1HdZv)S1P@bK(;LD&rg1q?XzE%i;0bWj5ywuY&rezR@DjkpCu`PMP*!?`sdHqmB zomg~xu)St8ANvRP3gU3L{jXMmvlkCL0W6rInh%RLWYEL#m&@Tg!$thD%Q5i^&1EIE z2OJUTU6w-Ub?}xiERVb)@cwJaUDKiYWaqm(_x(pA2j2BqYIxz0Xjmrh`y&6}ffo~& zoMqy=2e0ww_J8p1dprKOO={sqZylb^*h`WO8^`T|PKtOh3S1kNDI|=<;hNan-BrZR)t>yVLb_<2 z6^e_~(0E-C&YOL(I|>OdmehIMhi7qdM$@bUd&3sUn57^v#6|U*cg;f7WfLVcg2pEa zuv;D?d@m|M-2h_!+b%+&8JXCIM%(B#Lgz%ki#N8a#aL*j;@yqEU@@l#B1h~*!fkBe zZ}3T+D>@Nio)M=AtWC&w(9rgUW zPagnP^WFXc#wPIFvl}Iz`ic0?>{h|s?)tjxJ3F74(7f+HgJ0eCbfXFHv-ytqTdgL% z-y*!NRhfLEKO62i|KAUJg*^k_>YzGJ*2iBWHX5Bte-on|+Jc3yP@HH7Zoua59gxpWq?XobM&Tu2;1h#kGu!$eC%x(jbeH0wy% zCPNa`U!c^Eh;YJP8u*U4!`P%hdU2!V2MfU$v)8sX@$PwQLgVqgvHPjU|7u#Xb;mv{ z7u|%n3GY9xd&rRkG$?nBq5gMf*EmHdZWtU-+Pdk&n;u-$NAMY1b$(WJcPvpS^Pphw zEiO?P-aweesp_b9J_N0R>gmD&2e|4u_)t>MVZ+h579H+kw2Byazjqn5X~SNGnJYx9 z8n)s+QXo)Ga6a!fB6S1U$qgOWd8pl;T~qP03?#O34H_@Y$W7p@+E9B0=*Auw-hLwV z?fDQ!8V2=xJS||FU|sfj7=?5wfZMwxgimpLyvwEE6be1X{pA=+Fqy3!TR_8eL@_x>!68 z8mc{?g`5<1G(FY@kEok#^}!nW4X2K+B+L1wI^xDdFoVrigV~42mZ>^yaGmrI6DG|f zTlT)D6IzXO%It+rcnKHYD8R}IDAv|yP5-0xw6J7$@jg0!*Af@1IrF`ZSLf%VVsIS4SE!yMqW)66tDHi-o@K=k7qmEu^hCH@ zX!#)lxl*Ii`G#5X*<6gD2O1G;Q^xv1uttB&r1UDK3j>^Jp=rpLjH0QCizvRbcVG}^0YklHN5-0N45yw7k+&3N1MNyKAzBce)`s~w_e@# zxY2~S32zhLEr<6JLIF!;hhuTm3`01$39l)29IjOeW)wA&ZG`45$+XlDUdPv6sO0c8O%C;EJCvX?n|E7{X+=3L$Z9nWPUOuD3Ej zfv|#Vecl#~Ba%63dDqCH0ZM`&yYS8=C~vQAkm8C0sMnXLjf@MgRj%``c_2{krtwUI zfPMTto$H8#aMJS%oH8l%c}^C?Eyf%F^nKxgmAL}XNphZhN4ktsT8TPDP% z5$&NJV7c3ps_Lf|2r95-3QB@CTzE|}+r#>4J%hqA2qqwthD-hIuTi?1CHq-!o`<7g`xfy^_aTfczG=R73QUkw zF1!|o!sXX#!-bb!^K{Zr%n1AZWQl_!jd3s(tHRISv%*g*WEfMi@PSxXRji-xV^^n~ zWfFK3#=6kGUP>zp2mDHZm1emyGu~iC25ti#*axZDXp!>Afeeh+DpaeR+3t!c&}nS8 z$U>+STA8tpkJyqw0orFE7feVQrJ^q9+zTAogg1?0>)`#b)~;L6ee*l{xqsZ=dFT3* zL--pvE_n9*>(lJK`swv&8c*j@6W%7g|6yfJlcs8LUU9H#VKJ1XBvFMOy8vfg1)c1eObi->Rnda|stLKt+AcOH(lsM&1iEIurJj$%K#Ox@8yMvV~U$ z`mmdH)p%>xg|}jn^-KV$ZuJls-oLSTccE<@c>us0Z2XbDn26&bA0;{RCvgmILO7B@ z+{1M8)f~>IM>41n<3rAa*at!Jo+iQ4+UOv%!b()G@ivIP0qYiNEp*O z)d@XpL;QhqP>k0_R|Q%_L>|PA@^Q)a(o5TiBLxov4VvBAonhyKufS%;6pU3RrMr-K2>NC^{uMRVwOer|dZ(!PN|E7Eg6+_-q5-fENjQ zbjy_qL>SiQZ$a8$AcFty&lcW}+S;?M-CMcW@?)>$mZIf&@mk()7u{CTvTXNaOQWH8 zm*yW7t(VEW_8*eD?>UP9x8ZlV^rQDJD{C9@ZovB!Qz?Y$$N*fCLweXJNaju8@X{|A zTK%*u137W>6UO1Cxp4PIA`QlINLVl+6%FBQWIj$8`e+$5Bdn)oSfdH!i0-7N5(^qI zP@p9zniBPYYLJ{oL4Ex`f@vSo`yQ!U%vVsl`;RgRQWl<@`2^yI7jl_d;P4)x=`FWu z>WZui*zdzVQ)U{$x7u{mw;&QvA6ZHE>HOOyJ35_2zuBgftuYM-KM(5A4vNRKJ5Zoo zF^R+P^W-3qBkHUmD<$y0E5mxcd=IpD%^_D}_X1^LxFEGVZZIkH5Uosec&VOeJdO^@ zlSg2D3Q&AvzY2*MyJkqU-9%JTHE*8KX(@yD3Gx7fEgqDj(Y?r-N7u0`k28VHZ-VTs z%qgDvS;E^?-;+dT<(a$o8y|gqk6({>pSEVLRDM+r)#_>6U93EAkz>)eioKTGv9G6k z&|RrmT;J`#J7?Le*WK1j_C-qhxyQR*ID5=$RMb+bxLbbmAo@Ym8dVJ6GXTFgG_NbQ z=U8{_;fHB)+ly`2H{jiX_lL~!-dEwur*v{wNeeWlU%CRsXOPI;`6y&FLu0G~@2)`j z8vAsNNa4?MF6@fJQ6mI{Y|{w!N+hOh(Xc07fTXVQj7iE>l9NHrlh|=&Wc4l$mu5*0 z*55*6%Exr+h_02Wj54Xc9NrY1Br}_qfwQ_i)p0omn zw$c;;k--qznKaYH<1u|ZJDm*v$l+~oN8tKf9B4ZrQ$G{XguyHe!uv8k39R32y>@B`mv;WSUCWjJC3~eOeh*zrlvdQahx^Wu}|U zuQR;+o@nzzfH~9hB#2X#T3v+33ZqRuB0lN(_%EN`6JmE}8ZSvsDoVMG%8w;mw7*+t z&*Qf)?G~y>vBOa*+RZkPa=Dm}yO(!}q6oEG+0iIiwHB)q6#QR&4t_vkoop#pY*Wbuw8gKA5mvPB?mOp}&&_PWy8-X3 z)71KojOFZd2rgbS)=EN*GscKQ9T>to8RZ~Mi30KgGrBzfl7S`J52)S9-ZuH z*Qk2iNpU-7raJXoEi9zb8R(ZG32a=FhWk(neEXwxAyHZf6d9*_qLW9mWI9nAl`6;rGdj9FIKRn3=~#Yn&VHk%I7}!+qJk z>+~--I~>QhFE5>KU0qG!aszFLV`lmCF_`YZfAYh9rD|1Z81EQUln;3&0ug!jW9~*{ z{tPRRdaizS8av$0j^@J-hwXmy2-oATYU$c<@mRWO*>3lHENm|?Ev+u|h`M+6-0GeA zTOI!%L>+cWaco<(>=)*koBwO(SSZ!&Vo$|#w;dJ*cs>AmTb*S}h2y*U?+@V}9(zCH z!1C?dE`L?4Cu?=yca>hd#nDLH9NSiBHd)s4>hkg(+kUvX0q+L9{{vnfa@~V{zd|W5 zoB_F=65Suh-6L^Gt9e10xXJWcV?ukqGjb?6}99{`i z)d-+LDUB||aTyK)89b^+sZs{^X#A3@C0(FoF9Hs4%0SN7dW!sgb6`9qc?|X_4I+|( zh&Om?I3Uw}o}YgIM3!KeQyGDYA%@kUBJewt&!y)=;Lnr1?h~=|Vu9R%VSZBxHT20O5$r{bK0Wf6OQ%@M2jE-x+7YpdpCuOLy`wrA;bsT8SJkDJZb8aH~w z<7s)ddFm|CGuPl?!{gbyQH^9#tvS%8HcQaa%F_rD5NX5{S~oU!R#lGYfv>YHP1778 zse^3Po{!g0R|-{Ctu$^mDutsi|Eg*LbBLmqrehN^maTWaKl;;VZF{#;(fgl7K0jRO zbGqwzSMAcZ+VScQbj6BJooxMd8y(^u-2du4)T7eciJ?2@M{V3C4p?%EtX1_^!wKYU z0oqk-c01d7ByYzpyWMV$(OmB4+-HC;{M(@Y7T*7JcoP@`N)NtBT~J_BcK2YX^5qot z`7{`lGe~;8z{r_dKQMFv3vS0ACpp^3`@F#zCrz?Ww-6v5@Fhs~i7{FUOyW63f{_zc zDEANoNbrd8i9&_pzJo%2F7Ye~BJ`bOw8ZeR7@|PtuGs z16O8kX)*$#0WybWfbuVYEGGj1V!|T7$6^K8?iQKGLLQ_u?IL+5*f4FP5tfI&)H^UH zd9bWOJK)e&#S1fakdi64OeO9^fE^@Z{31D6DL2l{AHs{lExjCrWRSqik3yQ2X5BcK zkv-zgcvu4YCe@A?oDwHnf+*u>oM79Nu*=Q3Aj2|O2Q}uxcqj%1A?`-}n)``8tK3J^Johazr=OM#b^YX(NL4T9dEWN|CTb-74wH^n7xq z*tHkX!}F!Qc@t))?U5C>twk;C1ktUnRGQ!0Gn@Bl;9K`zby{e^*wUdJMRx0AUbW_% zSsK;N=JT7kn}(4_N806VYNe72$Lg0a&#g_p+QdY>))-llS*jBSX}f(<{d1#m>hu;_ zgMq^8sg4*%j5B&QnI0J-kAqu{)qK-Xqg=9d`cKJ`b=}Ynp6%FPofuN*(7Il&#JSw3 zqysRw*o{=5wAs5@Dd@VM4ws9?A}VdwmM1~Ir&Fbo(OqIVtliozY@@mD)~7{8n)P9f zruM+OM2EZ(pal~DZVS}jVNV>UWhpIx7NngnSfT~L2zM2#4023D zN=7UrMTD{Y(#&QCYk@uj@8gVT)#|XknpruPKQB;41xC!!B2dg zAD6=(OyKnk*VBwl;I#-WBSc~5j9+7HKR<-mad=aDMGGiw2rC*mY)HDNcyTBuQ^`4! zuDfMCCEd<3BTWVWTEgSZSev(JiUBwCQh{(lBdxgyu`o5QA#PZn5Fe^N6cW~gj`0PJ z;lL7v%(R4HJVD{O#$;eRiKBy}b7Y*AAUR059d{xynOtsBL2q)gORsmL+2j2qcVM*4 z;x2Qg*40%^N(YU6J{~8)9mK_&wYSx*;)UXi7xbMr9Z3Wy2=C`}rjj^~;pun%r%3v3 z!m}rlXHmARs4p+}45>yOmyFsOwp43PC-rizv#q>W$&q~uf-Ya=x>G{an;w>W>t&&BXhpdQ1#MBwXJNncs^yU z69e_E(QH&2`30)1gRb}Y1G^GNu|TknV12#Z+iDo=U(1mGhyq`svW-|ZA50lrs#?{X zu)UM2W{YHZ4unv;*_LkZ?_o zWEcrQd(uWBwM!4CxD`8`x+DD3XPHdppbXs6X-_!h7Z2AO7s<_Wawg zl;3~%C+Gh9b?;x6OneLP8vyU$i(Q^P+4X}n-~0LXKfiKcXu~o^;GGsTGLi)65aX6J zguIqRc%z6G{fy1#ZKq`_2!cDA00_jKwg*%KLIHZpivz6e4`9EIOb{l6@E8+#*8=Ec z7qgU>^A!A87SAHV#Gq?VZG{tNU|tYCCKtGaV+s>Ce&AJ1NeaYSA4Ysk0xdD2n8J(=`0l*IOY%7a?}R4VzL7C&Y6tj@K;X40 zF(xO7h~|(qC%ByEXej!C{DMm`WY69t%2I=!YC!-;5K!MsNsW-i@>_VCP- zh#&`k>Y;C%qJ_BtJ^ol@&cO!(n3$Dh87Cw>C!(C}Svi7NaMKcm2Q^W4GFU!>cOKs0 zVwd)o?uFUe?iQ~8t5W@e#oWwh^>VOeEc;$88hZI`wmh@6sTa*(LbiKP!x9zz3ww7M z+BS9v0DR%HcJ{%sWz}}OC0srDZ}kq==FE`}(iZvNE!}yeq95|eKB$K;ABsL0MoeBy z6vgO690l2&Jrkt_?LoxDQH_ZqW~p6Vu(PbroZ%1kNU{+h6tm@ExX_NR>_gdedn-5C zedxCiDiG))kOWWfr~h9_?=Po?`OCO<^p}Bz-pESC*HnD?$y4sd z()p!wZ_nq$t*iZbXw2Vi9u9gBya$JdDEdLD4b^AP`l_b%o>w?H@TP}2P~sjOjl4F9 zX?tfVLM@r@zj}~M)*#X9)Vy6~xRW$SM-SR9?z#6s5QLRXut7q91GC!fcol3})%D^}k~~e+f23KS zqzU$&^#~qMB3WB=ik>tDlJ?IRJvI-DV}p)E;jRTM9uL6mIX4@MTIc0Dv!!SxN>{_z zR4HmDl+_fG@3FZgy17KA{?4M~1|fEFTn{Db@wvp5Mc!3xjf8K4CoLIS43X$0)pjaW zV(VpGceC;|gvxMPLq!g+q%LITeU=D7ENC~18o$(ZFx#+>lh5HTG4D$p@%jt?5MO_+ z?CdG8J8La&Bx-i{j&2_v?R7YkwewkOQo{uUJlrRG8>`eJkzJQJyo%3H{RA2($_ru#ssPhRLn+X3C;Jfc@=O0W#hLpLYzI z<7$}R8}&n$A}(!`H`H4*3jL!n<|^g z%*KDOBjsi@uByxZU0L)GxuugesJ<@=efc| zZ#-?iDt7sjziN11-SYi!y)pR3$*;ep=lb=zD3*c=wXE^*kjHtna&0<|NuR80+EOWM zmq~>^N-E4m5GBd;TwrNNWArkUObC9}#++A*Q&(sgrul|u<0`CYpyJXJ-xDK2RbDHx zkSbr28@c0fgQSaS=Jd7{GfRv(vq=riJgF=nj||Sq13h>@suC(kIlP{(!T#Su%P ztIizx15e`?b3I#|7;u;9T@vP>iexa1&AZUt-N-IZC6ujDR z&PxO94I3qMSQ4;mFS(zRifNO$9v4N?Y&TH)%ScY?8mjhJlIWdFAT0_3}dBJ zQbtDLZ^*m2h@QbKz~Qe(Ve6`Q&};_Q=etU_Q5KalH!mm4hMDpE3vt`kU4G#xw6_{) zmPu5{32{t>oY)c}p$KDb=w^&EKfh6yVfVfzOPXUVySvrzxxq3H=lgODGYfq%G*xjA z9iFG;G10CENKD!2N*rE{r6LHY+8u=rCoL+Bj^>c#gsWcU7mGM$SE5XFI_2zCxLiiL zlGH^TxG7a>38!0azc@BFR;yX#F9>gMIrHY{8@;KN-{tU*J{!KTie3Jn!28`3$2h!S znEd)ndhS5)eG?WuP0DVa$pi>Jy={fU9Nr1dy_AHk0gg4BOoBmiBJ%#p5;J(9%jm~e z58j|{g<&8eX_{P(L_<{4ZPtN>5I8PkC76uKaa9hy10fg6eE*> z)NGC?vU#%f=!1yoqP)W4)duf#c*9TOO#!Gxqf<_PCoY^4OOb=cYoduZi#Oy$WTCfn1XLOzcM3oFV@1SrInu;8vTJh;W8ywzx zy^cvRXlip|fV?Mub5^6Bml@u^Zx8Lv?-(}3DV)~te|&3McSW(~*Y#U1F{H1D7IdF4 z?&zdi5JGS(5DJk71LtJ2u$JU~*w?`5-|U^yi`&QFdP<{(zWD8g|$>{ftJNuV^qP4K`6#-;0A8(qAOnN zoEshF<>2;Z8#waN!m%&uAJ9qChI_fvJoN(6i^R+)7#Q)>?;D2sLL6C22y7g-XtEh% zKMY}V2F$>%?5?-6P0dxjs8pElJpT9yNfpmpPxsT-eQG^QXz-MxJ6W=OaOUvR2l(p4 z+Rx*MfA}fdDivlUw?_q5+g9N;>J$s@)34~sw=2dQD(|tF|tK8GwS}m<{5f9B=TTJ@5Ug|OW=%vB?&U;t?L*Vlw=KGi4e)lN3^fu3uv!HPhc=o&USPH5NWr!Ke5g*R zF&M^3(#V9`PxOVI!6x+*GykFRkD6r)ybAD|NqZt)b`d=J6o%5agIKbDN0M9$X`#xb zO~Qzj&pJb*`&58er}3L)TA6?Xt?!}B;1{Ry-5UrC4ehS%W$;f(M_O#t#u$cfU4Zv2 zODfwqqGl6>@x}r5#bAreo2U=$lr#wHS4{3}Vb)}eAw?20 z*V!pb%7VZ*n;2@(z>6M#m$#FJP0r`LLDG)X#lE$Bu$8l{QsIlbWo^y(cdh;Xisd%h z$fCo0_d0Y}d8nwk0o-qn#~grg4k9^fEI3jZX+S{a+r!a^=7hP>Ah@qh}M<8&SoolNhY4nwDGaMKCcn=o};JZ!p25>^2f9DK7+BfhwAQWDdpb7qiDyUxW#hv4ro z3ErzORtldVrTqR6-aG%iR_*Izm#;>#%hFpveB*`j{^Y;S+#kUnqt#VmpR~yW6@sOBPBL|-0(JXB>qAJt$0YZ1X8aS^h*ikQDpRbpo3g3v#etOktc*VBVk0Fzto{yskW?8WeZ$ETRm0bZ(gE)>2Bx0=%+3 zqVPMbF%b_4j88$9f2|>IwQEls$U<4@@{j;oJ7*RzlLb&&mTzA}zbDiBM3`u3hehDU zL3i&6sZf*SssQg1MDk7$QOX5)FQcwG;7P^B4!Jpos(f*?i$RCt?Tc>MXK+j2Kz0!O zLVcmP8b|jtsiF z1B*#NXtfPHhI3`)&Ay7BZnf1ZxijI=18KZnv7YQ!k!Mbw{D`YQG_h7uwJ}o%L6eDD zX*Q2IXHCZ7mz^xT5eJ=)&HHxLr=ITDIBtzb?a6OOP2Q*!y`aO(aUe-{s1)u^ofAco zy(b6W1;6GRMD@vmm22wTrNXC- zjL?McnH_3I&|#|80n*a4WCaAH8+?#Ri9;{rh40`P#$lVwbOm@xJ?P zKg#kq4!{1knY#@gsar48)Pr$TWan8vy5n*jf@d4oKB)E(Ha7f=BR1SnC3Z`IcL?Qj z3>SQ?k+OtzUd3vdWkNZjqLMON95F1gY6gty827RO<_o4l-~_e1;=YNdfzh8!c!-{X zSCYVi4GZ|&7fGkJ#uXZbLlpUf~cnJ3WQ~3@AW~YsusxRx(aC*MUgqj3&-h3rr!s$BcZ<8 z)Zn^w*N)~v@4IZgS+`uiQSVl&DhRXf|20?VEGm7OFjXIqea^>K(~y?>I)jnh!mOg? zc9^QojpfGl5D z@pxcF3*dH6GgrZCTEjK~W-Hv=v*WB`z8FiA-#uOcea4L1+qp?M{=rX!fhC6qZ-O2S zku#c|26rJ+F-G6@+A=ILlfHq^#Ey;i^%|%QylA~2kyH z>ig;WW$ZJ~`tj4hR%5t{n--_{Sjj|=x8gnk7-H5t0T^lnbOT;TC!v%=4wACf-VN9X zi*;)Z55a^i@biFW8Q_#Nrg*`=n~Ozx+LN+WB$}r^0S}XESh&~eblk-1!F9dKE^H0f z4C4fd%Cyr%L!!n-O=#wd+Pyujj$Lg?^3SqlV^23^Tj1) zl$~;2IMb47hW`{4SFM=+P#A-k%saXJfRZa5^UnOyq1dpIDHAC~AW2`fNu;Si{Q#qq zU0Zv;AItF3GeIYj)et>Xfav4Ed;3N$J@{ZL<%8dSx%a;C^UE$jeehP1dk5YR7r*|` zk-Nod3b1X^db-wJiYInydiMg#JiO)U_2wFevhD?U+HIK$6*YFxWu)bT6Srd(5yqM# zun@F!=OUnTh-SI7riVyIVs39}6TuLR^5#5)C=xN9R(CjdN?jj=P~mcFOc|k~4|=G?v;7 zyl~Ex>RA%Hax9;9>idb=gNsgc#=xsg;V~3L0v7ciyhnz1Y3K;92?0iFYEMR@4GcAX zi0qNQedea!vAIw{r!M~OlLhase|jPie3VOLxVh7fH(Oh=92iocHHP65Hq& zuAgH|6c~6}pw&3@U6#cFn9XW-3BGc{IN}U1i!Y)j=~v+GWemI$YH7Su&Me+6b#t*8 zTQ}gn4aBNuWvkX8JT;dUc#{-NK~!q+VksHjLOzh57Yc{8A-@X@!@1695l^5@H~=^g z=LgZ{$N^rzy@I+G@x15>qt;2v&N{VHtp%^c64!#~rj}LUh3?Cgf%h>8$ViO&St%5x zAroQPs=({gS6wI9)W81#CwM5MIPwFeEuUEtF+HBl1)&8${;7svbNdY5UlF_?yMf*Y zfZSGyw$}O-+vLL1w<+bIX6kzV;S{N==e4u*3^DL>bP@L5Z5MPb!+lXy&*KE52?Ot%R{cgS*LnwV&~EiQcfMx#x2Dl;23|9S zYO`5HW+}t&o!8mBk%hO_G5bjdHP*2II!}K4gx< z`_5n8eawVni4hu*YqH>=Bn^?^jI3ytaK^yk!K_GTLs%$$w~$J@8;K_7`J3d3caa>q;&|d=x3Gglk-_q^ z%u#pvHt4+`8~VcQEiW7jMi|^;lHR3TQ3nf+nrocBWl)^Wvp0;p1PBt`T@nJp0wh3i z3mR;3x8RFIfM5Xv1PB(~-EFbp8r)fy#eH#yXUYASQ>RYVTlLoUfoo^FXL_c4x_g(I z`R%{3{wk-z%a2NE(nA|;6d_$0B8V=}xNX#li;R_~|I$A|(#1c>P_AW&>=3FXtvEIn zzniq{3%*QXw1^ThnVh+uscJ?0X#CuErA{+!aLs~TE>@`lwRfDrgRrhwv5g2%q4tg? z*9ldkrYLE2ij$&Yk|FY&x}@Ilvxc@3kcHRzn#j_3+ftd@O4yX&fuZHn1177eGEK)V z0@%=}%IY2~>w5^!(I|@j>Q2)o25nR=BZZv#V&7H->TWmszT*X=xRZMhJPrhQOpNk_G1=@el@0`UqX;pf;)=)8%^-Jl-`X6*SKMM?$iVl1lN zy|(EYpfA>jtnEWh)T7W&OX-Bfk_x_C`1+we_kRI$O|t@O7Zmxm{rV$=h@VN6GwyGG z*pxT4_L9!EWm=nqX9O}xKwZg)(&OC%<|Zk$f6q!c6VSshgqWnIs!3(%m}wL)cFPB8 zy&M^?vAo1S^j8c5S-fS|rxE$pjkVn2>2(jVbea;A9Pr$}A^= zU^!qa@6~zHGO+7jJvNG<^AU(}gbeh50DduqfBgZSmy~E>#Ie^$WmAJpT9$ae{akqU zxu*jGJnxjtX<`!BFpb5ETMar{`3%3{h7Hq) z5?Yf7ZG;MHipcEknFhSH1aVjMN=iYA=Wf2*awDCd*XEXN%oIyUs}lAGh_frQ3X0W< z@@k4AvGk$8OO4$kwBM6E9(MF)DJW^;Zsyp=gr9qQ$h)|CqgHPEZ0m!k2@E-*r{_j| zG$#lz27NpcSPmKvox^33P@<1_h0il_IH@s1)`CX2K&RRbj&=2dri37^5QmGCsZJKJ zM)#xCerj6GdrQ{s_dQKJKI%l!otPv zu{q25(|HkA(%lKG-%B`1U&u}t&?!cj6+0YaM4SW@K9{8TcP>b<429pe;up7xm3u%E zDvQU@BvGv0|1$V<;jTvRk3pe=QVV>D#qH&hc zO>O&AM{XIZ)al?bmgN1)@UzNTV7^k2FoqmP(lJt?iZrdMV8A6`id$;v;k!8dED9%l zfMi8Z%P+&h30K|D$jrD~49L%OgDJh2hYf^g_Ed2y4B<}k`XcF4uh&CuMS%*R)k~43 zw8!PNpE(o{ml1iu)aZH(<*%8`LZ1y zU+{W%4JBW9E?%9z0Aw57S<+!jH>Iz2f@EcS7T)0vS2vH?2f0$t zF%4k}X+lUHdnxt1hsYQ`nu%_IX1>o$ybKl0Ld?X*CV9Sm!x@DDvV2%@LIiaTCbGZ8 z3wrL$e;Wz)Pa<++@RHc!d(1 z?uM;HB`p}xp{J}ESN2#bVv5UG!}i{EUNT0H#RXumx zuYKOJw@Bkuorge$dfi|BB?QHB$@tGH*^S5nH}=SAP6u(l9;WT)`wLOFugtHMU;%ig zS}18!`9g&j26%haoOB~7zNKdn&9Tawep9^b7HrU=8y7H0^FrL>sDY4ietok`wTKb; zksPTgPZ!W$5%@|LG0%wSE6cRC_OlscU25dO*!W8pgSEYAFi~uKaDJxu)jk6-foZo> z#PD~ID3GA(a7{v17-4?5#@qX~czo1LoEY=+6(Ij? zv`m7+Vlwx4L(+|5n&--kF|zAI!yKb7k}ou5WHdc84hp&|G>kZjqvrv!6hwriBeF~* z@5FC16YSaJwAj@tR7Z!jYUv1&Fm8Q++@`)F$wRRMlsC!&}dwtA1F;2RG^(8P}>!ax8>=AbQ~%S!W3i+vx6#Q=s;h@ zq#u~g4A2&^D5NQo&3#(4gV9ALX~rv5GrCO}cUZmK_iBmPOL|98`|Oo8N)Q$iC*4JM zB#IaolJA`DL&P2K?QYJrnnHD1OgC0}^)qJ=Z8tZ~%L=f!W`*I1;)$NgtxnV&3JP9@ zdjJ%*q>zHLpY?&g^?|UK1$}($b5fR~@fxBn932;H{a-w(G0ooVe>3Yc-JBL1K7x{LL40W2|NC?ucWO?zE(0Q8nkK=nZtpOiZiJVTOk&aZ_IZgG_uKR88%=o{`1`HYzcS1Utw#{lqO%zAcDq@gY9dz z+YIHc>Pa|6&LHOwa+AYcx$O~M-10TL7xjTBXe)}_Vg_dOtUo>xOl*kEug>G7acZN63-ol4s}bEW zB*^Bzi{m1BtVvLSEl94k;MHhmE;nwI&UzGbe!0xBY)Q7u(PV0*NO|rc&SD+@p1OQw zA{VoryPN1YO;YYaubWWt>sJ&uJI|Ay6RqvuKEwZj*z3u3%nrLyx>NqGuas{PBO_-M zCapBv1R#k- zgXa}=X?Oj7h;32Ea1%370G8}2DC+BW-ZH(of=aQFZas%3(P7%!23TfKs_a5cDt<%5 zBLlw_2od&>IQ%%+;Q9E8cXQ6nV!#8oOgbj@fe15*wLb7`T6@Y*WcW!8Dr05gzH@wQ z#SCHUZ?R6g_a0GPz%KxkV5LdyI*=56q4pPH3{}@Yod+WwXH&?*PV${$D*Ca@$|a0LIX)r9H5?aEazKn zcmT1mg52pQ!62Xq! zReg!G^{)BCw^(k8gp1Mt1%Hs<6m3kUx?@O0YR;)lpA60@0^o-xL=z$^92NFQCH)jd zStvh^1r==SEPa`qxx!=`32~`>)TaMVJ@T!OxS1* z^_{tm(1HsVsDKFMEWt*jsD=cLH7JrQ_vL6ph4gqM0$XcbOw2Jb5@S++-crHkVfNKS z5kamsM%|c20rIyuWG=-+eKrK-_FT7>`PiiyE6kZ=hBa%2J4?)eyAeK8%uUg*?0Q+E z1%pfM13~af89;MFf9GZYj|4A3_SXJ*iwW|xIII}8cCRA!!B7J0 z0j?HSEfbX5QYdh-`Zu7vAGcN{Yq4j%DA5FJBdqjQ%qg3&tkx3;X5-cOY90=G$Hxi$ zW5_?M-!A5BzS(!}g6$I-(e!2Y90##{NxHUmgomLbzui|@KN5CkFQ zXt7Bx(y2E;J5#Yc6n1DyunzU2R|<~FI`yXDIByo5kXGm0#n(du1vKCw7LTu??HX_u zifrnVQ90g#zuaJI&EcPgex?H zF55$*crcrr4jqc*H%Z^?5jID{_5hwpY>Sz&*&0X zC%joy04f*()cvx#V+hdYGshG|1-eE6mA@7QwpM*1O_mH05Mc)nGSA6C5;}myRrg8J@W%t*lV7;N$AOqYfA}7S zzmFjT(CJSld4?hMgW(&X2gOs$`Sgg819b%9LeibGhkFF8KOCA)R4<4#-{}khXsY`7 zR^##84D~kmW-AOk4ck@L+hx_@mP>^LYS0a2{ucRK;3)J6qjj1(Fk7bjV8H0ptitc- zz*`oD*%tA)Q67Khu;1QjBntU>HQ)XysJ*j!bhY1X4|@C}{xs=<9o`S{&5YcJCha5- zu-Vs16?I?&^22R(fJ)$HB=V7Zf>++z>Bo4a3Z$cV5MLntNVCu0I2=f~C4DA}D_Z7b za6YRcpU`*we)RAwX?g-Xl&o5eDgrf+Jn&gcq}XuNzEH(y>MZ=RmbQ01x4eC(f9CKo zi$pP_EpHnb&0xbPoFo35mfo^6g5qxCGFGbJona4`sTHUo%+lir@~*b~>8UoQB`2Xj zX8Al2RQM4N)oaZuLsDEgZ6ob8eG3}*HE6mQf~U0ie@j#fBS;+w=)G*Ir9eoSTBC11G( zXxq50Z3g*hq5l{n1l|()vo&bFP}pgu%vwc?)$oUPQ(%MalC53=>$GGJqjPTpoOKW# z>mHhBton1yyIuzu(C7R@*On zY|a0Qk_Tc?=eVT8Uum9Q2RW~^5zxy*9yCV>l|00-LzMQz;gZ9Dwy&7($-WH@PVG!k!N^DN?ZO$=NUZi#s;dl_QJ)O z;pVq08@vS{-68@%J~iVieq3#yy#b+8S|ZkWdneR^4dl|XfkYP6e<9sKc$#cQ!;VPj zfFynZyy}Ss@C%sS7C;Jr=@>dg1+k(75qTiyH}H?xK%KRx7q|ujl2`ywY)@oxm3??> z7f$x~?>|HxsR%$BMu~>&@Y$r8^cGHJxLU|T(?hqqrW7z;Ebu!q_rq#z5Nnb>Ol)?3 zf5HTYc2eb%WB~clWEV8M2yR6N9_X*(uA6Rgx4?UvM>}fEfddO7f!xK8|4k|M3+QqU zzs8OT6zHQa;_=Ft%M<#csq{;OIOYuSF@(uj=Htb3q@XYIb-w#ycD#5$)ZRVZS&J=c zAAToMhHcc>jtS!`@oC7AK%EO|z1WWG=z?6*_7*TE=+CjqOrXGbN1H8f&U3g(--1YM z$U#5LAUy~?XuwzhjP_sek%&)IgZQ`n>0Ln^0i4k5;rbCwwE8w~&FgsIVOJ4n>(BY& zfi&ON3q!h_YXiv@(reTao6^i_I@jcFT=ce^hLAS7fLVPR7lIKcKGLyItsA+LLV5`b z96)r^^VZM8EqXVAnz?`CGJ$_~r3j&_Q?!w71{P?X0h@O;i4 zBYoo$Dw?7<=~EP}xHGG~hU7w>>)DgQd0z*AWsDx)@CtZ29WtKp49CT$V~-k&=zUBt z@C^YjaUYT2yrEvMdG$pLy-!EvgQFm9nuX++xn|0!Jf|salQ0F_suavSk(E|9m`4F( zPd7O46m=PY5~{Ds&5wNgI?A!7jjm4MM3n3~dd{c!B|&SY>DdC5SGz=TnUE`z|A$Pn ze`RujeLau#cr={Re`kqeXd8e7&Yq4Jt20?Wor?jb+V)=;P@ zYt_%bTK09AtmI|@*LJPAvzvl9k;qFLzPYkmmN@UAIkLu>mGNFUG{+_>1QpASiu75q z6`$4~HQgOqJ#_ascpVkdFl<9I;iGvgg7$w)!o3X9+}SVwV*+%C{)+mk8Ot)?0J*ymhrhJLA)SDkX5lm5+2>U%~}3YFbZP_(zRq zlWUN6UJb_&VUfeuBX%2$0c*?g)aUr+AEdSf+T^_%RvxsfoHf%(sb8=q*np10i?(vvL{Q1um1nMPh?R-%yAF^I53l^ zvj3D1A_965CJ_Hy4qx&AqJe7=-W~#cIl#>x=WqGwoI&twHvULSLrh@os1__+zrM3Y zhwwn5RYdxFP(;|$Ec@pBPTco{+0@YJwMa!gUE-XGq#gCM(-vs&2-!_3#h4p4T2K0z zx#5t3_}34(AFvEWmiyTd*=8KbnWRvLsF4cxNu+f8Z|NZ``LvU{r5uLKi zhT-&t;H+R$yS;~OLj;MOPh`2E4`Ckz=k0MKowf5uh7JN^e#ph6?qY^oNeTJYy(R3>Vt^NW6YdTPH26@28_S@t z&2GCbR9l;*SUokvAtlI<5b~kf6}~cOl$+P#+0kJ`Yc%MPx~>7RbUS77P{ky|>z~mw zKS9N&pgZDpP`jU~uvIk~>!C!4ht|_6tAW0@w3>A~@o@zvT)k{}jaw*e(o(>~!SVc0 zOG2Ar-t>Lm#y7?C4k-YBbQy&_hOAh(VPRKJBwM-AP*bu)YO~KHdV^H(e!8^DmSkrs;ZAqc{?{;RFu^9~aMTe5S_C<%_Zk`biW$B_vs7&E?av!r9Qy*U zT%YgugX?`X=iRXDPp&VvCe~F&Z&Yp$hFX_;l7WR9tEY~BKA0;Wa|+YSR*65=Os@0yjfn!`$K^mN$ZR*LnH-+v15)CC5whr5EU6j*SHs)Rt@_5_;LP4L>LdaF!@{f!TpkptPDT)Vg z1y-(2jhN5oQ;+PnS2=iynopkn9VZhSAXgz7?qv>g75s{_W_&em-)Nuz?mY;>CUy^7hLn^gKZ3n1Bxa){CGbrQxz9SfO7@-?tJ5F=a%&|1G4CyPTorIh z*M}PKUqow%;o@k!xR)#8t(&>4uDP6^+@$SGsP|W@Z$%P^r1g3tTqtKF^?chIWa4cK z5e;PAbDK-=1UBA#?Dbbbt>%}wn{Yqe0Q(om>ejNy?&p$l4ZI7Rotp+k&JiIWggM}0 z%a(=8@Wo-0)SI#Z*LsB~3m5JfB6}zNH)B8s&CTKhn5p32hL-C8jHj;foCAJh3GRhH z?RMIFN_*ZCK}o-ly8ol6CMs5a^$(7wyjbGn!B>814$A(^;6}jPmdNy!rhoU>Tzc?s zHJM%41ZOykHx{Ew?~gyet&EvNgVzQ)E=cNeOJh~F`N8s zMFo1aai&cd14!GOGTrLtp-n%42fey@Zd(ymS3?(-t>%7T+@hjyR|M*V75sE<-0DL2 zl5~cACjW!>kfHN-@sjR##L!8{lGi6$^L0Z(WZLX^6>nkjZAJNOaX*ZCnxn57W)eOI z`OY`!beAl%RWAP>=w&SA-f!@Z|H6&At9|YwC$*n6c#%b%;X(0N15N(^GAv#(%s+eZ zS8LjXU;pg6D1pdF1H>J>fBgJFkVn}7>@uBv8rOi48l8%u?OK`)*;Xm6BL1o*?Ll~5 z*PJu%zYc(@eX4TC?5b>2^YBcIlsM(j?>}MUlOd-oUNb4r43mn|9@y8jD8oxoc_wt| zs0MXJcB<=r7a4kHN!M!ltW~$WNLDsuzR|}FGz3pl%1JR`Z+4C^-l3ntX zU61Adj}<8J=)?VwAy!eb>Mk2Dgu?g38hQiyHP!Csj#-j%4Wki#aj$14qsY(YJ0e}# z;{Wa6#QkyRGakMS3CFJJ;}1>Qdx^!xb>JTTU*4!z2(Sd9uyF4RW) z&+3JHXa6)_Uw61dm+elJj*5R@!ufKq0(}L{k9srA-rO-XjaHQZZ#E`;a2<1(|Gl{P z)@f=Z0jkj+rVfJ{5=npHcOyb|Sz3s^7X5TG^9*PPtyVeD{{FleH1t|oqm67*E z9w*Zq3H1lwdBUlu-%Y@&9|Fz|az=OcaB~j>)MPflE$>7huykG4PoMg=&6n0Cb8OWZ zlDP#=CI1rUwcJM{Rj@t&$fhn0H27QF} ze6?Ca`16d5z%sEy!Xdr+9`*pk0;5>Tm`aN~u({Om>8 zdYr7pOAH@7{a=|KlA!m#k$laUJ+OFk)rYqR+HKpe1>!Ruj(T^lFwgQ}@rbo@YTLKa z&y$`)KIob){TFa${l_4BT4sA-E1)Z_^GL@DgQ|}^B`x)NNDu z3`?4#`t)}e4IT=}pQNpJ_4!C$BI+@je&`EGkwU(X@eqCD+s!8eaW9#5%i+2@+_IY< z#|bn1+b*!4A5R?jd?iJP9%fg>x#kqyZbMG>pIDBHVxL zXd}Jct|yzv(|QJQktZgQr>+p{?-%POwP$ z_(6t#Y%eXz5%V`V9O1FwKIKtvnwN(jh!olby=OiY&V3=a?nPy_^A)-r{1+(C@a{7g zfn%q&V(F&hCQ(6dD&Vco%(NoSLHYXoNDq7a-%p@-j&GoKUgNVAW)8S!GpA|g=JTcn z0yyhSx(by`|1|ThdvX8T(EB~m#)C>Q4=@K3Jim|EZiR;cyMJ1cj$D5pp#^LU^h87G zR{$CMIO@dHo#G&TPXbo7RwySM<{~1jv%qon-u)X|k^Uc$y(jFvC!9sv|Bt%4s3&`Y zysIpkVxn|5uwVwX=zK&#f1hWqp7gojEjby8O|?mk7or^494uKrwBJ2c`g>J1lY901 z9^n&Y9=zYb*pYDTJb0H+W{O1#hwy`57X3Vlc(+Tq+VZO*>H}#EI-yc5pttd7;1Yf!MpdRByIF_x!)u(REv_U)N@JyW#+iWR*5J81&st64pk@!T zhu}v&E{VU5!0{Tx1-h+I;VXw<0o2pi*Ed=Zyj4jVT%40XGu|sIH94-|cn|HG8_n4g z5zyl@Iqv;;*Sx~hs;%D9V)`u&=cUY0QFG^K6_`*ZWqzNeef3YBWt;d_+ZtUioZxW5 zyzK?doDD|Kt1^--;N-jN^lNF*3w5?>VfivM;*2$1hUk(nQ{RClpyqTN{<7j>gvGm|OLAQKR))T@b0o*9zZtQR5{rd)Ao5x5`xQq>cgO@i@3Pb# zRDJva`d$GvpgI1{A~vn6+^uIA?4MzK!`c`d)=(mupyp9n773)&KIR4ybz{rWf*l|z z3~op4=5ib)NAfGzn-|Y`*15nIBhsMHIMDkyHg$bv90v=DX+6+7g;|^CLIyy;9_YMY z;;9-p*`QYjl>P}6zY%nxM-2^0>$%k^rv(V29cxiD90NwdX=~}v`|g_;NGj3^K6n?5 z-FLb@5*+(swwo~AkN5^X+^SqKX86}%u!Al0zI?EK<)CR(V$=F7Lc3{H_Fyw?7JN`b zyqr3DuhQ1nQo;ZbiOI=RIc1c2t0xq8xnEMoZBXEoGc}TWbgVo@uNszg_!n|EV~wS& zF!J!x091%_Ob=L+xPqz~RYMqqkktEcsy z@3`$H2wk%m_;(LUjwPL|z)KAxRkcn?**{z&K#JmBFe(uT5oliaQ!EkTKdjmyN5ETT zW-VsmM!$w|i3I|n5_M+?8{9jI7kZk>W{$bBWQcZg~$IoNoBDtxon5K(EC=1LsCkE4v|js;JDPEUO+&^auWEjNDE4+!(zn!(<l!b zG}g8!d)*JOw%Q-MCd_$4DGl8?E{Tbpzr?D)M(m7E*iQtvc9Bm`P@VSYih~=outK_W zQ*dJ?C_}zI|L{>xofGe}GzX@e6b5{4t0_Z)XX3UlH|9%=w-{QghuqRUr@iFea= z%gA5_htRc@+gxH$Td+!)P{biI#z5kC6TAVe`!-8y98E*y*ykxc-^TIeu;tSNEKj8-I~S*M>=yPEzC> z=H+o>T}J+OU01H?_+PG5(LB*H+U+W?56&kiP8+=_PZKm4Vn##>(lN~Y;_=ui-It6_ z%>mpp1pOrK`3w~QlQOU#BhMvJc5r%daH_kS@O5E%xKf_{Mbomw!q0`W-h*;uRNc#y>X#b)!@X zX<&a`s$4mGR9F201{?9b?gRs%s<&Rmk$@KWmc0oldd=kF6-sV%tInCIUHGEf`#da# z0_@t6N3A$r!+#r13A=E1w+g{+8kc-;n(N&O1`*;o=ZMUxzVxq+zRQK};`j3L^kzfJ zUUY|L@ylk)di!&3Te2Jz2<&IJe`fu(U;2}cZ>u2chfw=Rz8r18nVX0*f(T;Fo`{hC z(8ukeN6MX>@N&j0_c8g1tkm+LkkJgH_gBVL5T_F3Xt! zuX42-2@HI^@#qHj$G9KgN<2{WC_hD~Xi$C;RcFe71fyHx>ZZd7l4lw zORSrWm86;dG@8{FDyTSk|TE{pNO-B7r~f zr`EdpTtunCKRMjRvUvzYDSnP`x!fYPi(ZUNnv;5V)I?N7P_)c*eckx4(!(2z-p5rt zn+G;Dq6sPT;coW|R}+zwQIe58?=eGbG*;H2*v^WQwKT?iQKzc$nlgJz+T{=77_m%U zhnsf?-Z;%`i@LFe?8{u3&H3DWNsIQ}6CCg6poiZg9i99>3?zJ1Q&DXdjP6NSTI#Sj zaM!$$+Rb4Lhw+1-8knvYnW|M6`;O;+sx9M2mwfn8>>i?D8{ysY2^(`q`B%A%Wbp1bgrruDwACAb#wiu-@lq@1$@XK_ z6+1&iagLfPHAzYR`>EkwK$YqvnnaG2Z+6th9y3cVpgfyKs(qtWhe4{MDkD|Nx9w(! z)X1H0ikEDa~@^4GBC>94OIK$Ex3G&$`36j~BkfoJ4UZLX&zWJdTdkyOV3h zFMun;k(ohEHpqcUGLk@TJ;Y@nSkM1uQqzJ(kM78f1KVYPSiW;r2p!7Q+lzA8kipI{=M|z89iDPgI1}wY z*daI|@t9EsXMLZ>uobewkr3S^-*q}~{JCQ+<|t*K6d zfVOtlWg$6(SEa6qDp$l|m`78DQPFxeRVf%Ogk7XQH>y_P5gxCf+W6_1XA$WKX!f=q zG*Z($8e^Tqhyu6J3+C9GxZ~XgcKBu?N6+z)v&F==vZ%J-BxDPI_fI|9D^=SpP0`B9 zlfyq;8r}R-JDT~l)_bV%6lCp{;xrT?QHpR>&LgnW(V*w%Jc$dbEX?J}`1s|d6LJmP znL0#>(Vo(P6`z|7IAKM)T${Ef;})q*t@bP-e2OB^QdQbliH~I5(8cah6ifMFfNPBb zS@E97k^}y$=)d_wl6{Z&UHa+mTU;ZPyuiy&!;N*1hnfODSg{j9a-hPs$1DOM6Pp7-;SCz0{#$#mwBoTv(yB2o=D;rS>=%%6O|H6h3iMZ;07}?P}b^ zq4Bti{^^?*IO6hskV@06s4&@4OQP3zlNL}or`A(~lw{p=>rOn))6pG)RB`6LGU?3` zI36g;^41j0!sN#cPiNrG*shg-HHeCn4rr*1-h6w>O!-Sr!7OgtPAlPvE2hD%os6oy zXy?)^<6FYTh%ExoSP1bE0NqhS6bnY8CjDlmpmKM}g5Fps*4No&yM#tOa)p92<%j~H zL+v|sd-B4cFZU^di>2lOh@_|$_@rJ_>3oD=T(?UslocH1jq(Oo()uzABwc|}6uxf7{+8x%~8WW!gb`vnFn;SBo58m0?lslMjQJ#2sxNd)V1zM8q zXmPH|;y4=<=@sytl(%kUv=+jIAsKu+J~W5r6Gz0^NhKyEpP@a#ZxG^!=}wGKml=lF z*Z!Cg3%~!GQG5HVvTjrMhL1MCOKgasZZ6(_ip|=hH=q&|B<|xUJ~bxx@+$jiXJoZJ z{?Xw~?3m<%;pqI#QubcDojJUg7mh#+?ki=b@$wYaEFu~!aaQ+-312nXYS50b15cLP#W6Z?u$3hj2A_!p3~PkQG(pcAsNxe zvqQFmdY>vY)bPT$E_jv7ohKzZAp4S2X)?cvZuno_LQM2Lm}}m?^|kgoVM&g?x>GbN zMMNgyL!_UrDiCbVm-~r!(c2Nd$;fxsBvx zvi+>Ezz+My*-7zi;`vkru_mJG4PO+UrXA_A!A)t)mP ziJcZ3<}{nE;GG!6msHj8A5XV-ugh=VEwAoVOmf+;z2IokBC%EVJiQirW^Is?EkC!W z?yBj^ye(a+sNF%2*-4Sjp#j4EqV0-Sg@Y*djIG?WLjm;7Rxz$HCpffPBfSJeJIx@C z|a z#fhx*E{^pbE9?vH(Ag;hLhiZ%Wd>e5mj;kJJWe!$B2*IgbsLM=kt#z0weX#jly({` zSTM76CXF|Lpd*=nuv%Bht`l@>q-*mf(=#VA|8#gDzY;YKACw?jOkZu`#>f0-i#VgL z#0+sTYp$5g<{5*Dy|yM_xkQO0Ae|P5RO6jX{bkm|d}p*Hz) z1rsmXlqKRX0#e$AKwJ26NBKm-k|t=TC4%l3**Ke$CT8y`A{0%-!$tiB>l#`}!m|&N z9JN{TACb#6>?L|WHz$izl@Ylxy|3mBm19!D=ol71mN!s!4RPMH{%(r_a=%Z`5qh8W zimh_Zm~6YE+ciFA-y8xa%HEoRr#34Tx?&9}2P^JIC!Y-$2FsI=0^LiqEf|U=ScAeP zTItvLB#)TJ@zZ}TJp<7-OZ4cSx)dRFiT1n;WRz8{*X?T3MW`9@OvP^{bSzde4Y<9I z%4);@Qb%H$h#e5eshdpOYexgT?_6w@PdAg?*hM$G-v+Z57AH}$76-drw2IuWk=F4(m@PJzfBBwc`#LU&AL=f1QgT z7&cR6iZ<^e7hpW~1{LVv=@8=>byf=kEB&c&GRoLYDq5>-Z(=}koV%B12ShhaM{iDw zO8@R91ZlclD7}H6t#USk2NX7&HxYO$=(q-E&`R&p?Gb=I&=T%~d&snLHyas8u&wz+ zWrsp>q;a*;h|yW~2jrt^W2|Xa5|%7^>1ekju$F@H@9U zJz>SBH_fw^C!2qeG4~Auz(OUgL$YjQ{<6@xqT*e;AF-)jMM=VZ80%1(XcNDXfUCc! z;BDtfJaRm`pER%b=FoIWH$S-WGG`I_i0PFHeJT>@KxY2ZRD>aR?y@ul6TF=@`f}=- zdwXDnHX?s7WlqAjS4;z1WCTA&R)l`%8i`%?shVm(lBZcp1QP-3Jd$WSG42FF-q)&I zO@~slp#Iw$PRo~KIi%;r;Yo;0f;{rozssr!u-r+#W^pHLqwfgqMz&m#F%lGMIMfN(nnCE zk8KEcYNRZDd`3T@dZzV76H6BoaB1YVIW0Ug)xA&3y2uN3_IxSY%H@6Fy7>Ep^ZtI* zi^HBeC2YV=m8!k@tbl$4e~k4z#S1 zYB?TSInwASr!fcnIBz^6fXW>AAO~-=(LF{&67&~WsMz6yS1JR_l?_J{oD(zoA~+my z#e;M=$UmWc5F7Q4glM9A5FAY#|B3ALGW=Fre)(?L#xRLsTW4pgVn zG*j|(*iCD>zct*l{l?YU{CfS0<+D+t|LjQ9dTK?isbji#>>INhc5thVNHq1X)$;Xd z$-x1Ei*aB>iMh&O6+|A-BuIweh9nA*jTdi~xH50LB$;pz=wY#IINx;H#%VK(R!d7G zXsb$5_zloG+VN#5JZB$kt#I$liJ}Q}daN)_@*=#h0z>Dl=o0#wTxQw={$y;$#_C3r z0%|VY8``d{>Bn^xfBG*9lNfdNC#}5oKJjzDez*cQdmB}@KaOC>(@-+zdgLAX8y-sw zF9NLRNyGPFV*xKc_kbdXM>w4n?(N~k72^&(`59scjKq#)5KUhM5~8Yc{XtJub6>jQ zWSN*5wu;Sio{RJRld9g?Hx9C6qL*`L67&f(*P5J+&P67iTK&X9s=U0Hu7~dC1b0lR z0D8^B`g#92TK%24S?hWrLSp@@@3-z8R!3~}_eC#b|8pAT=3Qc(g^iN6v{qaxcr68H4s6;XH;o&E=o9*|P`6d8z z;oA38X9dr7ZY~Ex?2A(zcl7r67;(ld1{=RRMDGmns8+RS#OLs&RVv;&O#bPZnv{NW-#9`h?9=IunpEKv1i2e9J zjnw4lcDy<~j4P@B5a@gBQz}bwd$1=C&KVxo#;lLS7oYMG>vCU<70_yx$ToVGw7n9U z0UmhtdKC}9X!A;+crG@d@CG|%%Bm{qq0*aAGfWiVb!Ignh-<1|b?2~>Xi8Mm?*C{p zRDXO-)HUCUeSg0g-LRhTFWEl2)VB08Wb&?w(b$xR%Y$EI;+>pMSCD0ce+Ql%1 z+HgU8Q_6M?``{H6YJ zkDf;W)_f$0^hw=zbJA;vmS^k85erJ>3QPQma&x@+_-xYE+F?T(IP!^ zO}|;R%$*vf5t8?e^v~>S`6u2NdTJr+MQ#ar;b=%0CXl7#+sH_}(DL@{m$;w--qoI< zcrW_NFs~sxJAU>dKOAZp!nPhuXxBa-z)pYeBI^MoyNeJ#EwPZ zRxBJq@L)^e;~&Sa4d(`{5&r#`zE)|oP;bd1sT$!>Un6w=@%z-AeY8QyJ~n%lb2CJoge zG|Ua+FX_!$q&G4`2xzF*Q4HsY$BwKC=m$ACnq`O7zmCE~*Y+ zedHTx)I(W$7T^AO@2iTc-T7wihBW&6tk(_x8O~Lf!m4;SOOIWCox6nXY@jzYtVOQ) z`TE{QQ`Sz0gDp%iW|fL#_VBE2W8p)Z^ViH^6+IJt@zuI39j*bm0%oACurLI=D>@R+ zh{+sxPy~Ii0?|1%*KYIAL|Iz{mFeAUtcXTVI&mUb2Us%uG)^MzB#UaMN=C^_fF#cY zi$$QZ0y0a&`;kDwQh<%i*$1jKCj28( zI3lA@r@bcviz9U>7}&5MNn7bvu^XZ<>I$7Y4B_fp`x>!0qFy2mGVy2n*4UjWf=-Xw zvcl%T`iXPwtfeL#^tlhw@D^hDxC-Dl_RpNupi) zG{G85p0e?*P5xFJqq8xf6e3~=0Wr{Ww}+)wp-_r|&Sf6qbDLdE8zeN5#*TtTd__-7 ztcTxrvvrLx$m~<}qZxH`W%P1#Ux^RdBjZ#bc*m)Ea=cVu?_!z4k2kN`2$8-!AkI26 zBf_59y|Hh>YPb`7W0_hijTr_P<*W3GQ>1!vqXy4Fh>51A$4-W-fQ_jM5JkR%%~2iP ze+tAiK0UlOPd1LoLW(I=cN^2y4fLTG^hJqN1br;U9rvO+>-){V^s*CZC-HPK0ua^7H_i_N-NH zy;ODi>~8r=m|vpvskMlDAZ_7LA#&Cmr-i8Ek8_V;AgKFt*T02;i=A$)Jl9Rd6Bn9+ zAgWs#PS@<>t3>oVlV5#^-9<{PG6&4_*0poznM_fI)&?bEphsk+lHnP*I~{1ZTY2dd zzR2*a$xgS(;CKx(wB?sq6<%O7?>PQqDrbAnEKj0@0m{8#<;7H}$ zJWip7b7Kw#eD6%qj$m&VuW*(fgD}8VnbPEMJ@zUeG1WHJ=%aBvLo zDx}+Q$E;C)33wH4`M1DZ@3K=JEot>`-B%Ov>_iV&#CYBqQCu52Hc09$7>$mg=qb`L z?w2h?vQcsnQ4J><)j8WP8d>66ma!O`H{G&g4>Q?K7-%@#h2r)H^B_{O(~V$9 zFzNj+`my}2=}XFiT#fzry!L?QR1-@N7jJWy++(A6PzTHEK##i@sInd%vPsdt?HVPD zrO(dfbmXQZys74ECJvO*1U$PM_)X4|_G;4Z-YD66I+;tnOIV*F@L2Cg9L9W!VA#3Y zNu!l^l?6C^yg^@|=m@p9k>Le!Vv+C}Rc4MN$6tN|wI1q6qQ}-{5 zQ1^Xhd^JH?ZLuG^o-+_4BG!lHKg+%QlFq^Gc9&Q(975>+3NuNp%QQPsp=4%GcIpMS z%Pt2SIZeoVK@% z>)nQMuBrKWy}MBBkV_HrmaK|VyoJl^e;fV7?Z!*MIWaK8LdyNIdn+~k-c^~V@c!10 zS=#nIN7Ge7JhKALSfG{Ux}3JoJ>}vehZPl)3ZH2S&? z{acR3^v3eCUVNIFf`JH-N-Lvp=Lhf^C1Zj)Vy^INb0nV){Y?#d*H%(*_w8V4IQu+C z3jbUL_u`AQVW|af_FDtmO}JbXtGLE32S2&S?;J+|ZQ}{5w$)kX^D1^e9P73OcL#3L zSc3H~olMf8{2|Vr{MWc;b$<8LQ)p;tuK*lrKmJTr_blQa)p1Jt2JdNSPYw%QUrRja z&o;emBGk)I+R1c@Um6CA_*8Y|gp2(4$~bs&`9F_z1n?>8=yq}PYx08;nd?EF+t)b% zu=AZpb$QhJ);RoXp;dL(gWrE(R+SS|srI(re+liL9x8F;1XEJqXW$np0_ID&7D_5N zKaZvsB^bQ31>K7}gn`yzQI+zXS3^I{#8pz^WspMq2rYtzL#@ zu>keKA8dJfuHx%t$sr5maBH#CAMEP*-CfP`yLgG3blmaK5{ntKINOQH0X}*Gm0GW< zfua?m&{1!RE=?;FCV`k*PlNdiEX;;-k4Jv5FQQYM(U^&?tq+AwQX}Twz`)RN-C_p> zUz<}3I*UJjW8FRZjv{kAm1Ulp+0>w?3O-UjBLDaq*Fb2pI{9_A(8$`X&`c`{w*FfF zqu56o;P+Vd3RD`zy=_5@Zhos)o9ZeHJ||)PmC`3?0c9II*kbRabFEevsdh?Ep;*!6 z7_1wVMQNx`N=#4ceao8cRd)%v+NsIC{Df=6MloR4uv?Rl*cchj(r@-HMKjOTodTEr zR@jn}PO7d0EFwNpA(iSFvq-VcX<)8M#_RZ^IOJ^G`#F1O1gPI0}m#26=dGs4S;HAn+7 z#V}pco2)aw^w+_Z;r^lL>#Xv^{w^A)HoPQb#GYo4NgQ*@FXaSfA?zhl22_xPWZ{ot zi8W%OH&AX;%?sbi$qtxy+3_@Y0SZ0%1}4$R@j{9J^b z$(&MC;lw*Blw#~d45-6Q2o2mQ!}do~>w5M$Wz!a4rU*NO;U^LY`gXi1MP)ocB+3^jP!|ujo9^xLf<( zHIBoaMPo#-_gQx2n5kWhwylbuZ?78nqVl%HiN}+REhFT6%r_CfHi%37whQ!2=9rDP90mAY6bTs#n$aFh#qrF%Xw^})x$(Nh0t56%q z*IVceX@M_71zn+{k9o+`=aLG+yHX3H91=B100>nArAgtrCi-$}gkCqi@cO97@&f`$?sES7$8}_7MIg_E}-A_i*8gM`qF- zYA0Bm%@?1&d=|I?n0%{*3fw2N&QuCG$U9G`zt8pr6szL6e5Lm{2wI+uqLSYExVrd| zZN^acwCpU}bE99131l+JELJS0U{^yq2t|0YZtep0NNl|Qm5N=z<{vRsMVas^X&Wvz z_!w_tDq$0VOF7KE3PDgHFoRx)$Qe~kwfB^=99yY zjqFxl;ei3G>%66*hNB|l2!0M{om{wbl>HzXRjv`d<uyPJm$#FK%syAIGpF9mt)9aI!@I91wD6?5DCB(MzllaBG5ROa*uzVQHw}81gIEnlG(g;!7h}{ zE0oDiK!e1E7addI=Dm`eQ!)2zvj0I|XeMGTzIgsoBX%2{80eaf5ftLxc~JIob-g>M z5}Jqi9&3<=WPq10e5x;{#9o0WlpNgk2Okng=oZ{bP!1yIVCumY_N?9d*zzkq`H6 z8Z$OqrZ?9G-gZ)@QxWTAJsD!#aH<}Ry{@J+G@4{(vEe^K-q1u*l|9g2+9TiRhYj`$ zJLmG#SCSLqX((6)CAq^5$j-A>eXhd#Bt{=9xDkEv$hn4ZZRVhSf={JPQ#cl{H!gP- zaNTIc8Hq*%g-I~RzzAQ6Ce5;x_GzW=i=uPgeeBQJieN=|dbS&htJa7mtr+imeZhd^ROCEr!)S}PPmkrd zD;18N

v@mrkW;GAbJQ6=Piv&m4q_Pg7s}ok20=;_FXkj+pnPg*&MR zrP@W*DWZ5W*;27Tc6KXsZ#*9BPT&^G1c&K z)L?RhLKN(eL?KN-25m(?@tbdTvaWtPk$_aQLToZ)UJ6DQaF_9QC^C=HfAQPH^-?*?YKHglW@yswq{u{7r#{9Ataom{%Gi+@T%W8=xzbG& z6QSsGG9|49T-3gHuddTC1K>WM>k}c>TpdvV$BFh19Y#wpazXGe?P7y!!*nG=V)i9d z>3^W1xTlJ0aYy{g>$rOQwz{;%r-7VBO`TA&rg0Zveeh_JBflrrGL)-N~y;66gHg(^?wtE5*Vo7#+6f#a#k#77Aw zL?Dm|M+^KM|3mP^VHO-ew(DNgA*d&c407RJg#}h@&XtP4biki>FDEV-;J-P~tT$5d z6AJGF1v#x}zhQ-M zLl7+_#X+OUSrnymx;qi6fa5bOQ-l(zi18E|3R`J2?ol*0Ch9cBL0fq*_E;O7{_OO8 z9Y!yxi9rc~TMSb}Z^bUHx4%E`Py-_jE2nq`Zb@w0F)i4l6IUZ{G7!hmDu{e$p@{Bb z(cmh|XN#kr?=Wtv+60A!^Mq1uVr-!|V9kAkz;A?h&8vJbiHib+F`90IVZBLVndN6D%E(Psf!ir`{J#vMNn%ZM$NTm67cZ(>8&9b^t*|-T4gOY_vuhw zNhE4ea+SxG$l!>Fvt(mqszq9$^g2tWZbI7i&&|_glE9~lG{k(Dzz;g90AFt*PXBd> zc$v$#;o^Jup0UJs&JjIcn|UX>{(WbI0{gG2ae5o}*$8C6&U{TWXq^tv44NlI9q%V- zerC$9GPQ5q5-rIkd9IC90DeOk%AgFXb5j}CDn#A`j@lXg3WKVp?9VfY4v`wt9k5me z?>A|x4ja2TaxeVQQ>p5W~?tP@!IW^o2n=}aM zG`h4v>4^@9t}h3*HT!}%4S-57=m&E!}7r9qOtnJF} zVtzYE))3

&WW69fGW6Ahe3_=O(W-WH9?-%EE(?@q*f0k7($Tti(oQlV<3;Ps4Bv z|5*uA@~#g1Oa<{t*qZX+VFK)dy0GBGamrx^8RH`hD%0Y#44%E8+gZ-* z$YB(mE#|%nY34J6SH9nsS6$^Y9a0?>+n(*^yw@>$BL}w&P0P54QGj4dTci*1?zZ2v zPz*3^vkq;#@j?sSFcC6~CX5qH>~utGULPBRK>;t%(_9d=Nh8k1-gs{{e2Q zA$Ncnj`=M~_V&H|<9xf+)k)EgsZ3Dy=XUPUQmxlUZ1QEly!P>r&)1xbxih_=B-P<^uF?H)chaTTfvarO zx&nqQ+U%$~$KW8l&ss%UV(s(liobE~PjV58`KOq=JtpfA^ARnlozK<_NzQ#vmTrGm zqwD33)>R&qzqt_$TM&}$aMb;x?jDnN^jyTybh=~Vst#`%h~`Ma73GLQE8guhKMH&t zx7e7L^V0FyN0D%>Wc zL2y;&rVXQ8LpUPX)hR6@KZ<>cW{5C*IJU>IXNvnrc{XhgS!e1GT~fJlA`U)ihO>{1eQMSS-R-7B63HV50~riQWmD~uko^l4|%irTlb4&3&i zcf#`&XXEg33SdcRd|Icx$n*ChylyRD4jUL_uuRK^Of#d;baiNMh{%U2WQ>9LVvY2=#Pm%JEX%{sWJ)B5a5N$-0P9$FlF)$hys51t{H>PhdP zfdBzqm<{9D2E-x^qBoCk)XhD!L$=LCBh0NMmllBTI*tIeU_9AuTb{{V-^1+I(!vFB z{H?+IDsPrp;^dc^oUH8Q%<<{Uu}%0I0TSc=faR>Us*+zc+do+?oWJQi z)ei}GzWefj6$%p2WKsb<3~z|zY5eBy+dT^gKyOsD4CS~w3vGcwO|^9B^M>%_Km?P{ z_sor@Q?He9meOmf{uYsBFWoIQUdb$ncy$&TCkv=hSFm4X~pyW=*v5OfXSqFz3$j9m-zYO;6&mp{ANjuXQB7mYf?`qDa+ZA)M z$vi9#OY6K_AJgEY$-H|NVrf#K7X#FOTI1jR3Dg?TL?+4Xj^1KX01Lm{7=Uq1sDC>} zS|`HgEui*F0g#N>@Z{^AtQn^9+*#BdO0!en;B&4%-CQiNvEkBuuO1*c%>%Po<~(Oe zY4iYv+HCUw0rl^$wbV1=<>uS??^aI>4kr;t(lzgnf+VzQ1$;uFtxT z9nN1TLH=|G5v~!>YE?*nX9>-)hBeV#X%`rie0w)`1uqkz|JvOKFVY@g|VewfdUhZgZQE?ZjM$969} z@O;O*K}uz5&0zU>mSBlhV@Q>Q>>1=r3rtl62wvP)_NsJM@oq#m)5e+{!Q!b4t_3^9 z^c8OjZ22XzoCYKcCSi)X`FalTl(4?Gi|2|0LGP{IS%4(AE%A4}F8F+wHrv&9lMCou zFDyp$Q)3S?po}ALYSLDjJ-i4!^*e1i_joJrSht4EBwK#h!<@TMyP6He^av|>ZlmM` zg@z2bcl?d=MtPi`^t*pfQz7D_eEJNxH~dxdhv%*fEc3Xt&y&?Du`OtHwuK?&I>dSx zar(b7kk)tlF!3ZVdet!7piuxdT`?EO_jVy25|8wF{L}H`e;!<80>TGCZ}xY1UjJ|p zb`?Izc$&MKV7EvElM7KZ!&29aKnKvYyP2Dz6<#+wJi9{M5|;hYT-3DctrObE};_ZuL-HW2I7la*3VU zi4ofU?bk?r!*D>r1v`Uhy3Fp)#DU6HX}o)lI;)eC!&Q3x&4t15fe}S8*@e=#YLaj6 zu6?m|J&mou)kC)WJDFpb1eCJ=EGiA;LuH|o-u0C5haf_Jpi{Wi-K%t}%wTlG7cKg@ zLe>AL-0~+u5ki49L0Jt6`P{QlTQ7TmF*g7@XlBI57Yd$!>fA+Z;U6PRj@UnM%@25+ zyQ*T}i(a(VOL%kY03#;9$90IWmybc(f7^BeFkf6nj*|zD2cXi={RnC|kPFD0ZTn6O za_Sdee>`fLSi4>N6;~MjkeudPR?+X%a{c_9(y;#t{G{RdjVn(;u*1-k{5;1d;Y{#p zhexf1Xf1UD%49?dQ4vYXhr`W18#+NzAY)?9veXdhSE@c+luzNJlH~kw;}1RmbM+A7 zZKuEUqJgEj3(BQZrVW4`y<)X)w23Pz^CF~Xpb7JlIkS<7v3bN1GaRsK9_h&e)%Pde za98s?XSZe3R~>Q}Eg<&l@Grz|MJR51C~n~)AG<+T>Fn3aTlkC7F$JpngS9ODz44Bo zgGMzK?n_}4aLN;lcMc>+#M6|71^4L@I=o#|=WhIodtont!lJfz5q}7zD)rcKHP0r} zH%93C-?7a@kzRomZ6Rcb71}jFP(dp)_mA-h0yYpgqf?$7$Nw#*v!U-s9Rc7+!eafm z#Lm0_{L5loxL{zB{!@boAB**$l05&uBO&b)neGY$tLYV-tQb#qY8A|N8`5u4?@476Ps2$@2XS~p;n+u468QI39iWsE6Tv%Ug4K$56~T2;S!gWpGYorDYrlB(xVR? z&mClrBwVm)%KC7_!eIR$vi>rvjwb3FMR9j`3GVIzg1fuByKgMGOM(TL;O-J&DdV-%x(0_)$pj9tgo zbgIl#PDef%Y63()AzERdlFC#OhJe_4d)Ex(th>L+t%y{y5tkIy`0Gzu`Ta^;YNIp3+ z&7}q&3v0ipDZcHrh!0U{GZ0$45Av7mCORkRe^KX3RR59yfP}c3`m%XY`htujU*Bb0 zxGopNv#VKrB61~2ZemL~l*hjwk3?f!CaqTN>|s9t`JsaWL3=up=buo?jp8%`P5e%O z>mj;LfUsSweWY5fL6Y*qwLQUk>Vv?4qGr+QLDZiVLjN~1{{IE3KGn(oH%5X#ZTWxc zp9Ozvu>JqsGp+zMbz#8782>s7B_kb$^_~&V0{Dm3hl4Q4ZlhU`W|Is};Wvt6_)-r8 zQE{FyW?_W|labE~{J&mZ*TTjBf3GEgIna_(|07TZ`za!a$@ag4V>XFoXP@N%2vq$i zUiE3v=jfpMZ@7K)jDC2si}n8wJB?8l%?IA8K~RgywIMeYb>3iDkww9{L>}Y%u3{Yh zpa+*3%}f5s2c+5z6XsG!`O)h0mlzbV^#|awIA3b}{s-XV^5?%{_>d>2-NmkfjvZ$L zeA2WmWActP`1_*&*8zRuR8rSkr^ePtZ)`B0P-m4bwl!6OQOl_Ns!#D;R^jbz6P(vc zCw)EB1@?;bJYP#7>>7c;Bmwa32w%_@4tlY%v86Th_sCn$3FcOXQ;NoX&ej6Io24Y+ z)v(Al{42|;JC?13493z*t!kVF!dw_GqIE8_@XPE;h9V7EHg$fo?WA>@D-5Lwy~K2& zlvSsgTPXsKeV0ypOmLBh2_2|Tg?-les;&Hs;(%+XnR`WJ)Nl+! ziOo&M3T5%n#M(|{mN#%K4M|x_C1qWNueu`xwqAF#Fxr!=k)j;6aB}QuS&WUyM6hjM zc=&AJ{*i%Vd~Hr~6A~LSCyq;XxE9&BbbNmEIU5V6H4AsAD^|=O%jhs}6nvn=Te&Gw zD@Tf@0<*)qqfdKh$5ngb!EuW3At zb<38r!fj=NcOFu}3$h`mxt0%`%QN%rky?H-1ygc5ieBC1CHT2tUbCZ$l$NWUOP#it zld+Pq!N@B~+x%t0|8jyKQheo`xqtFaP=*kB_rr5u(MvX$O>K(zJtL@>2gaqL_l0U1 z4TPQYG=3i|%;9uN;HxYVRAK()^(tq_wuCgspDAYgcD@oXDkM?zvyvBhd&To^ftJ_q2wM-@+NzdOk zBsR#rg<7VUbrv+qF(_tKmz^)6N$l&_8w@7w#GjiQI_o4mDRm92P<392m6e^3Dye646IZOz zA3G|M`SS`vEw&CDkh*yKzeNczD(_f`mjz}$X7TI(#Ip{WPt4u3g+46ybs9E*>Fe}x z@m;=lBMn`)`|P;S3_dkri+M|{HNY?mReCOWV4E%1;{;?vUwKln*JW#vN1tn?^6{Ei`kF}@`U zZR_sH<2|er%wBnKH7dw~*!*_xZ)HFXsjoltbqb2j53LUwmw5F)*FM;`=6~)dY}_K2 zK$<#43FlYUE%N4ct2dRTka=n@@=Safb_$T?bJ-KK<+WqC7tEs2vy0_?IDg(R0bg?6>m@?)$x8vq4NKzHr-IUv@2`2DlVj>ub9MZs|YdIsJ!I z1cz*W3;;In^6`?7ckMATYuHTIX2gq|lbhn_nvUOeA>JF8=aG8&Yj1xo3;WccsaK~< zprK`z)mZ9c`I9E-JVFL&=HTaiM1MLWTE8~m)@^3vr{iK4wac1_tI%~}f15KP+(!LL z;#=KG0?Titwwy7Ak01&k{Gil|w4j9^GQN*nw!I3!)RpGtKj!-UiyAQNfv_osUDz}O zGQ!%vWr6rCh*MwIq5s^yV*>dDF@YW`UJf41YS z_<-n(JCghit2jtw38Cx9BuyNyJ=t-KF5RVcI-d`R6AKu&CF%d}Ll`#*d3}h;;SZoZ z@9rI?s!^XZ`GCSk=@5*o6F#F04-!cIetvtT^K6bTMa%X!4+&)#k^iB>P<)q=*|9fe zBGM%s0UBIOgmFevI~Sa#zIif2g9&sh}aU*;!UzzHYmH!I^qi z>PYbQi8g%PF8iR2fdZiYhkud>!|gU`qK7VudN?j znT)}Q|D||JU|g=_m;HGRaWp6ZCR!rNej{U@=%Wv{7DuiDmV1Awr%`BX#wA{&)|?_E zZ>#83@?Op@oVu;W_b%9a-)4ds&spaFb;g)cAGsl4B&lW*k7Gk5*( zJE-^X?$2bvf=Iy1wlxX(My6X;TLaBmQAOO=LVa>g`PL8PnVYCqVJFUMWmmf z^V|_U6xp@;P7&Hx+?S1)FM_v^iMF{hFTk|7Pg(YR#G^>Zy2^!e6W)~;(fj9_GKMS- zWGIVucW5}=02Q>W-3~utcGT7jEo+F-zolU)HNDiBVh&~E%Ia9j02XA%Mh+P$30`91 zN{Otm^6>KG7<09gL(5Lb!t4Qt$9_W|h5n+O14963vG zu3VB^rK_0k)4`W|Zr@|yxI@!ZIrpT;$z>khdx^AARH3uT-+DXDpHhl{9znJ+4zUy| z0!75A5rs+Xg)^=Sz>8rllyQ+;AU9G-RQ(2*>ml#&IvCxo@)1WK!0&BuISc;*+n(*i zX(FiQU9{PWrJ(h_thIzSbkkh=e=sef;S1~tV_*4A$A1ARzyWD(G{5X~52m9(pW$l4 zp*u=FW*q{8e2}tkNv4D4iQp>>_=Ht>#79t_qzS_B|yv_$sm%Cl7KTzRkP*N|?TkI~i?zJi*3Xzd&> z2TFxE_-Qq!SI5wZKhq{E8G(_B*L%{~90!dBirk~ph2?RTm2)8#S%ddG< zj~Lh^cyX7Q$jk|8U|f_adpWpI} zx3yko@oHU{t){SNM#%E=eW(minAgAJ(~gPJGFz1{cVxt~OBPv5hni41=@7Za^A+vl zUF$6w?L0YDgivDV6w%&00~3)yNlQl?5_18Cc!hjl@{21x{`J`M754Uc6a72;E-C&w zB`$re3azh{)^a6A33T|f0`zQs5s6VNsyaaHSrj=O`WKA&zVlcNY{r)D3r)%6lja<* zT*Q=+EV_as+!1m&;j+$l@k=0OtkK{*mk3m+2QE(j2t2;N-XoO zH#sjm{t2YRkXT#+)b6kDCR4)yUZ*~uL=XRA=-IV(=6(uWw!qaD1ixB0LDcWX=95o%R{H2-DMTSn{Q0V zq|Rhq{)YDM0gcYmtKS84>Y?79&sv z-4RPtskQGJ+)SJ)+T$^7m<}2L0dRN-8Y`agT%P^8GCxR)Siqww^icONVCD3%7p%LO zZs88+Fd;q!y-jzM;lxYewz3OzrHO>E4&K%-JWgPqzuIyCG*fR%aJwGX4|!-mwB6Dn z-|D%vYGM2oHGpyXlWC=7b^{IT(wT21WEhd`H(6@Ymw4|T<#gBQ&s-eZwr=7Fnq-ZE zfWaF2k*D1&l+ML6X63F!sNMFn-rCYKb&4V-Th^rT{rq?C%y~L1n#b4pTrIT9;!@4= zZU1?@6HGo+HrF13DpCQw=!QLFA{E3%pQstfiR!WAf zEIH#3WY@!<=k;~I1gf+gQWms%xzEx5~F z1Y?hknPE?ICVKaz5gE($yJuGJesWRtX0PK1Bft zV^N2b)I>+`5l6#)iMtOH|cW;9N>P z?)u_Ri}&Xiwfx9ja(>5Zo-fnO=Q@>~0CE|y zdfWVh+8I);pG_H??Vo)A(7ThpXnCR$K0RcbJ4-O$m)ijdmzkQ-rPX6$27Y;EQ$F4@QVHaitB(_zc)0#xe&|z64 z`OLb|thB$`5lP1`;up!3l~%)=Z)uF%hq0JyHcNi0x__E2;g3d`;sRr&At%g`HnD>~ zp71}u>-tPcVihE!LErHxZ|7=;KWk`XRMq!lkghKY$QY(rjvCF$%7K42@stZDjKZuqw!UN zyx?_6f&Ay5Gg|{u>q_Z*PX38+(x7u^pG0o>om9MX zD8++vo)%g~&Sf<-)AU#Mh~z{@4hhnu^i@l$Cc)sd4O+dk3mgO5BKVRodc~;0MrosUnwhVi= z>3e5Uv)kJ2|8p^V_+>Znr(E<>thUI^6XYB7s{2OF>VWAz(0aM&YYL`%}A+KaqPyeVsdE=izzY zh*S702m{;;7wgzS~rp)wTh_RhfzDCqye)0c@ zvx}nA_fn=(_xdnbfO4|07_Jyw%z^S3;9S$!`8QabwFGT*?L>NnTGF8hwcZN4_r?XX zxmMH|#A@fZ5H22>fjh5Q`en7OTC`wV#fI}$n@fwI=g-fuwVj#X@#mGrPre=^y;Y>x zv@oA`TFg*w7v_<=rq}Sqb`8ywZl7;5Oi&fJ##`IE2$3?=JwN7&WW)Q0VX@jw;OZh~ zut^b)>aS)*B{O}lu0v}D#FxyXnQ0kQv55us#3n~K|{i^s`GvKugCv6=7 z&rI#kXe`pygyX8N)B3+yfSFP*{_Gmh7a`z^aZP07IRG514I=CkQ2pgcSKn zAJ%55jkGzGutizEh*gNNnY%>;3XA}*K2_bZiPAuS@o9L-P@D?uK+nojq@90I(n?Uo z9Nci|SGS<4YnxRO7kf4BkEv4=1Dg4MOvkIQHU2QuL>p!6}e2Ro+M=$lK2r};O>_vzSnjCWY6B1=uvU$ zuy6y85J|)T=?a9+H)4^3N}ZRx#gJunNEOkmBAP>-RV^3o1ii3wK->#4P7YQDe6}T` zt#%GvVaQcmx3K}83eiu}# zU{4gs{1?2Eg^2ZPWtA_X?q;7^x{!zPs>?U1f}jEg2wek{I^Splf~oo3(Ln%B4U~Q12Z%@L_QoFTUO}#eXq4 zwuot4kp7AF3MV)zMHWYAJlhwE{yY-_GDlR(Fm*@{;4v~kEC1W#=C=P#sYR0TSC08i zK-rW&1Fq9ZoI}^~JU+ora!5YgGa{>a2u@>ekkAY+UBvP5WvYFy#e6mS{85P;6r=}lcBcBM5{--i-Q71BnQgfMG?f%4Pe zeJP7x8VUFBqjpa*An|7eONnEE=@b)H7B*|mF2CbO1vLGrhVa7OcE&j8##SxPON7p2+#NVn8@&w_=m~q#777dGyGsf z^)dBAMv>%WnRw^;Qoy4qrl+{oE&YUJt($Js}bU zTs0D<00siV!0?~WP@e2Sa+7eh&4GzpQbeF|WCrll`J&)Y=VdJkl5YQ+VR|i?GOI3d zhmBVjWsA!g6oR_cI4~&wp+MTJF{P>oW|T%ZuI5+UQniWxQkO6j#n9IXgw*sI1=W}K zeK*AkI~OOsj>kC$w;Fui0Iu4dcV|~yvQD{2w>a1n|HLGKod6SH|tVY$!!6CE_aTCr6 zHEL^xV4c51I!OFf%+5N}t)so4IgYv0kOA776Bn3Y*`1sj>cL*58R=i#^uN! zwu1nwQK24l3iGa>Ldx<(B%eLBne5|A=N1DPtsSg2w!d%((ju_sO%2S~s(@ZvrnH}x z=I;*0%fKFM?^thg==csw(>~s8@rL?{qr`uvrzdQLZMORoyq7>VKC9Eq!q?9{-!b?b zsV)DBynnrMeXJ3uqu&^C$=Wr0ZVDtY;osHZxg-=r5G|&wnC$+Nc>1aSNrTYJ)!!RL zGZ5G02dxyeC5s=}#RY{=`Pb?hnfzb$;3ZjgUzLmKOW^Bi3#u4DsgTmNi@&JWcY~Vp zoAia}#V1-oHb|Hk%=xs)-~4b#0ob^+R@F>)>VwHvKHsUOK}tjn)2X`uM%KK~2}rSP zyMgKRU!srX&Jc40fO)C0XkrIp(3aH-xUF0(qDKkIFk%xEFT#DfehH{HoW0j@PIEGdcJ({kQeyJZBD_)tC_OtY3`JO-IEv=k=! z15H#Zm_O!cT`6(5iVH5}rh1K{!Y_BPH$gr#TjGH~ji5ryWBnOW{e}!{39oqDQsCKW zMRcJe_1jftf_ee(1Np2-Ok!Kr)1D<<5i2ly40K<=yAD8b3I_^ zIvX&-NqdjOZRye@AR)v%g`l55x%&FtS`~y|j@F-jQ(B36M}xL@jOEXlTaZo$pU){FUH}^}3Hpd1|o)`Bz zxVJ;Wp%2uaAXvkx3?9TSHi3zl22`)GZMDwTA0pEr~ntQl0pl45sd2Ji#d3D zoG{k*>12Zp7m1I9Zg{mgdX-{`4d#% z^Wy^D{iCOqz`T7g1Hn3orRo7+bImFmyX;a%%`gH9At${^mYhhp*DDs_#aY!! zPW-YQ%5FVFH}2uv-6(lp(qHelsdUy?KpT3t`#qD?N6dAM2lrdO^7l3my|OzjQYFWC>J>PVaQo|4}bpWC`3S&J4y!S8B;Ba(OWPx^EWl) z>Oj_qM0d6HH%SdP=iOanE4gQp0W-ql2K(MJ`Es|P_YRnF#w$kQ(qv3mw{3STw*u-L zKvGhEzO;PvaR;otH0@{vNs*v!a&+F0fp{P(P&sq3$x3EQLYm7YMfR^a#&?p~Ri|Y6 zoa`SMK=Si|rfVrOvb&Xx3W@zd)DnIl0qWQj$K)Td=JN0#duVvR*&wIT2S6`!yv6ue z_6dEItD2pfUJV}#`p@H`b?vQxND|=CAnIs{Hb}9TW9fb)m)oDDNVo;oR~7f$y%UUI z>i(nb5%t3X?*PqlbnbBC=Rf~U2|m6^&x_T)NcJi$6b|jIkA6kdv$pW? z>)!7Ia=j>HSWu7*^Aa*(`!!s7pRJ7Ql}stkfCwxy|FVCGh}-#}Uww3EmD5%DemmX#c1{_GIw(haP+3%Z@%g*zE$P|3lCXAa-GOO+ppt!7axJro?DWN|(G+Shi^;!pX0_?-J>}?YWk&G_wE0Mi2yS>= z@DS@oXI})PBXc{vNXO&hkBh$DhaUgeox18TY^3TjgW-Pm4jUyZc`O@|qTUS6)r0<+ z%~Kd%L?M3zg}o+fdHU92E*pZE6Bgav5)iHJ>8lzD6tzHhhjBoOuYd3p8bc(4+oZq7 ztX-2SJ@qh8Z8vDGqtu%2DjE%dcyv05`;MfXDZ=`bVg?=GpY7YoNr8|Ndl~gVV>df; z&Tpb;)3Lv5edz{{ZIu%DDO~#?Ve;J1LY$k3t9Mi);gbS2-pdD?mXA}CNIEc%!~$cT zEljP(S1wl_*MW+T-gSbLd$6GGYr(&>@1Fewmm>20(T-JRq_jtl&U2f?(C&Lr<6kK? zu#5X=#ly)|>w&=Qp!+G_=9<&^T`S%tOfJP2c3mCoaFJ+NHUuZ!TZwj*Bs=n2u{7@O zm_kIOLGdqrv7tsr|JqM(#jt--c6+gmw=(3@R;h8?3VY?)cH zdQW}AMt?-y4zb{Lf;M0;(V>hx>S%FxCmkZllo%H5-gMo~v*t}C1YB@|zbgHbOX$!R zUp=3*wrRA#R+Y}0$APQ}iH0dor?bDGYdCj@L8;q%W#??X2Y?p2I6602CTg$Kx~ zp#A8O)Q)6anxzVj7_g-cW1R_aj-UBQgZ^H5?1_v(xqb?O*PbLMPi;otGy=b4fVAd} z3W%FCVJhh=;C>;>!t>6w*52WTP<4}nmof&vsgP7&KM5{=_G*MOezn=KGa^trFa3rD z=FGn(q>aT>H5ECOI6od32u6Z4peEqpqcSQCt5+o#!^YOQ^z`xNoMYc$^e6wP(TD6; zkGSjfefD(}3MWTA&Y^XlAZ(XKxTbq{{xNrTenH)JjkEDsbt0KUuV1UXuxWq{fhsN{ zhwB(b8IJ1*)2IiEo^hfO#P7G1zfH$E!eS-d4A1-JLI>V@GV54Q7hcC(Fnyn1(Kp8wQ+@Lk-q{Llie0UAm-mAI_^ zu#^=~u+1^Rj#+BZJyMbh4Af<5ESnn9i;O1)_?zKb(d=+~mhgO8t;9BOvAJ zQc+^rJ(?2%aS8d0CB9YO!+Z+0O*LP4<0}|T{EjBag=4}wBe4h3{g~XFN~pov2%Tl; zpu}QDPJapfhhQV^IS8LQQ*Kc{fVwYg0)^G-e1)b&1N5n1mibxBE^HC2EVN^(XP{^ae?9=lHeYY%nzaZGQTmo-30{n(H#zH7Z0$tzFt@&Z!*1FLO^k zOa9x5cW7;uHz%|m>n10l3V_#~VYEBHO~Y|Tz1 zQ0~-3N995cq}`u7*SP)3jiQsL=d$V${=PC2b8ODv(?Z1C9b^=yu^ zh<;0gnuogOJZ`sT9CLOF>d`M45W+XA4Y#chA!?4slOaao;^J#O9CEf+o4^}EJ&*%U zynQd@5!|x>iR=c_;y)HxDkk8d+Kem?GlIOF=}ToYDbzxGazL5nS&xBE#C`3T`@4#J zykQrJFL`V1XX3n968dnr^=kfuGo}4&mM=a~2o~u0?>uq+Y}=H*+PQ+Tv~VLm-nF<) zWXX+!8tJ{==40l2Yn;8F}RxO(iv;dw6=_|PaA)SW$8g1diZy{eWP5dTR0 z-cdi7ugukmsqW%X97kd<^XHe_DI^xcQOPz3PF%3Ux<3Td=C&vP7#j`u*66#ODCw}Q z_f`3wJ~}=Z73*!UthyyUJ3z16`HD0$PM|`yKv}9oBcWKp$w}^KG569p!7n+y0veni zj#fLbD^Dcie$=R8)ZWWBhKO5-zstAmbn>ua9jUFc`z9`?6xu@S;jYm34`#OOgxte! zWA@xP4G~sjat8SfjW4!G21`+l(Msn|R1_7Xjr}u0Z>K6-pJa(Poar)Lm!Upo!RZ_@ zP>>ec^T&?0upC(HC7B_DsMNSjZJ7^|R1T9NPQg0Fdy90aa9#Rkm2M2*CwW|~n*+%K zN`yb?j8`B3*>VzYtO@nHaID|-lTMa`>+{G)CwWb z)-+EfDRs^+rFU2~VDFq{N3l&?h_dn%%?AmcS_HOFb|tSmu;|@**sK&VDk)$EbqfE5 z_pQLF>rgeo1&d-$P=j7dKUNz0K{C+PY4s-J*n0epEN5I^{DmxEFSRszH#5RV{h|gx z(pO8^*v&S2ur6m7ua36sJ`@#E+JCQDL^^|}NBCqc)vn%O3ni}F$~IdnML9}cZQrdz z9}+|

g+PJ$$)uSOGprfb0sBnb$yH=pR{=S_lXX3`#;y5lW_*t? zz<@#(kg(sln-(zIaGfT5YyCQU&_dS8r#(KZ`;b4IK`AaoU`pT@ZnHtlWjl?&DICRI z+ytpzTe9vX=lLXm*7=oivsWbWF#&0_iCRgT_d$X#>TjEBr-C#7-+#@=qwQZ2T3X+a zE|}%aOZKW^{D?)5CpzBGakws(})=mIY8_m2Sr$V)~TT8jHihZ9rcD1m_&og_fYh!>EF=! zY?`tCx4}kSuRd#*QrW*$FG?A((NH#@KZzy%FVEx~NQjhM`&1)E`zdq71n7BNndh_? zEE4tfK1JNnDOf=j!PFgNtn}uk_tu zM}(!Rn1^Ax5XIqs)7)7#S(vhhKc%p&itoSGbo@Kn(w8mgg3HUhlD^9~qE>G84)(n5(lKFI zGC?}wL=(q|^rJWRT2x$CG~O9_&362Lb-3@_QGmI084d5)8s*9yFUs`k>$He<$Trng ztr22?vHXV__FH;Av&YvTwCMlU*msXgAS<+$QHEq4x-RRR^EX993}(DI0lcO^=4q`07XV4q--YJlG-Lp&-&D$s^94P3f z;yKGhjOalf8lrjKG10<;U-tUn>{jNpUyB?5JaEIYt#3qh;OeL2Nec;LlL{O&Ch&Z_ zWOwrk+*rV@*Nq0_q1b#3Z>|nCdl|cZUC+3oZfR6BN-sBHaOY{;cV5uQwax0M)z(Xi zJ}|^12O=IoO~=wJtymv zRV$8QW3K(*Zn634#4Db4-Ks^)eqS;&*g!LES=78`oQ`h(%1koZ< zu{V4QpV^G!QUmQ0q;GTIf_xJ8;I(<4W@|xXcGr--3J$j1D!&j#bLOuEfu&JJ5YB1) zm%ok9TvJ5lVw!TDeWDACMg^wKQQ`Qi9xG7r@EksItR6q&)J=$*T)b=_@3~ocJ z{l(+=imh90%&GM~xD8h@Y^A$u{8!&8u70;|(OPn>hDOr{4CmbYu>I zMbR#kEt+ZJ547mzNOp$wIp|H#kl5+plxrIYcIJV0%^vuDv_>)WnTTLy2$w(G-l)GN zyoRzSiiIQdmtLFK&oQ!Jp%QrLd7Ql`U7Cn>t3#-@op!f$h_-cTsa)>h$|2(|y(8ko zkV#2qZRv}pyb`_;c3Vvk2M&#nH`6J>vH9%e*KK_zr-(4~X zNA5t&h>*4r+&;3ZYbf-t^k9MAoP=eomzavKk?uul|7u)d@TRpSrIIyhiHOue`?ZPx z6ZmFa^Sxj}N3#P@nY?Y4RrECJrP70s7nPX zhusvI;p2ROYppYb2!h3BoEbvztzWgmCyqj8W)zFRpHihH419Ee5F0?if)$N;W|+0+Sof8_%muy`J) z5ks+2sG^ z4mfSHUIUGrB-`mLxWqKfiyI9TpyABC=S?%wUwb0eUk<#ON}a)yk|^mSz4&gCQ|Xi} zRCr9=-)b4$v8U~FRmJ%iCY)Os0g>J?>W)M|v{b2Q0~y&J^!G5-vj*x~r+jm%}>+a!VW%XqDmG`3sXrhdw@IqolEuN_+O zSl-V;LA*tXbe=DS7tQfJON?9!4NR!nQ8sK7QEVzZn^Qlm2G@lImf58-$19K)7jLVs z9q&2ZRizaCa8`{4`$Gu{z&yziE~_#fH~@`xi?D}5lQVH}_v>{eu8VY@wgK1{Yn1o5 z_W;bqoVEiKei=u7>e4)t@y67|g!&!P%Smh;(?&yfYRKVehO<^z=x7;8 z)@f*CoV;>xMD`ZBWSwqF8pIFi9s}OezMDT; z*8R1@*7CktFsWE`@bYseXl$gu_c^J=I`4`W5@BNUI1DqI*-2yd6XM>(AVq^H>Nl5? zX~XAkq%KK`wh7nXdVbli{YpY=()KG>Rs{y%AA)k!K#Z2jK1(fn-I|R^jNqaDKsw;6 zKJo!sgmY6qPzyRiKia#HlfO&hSq(*!`39Zi*=E7F<@ktgaxy5lcFimCy~7n+I_TUxuU( zQgRv%edz3L?RorU4Xp#-^gB#;Ky|!)#8gZP4pLw;WdSPzvst?GiUtjGiKeh)s(>WTwG+SBzqOkEzk$UJa9eLMfV*Uxh6V&hI+X^k zywBqwS(y0eI9=L*f;!7p={IL+TQ2Rh^{Z6Nt5VjysG>H)1ADp?O9zVk{6F*^Y4d?w zAv4jkTKkg_lGkl$$205X);2V~r-+G)`8|V`FFBoUMn%;U;OnKdUW2Jv!(n0sWIYCM zdCLZ$EZmLg1#t`XZMYH&Qu!GnnXVt*U#+{{?=Pz%7=!}DLel5sc?d5f5$s4D9itJU zoekKX?GqL0)lBrOdmWHmvPoW&bKwf3(U1)N&&;RAQ?i>DBWUXLq~ZVZ3l@Eo+s&-j z&yM)`JpC0aNp~RY7y#9!KV7b(yt|3I*v!K913Ps0IcQbrWrcQ1D6z=P@Vnz?s*;7l z0)x@bmb=19qFZ+e&@(ctkGly_q9g?9TIvd`;xg2`@(N;yr{9Qw4g(Qb+ zT=8U@%$#%%*tnRCa3F=1nfs6`4kpx7Sd3Sg*Yvu;&tlZd&~M|yK{+ND=c95@k1wxz zTbD1?%_!D$4!=mwZkcg2dmfIL+ywz%;P0FO)L|WHmr+{4Q&n9}(GHD+2uYy7(f)4s z-8hPk=U}J4LB_EPS(rMcMKjAOC$_0}9wJ}Q%Q$fw`lr1|(KCkR0Xm?n)i0m)`l61!6^Q>A-G;Odbf*}Ms zBMSUrr$lcYDWyqgc*g^ULkzxx(xc`N3FR67h8DU<+hRyYbvwi_Z@YF%={GU{9Ka&U zTMBa_al3`U%LogtsmM}v`Ks2HD4E)CFJI*_(73?YkuQ{6QYXmm)srH@_6eOpMy^io zPA5d*<>qQtn2t-n+EsV6(|l_{xft~2a!nd5KL6 zWq*eqcb+89&zMS)R&Hq|0yWX~k?Zub>+iD}Zbwvy%5>FBJ?r^ruG$3>lCLT`t1<07 zHM={{tI4l+k~U`n;zXQ@_=--nm{oAn%y4k%b*_k8JPsP(-&@Ct1A!tU#92hHg>&KHsvl8w2Lk%oVd;w`v;TdQkYib8#d+laLj(x>U^E#k(kOBiR;hAB1orf( zRsQEaCUEQZ9KZWfgc+UZ^-RGasKZXUFV4vWX(`iuxN=KGuNAWIB|IjW2teK}GiLT< zH1TgimKV*{b8o%fa`p9LuI&iB(r(N9@~+5^uS9A8^YhPo{Zmzf47j=UqiBpV$ojT7Id6YGlvdv7*1rJ%@_ej)<+76|0!kgMX^}w1YI!Stis$w3hbrILG zLPX`&U4!JNkrWy*z8LlDf9_wbAnCkyS*;_z0 z{r&&rG}20UhjfFqpoFA=fYcBv$68{2C5?3F7~O0ro&Vwc6W?E)-#P#D z+S$(Q#`8Y=Zg=-}AKFGwzyKD|tVP<;razs6B3i!R6a#^XjU#2352xGi_foWd>3N`N zSU7xx{Gd;dl5)C})14dfWUe;&9mdpi4?_s|$h)7&8Z*Gb-21#oK}A7LKCShqBgOJH zF<6iWLS*4upPg5FZFxf*uXmNqdu73V5-(?jNs1d&#v=s)>!a5LEmr2@+>xEXcJfvA zc~XPOP!DMa9UMW>5PJsIqDFGi3|F?VOSxuN_sbO8qFK`yB^(Q?xxB0B?%y(^IfCDO zw)^%l^rFD*l{@^JKKj&I#Hx|poJ5iQP{hA3IVhFD%8^>O;0=Cfq_PlgV7Qd01w`;8 zOCDM4F7s&v1H2ELCo^D`Gpl9+u`Sm18N!f0uMgXP`7qD{h2VxC8B-n3sZy~;J9(ft zxkNH66k3?o_>dhWu*RR|f8=ZU*+8Z8o6SRbZ)E$oiygme$ILB660V* z{W8^3qw$*>&j2YB00J5BJdjXXCjQzdD54Pbg9{_ieBnNX%l25n{wk7x(0b8%ml>tZ zMBjD5>W!lj8p5QsuS~IR<9j%fjc+~St_nxx+@AuRE|1 zq~rLe3TDth%tOJq$9NB~zN5~{lGd+cwq!b^u| zGtlqoOv=-8ol8d@;^_3TqCa~WwOUb6>_$@$iyh1{WP?~SASH->Z#7H^K#wReR&zDM zwzfe?0dtX#+$ppG>d@sm>&xf*152>(E8*g;3sMXk*#1jU)7|!WaMbtW!8WDwrIV`! zk&$`m=2v71rI*7u2UMwU@O>!a8Sp#=ARHsTqQQ-?PVGBbsWi9U&X3(!CnEg~=g!Ob z<(dw28b25X#gwqf>_uIKi+{9;-||n!iipW9l54npX(R$&bm^Y6^93}?^_I5qW3^#% zZu?IfD%(8-WyMX{8sjzT51D+_71Pny8JL+?mhOc`p^bakI66dafL&0Rdl*wk+|Ddr z0=o(bS=ml6n+^CCAVZNYEpzgtoKQg93(ABob2`y47x8|%vDO~!zw>{oWvJJ;5`?HH z`trVWjI8O%Z*Nv`&~e;91kp(d?fE*oycnpon{zQC-;`&$cn}=_pIb}3+oli|9gS9&Yrol90(_e6X(Z;=-Fo(i|=aDS`2xZpqbbj9A z8EJMiWp9P{i?x1X`|YK=E3qAnKTa7L_fpPyD(!XOc16kyo(bjeRp`lKIB3Bcbi>|3 zQFVDfGB2j?k$72*nV+fUWGa5UZf)apqIPbs;<5hTFem?q{!*1(74o$1w-e|PFc7EV zFOr-4)eTQ6J51<7K-wMuwb90!;i>q*YNr|JKrj;OcD$kPTgzf`eg6aq>_(s~ zd93aIq;g0k@521*!UaA7CglAP){b0_%N(yHXYWm)UgP~ScL1!d{>+f%3h`(E<97^c zH+WU@lM<4uQop%1=lu`l;E=ARtFkAp;latFNW7|bn+9l*6hfjWAx2d~lNmW zGVlWD92L!UQ(5Ftu!^(H$Q$l0>DW0+MduVF&NkM|iW$j82pOiLfHg=Qf3K`R=F&je~v zJXt;!ZxCADEyOI*IF7f~eQQ;WF&`gH1iKViLkPP7v^ZmU0at6A{Dh9abIKED7dKci zNoJe-3>4jd{!MMw7ai9``aW3CucU1k;ojxJ7hGFv z$#ebZc}t{fb=OGvJI~Y77y=6wnR&i&5_+o5@11YIqy_T`RO=kX^<|vMr5E7hT_VdA zzO!<0O|p4&z=d=2+ue{cu=wz@h!aN!HabK~7r7EUHXila#GIb&yt(jx6rz-+4#ZQe zEKN(ra(Oz*@5m?>joK`w**l3M2r!sKx_y|J$Q@T075pq39+j$Vz3^%Z&koN?YmyHy zy|&;mtdProuP|v?Q;op;3wCf^8bJeLG`_eJ2UDK%w+Bk%kbKZ%*AEHqZ4|bqBR{@m3EPO) z0*utE&IjnU!LA#fOe$vZ`k1?IMR!<40km4A9xr(P~egOP+hI6qEme_>3nf% zC6K3_bv-MWlviSdI8#FzS5NB24|?y%;+_ad=hW|G%T zQD&{6u8DH6_sw5`3Lg;y`AqV+dHE&YvQ2TJ1FJqs<%>itGN1zq-AJc`k;^r*vO;jR z&;GR7P79qJbj-4#G^HL8^BGyp&LJ@w4~~L~R>ssRuaJT4PnlUP-GZE-HCMwuXka^ggZ`%Jz@hfb|xk<_-XZz2r(|ENeOEy-H~TpUiY&N<=d@gKLy(J)wybnq~#HU%oZt>ekZwe|bM}>Q^?^vzg=x z3f@1-&77^hpo#%WW&4&yEkDs6dq!35VQR*Ux)59!(sub{HQFb^SL8Qi;$W&$dg#Id z{PT30*eJ7(Q509%rSx^n>0U28)!J@{&Pp3R^ioI3?&=}FRTLhAy**8Zu*u?GZcYaUjnpTQN#(>RY zm7-(AESaVDzIP`S4!7tVhl!lKxTyz%7@`Ci}sY-v*7-TBJcG1AL2bH=7 zQ|6p5g%Sx9OoXY*8((MHvK?!wS~$M0W#B~>lj;nBp^s1Pz_ zaNbM$llQWu9PoY4TH@MzUSKAl2CkL^KE!SXeTD)gk!df>!yES!pgHFdSVOHdUZ~3LYlfQlybSzd! zkk*J_qzM!iOP809o7d3~s2vKVT|_LF7XL&147?=G@>iU`&uyRh@QR`&?y{aQc>3p7NmxYLwzlkqE;{7_*Ud? z+a$L=hXqR_b-0OlL3@LAUr29PZ}Ys*3A~6z4|1AOLGj$%CoE!_DSvOX?tdT3CV-3a zltO3<5GT3OcAr)02c4yFhw2ouhmFJoA0=SA3J*jBM z1QR^^IG#nZ66F02nE)@eqmgid&bvM_P&~A@?E~l# zh}Wt>3FWyXz&nru#8j z4=x!UP_=kSBGk=iQIqCnBzN1Ae?nvQq%#8b&bqy%C3+WKYZe&v);(@LDHg?n#(&C@ zsls4-%BD)7R8ecXOo!LN>x_5%*zToG+lH^cxI*a~!i40=gGF<*hdU4aDk_i9T@rrM zVE2?N+~Sgh{aO>hs1Z-&7)6!?S&Eub+7w(m4{#r2F!u;00)O`V;_acw1_~$2bie3_ z-z2AvOo${h07+@>zm>YShO0~eJgk|V;v(RrUy6x*_mT+z;d6gB@Zy8sxvUqzi}$U` z`6z3>)9L4paEo4-f#&|sqR__O^*ql1s1%JGuc^+gV_sWE(AV5elZx zM-@=}U3ZM#_}`ClUVPw;Go9FF?`50(&1Z*Sq*GR2I#4*uwOsx!P|Wb;7G7q!!CWIR zeK!L_2JoH=Jb@@Tue=U$=x z{}61v%`MSc>%dfa>hX866&V4x@_3Sa{58Eo+-2y~YwM)qJZd<%uGW60NC=GG^rYh!y?x83$snjB_4tO=}+3 zr!p{IO}i%jXly0OsqFFxwN0M8;v#k-{pkzxon4>NbLc8284comw*2tBgjKuAZz27y zNj95#K)jpR{S@(&dp~|2oued5rl@NPQ-RM-gXb_{ipEG^_@%gN9$Nf+`%al}WCHg- z-{N>E!xMroOjMObmpuh{Tt81gxwT<-!_conf@1Dp))mIWNqf?tN73&?IwS42G9}?b<1uU!A z#jG-?@f37&r{UbUtYyK1oC4nj!#&+p-K;A1KMB3ojTE+T_H^Q%&wTPnw{bz_tW_9e zFFH6L9nvJnv#E(wp~svcaI4PNx1q%Td)wJy&5n3GaMMM&w_(~`qrZ9y+VDjKvs#S# z);*~h4?;%_GM=CBRa9KNqs=6Z-;)VjBv+WLG(`qv#}TaFhR(=PF|KA1q?F_k!nf7^ zf6X4*((3LSbrXJ4JE`{XF!LIX;Gk(AOPu0~9F-jUp#F1|=SMQ)VQ~O*`kf2xp82(* z?}#$`&zRIt;;%IaQa&23m!S}5`3Z_rkh`V5F2t~WOWm#CktEitWPV@ZvXl4TimX+hvAoJYrOv+QIV56=DDnVkS1Rk0Wc{yXF8saOp$ zP2>;bgP$352gZ47ew+3izj>+@IHyj8lrWmu3TKSDIty?S#yu&8TD*f^- zEGk+ZM^}Rr4P4L5{oNnS7>$?o6M@Ftll$xx`h0z{CJ9WSO_7=FW>VnX5m;weC`4%! zEO3$41(~bMq770+MSJhHIQ*hl|wotIokQ({bNLet*~gq2*5~i$HVFYc@)WTXW?DCfed6D+=e4VJgpJ z`Ofm^7y{X#kRX^xPcyYZ zz)R8&zS!@pj7MH!eo zDo}1Vs`U>=N>CPRyN|=bXOmb%(_Ma3vtYch&}v0hYD`~vY{115Q4c$^;S9Ndzufdy zCm(J%WS@|e=fhT#E;q=iL2+uQoArrNEg5Sre)W!CiQ5_%Pu?azx&=K)#&fmbbw{Hl z_8j;=h7FxmZP-D)9fGgmJUHrKsO`p?Kh!NS@Fq5m6zK8FHYqqD?{JzWDz!gwh-c_S zM`D-D@hPRZEevgoZg8!AZCj)?A(GPlP?pq~;CEe=pW|!0Z0Rmgt4X#z`{Nv`zyu`V z_$OiEfv2ju%AWiB5yz;+VQET&-Y6^~8wWCiB@stq4jd3UT#fQ1bRw|&mj(!_mQIIQ z!1@y>J#t}Fk}50^f%;p!6wbGqqYC2%4WYYyXs?8m1Ql@=8MiS=Gw`P?tNX;C%V=E4 zWonY&yZMFkY|Al%u*T&J92noc`_2>VAaot|qSO!?^DTz#{5eR4Kh-3J@vJ7j8C#ya zpj)5!$$MtV=k*i@Qlrazd2r&4Ltqp1h6;y{^NGtb;afc!F6ep+{XL8buD}2Z6Yf}g zR`-8Mc%Ps&H!Rv!n$*3|+JgmB$^IG_eBd-5V|2H}Vyu9edki*at}Np!Xu)U2u+;8aFRT z$KEGvb)EL1x;?Vfn3~)*R^$lFu7lGSVnn<;Y4o;6{05sT{lJ5SV*_?rCM|5?lr0JB zI9N{r9y`BAMT`h8bjOi9YuyAR?KCk2>qHeiX@;oA=6471II)W2$|!jRG22{}SRAS3 zuCb7TItlcgiRC>GwJ2z%zdvi}VS#>mTOxKd9cQe59%hI>pSnOQ<=`Dm$946S>Ud3q z>WK+rD__b`2a&72Dx?2-T0HE@nal-Ord%XGr7}3>qn4QpD8~3GC?RTiik=to6tj!w z2RR0V2KT@n5qr@J3e1h8fJwJ)C>+HDp!i&q=Cl34gxY&bj2~|ZQHb6vwYh@CyGFONM$zaG=T;Dy;(J|n*qeVZCp?`Hq9vz1wLA38ga z|AB{jWOfVH3Qv7gUpdxrft3Bctk`beyvJs2e^!~l-`2ox3%vzaK;5l=uo;4s7@$Ww zsDs9@DxHt?uDHBwRRyh&tJ0~rH{|vJ;xUVZq*%Ed zhEKf6dmzzlWN2hS7NPGdCFh_%OcK=CVPB z>krrGghrF#JSm|EeTq=-v>;L4Litr!17CcI=II{*r2r96tmo{r1DJHeUHPmw*hke z*3SGRO{v}dBTy(ahf*jRkjNgryRCeTqzQ5cQ1oAxo;mkjx&s6f!UD_>sw5h|$0fJ{mU+cJH3c zw;!$W|M;fIYTH}wy)FTdz!XIqvKr^lszB#cwBffA009o={2dbwYow@C@VUrvnKjW?0Og zfDpcEvjwJJD3`I=(~vmESpsZbQZlcxY>K-!BIeijzW7>|K)reZ&DO)2V>W1i~3n``YVpOKJY7 zy8cXsT4veC_K1ixnIKS|8d` zC%7}*d5aPg_S#Gq?~bzJt*sQRv0&FyQ8j0>UBww1p}2|-t+<=`^Q~>PltR`jq;i(E zDH9cfSPl$f3(~Li_L-yMO!H4Dy^;PXyymn@bm{e)jbSiFE`s4*SI4vaFKQ)78TovF z9yLt%)Y#dy_Io~d&eXtf8IEr~($er}G=ejryRAOmPwYs4^6S@q3rWoz+eA5@fD8K5 z-yN4nrEkbCEW2*_cB!@lX4fxO@gsgeV+XjB2}7WId5g5u9)E%|wcX)HB` zNKW`1OJhjD(Zf?+H{Lqa;QXsh`m2rm1Zmam@?@u1nx912Ba9hI$!eJy`xWemP7U8{ zTBY}~hW-hOPW4n&t(c?>eCIU0L}=<*JbR8fY4eLQs2_T_9t^v?oPFyd&LgwMyb0Zc zwmpTn7tTwJxE~uDH^z?@*rIhURekMgY=;4lkUhIlkWk(@7FeXjr{<$^zF#+;fvc)V zeBuZjk=#8pPV6PAo>Q|V2eFe|coeq^q;~zZCfDGnb7}qDvk{~dX?3#ZS{9MWC6B6| zJ2Ud4nkBpQjqh+7PZ=>-=d{T^_GiwgC(d|y*d{kf9&-ZwC2@SSrJcQYQNwQm@!Ma& zKI0@q8?WwqJ+4N>MCy|sH8=V~lF$7EF4)Ne@L6+Q{Rb#LcYe5C{ejW2lpm;))U1hO z@jlCat2`AA!YR{ylWlT4J)5mQpdp4O1`-4DqJe?z=a#Z~AKpXdfzQRhv3@9aj%jc7 zzzM#$agEgve~pT%^y!&a06&1KNN`#`=SgDcN)dW47G#K*8&w!@n_5^IIG)sZ(&9~f zaG@&uGa!x5MukdNsr@vk9dSuutgW-2zyh2qxQobbwm->uY;6!EcG9Vg!u8 zJlUmvUUcY{LJx9HvBzzcC(9VM7E`DM4uMo;7{nGFOf~wS*|a+hvB7aYv7Jp%ZCRA~q2hAgg?> zvIkN)X~S&VLS}%m^uR{W<4q5cjXtA?9EP8-R17n*Yr}_l+Z+afvV=sE^xupmMg|MN zYjv!rCMlgB5m-7pZ1MP5e~(73xa5qsBG=kRNeC#UEZBH!XslPEEIDdDJ-^PyEH|QW zxjKq-da2`Whsv9km^i#RT%uJ$2=APo5dYDZPvkMz_*;dc)vDTBckXjE-8cT6MHH4{uN)9J(Mlfy-gQe~xz6fO(MgPIF_**RP0taj|4{;U$F znW1gVf%*tJV0U=a!H!H8TBhP}lm15P#m6r1oOwf~6ebj8%Pm^+-3B*8T$2S7|1hgX zcs|Kh9o0xTJ7F=jZSm7ezI&@O^Z{>TZgHASlCHj&IRbRvEN z#h`7l^ZjE*LQ*zUx^`?(fHj;Bt(1JFo@&9{$r@i#vSv5=nO5Z~_1jaLMd3IGb$3}x z(zI?~qc-Ho0dolYc1lslGZdG*vPNFLk?$X{6?}_QTP5LutFF(L5;TJvkG_lWUQ+N* zRNGc(?yi}rti9aoOPQYnf@;9p`N}Vgak$iPziR&En%Z$uY&Ry%^(dQGS0Lx#aO_W8 zt{|%EG2gi$PPu~PhqBL}+SAd4>MR%@G!9)1x~MeO_h{$KHHnogrJsv{U|*p~#gVV& zN6>&65wsGL#C==p-H{R_(-d*_AF}JU z6v7qB!=LR?x>|W7=E7M-bO&gasF>}D}F7}kDw$GxdR4Ssk<3KRPX?0Ru{xNZ2OhUJhdxU1YRIvw#71w6-b zgIeod-MW+?L)@fgsLyghwBh7w=IwpMkMR+U`i z7HHlL)qad3it3rSr;gPJbEMS(K4R~J6>Q%=jJU)34Ss6$?eo;y^ip?k!w-l0>PG;_< zTmFpRR5NDPkkQq*C+^FJ(d&>{o7!ek6TC5777p+Xq*F(nV@r8X)Bll|23A_89B$mr zqp{1ZSTS>OrcFU5mBM_*3p#tHV?Vcalp1T=D!c)@qBZ|p8mkoPJMt??3=CjCps1i91JVCDld7#D*%*PS9`Z9i(-YpoPFinw<>8n z*Gucfl@h~hkG;VBF#C#Z9Hi=Bw=#{c#Y|W1n7oJ!)*EzT zRMTWJUPHF{l3b=6P$>u+;lDLMYaI12*Qe=g!LBNZMb-ytUk(34fnV)0hCjfL8!o$#2D`p((_-+M&lpbr)yDN{HHsFDJ_-}1|0OEo~ zqr;j%!u-p{pfbQ%6^d&UnH0{s7l^2QpkwK#22+E?1&A4`A-tWhS6il z*&(QuD*8;O`0>fzo144=&I>A4E@PGi-UFCW>0I-J%GUCjOb5MINRzkTZ) zrw5~|pJzy5BwjQ)3gW#J=f59M|9x}g8*m|PXwQWGuexk<5F6|G20CIPG=NN86RxiI z3)5zshtrAdUp=O+;oFmKo;m!wgUc2y$0&arLPN#zAy+5ka#_Wy^#UI3k*(kWkF&V4 z9lAm}(}!{QfEl_*mHckns#mSLOK8yjymg-$n~ypo!0SuL=X4ypDPD(jyw#!mZ|8^V zrbT9^oz(`Q8TIbmWF>zgGPpE>_q11s7^*R@Pg9)snTshBUleNtH)ON4#MT zUiI2bjjyD9Crx^y8AMtK8$W*XRyENqy!WRi96)HT`Zw)>j7l9B^GWvla=s=K*cc76 ztBwOVh-`gwb$xbVbxpUla2mK@H#t?V!x%rXp{zz-xKobl{T{D+gNm#?_TB!?&CQuD z80Ye;yTNv@eMTiSGqVA^scc#VCseCV)=*^0TDJheaaXK+6TP21C%x1ra&Yx$Aijk_ zD(7?oa_VAjSUnNFQXyJ0G=kADT5>J_g$!!%T@q-)psx%Ed)Fd?T1)#gbMe(OU*Qpg zZPu%7+6*e^*y-#IOFJX9pC8TH+{|EDD7Mj>LSuxKiIWQ{C5m-F?j+gZR?hUfc>T~U z)tWGywyEpy+~PT6_{hRSgrTGheKHR)s-PnDiw8aQpa%Pv9Q@m1hSIO%u&F6=TXdouy&lY{M7;lQO!?~rbT(nV|N7-ke zD{>`U3$8N87g4&0d6L4YwEb!<&#%t-Y-X8Zg(adjIw4C@PI&JoO`A=1P7=?>U^oqB zA6WXU&tC7jRHr|!GB^?<&v~ddb`EL!#kG&p-1m#sNce{YV35|IC>gwMf(W8=RLGUd z6ACOc3uJgsu}M`rvyi*RkgkLym$v^b>BEd>`Gs7t;>7aO&IkJIGRCbSAzyYVfpj%Ex@ARhi{wHX2 z_~8mfqEXs~JuI{I8g&!Khwpaei!q zC;^6d9W+)^Bf?k?QLi+OM09yf1@7ekvm5fQPPfy4sbr&9AGA1=ElrHe`{HFs z?djM2<>JD7{{%rIoR-(?|3c$(i}K$o<}vO3C*S-h2R${*T#^Av}n61Ho_|BlI%B50Uz|Hi)pRAWU8q59NrV_j>Njz3Q)mF0A5Z(Dpujh9|=>FDZbaC4PC!UkSY%yD}p=&A?=NM5!2{$~3o+I(pB)k0V5^ z-Y^knb|5aUdb&Hjm)2p!XEqzDW1QD1_h_M5SYVTH>9Y87vIBzkI`xWuY(y8>U@+Of z^j~BCHR->T{9lDV8vIee2rd6p{;%4ligL~czx*oYOZFA-Jz6J|;_nS-W0BK0ZuYiv z0!?fUl_ue(`A7P{lldN11V;B5vDqzKYX|5x~^Rtn39y_d%_@XOyLCcmV*ZEG z)DOV{bCeZtUBVyd$3IJNE0jSDq%FfYT){bWDfNblp|61sDZ2*0mUO4Y>z0--8r5ty z`TjB73yAm!_`bq~2JYSKagE#C*BWf@IbPt|51|PXXo%3wnWh&9XR%6U!H%_9UaFqwaASG1TQaP^*73RZu zwUefAj_K+Ar1aAZYIS2uXWJmk%Km=*p8(?_F&ne8`E5b^)OU0yzWq@7<2a~GcoqsM zCS9xKp!0@Rxc&YlQj;1P#)YL;AoVtGNCLf=xr4Zw7{P zVb3d4MRy-?lsE47AQ#;sM(REODqg^fgU;w>hOQlau|j@GvY4~f&7Z`q<<>Wr2Z>NA zrIGMsp6EMAyUNQCa@2F9dzf%98s_{wuM8n<$PF%U2!PvgWsJ>M+uI9`}NaH#HLHZLJz{4;yy_4>qjo`TqEPwoN97A-pH8NuK#dXmkF3N+vPcp z{UWVI8G6$2;5%kg^}i5Am!9tgXNevH)ftc!b^byychIUM&L)h1$?NDX^vJiP^& zcx1Cq;ezmysX>cG4aL-g4~hD|7uXD<#aQ})8@E^1(RKyE@YKNrOlq(qC1OxPJb;+C zcus`X=eFp`;o1Ie9Cpy2=u5;It%q~YvrfXrbi_|Uz0cz{>oKaIU`c!p+kFn2JA9=& zXBezE`Y0lI*V19aysvn(D+*AkFYP+Mu{Euuxc*Eahhpjdwy`lbq+xk493K&;QvN2% zf`w*R4Rft?y^s-vjydl^R_B^2#EHRqk%}K>D3>U5{8?j}icQ8};e}8yN8qLRwuXMf zfk*vI$kO<)UrRh_Y@WJIZ@;Ss+jIJGD$IZf7~PkC~~AYS|mAYNW3N!k=ffshC05U2po?pqmiMWN|jsu z&AS2^yFKzw`VNg%pPm%RSnyjdxKyZe>REJl6w(d}|+Z(I29x?Crs!S%qoh z@0AIkx*o0DqcO%laJq4%_G@E*5o+`!XYABlw`mU>4E{I3%ZwJSa44R*=?SF4^9NxQ&?+s?B-M6 z8w8H%-~0dIc@8oF&XMz9{R_tv0lA3)sQud}byo@hq?X_jDHo2tzEwvz{E=J1wMbFX zxsPV;$ur=hRLW(iLeC=*s|k4I)Lp-k+m?Q>ip>DLlK^@1s|o_u zQkbc@yJBQoxvuvUMx9R5Ps&TWI1 zP6k@P^tLjuyafNMZGiomSuJp1v);R2&vs`5Ah3k}5vNNL1BXW&E1i_p7uB^^UH86O z92J$PNKdxaR&D;w_@~(z6Tp@pqQ2m-^GZkSTa|Wwh3OE*sno)Eo}L5MRs?!1Jp_Rj zy#G9tI_a)-<*qhy`2?6FG0+mqn<6Y-kMl2n((jejxq$lK?u|V!QIWuLpfAhE^xVFE z6iCp*9>a3xqZcqGR3wlXLW%!Is{Q|qblmx%2re|mRsHy$QGDtflbBib@j{OTH5+l- ztB;b*|1F|2G&73%AFlW(GF4OfGxX_0MGwLs1;9m1wKSYgu-9Y z=YM}9@SqnkBk)h!rH!u!4dGm+^ni`tC1UHMYGnRQr)f)tEtxlAx z)(YEw$ZF)p=D4~pQQf)331t>cf(+PQ!7}W%vkga5YFr2lZnIoq z*2>sFgXKre@lH#yVo z`p`e%hlTGGT=nVTye+#0APA&;Pkxdk^`dm&GEFZ{8BpbrEhnwKGg~vQxJM63#VTZL z)qEaA#Kh zjWEX>U_TluddS;MK*v$*qw7dj=;-NuW9-oj%&&4h7?E>-Fer<-Xy|F(@AIfGC}j1N zFWv0jyV&AWwlc~5$}1XiVIg;wzwsovB+`78&As7E`3Po%r}af_ws*&+7Y$Y~RfPem z?*|ta-RZD(;}Ds&VHqax_!Py?l)*X+hJ6r z!{t#I_qs3lNlMB`j)_Bz;(SdG&t~0y0g6JwBpSEW#n)h7Lgho<-M6%; z7BKWH>#%ejldZ@;hkVef@VpV;dBbJ%>IAXE1G`_(P--qR5XhTOI2#nwW=4$a#GcxJ zM8ErKf!EQ>dNRzo&f7XoY^9!08&8Gcn(I`0fK!*+t0_)UI2=wIjJH}QUtu#M?CWoe}!X9q#8_I_oyuRU+GX1B5 zCjfTgxJ1E+=fxbkRDLHTYQnoZ_m(kmZ2kG`N4q@(wtJS4EP~5cNp$k5jf@Ocig?_6 zvd?!i!l@Adu}5X~=UWthyQ5xKn#ajBzs>G!rXbNTFBjt|`;C zjpM$pYt^yVtav|VJ>5a=F?pw!{AXFAzGAwWY(-<9#D1l{DNzrcb(ma4Wbwwhpq56X zSa6V2m4##2T72ielxy8r>?BNfxX1hZ*77m?+1bE|t}a`zUPZ_{o?hv@7D3Nwt!WGw zFispVkm4Rw#&_=H>%3~xAdl;mHFc31zKQfSqoY+5Cw=c&GPCw0pJy;c*lU7P*HwuuuLXgaS`0P3YL|g3_VovqX#{JjCN_N7Cn8f~_fDmc&A8>l)|9n2q zztMkTwf|S>ZN%L7h{XNBV%I;SZ~q&G`+v;d|Any!)0_Y<=^Bsx1N7w$H5QT9I&SOM-T&c6G==z)tHBC0wnbIJh6Kica*+OUflmdEVKhfLT>Tp!7%evmC z;{V}09x3d&P>b{TAQ@20_C?jZJ3wjmx#;#$3=wZBcMHguRS*|TOiJZ$kY3bFGWphuW(6ehOT@CUVY>-)?F)_nk?HRifR|IdR%wQK&-v5HEoC-~x zIZ*?d$fRDWRO{{$y(`g?ElqKpQqcTHTA@IxQo^iY_hTsNI})y`8w)ctGbUmLsNB2(y$v_KY za1>s|>l~Rkxf2KcKVR?uR=|Vk|7r1`cb~uI5|{ueIsn=$4J{-DAqf5Vm8uMFXmkbQ zJQkIr0XS7W=JaOg0uW6eYpPs#ik*-j`*Qr#MfNG^;RDFSd1RByrW(f;W(_YvgrZ(2_w_WxqAEPco7V&hZ3R zG=EdZ1x6iPRDp*rcTH;b=f=NQZ?_uIwdOI|As_|WYKw`Kaw{U##2tE(>5-2Hd=4e^ zCkHE|BdXFf=8C)n5kF<-M0*=+;nE;BWjK!~5SbS)LJbbB5Xr#+ps(FAG>Q_3UQ|xG zA;Ausj`5+D#^;%tflV06RG`2)Wsu2y3|Q#PNmPy_F39>sgcQslUbMB|Sxyf& z-2Z7?Funfh(=_lh6qw9!sXxt5XKhX+EZ40*YgkYzt3vK->l1dU4k2Vj1{Lt^6g^Nc zj}*2N@GI@?bU<&s?ZqXO0-jSRkT_X?{0yo?03qpJlj7tnK?CQGJmj6?kx%UajMqh) z>38pzNz-mzkJ|4o#i8dbu_(ZWAv?LL$&E)wY}fn6;e@}|?q#ZES324asSr^cBGIaLuKPZn zoVP9wnw8Erw?oNmKSM7(M@g$E{`Tegc|d5$*{M6 zCqxfybJq498KJwgKieNsj)tJn)3_;nN9%P_?tCR=9^JL<=uC8H#RlUG% zVB(u^^OG|m6{$KQIh2(KasuF7tL#t3`fi&+e!vgOpe&u`01F{tr-U#%II3%jK_jjX1&jtFsTd~41<7m&=rxd5W5FmN z<*S~2LC{jBT7;>?;!>>@!D&+pn)jnzuXYK9)$l$QT`;*EUQ*0Uu9D@#@5=bV zUJhWsj_W~M>`Spe955aR@c3JZhcGrmxK^vq)|yfdu&FmR3=5WUK?+9!26wfNbFXoK z>MSP((?oT1V$ewoule51t{{UOe)+Mmbz?$Sjl>dD;6=5a<>t{IhH4-fgqU&KK(de1 z>nA_7uy^S#+{=pvY^K&(P6?L4?p|7@tiKa{7bLpxg9+|L)DHdmYMWt22qFo-C`N|q z$*+-UfVtPqvHpfSLOLwSyTlNWA~Fz3h-eWP*a9WEbBR3psv_j#)=CZ&((>u#7?~Ft zaK=GHfdx|%g>zuQj(Hw+T_@1Yu`*MH$TN&!iB6ROy|y7vbRq}{|B+JTAEHNp(W6jK zhr544s()80kBgk0O&VrZ79%Gc zhX#HYgObDzNe0*;wxtDhkS1=XO{^)4S*uUJNtmZn=Iz|Ut~fGD*^b$vy-3XLu0C@> zeb7Kt%QVQB_RHN9kS-y~&~_Itp(GVH%>p^u%*|TKi`>`9Z+b+CaX#~l*$b)Me%ai# z)Wop^&Ef>3@u|nFT11LwLIHM_7wMs6m(L<0k*R8F^)p{%PKqT46ph~H`Wl+QjB6f} zJEaipFDf!W_hlP8j8c@)0i^Chry>vsG`@mJO2?@{dpP{HJSivuj@o>U5Aza?>%F=f zDN@6o8iw4u-|YY#fCG; z$MPA8NI`r=C~osJTBw;1=3hv*J4i-9k{@Hz`e}*c3VgyyY#^)woJZ2NcF5h!;hB4O z*G!*Awzdc|_d9%HG(WYl{ZeY!<@lH6xT9}BGS!3b&d~soT~{2hY^`LSQCfQ7X>TiJ z-SyG9vAdkmPw4Bd-(~CTpKnV|!TCZ#BGV_6lT^HIKx{I+3^>}RRmw84(XO>7k!epO zax0FzBdkIx5eB*3FC$NT8d7**sTvpPDPV3crO_kZ-H zyfZ%^(op+CwZ`29@CyLrDMPUN|N0O6uJHgp`_H3*-SkCUGF#f7ukz|%BFd~I>xw=$ zK2a)0h0hk^OLRuey1YrOpHGr;hlP5(wp&vg64Gm_n%Rc@P&HUl`%b29Fk%rG>_xX?0+}_AxF3iH!h^5< zNq+U{YYY{zbr2V4Y;Yy0$GX~Djk>sl?+p3`*KwMPY>I|w7(YWrWB4W&^aD0L8=$VQJb8WxyIh_d^<=5k2&rukkV4!@n zxLebb@73Z?d)4SI9`~$z0BsvC_~j}9mKiJa z$@~=|V)X;=Qtv{e#m|(rTwSzmvP2G*%C;Z9)$2Ohhs@EV@c|A%jtS2MNs5iz3j#o^CI-Fu;diTKoZ+$XOj!DRi9-nhufY0*Bl1#PX zu62JI>f+6jhzTy*io=3M1MVFQd4LNWS41ltiO@^eQ}4-fQNtOZ?JU-%OJgryi4pFc zSdW;=`YWR_+$Wde|07@!@;O2;MNj=S$K@xu2r$rV6fo(WKN$BB3-)TTAwn-%PaTot zg63Gw55k8wm7(8_=D~UjNNeh#p&sftz%Bz|w~)K+*MxC5X=f_m8-@WKBnpay#yYCLniI zy;qZhe`(7)SqgY9)deGO&w_nv`}9eM_)H^xDU3#w3365cBoMvkGj7bS63gW6C8aQ$ zkoorD8|aI#f>Ei!=Xa{b0|`7Sy+>U!DWb}OQ!YE{8_PBn@K9izs0JJEwRq`1p^6UJ zEC)5elT-am8`HG5A~kE%+`@FTP7D14`@wOxzak@akOwjaO%qcB9dy~+i1)AD#t;j% z^(J2EuEGAQi2e$qsNf|-`LuTpa+i!OS>%Z<+W1$0Q>FtyR)IHR{`dI;)(gykpP%AF z#(SeX23TeJ(ZkoMptD$jTFB9_rCwJAeteM^hBJf#oe!>k5(M-`qbd0DZ@9_L7f&S7 zrD{_q8i=v2i2dnq!1RL@s1F<*6^m{P|8OU$*dc^sI899np{-Lv+h}I@sxaYe6i^$C zj=`-EKimceEA?3Ytc|{7+dEV%xSvzl6CUeN^k>+JzMYS5qG4zt5P%$evQOZRC*}c( zs?TSjwm}2$kU}d}Q$%J&OTjT?!JHUK7b8^CgP-;()7MRxyRv}MO8Af`1n~5f2}#{< zK5&Qh0JS68`>SnV$k9~zbn<*Z6${OP7ZtYRR*s97d6?DQs|9Czafb{tJu1d@a z7S!@Quy((-@n)CCuXt$?6V`UmnFweKdun7UPqX*&I>kS-5L;$&=C$^d8@js}Hy*tD zcSA#+_SNxq8B+q~^Sj29LqlYQc-rjCR4%a?+`V~$Hs--VT(Tq^W}NZ@Z{5H85?y`M zC(XAU$tK(&>nF&QsG2?2+0S^HpXM($NEx)qbZZ0Fi02u`Y!}zrA6?BkoWQ5jf}!2P z{oDgygxGp}zl#?3C<7r7|4qJ1gX^B zKa0#w};1@4+lloDlbF26%_rXgs)UN3o9 zTe@ta^1qQp0}Gi`&UQ1SISL^MO~{+od2WsEo+E862j4PSsUUi{t($Fd@{A(_)C-hkfR2Z^rYac^b4bamzQ8qFC^fA0mfGJG+Jm zU(8^=jPPNJS1bo;D)n_&`Mt(N)%_@K==QhJJm+3XZ8heAUIdkY z*sFAlFA_*OU4l&G6=`>If&4E9ALzoe8Wr9Bm?hwko#pn-4Lw1Bt_7-I$)!0`M#Miqc>Ozv*~Gdlm(GyW^`LWe3b2;d@@tX za|c>FPk%wQ^A$0*gkjjX?Z1MsYH4?>lG_eYasT+9eV48C3W=c9+uaWgW`&;NQt(7r z$;UcOgmOTChm!RKC3&h`?}2#wVC&7KVLr(#^X6W%d|2!O-S}^#E(`wC$2nOt*NpJ$ z2Iuf(#-|=tMEnyHos>uwgs$9tkmuFyZu)@6TrXXZ714;Hy4hrBH;EDt0qH}{U#X8t zKuOw-gdw`=f= z*%&Hn>x_FL%-o$8-EoY?wvF|1?-7{bH?~cawj>seiofqx@nHGV8gC&o_|(dg{vb{2 zEy#Q))@qO8fD2Ahlo;*1l-|e@^RYvYcp&GX^!9Rp zH?(>;Q&9?mN>pP7e}^=0fgV6_ZxTma#Kk}*^B$4;!()Q%|Iq?$|2*E|_b_AU_B)kUkn$mO3d*I{sL6y_U@;-!3@HJc=!Z zZQ*TpFeIaSA(*U7d2igiV7gpvFvnt+-gfk2qc-7Yq>rgduCmIu>CjWpLCd|#d~w`= zZkGGdl#sfF5FQG|TDJmKH2H-SDmy2Gql&qvgj?_H)l3Ot&1coIXT6z05zhWLe`zp~ zg&B_Qgy`imoOv^2^7&v? z5kwwgFi4Crb zA}J%T=q_5f?ZYk$8l=Sz5tj`7;}&o!Q}63L=`>;`pY{pA^^LS-3v?l&M>(brCG6Lj zySM&kX7+f!cQ#Ivm+H23*QD3iZvAvr>wXf&M8v&|qqVG9bP&yhj5wk=-d^5#@`Nq2 zeA?B!qJ{0g2wEotosnK}qI{eDNs+-~EwDeBUi1EbrnFmeL`$tNB3k#Zu9(otyz1l+ zc+j3&UFPDxl^3=^(SAbCb1^uEoKkpt^7@wfAVa-HDW zn9Qc{{bB)e;&$#+#yQF~EK^-xm6+J96p|xm&_~u;CP4qH;e|!?R?Aw^!ya$1j9cS8 zk*lLng4K+XPX^<;q{#_CylsrDdPOQ9;(4>e_q3Tl#Gx}YJvz1J?!rpSK!;5}74pXc zbI>m2d0e_+fI~QfM5u{jqLG<`^w6J zA&>mZIZ+%w_abI{j`s;{ygwVsT%`NrS>aOI=e%2$a=aZwY$Yy7zS`zvjJWdz)?>N0 zF{Q*odM1x7>V)1uGjXX_v%0iV{80V$0pYn0)Vx< zCwGofo$JHR#5SMZUvszJQtCmqZExH5r|7R+{hOt}#uStCT=U}kkRH3{?2L;%5IA^% zIoBVjP}@ubp~pc$5oz(gl^T7%*GbP*yCPVKSidvGnhX`VMV=GT8K1mDZbyD3to;;~ z!bTS*^r*i~VOyw=lZo%pGU>`szzGZRm((6yKo!WC(tk8Qx(`~)ni*_OY@*-!1QF9M zvU5fCLUth$YVn8GIjPxNn(*TjC(LwJuq2mVGKR*4hz*=BKqnaQ-q6WZ zW-s?;^A8(G^b;3FDoauBPNhVTS4eiM&xNB7_i2PwRgjivY#grk8s7{y)|Ei&LcQ)+cX=5O-SpqDx1$KJ}GxL8FN^n#6?H!*zL;r{UyLTpW3k{o2rjekz$)vU=WkL9^30pCnRo;) zP}4Y5)zTC@L0fECnS39IvuAo3b{4~suO8NxYWyg{!?yRQfu^P983kr9mE|ComKOZj zJhO_=U{D!ZNWQ?94cFNtFAQK_*Y4nQT)FSg1r=yh;gpBlkEGO0zI{VB z>HzGg$*44YUv`*#2qk~hu3oP7Xgio)4>X>9}kBNExdfQoQF}ij}ACP7$I2efzpRz zCxiL2eOe}Y|Ml8pe2|PHOKo!-qamcvdVxwrD09Fr-r+e_Mca-*hOv%5^Lp1GVNyPZ zv`5%UcFjMl2Q!hj5%z@_;|laS*8k7~3j(xKE1TFqr;#Gro8OD~$cVFT#Xkcpw9xEn zyFv+|af(GoMn=TJQCniLptKPkz+Md+EZaQs3g%yG_g@yj{Z_}hd#H#zfeA$EO=`#* z&sDzHNYZ?*Z4)eCuQVJUOsH8Lv}1#>%!7WL%)l%f=aiXsTof5EKWi15cIjcQ9QDF_ zTLg!8d7w2f}jtjpKYKesgYLMjn&*0ztrgF!9HJ-s zp{i1gi5hSsW}}`#7o-8%dQB7M9g+lRM)w=U#1)S5E2&S~zt_?pNS!>2y`%Z$KP(GP zY1U77uD)+ThGyQL_VUuf)9t-ZfE}!B^Q$I=hzM3W3{jXh`~|9@vNuA-_$%Te5Z>*sUjPqnTSsUYdGCHdw?qLIWYMJeOb@J zhLi-M0XpgbFZnpY>L0=Q|B#&rE~-FB(uvSg%gNXvZ#Rr5)u0knjQDTwNlr~j z8R?xQFcMt!<-nkoHM=7M(VvyD6y7MpE&1*j%UWQHt?TtTx9100F1c_{a{~^>tIB6c zo)UrDLE}2VMK2QcW&0?w%q_v$OOB{#w8=YEm-#_TEy+z|f$}#Re?|p6Z5JQ6P`Flz z)RohIOU#I^5EA!Ogmz#2JlI()-@K%MllP;$;^xN7;EU`n83W7fO%s}g1q*C%wkLZg0IfgjIM{$q|!EXn(I@Q``p{Xzh z&`UkgCY9%UMfYg=jajikZN?~Q5%}qx!$ZAnl*q9XH%hU2Dmca0tXjV#R9VYvxti=4 zoWTt8d1=sONG87`z~=UY^E<)upms<-tdiS9PcZjqYX2-J$>yYKv`(!~-Ups#`)O_Y zQ$B_8NKM*-KgW?eLcbiWEfEmJ`4N@jC$K&3+V}Co*N0-9y3$49qiGmvSv{y*qaxz+ z=g|(Kxq-!~m1JLI)i#LYIW(FSk=nZKqu5GPmRujUY(lcwbq|2pqgxBway~bxM8Kn0m%e75I2)T^RG3ClqPBD@MB^;ENy z#k8Q7Cmt_a`&$q}V0-$tn=J*M?_-x=tuRLgwJ+8T=Xd5ZNPiDpAdi;yK{>1C)7wuW zxwQM9xdQ84<~yImJ(d}`=c8+Iqeyi)J`E62QYHIw&6`7f%xLQ?&)-cNd3Fr5c zqIV;P>haJ!pJoum(BI=!oegX^UYw%X?9=FVQc4zpBXLY0 zE7aKV=(jg@63(&I(8!Jh*aE1UTKB_iLwh3#%0^hcQbNJ@zwKg^aXRNRfIe@l1uJf_ z+WJRtn%b*+`Xhw*pCJGYT#P$e>fM0+j~?~^7$^U~GtH_)148GU96w0w^T1FOO0^dP zLOF!H!`vTSQJ+FG8Om_~-udpUL{Zk`DIoGSS8sTI+3!~tk$~JYrs7PSP0g;$QbmSK zoMUF$A)TjgZlvJEH@EQzoE^^Mczc2qSry{)hi#0@dlFwqnQ??r5nnfVTEDIA6(`VG zTzPw@63Iyb()j*i-|{foK}>VlpvB=#_dWvf(;>_nix;0&X;h*QN`oc>PrmFDsY; zlH&t(;Fl&NiiHBW$Qc8uiUAREUFZRj-3c!o0{s2!ks2P~-I9`nCMe!53}OL|hXQG) zK;YLJDW9e+^uJk+fUJAogJrCMBfEPn)n~AW1VA-OxGm}Qp|8A3TYL^+xEmPVB;%rl zb)Y_jIb9o94NL&)pAYuu{T7{b+9=?gEw{E&SLshc36@ocP`U}o;wxZG0JqlY zI|g>3^R+L8|?CvN=Bk*G@M$}7NVf3Cd9W7 z>aL@ZV{Y10ARxiEUw+#ZG3T-Z*{0)aAT{&z`jK337XikV+yBlvYPbjSnRp=i) zcS{aCdI+O@fT;G|M?L@4rF`W6_7BQK*D?XMv#{4=QnPOX84ZYfw=5!S}BPJFZ z+YloB#1|lad^SbI_2J7##UDt+iA~+8dO&41m`q_HyGO+I``OV}2BS=J&+YD0i1bw< zifQlu?MeA3{r#uw7y0>!N2i9GP}*jvMQ;1RH**Tcqa=m6*w`1B~do>yck|0rn9# zcDGI0-EiOVq9&xn7u!S1m_Dl%a#qumSD!_eT{ zgu~36A;w`UmaZoyF*2aD`ZPx9?YDs&WJd?F>GjRR)Z*>2MgV=?#1Hrc$Q63@gWKg1 zx9Yhis+m6Wv^F61FQJx;<3*X9Lyk5L>4z~5MOs82aSUFKU^1reliPxCAt9A`p4{K_ z;vBhGaF`;NDS2Qz&0lcS<-U;fGP%Jjn@?!VRQNg{8ZAwy-EZ*D4iMRn$sn* zFE^oUtXD+jNqd;L(acB}cDAo?4{zgSMGfTIu2h6as&%~%P=zZ9?`{1sJn427(U9_Q zU_l;$ddzFw8`IONtSp@amcAyuX!Jp{lS2zErw$`!ABe!AL7vYsi;9llVjywU-jBZQ z@qWVHywP8Ann!19@IzB{6Fv?sXQ5B*nuk^r9@k>QsQdBAL#zjUBo^8egCN|K$k%m# z3OERh`I2Yb4xogQ9W1`J{rcZrTMYMPNTSS7o#-2mxs;CwrI_>KQP1>N zf8j%;z?m*dl;jAX*!D)tPhP_z{=|2e2=IU_N; zj5aF&mxAG_d-*3^4zEFa)QvHlwo=lUtS62nP$EjQ$9BM}Lypd|WhBtF2T{@!MtCUD z%Qq@kTFNXz2nHw(W?BBsG2WoZaMV$C-;f_WlJ`>&(>>u6(G?tjNjEeaa&?E3gB+@U z(RyqoBT`r|zh-B0V{h54l0LbCvP7HLQ(Uy?l`%@ft2A2Pmx#IYks}`TMU(|TY4mFU zN6dB&Qm~jax?dqgF6vZZUo&On!T3;L5muQaA&7X;ZZ`XX)tHPI%;B+j6XS!5 zhaPEW$sI9@x`B@C^JJX6!`rwR98FhqVie$7QTD}W9%Ck+I)mj(c5ZCcF)wg# zpq5RFhR*l5e5{$d;!a&ReLlF3zgu@cc$lzm>I!mE2|e|Eh#dUn$i7!8;i)VCG~>8V zznuRP%fUi}i7P?kqcP0{bMi+lLd?E2S#!7hNK2zDc3b_Jo1lP7k&J3D+9{9S#)wut z!@@rc><0^ZETUaY??iJ$yF?}JbKq+@S?Ai2U!4{lnYr?h zVXE^|;A~2$Ye}h<)2?0~4gDutJnJ17C=oHZ9J~9PBq}U@);`ip!tx=P&Fj`~RnvFf z3b=$k_zVH9)F#-_A>64wN`hG8$rKGIRa0+ICOEcvzOlq0x?+rDZ zz=p`l&>&yPBv!s?EaW5qaBg{TE_^K*4V4eZ^pFMGB`|UImlbP^9P+}@4W3qP%Je_P*2UG{`P%3aUr zgH!C3lA9>z!Az>9(?fkNI!8k!rESQ9iSmNgU%QY9rJ%IXV7jB*27NDRT!s$jyxSwW ziE^4fk={HnFiJ`lW3i{~%KR2QGpczL7ekiZ=^Lb`In`9xSm*cnYxQMM)Yk*q0>?EY zeIICUW~`u_yHP}XR(tv&%CDU7do>N;D~aowXR+3D4#$vUWuw@bV9so^#=#91twyn9 zmo@T0a2j5~54?%jo@S8dIQO^CsobNx;`9$ynPNbfe*z81EHEVnvzC-1;1z2bmcRH@ zy^|8eI*yTU%MQe5R&V=`i^Iem{yZFm;gbDut^V*%)e6wKoaYAC{*ZQ^_I}0a)%4V> zX8!o6p;vE(7S_wyHrZycxL2QV7N3P+wx!I1zXp4*VB_S@>Cag-!;8e&&o>HPn&g| z;P+)Gu!lwD+;6+S#s)GD4)afY7}G%ckCQtlv&T>{dO=k-^3C0HRf}jm0a3NIU(a8? zymd@z3o^bPj}+wuhpdIQ@79Pmg?$VneS@_|tlHMkUh-tYzo~+4reDblpU2nicC#r2 zVjiA9;Z6-ob{L>bjSNqmvto_swu`g2c92m_cSOnFf7tCwl;ikf`=+0R86DV)l`(rK z5OV%Uc863s_>WMiim8ENK2M?NbObHwkyGI-{mop|UH8aBD?%b^S{vt$a4uZsh7w!1 zF_f*DTa9rDkQG^2g}P1^auo4H`w*8Uh22bF%(BgUjCD$CF7uRE?IVQUr|wcV)WHVG?f*I{ovj3Iq4dB#l8O%?6f3A1+nd> zYrL@zCJV6p);7|b;!VndT}EYy>t|5%)}4uNt99#fGw3H8-#sVkk5-k`m#dW(1~%kG zOBYUy@I8IU&>IP+khz^#JL#Dn4ux+!QRFqlRnNYtt2We9A>nFAlR{!|2&z9Yr+p-+ zEMf?;2ezu5OKQd_>FGAm`r2k}S2)&>=rNylcp~BT_T#_;yj~3U1oIOOy{JLwIU#&u zJ*k*<9+RHKEYg8$Q$QMvft7Z$^S zOvq--?XB8=n~v4%XIx)jzw=gu4^%CBS-jFM-f6EmKe`WytYx9?8rVQS&u8q$I!yr=3hdUFh@wIN z5y}JM&|Y6s;aFXM**bRtblhs^$#P`2_;bG7Z-fyWdC&fEX%Z6=MTl#B=$7`WJmD|? z94*2I)+h>(R%Cl`q?$4~BoFxGb+*R?9$g=aPpc}jA%P(Z%w1!k;uK0Pj+T*ha!GdhiQS{gLJ=JYSxPd0) zparu~P&mln@r8w%F7`B_SxaSsj=|ws{E)x z|L);&dWfe50Z250Yn0c{0k?dsZWMoZG)N_j!H0XR0v^`7`RwPwm-Av1?nh`Hf-cv+ z^*eVoFms1LPb<|{sDA?8=sa6SEk?%8GSH{NUz z`q=3-1sqZ3&1s^h!SIxV*)@$6CUltwU*{yhwLZHz? zu>E}sOV398+MSb%L^B4q`a+d5bQ8|U#p6nN_|}PuDj;nG&@Nr4Ot~Q_O&ys;<>wiw z4uunM7Bx2ntXg(wprWL1NFU}7Z*Y@7@R3~cvJ1HSBe>!`6DmgK8M6O0#SL2a`@8#~ z(4*-WjhwMmdd$En>o3t+6^}M$6XkLFZnu%K1;cw!e?(hFErGpFHC|6=q%)osz7bFP zy%1>`BU4(dC7u3uB<1XT2)sH1KxWsFy-`XPZ^v zsse9}AGfSGcC*Bo3V#9$d^Ez%{9;b4$wP7RSWfzPRter~(jJzo35Ix5DVMSPFvAby zT^8krg^ycM$sX?{y-I&HJ+Is)Irsy(n;`=iAOQVACJ?P^g`m%hst)3%K_R?IkzQow^IYAvJe_0|tJ2o9`=8IXpPkve1h z;iNLrWmk`9%99knH9tmD$`@tCos3%Dud;_tK#5izgw}LoheT^NkP+sj>nCO`^6_ta z8D2u%)7QWU_r%t$-QB+vJf@OQ><;Z{AAMuC5=I1S9+G^|<AlY| zPAbmAkjhbCjoz#?nxlckj_-(%k#mePg>wp_+~@UNa~-mjDRX-ly$0F5k}yVx!j#1} z?icTKr|e2k0x7pXEp^!>JCY99zWYo*rEg{2?N<2OqrTMU3=S7)88TmUaYI@jX3|6D zGQGGWOf84bY%19VjG;d=(jA$!<68vltm3l(OLArchLn;Wkwuzmb!87x{=vo`_KRj( zdHpT<4_3&OH}ch}(-ID@YDs5?-PdC%11S;)c3I-~sP;iHnOn@qtoaSq&H0gmVjzTa zee_h>swn8s&>`(2T7i9)mAaRmB2vSf1=L@aes`3_F@2}z)|I*xp|WlX{dtdx>a{!L z_4064lsVOj+46fB1w)^%yz2TF8|JY7dvfxcZnAQwFPZK``5Iz>NU2^%Aq0stdSlhU zTcqEw8LouZbfdC5%CG%c=4TK7kpFwiT$;DK>(ClP@V*KhRO@%>_S7$7=g1NpCdO}$>x zV#eWyBtH@+(&jlR7c@e5xvEYbTVZ>vEvst!+x_rGZMHpp9$K(%#n<MS5-UYPo&6j;@A)1M~45-5=#i$LNg7uRHLGpm>3WnCRczRQX;D zabxo}%k_1Yq^eKojP;we<9MD@gVtjWvLE=FYMq8gM~Cs(JDWN2Gy|Jm8&)I4~g?IkW^IQ-fIeuUV#ScFRW_-Ma*>3v!1eQo`HNV44e zPkZ>}8OB_}J-QIe)qwTUQjxXarT!7jo@gl^D}XoJ>#WGg+N1}6=A-fJRZNfR&b$AP zR;elJ9!{B%<}2!5+xuGImd<%9ANW}+pXRtVx| zhM%GV7X0yhel4jC=g|xMNS2rV#eB)5A4emFlpgc%2YB} zG^@(%ZR2ljMSE(an|Vb6g;FEJ{ELE*dWsnR*g|ZYzsb75t=;)jJdWLsqwU}@g%X^K zZ;!HVJ{4@6tMteGp)DZlby}9plPKR+-(Co^>8pv~I!a?i1Glt1Xk7H62{}#pktXx~ zaV?Bf!)M)GI@&C+mFB$xb=(WyzCUItB>x9=vy61p4`Q50XL_LvR<0h^Z=~-f>Ax8s z41#=AT#nmNC+nyal3q^r*D1jbnX7uGz-Jl=hVQ~uyAG6)%=1{q-6bfK?o+FE+X(g zY=?>j%=G=XW*yNpcd79rTEcE$##x z_Vw@qvXFmmM^I+uxf?!y0JW>Lddz+370*TLcl=^vXm9UKfrtB5QB<>ENI<;3(nWmv zQdCpA9qD=QnAry5_wuM~Md_mlYC2=*+BsLE+%4>Urp7r_o5F1Ad@J_Kpl1DmK9-jD zs5<+!3Vp#O7323Gu4ErW&P*F`qxz5U7qtu;eNKK6uw$^wwfL5e_Mjo0J^8Z-2m>su zsD%qh5q;@=ssFPL2XTJmqrn6$%LDRqrJhdZe2efh!RObJuF&6^K2naor?M7RN5E}0 zYBa;2`l(g2R{cvkKOMLk& z87*S=dm521!PR>+Tmf0TF$kWb5x;uqNk_R!wP*~_yExuOmKi?$zzehxH5UxD-4G_l!7*& zHEA2yW7R=b!nLuM%$%S1i{nL! zs1+;IuylkqXE|Y&+Nw|qcGZTO7BU=s{`@h*J->Zz2xqU-4uTXui|P00lVB|Gy$}jI zB}90><*IQxX&b-X-!GXc;CvrlurbM;%>E>!qWFbSmo$5Z<2o7eDN4wGiZDN=rY0Fq z$-D=S8FjS`aKkHUA}50;?H+y)^2`EW1?q!e$6&y?iJZ-9 zixzwKGlusCHIcVGKVE?X=BJByUp~HdHz?lSA5GEHP#hGtK>Sb=TA_TW7zD?0XR-h)6jHZBoTe(ytS z=O){i&&+JU!+3O9M)vX(*OB1LU&uQC`EtlOU1Xw4M`Cd^e2`^?-jSeXhdWxgXvU_R zwxkR78|>O<2rUoxu<6sX%NCNBgxNgn3F8*EuW6rr@{G2mJ0h0a_PZF!nn)y_;$8rSc;G2*`+(Jc%iwCulFZq`qvgY1+a)!NxYKc6&h@iTq>P}Qlz zuqRs?DtIO1V>LA4KREvtdv?&nzFiAK6w(vEib%XN@Am!YO#Da%~ph z;7?}kwgtNn7) z0z4P5tu~5(-f9)p4!rJ|qjn=UI`Mk4C44WNt4d}Qos&RHOI+_)?Qk|i z8}=vFyYHOaWh{ZGE2ir4yhuhvgY2c4)2H;6T?vV$rpXx!61UVk>-|69Qf%Yo3YMQ} zLgg{7Lu&$^`!${3tSKg)5$vMXkP*W}}X8Oc*SAthfV>W@ux!sBb2cz1> zI4Gm>iK~x;cBnou=U#bqI0!#fLT$~hZKH$f8jZcp{W0su>)s=Ypu@7B9QfSF zP4TKHQ8w$krHwAiQd-6hT~IgfuhR#x=}c$<-woSBvYFMX@UuXobd1UVf{T8Zh>Fd< z9_MfFgkBV>g>);s=VjSMYH>E1nrn_NacQ32qRqB%e}ANg@!Q4~hL3&TR9l@8bITk` zd&R6BM)|hIXsfG$;gT6L7mW#!S+(#W+0s$fasJ)@^Tilo>e=eC^R|+v&sMYAD6a2M z#f}(k??+Be*i~udP!)x(FQJQeQyQ)hnuSEmynD!`-adDp8dVciZ1OzZkrkzI!^nd_ zfn+K->|lXg7jnz+#N3&@q$kc8GtF;03{DzeScu`NW-d4p+O*J}~6 z;gb&HH))Vn+J0(R5rZ;4N(``40*)e|E?OwP%nLJxEE&u5m~hW&F5y~tqY8C*s%Nc* z&zQEsCN=pf#gldMTzW&Mg;T|#t+pI13Q>y>Qu0O0dYF!E&A1ZAgrI)Ih;3%b!@Es_ zeM8`>MHl?Q!dRbp)kF5c)Wsv}NRN!JSce)}!W*`4tq=bnDP=RyXU?d*i`HA?y|pfc zaHBvM8JEMG^@UTx2+p$ua>8*84yEc2iCS21QY#$#w6L0Q=hh5#O@0udWw^<-K!^{! z?_G^ve-kVO1M=FBZ2g8DenSQ)rUrfhMB@K^5CCvn7H_!Y7!Y5M&v$Q%7hXeds4-}u zAHbRG|NH=;!T|Med#)#<2Dmf-(b3=b|I-5|YFN^d{SGkGu=|iYk2?@zuMaIrtol68 z$LOF>BF(*P49%gahq!Qmdb&a2#qv-ugzcB>Ug#Did%MCKmAW+3FC6bLy#CXTj_hNk z%RdB8NMTrzOpl@*&Q*Tu((GeU)Xsiop|TkoXR9&+Bq{BljvPN4=o4Er<%%({^2=n# z=jre@!)$1ZINyY~Ij z!b=1UvfK>)P9HiVdq)T7et)mR%SPhqQ7FkxdJrruk3EFZg{6~ zqphi=y63HiBgp!w1h3a;wLSCJ_*ZPPP07JLv{`2}iE{pxJQ_CZ*jIs-4@`+>w?^K# zFFZ=l^y5~y^1^xhwk2Qi{Rg-iYJ6TJ=a1!?h9XjpvdXJu-$l`XYFNU;SoQ}x-5_VL zB|W~T)?9xizMm3_cD#gbsi8lyzm{z{&cM6!)8_($Sh=e{A+Akv6cuWVyqDFu2fa|o z`uz4%AwhM2*~6ip`d65e)yHe&(iB!!b;VMADE?8}du)BQpVlYdFDv5vIjGwPe(6_k z>3%N2dsm_FoDg)K=v6mA7t1faSNN7-=KY?nMplc)9)qHl9d?yMPNSeBrneNnUvn#- zU!WI$Ck71TfA8XoB05WV(#Dd!M1tKwhs3Ee-!; z^ZR*_I?FdUWOIT+mgE)a=CIj^pHN~+4iEK~$%$0+2xe%f@Aw9ge-3z^hP|Y+_oY{* zg`9;?9E&M;VU&vbB~tvRIbX#DNdD#MQ3vyErHQ2J0R}$7RGQO>ECSD-3}iz%^|y~Z zCuh8maZxyZ|63QAmS-yjT~XerqjVrAE}OE1(wr+d_TN4s8YBq3O}%{fGjp3RY~MkN z$G|)J4Wy;i_R)I(pYP;Vi0gIB7N8s|VpWKNU)*i5&5yG_+oar8*7U!dl>u3f^}adw z_=61(B)?hC9ehuUuUHVQ)w~6~M@eaZ(Q3991mEL06yS*fp56m0*ZaUPAV@*i|3&pf+UE1)UFBnTIM}DAri3+NLkoiY<0U4z zQv0l)#AelW)_bHyizDT2T&|gWzz zZLKa{QML0iZ~Z;zkDM9zK9V@jxVza{mCyKRoD4d3h(2UDP8GM3?@B67dtOASym1ZH zN98N5_KMK4cC^lCU-?U%nC1I6oCq(U&Zf!oUX%LC5Wp=HgTRU{oyB4!(0sxml~Y%B z+Jn=jPWYyko8?}??3)G=JnD1dVKP^e!)bT7ah8O$X9;y5KO1~HcvJDzZjh$xX_i4V$5TIqCWfkvS$M3Zv>#a=d!k zg-gMlJWuHQ)s}6XVTRtldT!LS<&{v6Jt@)IKScVyGK%=>x!a{iuE*^gUKiz1V>yXZ z(TWR(oXH`Q0`9FMgn6tNUN`=ReI}p0RR_pG!Jz9R6l^dJc&wzv8!3#8(`V-Ocgxa6X-d zcATS!dF1;>7LuJ#*&ev^Phi19PeV^vg^#5(d7^bMfxj6>qGcwq7aTa{o?(9VO(4!v z{h*hT!xKits=*LOXAvD#_9>W{Y*)X|P4k(J!KODYlGAfAfzb3vW>uK=#>kch!_uM{ zjRUMf#NqMYi&K$%qcM`Wfh+T~7M~o|f4S-~SBW)(bsap#MzeWm*8B~`%EnNg&(|#n zj#IN?y7hZu!|-m;`GRw(r3-u_tcB(&+zK9_R$JlWX#9wx7{y>n_$L72>BH%K%HsMb z&HFnYXscj#yr3ofbPMJwATLIU;gr2j>i@&Tbjb25;5xc>Gc08y#bD)fY|$f)&{=S1 zjlsZl7|KHfu2Lrq9|}TVd!RIjJg{__MWZ-n6Q!Os4>M2e*e;hgoE{J zC(`v6+7H0Ff#eal6qsAsKX7#e`@iA9+$N3qk4j|%h?T*R=2jGoEU1-!Z3V~|A@cl1 zY1w0vXU6*vNCi35lwe181n(stPjoA4FT*_e0IE*2iys6X4Hy>#WA`CHcLq?@b_h~iDB z3?4DD)g*Bl7<--jwmAb_mg2$=m^$JTv{&G+L(pC`!FF~+*+cg2%kev}k1lWO_=erO zkr89nJdQuNWQi@B7GtrG1okcW!k2%P2;tXc#HE`|X;>JHx8)K#MpziuTi7p7o(`r% za{CKwRlEAiR)v*bA3OP&^Be281J9j$9Vifv^a0SKf zFWN*6oYzkKr3C5pfMpsZ4B|qY<<{(LcBj$?dWJ2{^FM7#%S5SG(lxZp8MVJs5XNU1 ze6i2E=M{VLE@ksaRP1g7PfS5~F2q`h>)5l{t-@`iyE7TGq(H~rmbk_9k53dfy(SF`p(N^qK*RBl5;{E+llYtCHI_i0v@Wf-Ke(IMkms%J*Q4rSF2 z=@yfOXB#dwL(J{1r*_}OQI87`E8INWC&8%SNr-alrCT4xM5^Abrl2?p@@K=3mfSQ` zl0&WQR*pUgsNqRw_?9DJg+n98Vw&9H!?cOl$ZbfXi0MLH>6`J6CiV z*ta^;Rmp}Gti!1{7#Ad%LAg0(KP{v*kIeA(@}+cyq9v&8Sy>f3Yg!aE&MFZ~ELcj} zLA(A~&2cht;qK;hHhj zqJEYD4-JX7E_daTb1Q*>4qyMWbbC~{8;QLrMfSa zKc6I$dR#xZ^4nrG`H}_J>u_rl$9+akHE8_90-kA|8jLuo?8wi&d>J770^5-0?SfZ%1}eI zohk!i_t?0NpNi)`%RbI&{0>rMvKBx5T|Fi6MDrt~9*nUVdQeX=oT+{G!!L;-JlaP? z&$&;t#aAaH5Rt-{R`5|e@$d4|A>5r+YoxzMMB(P{=1F3UJej|7 z3u$avYtv$mGjzckjMbM9`FxDF$qwm>F zJCDs`>CL`mAWxh@kGdq#;$)4{9hf-{{}#L9J?){|{ervb^zF#EZ@^-CtiS&-FmV-K~c-wnSrLj)hGxgCUE?-aSUdixbATFg;>xKlkkZj8vm(=M7b!_Q zhGuH29l9xrY2j%MaL$vG$}7H}PUbbuWyExGaeJN14$GFmV*+hYRB8(iR|6G3`R31k*&{4`gj8zA!sFLS z8=yyej&D`Qn(D_S4Vvgw`B{B+;2=fvoD2k{T?D(NPY?-L7%3&DHn?T5>sR(psFv}u zc+ImhBlcHddK9p#f=Ax0V%0?>3bSw3No2wE(;c`rOj5AHmO3pW6E8|*=4~Uo${!4~8 z*TXKR?+JDf@pqlI+1pNBRNfb7DW3^=2t8RB86TPyS+#B&P6059U9$ zAwQ9#u5xsqEGuB5upa`^%bU!{PudEBuhW1q!lmsn0x&CZeIFet`HaR%2gJ9HBU)g* za~u8^9VB^s2SoJ+9^BsDR=EenzP+h()98P0pa@jCiKqKdqnid5yY~&hRO}C^J2xOcHAnQR z56Xt|b3FOaRGDWm+*EwYk8Q%`Mi)t}jM9zo6_fu6#n(5|XfsoA;@DYpDbCBSwI;zH zN!|~m7^J@I{4;o$t(Nk0SJUYGkKV6?9a)lfDi-j^WcM)zSNaQxUR$s3U3_i)HW1*l zqaQrIfR(LU?K*ivWr&h+OBV*cy13FA&3N$KEIcRH5EddUen*|a^5 zc&6&9Ro=k$S3@9M{(GlbDAI=w{bs=S4Yrx|ahZX9JAVMDN(W~-ERHQ5XV3P$8uzLB zz*$QvdH5$LJ(Vx_0QXLT=Sa<6su8 z;Qc@}{n9k<3B=KGPtK8}+cb1x3JuUsUne`8lZAzaRX+mxfC;KiIMuUcP6(L@CD0>( z8OpR!O-(J%MCj=w_;N9kLKoE%%W%G}X}1o_3XKyT-rQO^uCC#!lPRUTXdq1Xfk(X} z^(`~yo{D=*$EQY{>ACo+WaxZ!Y57Q+8 zsg)11FS3aABtPOP(1}@aPDV5(8_vxNQ z;UFC_sHDYUZm{*!V6BMz-@e{^>CGw4sIMioV|_i-DqQ1k+zR!O4g#bOemS&txjpfj zpWmt(Y7Oi1ybliNfxq!G$;)jpKS5qEVR0xMKGyM?sd{pgIKf%r8(3NF{HQfaqaAWh zZ3fI&Tjb>+Pv8@)Pm(0% zPZ;1#aTLeK)8QCEbAdlrt?u=Tz+7y@wCwB2;7QLP!u_8Ex(dYd)>8G2fIfpUrTt5D z2 zUY*4n#I_|`z-NYqeY4y&iXrI!JRv-4v8&lDhzrMGplzmn2Qj49Lsh3b--mg%ZV^;H z$S4y`b|8gOHcR;M|3HNw@h%jbZbV8$=F&A0FZWt}CP066_D8F*`(9kQ!1)s)jVTA&4}6;pSTA|Q5=gPhXMuP9;RDhoFhQ?UD=lI z*_wKxhyW{iBw*coTNi`#z6dPA1$eC+<^zx!y#& zoL)G2ikH3P0g)i4KaxT`pZ|_`I{o^$p5B5|ZfgP~F8rP6Q}IY3<^Yb$s44Z}pwC1c zMwm`q!P)6&f}89RxbUj`CJZ)Lznny$NpsP+Uo;TK*cxp7thof^f=|^j;rW!en#B(3 zZ$Eklt24rcTQ9xdRfITX?V0YgN{Q|$LA|eOINrIRxAuH6tZ}~47O?<+-D_%?&g-uy zNW0E0Mc+-MrLQi>Uv5X-`pU2N4rd@6n-c!fqM-sGP-#du-(o{1pz=Nwep*fVvLzi& zoV?q=em=p1Trx*`ergr2zSXPJSw~iwMb&*|?>}mn`O0BDyMS8bUn)zEl~~E4afI@{ z9cdv(WnskNA?Rp~>R(!#-uyZZA6$4VBEVVzSya+kL-drOcR+@Jck1!VrU%oW9R{}^ z7W`_l%FLj^;xw3`+n=AJG)|MR-%QG1Pr<9>uL}mhTTBruTNL$@4_a=4#*~@qUJbFf zZ(*6;I5`ZMM8HI~} z(8)+KZn+A5rvPvuw@M$6n!Z_%V=RHZ$dbVeWve8^r_YNU?f$b^PZ^lJ_}@)7;XYm9 zhXFqzfy%O(!v*X-6{GYJBNxgCE6y>%C@r10kn4-vkCwCw$&N3%sN7+@ajpVO_#7}T z0vJ>1%_RTrK`BFQ>p$Ik(3?#I-an1v0NvP^7}Je4#-lhQrchpDKW^R`8HACf%*^1{ zaBputpT85XSe(0*`|Ar7m{GQ$+Jt9h|G9lXSg$@7YW&w@)m&m#XxxQs0@erQ30YW7 znWEv##dEiLivzP}{xMDkiLd}XkbGQQl55Z#a4r5J~j8_@c;DvNv-a7E3Gph01L+8+=%4{t*vJLmlfQBcrq^x0PC5iyVWsx zQncG*Kg$Q0cjny@2TbnceLh&+Ca(>h7S*3F{tpGjWgL2GQWuR&waQg)Re0 zBIM(mx8TW#-PwVc@zn?3^LJ#c?CU&=&h|<~66?=s07%Bn=(oqdVmGnlprovDhnvTg=h#@IB(hJDQbR%SvM$;V?~$IKH|jDnQJi`+I{wm_0B(WfU(-odAFIEP#8??YN`HRaGZ5a30ck;l0fg3s zoN?+P3d8f{8au6=+O(D=>-Q+qe5r}m1I66)`d3C(F>ZJ1)ont_{Mh0sh%1A@WH5-* zDzftKH42}DmedkMpt33kY1v8|}@ zq!<148@bq7-Qd?m(huE@tlF*`W)U6+&}{jdWq#6Q`j57AovaMe6sW{EBO>14wX@_k z(FB?UD`9Y)bfXqZ+`)3Us z{iWGNU;ESqmu_@p$8tbIntwSdvmd9^bdnA|^qR_YR&*|S@hm*D#mTZb9PegLu8Y5s z(&#Ga3s{t)#GG}%==itySS?MIP=N=IMHX@cvhr^t)qFp~$LXKWTJWZfB+$BxMRw`w zc7n_-{v;Ny7h-b)6pzf$q#qouh>Q1_A7D(y774Y7P=P+w9^z#=TOjsVk{EDr=_03qYSe#josd~3MbOqx- zsNj34-jQo?re^c=>MIXsDYU8dT8_ArZ+(8^H`araBF4f-GH%2@ySeeAZ@v?T(XOkg z6>)0YZAh&g_l?G50U94wh+b*nO_GQLG#C)lw9~ z#H7STaePw~*%lZo{r<$(U!8Dq?*ZwD?k85+ow(oSR;}AZgzFq2evd{| zfkf>owJdhGxk>bp_}ER?o5i}VRhj{z63pqtZ3^>+SyNEFhit7%Zuu`+hw)(a_gWnr zXsd&Ve&gcL#TK0n5Cr(&E1%OXL<7A*LzXQt9uU>unJQDwh^OBZh{_eHTYhEXArmcP zDapPlL|(D^RePR}VH4uKSfrhJ2OQGhlg-r{X}Z8W7)p3|M#73XGhH#x!hv1zC`IMD zAJ8$W>OUQy#I8IuYwc0jz=b&uKi)$r$P=kr4$AuS_oUNGjX!up8p1>D-(=dz4vminhlNfv5$*3DvGkv){H+eMpF`~ zZ>AmGpY2rJdn<>SU|Z^ zpNevqOCK|#qRW|aCTPaRUU)(ZTV`S7D5fj=&YUARr&F6r>nf)sUTFzPSGCoN`(q4w zxv!LrhtCvm=mYhODk=fiIC{!qd>DLN_hnoAI8uBzNiK1*uZm|X_V8FtK+>`1*z?x& zOZmm=FZG%@Jc#+w@x23w+mHmOeC#_ZM9}v^cY}s}Ehw;vp23;Uw(If7>z+5?9H-M( z87l0%O`L!^e;MJ!$d!B= zn|$_GTzcW&(A@M1U?-R;g8LxnFF|MUn@N-82l{=Uo*FRsjZ?gqwFhfFuxX^Knt!tp znXYS3OUW_v(sC@s(*C(Y-h3Tzwv_aEFpXZj#d_4G|DRac+1u=OV&aVYD&)gkF+YHH zeEk4>t^Vba8a8WDMkH&9Y^$o`_pyaA$6$4lD4nW%+s2G4yZom41EB9`A!*ucmd9M|**Q}bDUL5Pxb0aVg&3zS?wQ{eqs|`YLO=cxT5Bk>r-|dCcvTYx1G=ox zW2(N<-O_dBzN{JMH}m4Us;Cd8Xa%YQ2_5gVTTQplB(2iZ0onLFWT7<0prj%lHMwK- zWkE4l%F;RfIw%r+1;OCg{#xZPVXbsr%^)k{-1Ja>!X>@^O<`9fF3FEI1Anz5qp4R} zZ0M3<<%EgpyGns-Uc9O{aWdB;Qazf}(l722^S4&Ly3dp!yQ()Wh$q_=mUA|V$!kGp zWEwIT&uDj=W%GZA)9NjL2o=CLh+ky;)Ln>N-X#C;0V>xn_#I@g53aVW=HcfEn0acF z;PFd->u44^?QRX6M`|Q5RSa!HD*8w|?|qkBEY@$u=lZxpUY;%$*qO7LJmik+u4b;T z$?-DlyDz`SZvsE<$Rp#eV@^;T)zI*=ZdAlQ_0PdJDd%@ke&~?b-f>K(gsEr4SV-S3 znp98ZNJ!Jgl!*6s<@MEJW+GjmPe=g?OAhmg40!Lm;Z(h)>i4g3z}XLW9fd8L$hRYj z>vsI<$-*GmX*P=X`;nxu7>UR?Ah+_@!|jN?Sd615y>A>p+t%#W$l%cGRO4BC(&|FHAO{7|>(;<{f0e*hMtQ)uVS z%E%*+DV7nXAI)!R)Cj!;HqjBj$Ay5FJDqc8Wz@2NGT&z}caxI6=duM~yVr8Ql5fm( zwb6LKJ$zR-7(@SNi!{+}1C9W2W%06>^M*@g6QS2hx^h>B^+2!1^g>YuOGzKog*~F< zG|y6Ljqx&ht7xjCH?APCgfXra-g;#M|3YQ2yIMJ0yr3{qCgqJNonrd}W!ycuI~+Fp zz)9(sSDqYw79Nc4Uad($#10G19}7^SiP~6HI8n*rt{Rf9ncwbku2IbzZ{WyXp>H zdg#v={Xmvo2lnZGld@4f(~MV`rUP6u*Ygcc=QQ%o#MCb=A(33D3fhI(+|$W=;s=5x zQ(Vu@r--D38wZENAe_`4X1a+%;R_fQ7|rN>8N|qZhlgvD`7L*mdsAQzZ=^r}RefJ@ zlaBkyWyCd>j2&hsCUVa(S#4JN0}31KBbE=QmGnZ&`N~4N$mcV2^$HneSZz=Xl_s;GyT-l1#F3 zzub3zmp_c_=MLgLUpT@=HQjgtPFrFbSeZRO-VM_P6<*m1{K5pdB}VQ4xll!6w-b=i@R9U8yF}>V^gl zkLtp^@RYeAEt;l+F_38ES=o%|)ZXs)vC^Y26E>F?hU4LjJLey->+V)dHN*^b+Q?=I~@T2PYmq;XeiL-RCS@a zxK|YWWU_~@C(k2Y<1O>!ZXh~tQz}n|Sh!TiU~02ZD3%1NbW4Ht5wW5^uI@{PFI{}Z4$FqiT8(!p)9cL`!KL+31s3IFQz<&wa*881wbmfXaC}?IHPySuO zpi|=Pa+1q7UT{8vyU9!7ZGXISh~Yu$zg4J~kE9rsuhg>caF3jFh!h-JSceiAOo?9_TUw90wz4{d?kvTs8 z=hNGjjptrxE@JZH7rI+wOjB>mqFbH8;g34IHw_cYwFU>G<=wuUA@X3^X1E9}A|!r$ zZ?2}S)voKIRy~J7uJ3?!1lb0e0RyZd;hRX})ba@9UXE|t#{qHkPZ~!ZXZ^oVr(PzF z+T^%~{=wF>vFcHF-I9@UJE*Ld%D)Z|*GQe)lc-7~6#kUN69f_w)7@ErZ<$u9!LMuH zk1rOnX0hY3bnK;5XXnqHqk+BN0+c1vF~;gizjA= z4Cb??U#ajZB14%P1da8L8y*Ry@)^T8Jm+4v$p1vKeGKnT|0noiig zJpc@X2!POmZXS@`UZDZch&bDEX@O@z9OJ(ih+>YtV=VnflVGyPEFg_XKoz75EvTiD z`bn@9tXXcappXb?-GsRpE`aLg@Et;E6#QPAbg9>JMjjnLd{7SEy$cLdL)tO(v%{;w z9k(49kEB#Jfcl`m=>!yK{^$ONi>Lsk?hY_`6*GKNQBt>01sIDNl#L_GS75|SHwXRL zSz*(fjU8MgV+IqoDk1(1@%_dPmwd#v=j@sfk=@vDVB8IY(7|;{N`IB;FI|$MT_;lp zYvoJEK>VK#j|+qk->K1vt2tA{58wTS^u+Ml^;pTJz|qKi0FHLIHFczF!?r2p03WSE zw2C<9@vvzgKLnMw&;YOm@VS*7)(!3qQ1n|V{Zp{{%l|$Y zQ)PY*`PgmKh64{B~B%lxFcEct@xXxyqHAf}TtBbtS&C77ajZBLne;*7{Nnq}y zAO$bfK_xt0#3LNWN4Hp)yuA7GKRJiTyWMrfqg@_~EmR!z8F<^6XX^udCp6Cf%1hJ6 zhYs=DB;$qUnW}$Px~)r-7gU@_THI!K8v0g~=SOOz1#;-6Po&)JOt#r8@aGy$fmgb} z(dvxnFqQ-DG4bk0eR`yg#%m$j(DVD^2eBdOI|fXwPkzU)k8&?Gm-qGPHKC==JXkM; z`275VZvU$us|$Yx8+a?~&u}UOI|>_rJ>8o;57lL%T;PVz9O6CJrY(XU;RXl1kvfi5 zxXX-tJCfPIo5Y&I3f$iu3;!_-FUW31e|q*&`L$&ImX)h%GhQriZArtb}uhROB&#cvdp)R|pfEt#*I>X?Y=X%~V`aEjij{0ct$(MEvQL%Gu1#{pVrxvxny|5Z zT}`Y(TS*IU;;ZCurIw{alx_{1#(o|B=;iQ~?%_Eyzvv1VD>s+xyQ)^^<;1?&pt5FYBB^>-&e_a@b8LV>9|xzey*Z76Yj>DFOrUhwwgVnJRS@TiOie z6JxS2+3} z+Na)u8W%dBsO@krPcpJP9^qT(pIM||=^OI5kO$Yqw+B_@Tw`1N6bEy1yxSJ2i)zZwa5& zB=!qi4;#6BD+Nx!^6taohjdS0Ue5Rxa8@jMS-p+SHsXLQruafR;dw`q?2-gfS+6_I zwtHXVnwLAq5Gkt@9g~!YdQS8gS+MahF1qfQ+e2fBN8@!6QRh7h1XFz3z*YKOoQ{8t~O~(1q>fMob`FSGtyoc?P{LchN z21R{~Pc^uQK%{8@_T|F@VWd6YTdy}nO|0Y9NZ2fSEf7B?(fK&U(uQK5Uh;>YNBb#S z4Kw^fpDu;g_l|VS3!J^EM@Z4qAa6_R3SAk(?-L%c>%Sc`V8aZ!H%tr>G}%LyCgsCr zj|zMF)sl6%RFh6)x>!S+j3S`w1#J&E2Le2`-g|`tskw_MRBX%^2tvqw3P?EL^Ys5& zTY8LrW7{X=MDSVzDEH&Lx0e3jW`1MXz~}F#@jvey1+uU|PV_%4?u}=1NbpXWbhJY~ zXy5BgIMGtE{qtnYu;lI!1?}U1?t#1p3zWV968dHby4kvKe*!0c0Lga?=>vQZa0kDQ zqHAttMG=>fk|BcXALWT07-%R414W*))(Z7CN@uzb&i?3phAsJDmsw z3eTUl>qQ4KodF0o2iF{6d3#s&kooShkR9qBR$fRKbW3(vr9j0A=Ss!iTXg4YR=p(H zto#Rrwi~zb|m5<8#_){oLLKFFXO!NGfDr?3;j6J?=3u-E@j%OY`YZ7DK z&a9d8#_SPFxZVp!(UX>^o?#GZwR>9pWB3~p-Tm*p;#JE(2AG&BC~bHs04Xwc=ndLv znamuRRvQpyhADRMnu^*Lu)0om=^45UnondPeAlv`BSfQ@T}ShnwiIGkENyujP}}FA zDwES^oJrA$CrSc>W)q|8VdZV|OYGu58C~ig@rE?S&Yz^nIYVio58KXj@Zv;F`jy!Q z^KgN`fy400!mt6LZm0Z}X8z2!{2SQm=gs&LgI2o}jrrICTCkIPxmT{bq*#K~{9M9y zoiGb^a3%LjLHhc1ib`fqbcv%!B?Vju>xdDoH89fsMer2#CfJ21Ju$u#oDk<8R~+Xj z|4X+Z&}=zR{-P>S3;#5ysci3U<8yyTWt{^x#qiBQ#8GZ2Az7G=Iyws0K^vm5L&)pEgqbJyis@_#;VT-Krrz6oe zzn4J@$4!8;v@5{BQpZz0Mqc<}k=%C~!Z!bxZb%9;AB2qlmuzA(SFGiy> z>j9{3bldApVhyx*VRQIzsNG)uW*>j%P-g<(%S&;?kSwSa?&}VQHWS@qO?IMEZTkY5 zFm)x}6IHxKp5^^csL>xctBI9w5aWjhdxD--6s|6qgJCs?mYL7E+l2)$y1thrRvpIx zIPH?o+H23bg!gQG+032m?UP`Jdojby@Bdnz#SO1)Xm(g)_gs@vGX3HL8;OVHmYn7@ z5^k9W^HYT70U+FjuOa+KD@hjb6>~STlqUMj7^=1dU07hpV`Pt%$-tVPk%c{Zr6<|` zBY9p^`(C|O8wPJiCHE4Q*9r^NTr`SCmIRYFVYJ!rhs$H7_GFY0r7K5aq<_&>&NtEOu*(o+mm_-(gGgFWAv{#I4A8Q~mV1qq4n_V8woPg6g#i zYXSI=;l-x*z*#xNi7zB#*KmvAx<+@2X;2IwWM@nu7&a9HTcUSgWA zy*9rhEOQ7AZBHyzT0Y;C)i7aXCN<#z*~&f7JLq~BePJi`WYXI3W43Ub3;Pr3=@kOJ zp+6zAHiWj|O$#qR`WcfvVffD0QiI>HC3e86-+>w*?dtB0>jZrCUsnd)-1s%Xk^kkG z{J)p^!~wzf)6leu&K}v{4^8f^3#k#8GxrIg#<42?cRd?z>zaCh* zXzwin;Lo%GHv0cEPYgJ+UQX2Az}5LYSy-iP32*Xs`+3rE;&~ho2Evn3rG(GT+WgvO zPi(d_1mM{K0O<2xl|~2E`ik9YGFDx(Ud)HnjB&KH?4b#%AM5eBo&G(BV~ zy)?-}>?tg@ag;~#5dZxz=Lc=|Y@V!8;h2RfWYby+M7%ZQ$I&nQs|6XpNnkP$5C%@s z?i0hmy(rrHV%j&HSD5?YzS|omvlV8+E-IPHJ=!Lh8hx%u0;Sxkwh^)j{NB*vv6$$S zs~{+9Y6&uT4TJzJc7de@iT~}c_~Qd14KQITMJq5znXN*{_=d*qP2qC}_dp04chBlb zqI!*^lm`p`OUW<;-p?!ftaU=x1ew%g?$@{i zp5{I)k0q!)837d=mYD>*NM!0;Cx7WSQ+nG-uIgoF49x0i`lQ-&j=(#GScKBT8O85P z7}_ZVV4t}VfHM&4x!+D{YNHCfYtMk30>IO?DxebZ1~}DI3;V1=|4a-22{Q0FNSFo8 z>(naZKGC>XNjE`3@bG47S-DOpzCbn|PC9s#iSjvsdVFlkK>`MrC18H#N!Si;R^b?n z_$s+IQ3W+gDIoB!tB$R9hazNFI?jenwJ6*SI36xm@-1EoQ9WbB(e-A_C9H?1P}0Kd zyu=F0&tBIF_jXqt1FHl&{ocU3sO;4a{cRR(Fg5Cb1gn~TNy?#DM-w%igmp40{OQ_Q8vdarkz-mB7B(m?9YK0v@CK!MRcEZ2kBBZ)~oBs%~x?8ya zzbRukJh6WziU|gY0l@L*)&EMU^bfD>|8u2Sg(*bqNtpd)Oc6IMHTr&K$v6^WffFoPAABXNY zRP0z4w8h%g>-iT_&)hA22XoibE$splLN^GNX|?`mUGvPPtnn&$Pa97yD{9!lLnITD zjo1@Z8EVubjn$kcut%Ww7&ns%-d{nC{C0ZUW}!7H1_?m0PcQE1YywC6viIugM}`L( zhZDF5XH1Yb_d}X?%B&Zpo$-)~@1XvaKHl`~iH0NCRqygXW8+w4vF8+M;=0VmyGfqS zlj@iGTQyVNo^%%W#AzBxyFyH7E{`s+u1JO}?Q`FeWobsLTH4v4_#0#LZvaGUr+Dih zq{#JXWs}Q{DmjC}^x|b5^NY}tQp$~OqH z`p2NP+!v@e;Ge#B8?RUTp<6$}rX?rhJ6SQ_`4fB81B`L3A3PiBRnyGY2Wl_PkpOO2a%yH`X) z{RD7-GL4-@z1|*vj{lbTDz6K6X84@u0y{1WW;iyLqD_P1bNRK3X&pkdlRI+$34-nA z4bGJvL=L)Ljf&T&QQVArwM_{59%-lm#9Sb|f#!4CtB3*UC@fG90KjH!4%NQ};eWII z&=UcCFF^!=rEPm7VtoOy{_SEgU|rdEryJ`)8vv6}X?j}Ggna|(M+NEtlzKD($WI1o zWAkoG#roIfb)L?he_b}Iblt%EabZTWY3$2C15dgw>`yZfM2^z%o9N2W1purjIB$jQ zfIVd~tV7v3t+6@{?Df_Lg5QGQECKW@#V$U=x`Bs;`wrv_^b=ciBS@%P_n z!6)Ue@00jaFL}wh7o8|C@Btt*?-)4{E&{fB8D}AyvZ&NCmp)sgW(u#vzrtQ%q}sy( zcdfYCy8`oN7nz=`=WI_s>JdOVQO?Q&u~_|2XtqARSN3>8^PyQ-Vx@)~D`oLfkVE&% z7wxoC0hAE_6$2`&oO(}8|4YbSLIFfd*}i*6{Wz-NjzHI+h0C)VBE6a2-;=EqdWu1Y zHe&FXAgf=|CnH_iW~ZkzG?4q`WU%>FmjG>0q5*)95_Yn8*;|aS8sg>Q3XiGp4ZOfe`fZfD{;6LDgV-?EpKs7!Y|DL=K})_ zxuiMzNOr^fSimp8kkO0f`scZsa77H}Uya*pnvAI<{i~^<>x3u~4)k07TRciD?CwMV zr=U2N&H09Zf(1vNl|JdU!uZ>5>9vgvU%@}!x_q%`C;Y4F6W+qCxk>*|XWt#x zQbZ|&(h(34X$nY@CRK_^Q+f>u(o0ZEA`m*#1VltSh!m-YUPCqXE&|d5geHU*N+SKf z==YrGJkPnmd!Kv%gY3@C&hE_YzPq2D{Z|2=`BlqTQG||RLLYmn{kg?s|H9vY%mc8S z?2lQN3CjhYJDq5rMjgwvA-B1yXcyT7<_qJx@RWNk!uM?D^Mw$;}c$!>UFQBA7Aj&5^?=WHMZS!@B~gX+D6 z@ZuL_IoyVP|83m`%YFHT;Lq7Yi1IMCMl*ca&l@@`dhr1$DCHK{MbtpO>zfl|-0`kB zY8Rkdecwk{E@w$2#9)^MnE|5Y1%@5my|Y3IRYOd1L%z~ngqd^2b7xs1lpE>aUM@aY zoer$^ruf^nV*$9* zLV^>Xd8ItT@Au~D<)!cCC)y*xoeTm*=vyMxDxOnlQQ!=y`I>`%H59t964AS%P7HXC ze7yMlEEsUY#fBn|%-vO9@rBtso7Uq_XgPL!1Jl@@XLC6Ah7ep&1u!B+{fs1m%d0t3 zqdb*M=AicH+A+Mf_JZO`Gfk??3}^VXcn4l!)*wWQn#{(!bQzsUJqg(n6l^L$yzb)2 ziCs=}ws>H4IuIZA0sPfV zYJE)bVkX$pJ?l6%bGC@}`J+EM;zPjm^R#i(BwbwW-yv{65(1v;P-_H`x!32%=uiVc z=W)gx`uL8I@nSom;g;(0yzfp)wjOGBKsbqfQ|sI2`n5^9?6?}yrm{)^75Wv>;M7)J zHf7uVVx!0I@Td)=Q-_B+;yTG&ID~Jo1JjLx#%l1i`QDfne*EEF%)@_}e#l!WwiqAi zW1os~z6_UN0IiQ(#+TZ{IVArf689mb4zt3Gdo)bGVh7~NPuI+|Hc#cb@Lz(B%^&d0 zG~&NY_FC-zbvz^SgSLsxe9Xvz0)BJjmyq7r6%;y%WP4{!aPyH(wRrGXTEtnXuN_MM z;P3nb*L~r!ed9D^+JZy#@&-GiN7A5N88v%RNh_Pk9|^m ze2Q4^eR&0X8K32BB2(~_38yxtf{8iU_X?TFa@W}ygk2LOen22}*r7j`Ki7D+GyW=s z;VOo9AV;G1*rf|?jdYH3B!&Y6((9BI#)XL)TXTjOgorMnG9ORtr8Q8VY5D;;bhLqH zqa<`P^u#o06%t@xS;vUIO3vKoT(JX5-UyBWdu*O_>>5!2s%+deuN9Bj|w6 z0I61??WO0u81Fgf#|NTI>Y=qZ*QhMwQ~!kpn5DAV{9cbTdM?ZeII0sl@F_p}=?W?H z6%CVGU*A-4#|6!VDMt7C-A<;;c<0x^L}9%kE-zlZJXo8Sq{h@MJ*&2%evNME9S;qv z2=+vHAJzO`)Q&5sRihi(o+cXGDl)sbS#6_X^5r-u^Ca?upF~UkilY!_Lp?E#0Pq5M z=1wa6Rq>+L=>fe}bkKB@hvi4~g;vuuM#uXju&nQ5QWu)*KnL`eb_1siQb#{lXyXSB zilXeh6Ug8)WM_+Gg0o@#wBSp`z;y(lcIVO&D2SXq;?>+H>agE`e{{)#2wYWC6_D=e zOZT^uX}hzI?oTrr-xqdsoaVek>1=KKz!n^O-fN|Tv0*AtG%^MKSF8qf;`*ISvmOkQ zw%0a#y3@CEcI^k>@lb=nWD7Ir&%ca1)ywGGrrx}WU)%^>uIVa|XjKre?Z(#Zbm<44 z_ZgDVCRwqixAUzmmCx$0P+#=(74Rl>=ZD|}>MrrdV^y=Wex_aGc1%C&foHWwK)>qp z9fg0mwO?Nadk&c4iC#>L1}&odlJBT7K%1@&G;}Ov+49d3lL5D(szWF0OT?rZBi8a~ zn?w)Bxiu4V$PqE2-x;A+|K`PoSUa1K{?x10*wkXvr1=6SRHWAG+Z+JdN(-vBJjVJN zHvVZEfBW&D=)fVDtoO0=t2AP3cxf^&)cn?N0BKyb!C)Q_EofV$dblknrj*hh9xOucLM2+9A)o9*@^UvUutf?0VF- z<*^pqSic*$f*Hc*St$`ogQu<=E4EQb8Nb%;AUvk0D$4QWCnlrsZq7*Fpg z5DQ&xlM#UmX?>f=VRSm1Q<{~=we^04>Cql^2+vr}sfB1y#;0mMMGx7vzZ?o%4&TnZk&;oh zgyF4VEKlN*rkO)7y>*Rad{6dXIZXWS@zUMjA`#BTxLGOz=b}6I++439uO3)Oh-i(H zpjIOw=~LG2UuD-q#@xGB<2xT|r5M^yI_auUdT~aT&_kGPl(+_F;CyT+6NV9i~H!3gbeM57Dsv! zL1&Z5P05TDTL&;_O4*C;d*7F-iXE`-d~)IjPrgSb)G#@#nKTYKMM&QE{xg&X&cNdq zD7MDgEGPFi-v#vS<+f1-snhCf&>& zgrB$^u`dwFz9)|f4uo#lB+RSci_jFl^J~QXB1BBuA*O;%91s1P|I!`9unal9Tuk{J9*cCwx6OGM2<2S0)ei z-sZdgiYt@;(S2@K`!)l9-p5W;y{`y$)%x6@&{C9_O$ba6iTr+cTY%{L-A2BsC*%3U zq#D<+TO0E^PppjQy`R^5p%CaUM!B(2D7L|Vhc;ASIj8)S@q4}diqFV#vDS>^RLPPL z8)&vmi&urtt?t46&%cSXeRCrWX7Ey;Kjo_T$0JGBzYp=~$bQCYi_gfz&V+E~)IZ_I zV(w+u%7dg#Dh4L2td=x!vl?ALtu~WNq^57=QP8MXyj^9uHRp~e>Mav<{e6v>A~Mxw zNGtbh5n7v%$ip#_^hlMsqtnjZ#u`|)SidjH<(pFEP`3HD_*OZ5^_$nA0_Ul3z;)$U-sIxP46g38ksy3yrSK2g)sl4SO6MK=Tar)7P&SJovgk+U z$INFjx%g&V;_ZbHeESfsxHr025NZ)pOVAdiw8O@Q&$ir_zoD?h#tm&bi~syJy{?iR zG%;3-ga&YNy#YYmUW_6z(OlKV{GI zpAVe4zj3Cr^O+j)STKFDLuTSB83^Efo(8-q41_GuZ3d9`n|T!uC=G&9E|}q>-JJFA zu?%g|z#q{2e(8%U+0+O!P`Z=CUnUgne~V}kIfoNDl3meC7qsC_{{C*PtI%h>#6rP% z>Thwce3ZHhNoj#L&C5PKkA5vHA3pzw6Y9}kOLY&{ua{rTKeupI{W8Pc!f@5Xg;R&Xt|qwVV}~uq_xFALT8nu+VOkUQMsH{> zEH&LDRera~V|9QBVb{rrNN2YXd#Enj*nAjKE1C3I%&9uB^r6%VNEsgpP7#QH1($#u z_V%~la!8{AQONFFzP-`$DzG1+<(x6>kx}*OvL{T>DtUdX&OoX`JgFeawA!@1uAwfO zW!~67-ps<>;-28pGAsUQoU^ulpmg=XTo74SZJIMu;H6t0^w^p&DA6=Zq5S|7ah%6< ztj*$c*3-(=rO`RF{>s|T3nq{?#0oW>@*f8|JV;|PaL6|2^GK}VlbdC$$xGDD^6D)c zp$n^FtsSB0-fo_TAg;bl>Pu8D4|ovzqg3z_PxR}d*vR&G<5@i}!B$sPOAompTb9=; zI}O|?m)Voq>#Uf51{0NRK0P_a{kA%fPIm~~o-^nFdV5^<)NjO~Z{`(e8}RrT3cv_1 zlXh{h7)EKNEiSe_wZHPG!=#{?gCjpZ8r#vk9=6rB9@|;+r>6_wvepMmt|;73+uMwB z8s5emO^O65<&C{>*z_JHsX^Dou+0#y9b;JaT0vZR0te-*koa(K)h8-K5 zKOjEV^@K4sw?5bWJ;boEmU-7g{z zNQmDLCsHoq;9I5i# zQ@Zyy$Fo`iMHfT%zLj$y>VQfyk^%C^*4ae;7?~PSO)T{35Z9WjMOq@^u z(c=W4Bqdkd)zr1O9W1ijrf%G0?!N8p1S9gE=tS_D_`c(s4icg{*-vc(UBlJTY1LTF zIt(RLJwii%M5TzEEt3N1;+Vv|w^ zQpECgmSCD}s?x`iv>aFC-NsaM?%pET&*cS$l0;S9iWWEv?AR*8oCFpXHFSfmJOX-T zMRCy1SPRXaHul$<57>Mk%56hWcA*bnlA3kS&G5%TFpCGf2iyMfQ%45@*FX>7(I*x8 zts*lr&(?NAmV~-oUPb5~$EczXYgxHsj@nSmA6S-KRC-R2zRa-u!8YcEJ9w&mPv^HZ z>bi2fj;^ts@Uq@$Y^Om#0`hzmhJs=bO5#qH?OJIje9Ddntvn?$| z{>jO~g3s7gO9DG32qh(ZI@E}1JX_tz@vNRMek(CAHpAN!=7qBXrbcO}wL1RNb-rbm&gG;=0g&^9w&~L&NQ*4AspUAw zSp`hV=3k*ZsQ4xTy56`t<#x>(-0wkAVJ3vD!|edaGhopUUsTp%ew5L{P8VFp=V00a z!v#`64A5;SZqW%9$6cK60J-=sPI6YP4`d7wl~)9sW1!irNQ?j%+V-H)1d-hh@)3-N zW>X?DLjU}v@rGJL3rX&J3j}|Af3f@R)=iw&m(a(mB`i4+Nn_jmSlnvZ@IC<9FJ*um zbtX4Uh>c1V-a|3)VeA$r=`YwmL8RC#QD7YZsbXyGB*}~Xk!^f!!||q*)j^|c9ApaB z!>EE7CiO)ui%g+2Zhk;pd>l0j+MxbRUmgK@i?<|TSl#QuB#!W)o@u?^Uvc2&-CoY~ zFK$bIGBiU?&?|LpM!76vx(bKe`8H&~D_ol_SZmJu418=14e><2au$M6${M$D$^GnM6OC}~~e z)$)7Rduhg*lCXMQ$r3(UX(m%)v%| zUk)@>-gMG0O>0%{mLzCV{)(^d{6a@c7T-^$T||+rF71(a^J!`~0mRCdaOl1NBmGrd*Q5C|1}m+b1J z;K)fd6O>3&C(2CeP!Bc0>AjRSNYZ;LVIZ-m)Un}*JsP^tXC1FUmcBxYJopvS8(6RP z9AajnV5eyoK_Ma2npXEOO{pF)*M3lT{5@f%^;T1loRdLBk7fSbdt zOL-AyH(A%G-JI9@qrk-fpuk6M41?+QoIKHj2iTH?M8e92WZYgwI{}OD7bOb?&O+|x zuKGKd>!dW6|4-cjaGAI<-kDLmbY_?7RUx8qmoW(XgqMQX3+Rix>||SF@}DHj|J9Wg z|J{{KmR}W(z5)63Yqq%mBT?sn9H`R%&A)b4Tj)>X&QD4IaSTf%1OUDMm@rn?9l%LM zFz`w?0cqNHR3ab;yIC9ja0#?*T7ttTNM;hjlqQ1d+e7AiI;6)LmYAoUxtNAA8TWDO zT}4d%NHEG_=_4#3^)6Y<80-2hv5;4H*FVJHF9;oTVYHG$gjGq<+S2j^ycA?N5~`<^ z7V*GJQGJmERUsL`tBT? zBRsDRzrtpAvwcn7LQWq4V5o|r1LH**XdW$8@1v1{nK${2nKsX&d>gAi`8^#8?l`o! z>&yv4mi!u;e#82;w}gR@Uv!9tPZ_=5{+T)jL?fbyn#YX0G~mk_%g3*>T*zaI!eiim zew*@B)bZezIpzfe{Pp==q*-HDrNR7w4$~kwypP={i6H3?O1dfiDho^GZtm^2o==bh z#R|uBSL2_}Hlk*)r%lRS+R%PNyNV=q&Nm_tbf$d~IR+^QoW&v-)u=|g5B75{97s>y zh{WnF37Adfz%N;tipxD|^yv%XUw+v95FXr%{s`oZ1~8PhP_q7vAN1R)9_IbckNou+ zvYk#M4ruzX1%gaY0EYZ$sO=_ zwVrI;yvxh3UuE_3EG3-zy81mPCMqVqwG@`m|LQrD)u-Q}w{OdPpwbvprGBydeNVQ8 zwQ#;E>FRHnq*K*$lft(_)n${mbX&u z16{#E%fXOolc#b8`*cM1{vF!zQ%h_B*bZ>)-m;8Obe8bJ5*Cw`!)x*4J#w`|*Yflk z*bgsXV>OA4L7bMp*?Bwi>p~uhg9bKO>-=a~_2a+=zG6F%#)qw%YGRV=53~Z9kN*pG z@sCq;0(18T_6b-${HZjhhB%R?abQvP{l#77A(VCpwW$=bd395LCRDF`x4FDRNe&hcWO?8378fHarj&-FWq9*no)=YTWh%Y(Z-%3c|p=9-6qNz36ERzL-9gT%7 z9&a+^$sdl!-RW=rZV1oJ;2#qF$^6yZ&aub2!L48Up#D8HgQgNi2mX~BLO|e|1NB&m z&EI5{%7PBCxf*N@QrhXXIX0Bh8D>)7MF&(P|kqoIaofwI%sPJC&xFbfx z{z>WD_5dBc$@%zPyCOzazcr!s$z zoUGUl>N^8(k?k^UGCQh9=Qdf}zsPzMqyR zJ!-ZGq%}Uq>c5mo{v%}GEed~EmMFERgeQC&cY5@yqXNJVrs+PRt7VIFI&QWEtT+PS z)vwvPf4u1@%5-6}09qRm1-R9}fzubsu>XLy|EDtZBxv<+5zW(a00X5E-XUX~p8Xck zQ2H+DTQ{*Nlg+^#QU)myoWnfDoLJtyTfAu*(gA$q_ppuWUiF#G5G+C8!n}0 z?)2@xsBzAT@&i3WxbFb~^>uR)FKE;g>0Gz+$I+z)K@0<;+j$)_H7^ymm3|>L1Q+f^ z8l~XBqX$lGv;w!HlYoolOipB(3j?*cK(0Q)sIcKk;I~rxZAIL@Ci3hXLiM3$vOk28 z+^nHb5lh$I-b2lr>pP8^L!Vvz*ZnlaF~IfkrN|}JZ+i{R2bNE1NAB#2TCaZ|;74&P zAS|9>!lJWF(M@O;-WtlqK~zUU#J$GL%I60W5=oNW-AQ!Y7K66F-+k=L<3AJ0@S|2d zcEfED$I6GMNMCcFt|WS(oEzOlgy!xw{9un9kN2C8VxMaL z(Hpwug&uuB=iAA(9cD#q)xDDg^cWw%fEoI2vuE$?zxXuF8?xv$;Mbb&RLekMm$U_^ zQw?8pP==pN;5q|Yk|r6&Ys&}9 z7O{C-LYt8!Oj=)h^UFTF+$P6d5d}o1B^TX^9dvmhk$iU}nok2Ea5UfTzP^Obg~V2T zU@o`RPpFjv|0C51QFM4}#V=99DRJxiSdp>8h(H9l30=TQn-MLzm_1axl_dwkvs_;A z(_|pht5~$7)!j1g?I6Q)Xj#KFSmIWXGAi_Hf*88E5PwRwaeT zK+4?vvVg``V%9{i_iCw5YmcqW=z64)xXdF;{#QiSmc6E$Dqy3fyZd#t{3R(3a@6&H?%o4Qcy{ zJzTqk){k+94C`-^a;sy`SG|)KF9$)VGYrLl%!|vQ4dPkKY-Mvb=$aCK|2&~T^)v{JTk7qc^ z7UA#0v!6kFWis}EhA9Owjv^B(6F?C?w86+UU8M1cGZn-{INuW)v-UCyr@7CPp7246 zCi9wnQMAK1>PN5K^k>b}=K9#g`=`-k6B9S8Mbic-JFgm)gXPDBx#>mriboB~tx6jO z3};e{)Heq$vH}zOYVybE;7&DuO|v~29OYNCX<#V=KIpKW;Z zZr=L@8{I8rf}Qle<()`Y0`vOg7(E{KDJ#v|De3NXr%Ce|JCpx3k(3)2?RxIAsFGG1;_s*9{LaI z#Rm+vKXye`?@{C64`hK{6{8q2IY9$2D&?R}ZkMc912OWuE!uA+B?>m-fA5g8?NXpy z6r?J3iz|-W5WDiAf6TyxYa$hD#Af=1R^8W0;(5k?{^=VlLIp@T^AL;$@h|6cb77mf*h)adQEA#ov22z4tix-eyQimHi}gBm=3-R(h+V@e74 zd<;FZQ9t38GNO#{YhEeO<3I|@?G0+>3#uASF%BKclV$1U(NiI+QRiVVtRY3ta|a1~#zc*1i5o_b>`~R}PGt0tU&AdZW-!7M zEv@&qaY1d1wSSH)|J@E1B?RQ9qGoQu~;4y}EP;vp-jmW;rj28?i;QES1YQA?i)@Cl1FNYRo~mQ0W3w!7yjn zDK^(`mioRZqcbmg@hZM9>$F{8Q~BP4H}i??Y-q|LD9dggn?|CTPljcwTeO7p3s&s7 z08`G7VRt?(NFX;vt|1tzey99O4pfUPN7aS0a)IOmupSNN8|J`{Q))5&WZf8hYXJN} zBZO`uApw+1>NzNJ{9E(?>Pa|t7ZU6+!t6OY@=w$*yUg}f&!@1(&sENaOH{sz;~jd=PHQpi}u(A&B>{9HhC-n zJ7n@?8Bi_|pD(-D0U5Q>)Qb+FPS8Xv$;kt)VnCWiBTK@_7%YZ`3ZLL`gVxgEHD$QAToG&$bcv)Ob^{3 z+jU#obE)-+gwlZRk;k8k)dHbXf%zoO{ZnYzY3?-Od=a%bNbGVaok0bS`drQOmE7j zNo7__Ht(Rq1$ys)vZW*tA|<(+Q+?{mYR%n`-A0BA60d z#k50ORib!z=RuU+*@D0(TZ(3oV=L=!$izy46*)A^;5yNJZS{|29dQKkPed~TnLm{k z`j|s6ft4&h1&`fQwe#srt(e`zXXaUN?0l5u|M_yU)NW=DY{)N{(=Pd)y>v=|9JLVb zH_v*THH5vv5z$YdOgh6M0j0czVpb!OX>DwPurp|7J*&=l%QO~_MXE&$I=Lr_&-7eI z?T6>{IkokS7dne(&eA#%ZT-GBU+SS>#)`m%#2)wCTX&FRx@t@;hVn1y`lgYX4iufe z5!ZHOSng|E%JdO#O<>YG|j}}). +This dashboard requires [additional resources metrics]({{< relref "../../requirements.md#additional-resources-metrics" >}}). ## Example The following example shows an Alertmanager resources dashboard from a demo cluster. -![Grafana Mimir Alertmanager resources dashboard](../../../images/dashboards/mimir-alertmanager-resources.png) +![Grafana Mimir Alertmanager resources dashboard](mimir-alertmanager-resources.png) diff --git a/docs/sources/operators-guide/visualizing-metrics/dashboards/alertmanager-resources/mimir-alertmanager-resources.png b/docs/sources/operators-guide/visualizing-metrics/dashboards/alertmanager-resources/mimir-alertmanager-resources.png new file mode 100644 index 0000000000000000000000000000000000000000..dd340fea473da0c73627e12b82a833123f853c5d GIT binary patch literal 137062 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 cQ6u1~zGx5kBqR%Ec5ek&NJ9|8C6wQPt@& z5-Hzc2oZ%{XP~m6`E>r{$k9cpB{$ACD|z`{lxx8sbZVb4ASs`u$4H8z9`%(;#O}^j z1~coN@A%<`b<=3P+}aD9xU~fI#+Ye1+hM9+AtZWa+k|FyxVF_-sJ!M~w@FMFKdFbM zCOp_3HdiiV-jZKoDl}mN#do}W*P4_-r0)?p4E#rRbIVa;F9{@|<(~0)RfeW+gm3)yJ1tXc2dgH*4|oaFt^UvIHH*A&wxM60B%%E5xh@^EplDAo$PHf=^~3eC^JQdtD?;f z7ciRcRq5layO&4tb}ZjpUpL9z!X&1tMXMns>sjiFmAn<}@^T~jwO3};{P=}|X3FN89Q$lyGtvxrg949VJNLi)NduItSUQ=-Ua$vT9tn)E7l1wN zF4I$+KxR?}OLl#aFI4BP*NVn<(H8wb;HeVmY*lI@#+m%XtqD>6+62H+RFSEEN0LWd z92!1FcaI#ZbVTikCK-eNoVbsfTYGyI4&e^#^`jTfnYkYN{-ketFS9r(ES#Q~LaMUw z?&fC6*%$)eU1Pku@5sX0AQ;?`r%L7N|-FH~j0Y117o@ ztmZap8`hTZRx6bG0^Dbo*T6R`MM(t7R&DEsa_b`3-FbHz#I>4~j=JymC&FO?f*DN^ zV+KK!)uECdO$6|;<6N?Gyxc5Q!}Cum!d6tj*!yxd0VFYa-)q zB*P1vViBc}Jj2Rn3`ON57r(~2^&ri(8%I1u;-m_L_bqx=l_H|9oCLv?bD(%m=JXCu z%^;D7Cf!a<&k>ej-`7kdT~tYKp;d{XAy3{Y>?X?*6LmRTUhw#wv4X|NnK$~hlt?H( zZjtiE#G_b)R3oTTY?>Bp{q~e_08@A3m)1*FDG(2fz?@)Z6pgSc!c?*C>z-2&kRgO) zjyzj9vh(1w?g2D@H}kVcoXN|2A3j4t|E?NG&}?z&MDx#hU!olk7hdBE^Kij@!pa@^ z%mYlIt)_O^0vcL=VwzwmyI&P~5a7?`y52@)igAoE6?veyMo-G)cHahM4QfdY8pQ$- z7KIk5XLmaeyW2;CLq!i&sem-~@H3}+OL;rhNcvGqHMwRZu@L*>4>+{C^w{5N-J%t36ZgvWn?HpnB>36HE$H78i=BP=RMga35k$E_L4S^Nm`n z=<)+uF&9#WhV=NHCV);*QkZyim&l@kdX2yD`_lqcrxqSjcyr3yUc2|j;|#Qz@H<`! zJqUQiyyWk`cbINPUZLr7-AVuU(vYIO|)w3%UhHzS~{t` zu=%I_;f-1(q+i7}V3zM<18`B>2bgOn>zF%^))+}+(23uwP zBZr|YhVi213SRY%us-15*EWhb{Ft1(43Aas)`X3n@y@f;~Nl_+8ZXKTYfGf)pO*I-zwLLN0S}% zI&}pnZsgakUom`i-G=v4ygek6BNI0<0=o@)$^;-=xP6)UQk=^rc-aPf8YlFAt>KXz zKe;pehbN8-kM^33_{|#itSzSWeD(Llfa62>_v$WHDauy3{sL15!bmxT*op55t9|^G zgntm{6yM1G0MNg!_|{+Kt+~cC+WZQb-SQ}<$i@Y&72n3IIDf(Miak%qpm@lMg$zap z*=`cQp??3MZaMU|b}$buGP~lKS*ghIRLwB+Qqbr9<4G$4L@ILbWg^UH(+G=UzAo+1UZ@*oJ% zCT-_=wj%hyID4z8IGb)=8+UhtySsaWyGw8h65OGI;O-8=gS%UR#)3m|cXw%=;Jfp_ z-&$+@WABsoA9auFl3BCvdZerBnsh2@qjrMxqm)bhLJ^GXrH(U@}#q)Ed&7*sYLDGhyJ6(c?dL1SvA z)~qOnxD1=7(BJu@KcB%ISu?VKl}#yzIDGp#C*oJ>2K(z`pPGB?6lO) z0VF4JT*sE$x$G61Q8XVT?b>D$pKjo3s^lim8@D7`gcax7%k|J&(P1@amvu$}77QhP z4w#4EC2d)+v9V;Tc#FE z-mt7rCFyIh{6w&5j)1r#`(sn0IUO5NE_HrX(4deI2`szhqSI|FrI8fUKlOO9bDf4b z2`5;Gb;Jj5^5<5ak+?B7eD}6-&X#S$v_`o0@{th0hV>pQ)!V|QcIq;bx~oDu*?y8P zm1ZTHG$Oy;5IYm%#PLtjQ&3rBSbW9^#{;m zp=r+SYvX+8J1XiIar?$sR|7CNXmSc(oOLY!6EZxc)uMccwax;k7`EKh-=qUs?db{6vn z=>78bb<2xZ{Uio~w25D25X<<)@5SCBtc;|8%;Q{R)IrFjR1-))=z@WlZ(;k@y6FoX z=rciwDeW2?tQ%sR-WJLA{kP3sw=6>TffGCcW_6ZJr}*nk+2RcbC+b*9f)>TZB%;;C z0EYqfImJzHD*aOb4!ylt!^w@}_hbz1VQHYFBSmQ-7`X_^Rq+Cg=t@wngyT zlz9{mjg*R{uz(Vu3YsK?)UK_JR3fYO5$gnxeM_s&I5GctsD^@1E(MAP@&JVVWXBfx zeT+z6!o=IRL?V%)6mN)*Y1UrygWg4UCuTHPsn_ksIexW0EPynZ?K7{3-qR!Ku30&7 z@f+It0Hou4cieg%n~`43hF{`_&1l^c9qZQ>V4q&(s5#UpjXfCb66KrwR zDC}+4fNG>GW?WYR(0dYi6nJgYpbCG#qqG2~$32sq3-|+G*7rUs1(yrUGkURqzm3hz zq{XWj?C?A}X;d*LH)z%YWjK6}GCdk#jP#Nr6?1qj4R{{B3#$43*auNj)3=xsTuJU$ zlBYbWY{v)M6vGIfohi<-Flnwx2tf-jsqQ6f(XHU1h*~6JO}V1=%?d)G*)$dTF3I2R z#kc2{DdcM2Ra#0GXS6GWWM(IDtI8}hX39xL9tqtn z_vFt)p+Fs*?`Ra1QbnF81A_ARmcbDLP)^UI^odde)eIy7Lf9JdeylH06n5N>sPhmz znB`$Kq=ljLb=Xb?ZTLwnL4E4PIjRK%ITlCsxOkACpC9MXRyL5K$VuWWX@T&{9 zJ23yMD+Ev%dZZtcZaqI3*QU1pmvkGA97TW8*BH~neU1sZ8=EtuMC&ZPUmwscW{8?f7eE1ec_y&E~?m5mC+$6Rjqx6-2#WC_USyR&N^| zjjLQF_Q<*(^%CEC^J>4!zY7SgVkZ<-4ar<@XYNU0i4C*vOEZJbtP&84uk>!88|}l1R)CjH$LniQzI`i4iC*v0sS&cm{i1vPa{9&A?TRL2S~AQ2kLh-2xM( zYYI6SX8hg6vmwV^7uv2qkh}~O>Lz>)h`;Ec^nF|-nXK9!-L}gt5%?yG?Sk2ixS@0@ z`T_V&W2`=HBzb=uwLXS<##qYS^Fh-RHnHNq0&+o%2sme2^A@WD_Thci77%s#lrxPC z*m`@jVhrE)^W}c9DZ5-$Ys>ev4{DAl>}{*TK7)a%vIncy=1?pT$v>Psz9gJ3q7;(; zlRP6Ru#QJIL)<1oeLf`y#eC)0DJi@XXC4LB6$TX7ESp>^D+bxXW$%`+KjSQs=_Q^h zahRTONq5`wc_9s2v~t2(gH*P?O?!EUX~JT$5o_hiu_(VE6(4&j2W`pMC)Lxbt^>Y_ zZnuZ|sL1Jsc-$-1uNnS7r-u$4nP16`ArnJ0W9!BnaU)%s%|qoSa|KMHj5%O_^!&)o z_?$-0Pk+VTBrj2s`Lp;blla5Wtg?|Xs6*2;pY}87dyWNWkX*`-aPwj7QtSIF3m2Vn!IQSnTE2#Z zdNvN@Y%?OfIqQBV5_%3s!y;g3dzRG|kz>cOWR3`sRE}bXC*v&P+LVyPb1O+Ndi%I- z>5i&H{+h`-&8%LNPixP{fKUnm_NQ=9(8lRc(EfIwTu6JC$AI|kUUY!n-7cONy{34u zlkTJ$c`VkR-E&zG5D;VX4y5tA-7_?qhppcnduhB`w6TUF?ab;BMU+uml)OFaogB*2 z-}G~Ip|##_OsA}c!H&r5_*CC$WmO)kyOrVH7|@;+1{pHUjw6HcYzO`Md#+$`s-xiW zEv6;5E}Q&MV>N8m0o6DbeXNSauuGYG{U~UbCWk14$Cd*~bcX&{@x};5`Kbsq4BG=q z@044DN7w-9UXLKmm!cJ8_GOlW{D8subV>CTw^=#wNrxa$Y+(GoD{sz;Lz_!Edp$*( zoVtTW>t%^Qap6$op)z+1icZ|pSCQt#Mi-LGK9kb+A(`&4%!a|EL~Z@vF?cCusJjDU(BpYmVQ2nah%N^dQB9!m6*Jt_8VYlop|U#{HzZ;G+CZWF20R)|CP z2V}!qc2HA)Vu;65)m^2ie*gJVqNJCYW4CA)rZ+WY=;r)Tx}ge@GoxMzW5IpInUak` z_fOcm_79o$9b#n!jcc{_+o#HjYpG^iNu1KK+R2Y5kQ_zF!Ox&KDf~jJ+776NS#Ogq ze29a=(&co}Pn^`+KS6#9Kc2`5ZEh;tx0i{rqbT8pf9U61aOsr{67_Q)0Z^!BDS9HbbAiEg8lWo$X9=JpFSjt8G3wn@>6)-()RLPQ*Pa_5F_jhc-g$ zXGT=5r%|73mXeyWKWi=I2|*^)9L7Z(|7aK#zWFjV9sj%J-qt^B)ab=T0*6g3Pv2MD z+HrDZ2ajpFT2LN0l*mEVR%sOr|&MIhJ6{F!#f7riW6O1A0&*`r)-m`h$lWj3r zNl0rv$fE|J``aFRc3+v;vE(P)5jO5_Yhr!YnS?e{RVOE5fmls?DWWgQ;lG%DF$=OP zh!?8VD>+h4Avz-@VuJZh31^J}ix%gCI$=Ut9Mu%K&t^_x{uTS{cl{}JO8KL2+C)hN zRRDkeu)>y+j#PPA@hW9VS(CfS7cBN)^c=~uiv@aW^p&quI7*;VNJS@;tf<_nCs>ZM z(C`XkdK=y;LuzOn2bTbgQvzV?jlVITgmoDd?zho`_$VoeJ=L8qV7d__(98=M3FMc8NWK}JE z)NAIH>Cyj?xo&Zka7`=9kLp7r5Gw!{kMToa%64hi)@ysfgV3sxop-o_>1y0= z;d6Zn$*P~qMpxVUc%Ik;mRHfCE2xT+9Fyjl@7ZkLS^e zW_wj#75j+bwzyQ&y2|rOMT^GsbcBi6>b7?a*a3gs$Bj51W4phX8DEKKr40ueX6qogs@x&lQ@)KPYtY@e=B?)eGW@%xd;J6nmNnBqH0WIk#M@ z5BOt}OXw?p8dwft5wMGPeL|01K}7_l4kI&@M27t0-LacRqr{K19w28}&qjlyqp{$$ z!r!K6Babp?N1zUj34M({|hBI83tKer45%sK-ubaDYI-`dS^npyXk`l&Mo1H)j4^07gTRHEC)tc5KcA=)kg_0l+3;={yA z+oxuYt<{82OEtkF`vV1>wj81zh#R%Y08fAa!_oUflF3@bKb7?)s~)1WAFr}vgY&pw zcZO=KkeYTySPGMuH-tL)dN^Gkx&$@0mgbL-?ON*Hl%$`v>_wVCNt%Blu=4~ltjU=Z z%?6`3@z4doZ!VqXJyeYxtz{bT^%GVVlEH!UHhhWoM;e;xN&)d=@mVjc==~QoFW2G5 zsq#TJrppMwGmURW$FRwvHY+){WDStI3?L#6LuchsZF`Wy3}`AEMtTN*%8j-=^r|T^ z;~|j;5{BLV_(-2UMLnS|7(KnMT%1G?Nta`JmE%u4+dV9ZIlz#=}+k9Z#@-h{B=s27Nv5pRH9zFQf7)$6Xx{CfVlqYMYmsqS4&Qwb>e1b{i6#8)Wn>?c$$yzfEsZ^I%E;?XL9VeY7 z0T>`zLpdNwOMWbKhq?NNV?jiM(L&%mbF3INXclVYwboAt8f4o&qttBRx~qK~zX)_b z)qiSHs-3?dL%tAp=;Yk<^0(-F@8MD;u`lkaE?mfGlFizYS=@01dR5;?oz%MXvCgHVrQMO8qL6lUi8+ZwfbT;dI@_0OT+r}AGuQ*5acOV*^7VPQSxC+-ibI#EX z2`vN8G2P(@95||sxZeByjGBQcUbstSsOwN0{idxWIH^ynG;NgaAKFCV!k^+zE~OKX zEWQ)+5n}f^aUKBRHcDZD`bOL~TkF>iT|5!Fwhq8cjb!Vm)XkHv^||X;Jxz~ymebU7 zQqcHK{P|~F<36gg!fG7;w|w^<=n&Z|B^F1}LNHXk7hmS0GcsE$f0OpJ$#OmK%+#vpdu-W&R9vN?w{KH%bAIVF1xstL@MA>X@Jq5LP-xoN zOJ-N0vaQ|pX*e)0R_LO2rzmdmX1ha5YUWou&PT=mtB{72{SYiUy&ju}{s;Wm5W!p( z7Xzfk?^R7y>dvyc>Ub^8hYH)8gaHOP^Ni_+o}k1&T$8l-mq*2PF#@@vbv%2Is9#jR zQu*uVZGyMBQnD$&koESa7A>;%p`R_B30KrIOsJP?`YR`F=GG>xS;+??n?U_IQ$1s- zTkfsa)g!A(387w5su&}Ih9vW%1W;ZUSx8AhJOK9w!@8oLW0K2Sz$pU$PU+OC^1 z_QkTz4fjcCUY1WmkNeVbxHqLj$xP}^9~nyRnZLYT*f!JA-`cj{m+45j@x_KL6kN~l zM@LuyKAfE)GNGB2jRhZ%@NMQ=De?h*(Z5CdyyM@k5*#5{2~5vo^sJ#&2I)jc6N^0i z6cr9>F9^(gu1wuxz-Ni)yV_E_6`8R5>h`})6xA3DZ)s= zkV@RbHp_>F{2tJ#`3hN|YQa-1hXL9(j|rz=Pm(~B(;**{4}*s8Kh;4=l* zFo~H*TEZx|S~G&`17uWo&ae`O*4OB!0M8pWJJpif85q*V+PCjAp zuZXp#x*zmt7Ib-A^G^n9SQ$Z3UYLAL>=ub-cPS~@y&e;BC%<-}o)l@BIKHu|j>D*t zUnf{(5M*tILZv{@0*8NarlkshD&&Ov6i<{F_+SkIdgxlO3VaA>$+9W&MvGj_dp#Ip z6MH~6ymIg|MCNHC%@E<|y=o0OKRBO%jkPzbZ6&h0KXVl|dH%9lPCA*{caf-9!jJ;P znm%j6`=Pa)>)>%lXvycbeU@SHWz$W%c%#{eHC*Eex=wnRLBD#e#@lBy{?E6T#KQ-I zPoKGB(y;L@bgq9)19qO4rf}MrUj~k;t=~!2VhEp~eAi3W^iPGUW4kcdE0tDdz6JZ* z>Vt^5KOD*!g2Rix&^His#&vReSPUQfyqC-#>AM%woeKGS8&)Qop08qGyWcIH93-?> z%Adl+CqqNCF7K~6d;=q|*9zbrZ3Wh+fC{i6--Y&_@f!#zxsRjxDjd$)BBM`3Ow6JK z?DgEAv!WFIXo7JaEjT!lAXsKNYgx;rMiYkYQ{}yGL#e4`Q`Vv~6rtGlx@5gAU$(jT zWyuE+G~J_M=->(Ars^P~gB5Uy$q!cj($S!E%anDJ%5>(~_s*O?HM}%`P;hF8|CT!m zT^}G>if4<#iKJdx0n!W$`i!NJf{=*cz?dNQ4KFY?vLH8~SwSJN7%^c8*69ptHw$>3$t7ke+P_PjK9CE|_A z)OZm6GMXPYZ)>BB<}WBGqkCXpR$9W=dAHqBx@jUiCI%A5L9{`?Eup4+tQSP}*hzEW zLCLkq8_JqH^Zml<@ZpvK<(1T5pVOtBR!koqw0aX(y2(|>`uS&a6Y2+)QnVxWRlGlg zu^J~Dwl?itt3-lt`8?rnw{7?nS;9tHq$*#p2~kAG(|=bId4=0X`*l2{guywAFmql% zMB8s4fkOd$(PhgTco^!phW>fS1dg)_8VTOp0%ZU!r9_IW_he2@XFoS9g7H6w7%@Pf z0o*1nK53UHxH{whq$DvOGE4~Yqh?oY>qwnOfO6%oxJI?%;lTImEK_tXo^!$okp07H zopn<>b8=}Up@|o)sXR2pF{G}R_=j1OGlh`+`UceYkM z1dCZ38H8iRJzhS_q7%W`Jsi!LnEdcy7Jpv!PVbmdf(_mMqu1++KW=LmbmQ|*iscFHyc!L|_j}Gk=iL@@xkO(ede?R3 zpUW`mzDfK}mGbN3kJIl&q;FV3(r~6rz)jBUiYm<$|6I{iGE2ZQdZ;I=X2E=;}X0M3@<#%8Nym@Hj1V#U^BNKI}8eAg2M zlni2AMdQLOHEmdaS69}B$dBZkB%GYEKE-27m~j>!(b^%tl??$7n93kjwjhaW+q^Rg zLI{u!bikD#e%ZR%er)RAjc;NfFr=JJHMwF3@iT!bD5&1qgj8g)ICIt5g8l2kL(ViW@qR2^gjdaCb+P+by zDSFR-fX!s1OKZL7Y(7aAu4m)b=^r<;6yHBcBv0q7Z$h4p+tLXH|QTnH@sKG%A#P27YW$}Y07WJ1Cv#IC}1b4olYW8C}9 z`RloNa{Qak+h(IN&-Uwj?G`Ptw)1|l_Pjh*<$|9WM)1sSP-+8#iA3Z=WtDB80O13a zT2rTnQ{&A#-*#`}f?i~CnO)Df;q4*da4etT#j#O8VP6!mFMUa!T765hWGX0ka7q9I zbo>y^WRtR&LJS`ZS?%xmuKnH6%9%nxLbDyZTr>e~XyRjaF?*=TU5mfqS;$Lv<;3w% z-ylg|-*k+7V@uj?v7FUb5NXE57hAfo0*tq}Qq*=(5IUK`_LQs|84HoPi93H<5MYuDxX_Np>dUSE8ylQeQ9g9#R{Z@m#GvkUOmg z!Ny&{iG$Hx>N(lB4JD;VC8ovvkqTmrp94)AfzLq^)MG5r_Qp>wR1=stsk{ZR?NNw$gTokU3h12pNAd^$Upx%W| zQUsoI?vqbsygGyt0}?^^J8l@V{NhXkB3p=!u2dK_^u?TABzWx;(C7~nL`rPoyJE3qI65N9adOd{==F5xVajiU$2{A9S>UqAXaQKyV$vDc}`l14B z)DHwyW0G>54Wc%w8M8N91Gls6gqpv;CC>V$G_2BcJ#|EQ9=5w+Z>#~5{obWdCiZ#t zy*94oq3rB_xw&L9-LwDxqPwWUWR!*2I~uT>#_+Ym+{f7^KDyL@}Z1-{c=A|>^G zDmjXowUSJAhM|K5e#-txakTT8E2{RRQnPnG1IhgO7l6Y>(`?Pxe>S#xc6yXrLVvPp zkfzP1>DT2zD1;%pbbr-Hu3I)@4TcykjKfpbCUHwSGS;_XY6?9*vXKRn0dQbL3IuU1 zs|tgudBUGghed;mEHEz>KHI!7S`5wUn%a0!(y0Akg2`cwxC#EOvWxJgFZBLsPQ8U_ zBaGtpb&;_Xqtw@r3Cq$KH|_k`y)7*bE{A=xsFE<9DWnun z2|(i?ho_RWR$0Ve!Cs;>N(q@G=%CpNE9gEKvKW6V&ddVnm4iJ6A)l1Z7HY%!O-UC%($ili{RTD|-x|ydX+UlUT8?9$H|*WbyF-9nh}Dkl zq3@SwM=ooI7E$5}?uUNv#IH9u7W-34TefI&x(Fy0dxm-*7nW{G@op)3XWcr&9b5I- zYH41V&p8k=IN+5M>1*j6S^dgluo~5NrbvXp46{6^{OuBx-gX$e2)vxr>jIqiq>-6C zUe-Di^Z(HY99optZuzQh+gq2EGd_lVS#wBN)3+e}dS>%+7lwP3;o`Ja zkU%=hDDrlq(e%My!gHgWiV+GSAg9x4ZI|tb!1e@s;|;x6E%RfjT=rY*?g&(v>FDw< z;XFhn{vX;a7fr*wC{?|H>UqR?9ekKhRt=C5k!&L+bs@u5hjWiqKI?`J7SaN_WsDN{y#qPT>790}GDQ;6&aQ~5 zg01F%^+zdQfgj2jf1ghVnXU9>1XX?vcQ_n0EDAY_Nm+_6&u237j+qUP`19va8x|j~ zL2u=Uqwo3nrNips{aScj@||&PP3S+uKG3cT85ZPK=F&427A90B6_wGTX45qu3twSF zBLD9G8rdq)1J`HaQ^h*Qw8k|&?Rv#qD^TA}GO{oEW?d8u=lucpO@LYxBl*1k-G5mq zZ|Y~gP#k>H+;zn##posGarK2_B0}`6q_mHGtEq;Zfdr$17Rz|zDi+6LcpKtJq>5R? zvz(fM(WZ*>)bd>iZMx37G)XI6^MpN=m0Q%*p4jhi6~^zN}tIt9$V%Rx-eNl{W%_%u48X*XIu{It=K-9nEGz^itie z>l-*C4}N_(>gmggOY>6RNB|=-2C!prR;BAE_)9$g&)3K1O_FB@j(ky5ArUChr7{oy z?}Cnj_JWle3gAzzmhQL7r}I$ze3zG9zI-(X=wi*xPSMd3-Vp!aJxO%}__f*0RcWW8 zLQgpv3f3|iFu1WL{;#z05I92`Tv>Y8AnXVFTZKx5^w9o$2oT{@{3a=`l!xCw+H1=Z zixnq=s{(0_;xF5|hU+}7YSm#;eSPt#`yBOOR(j>kL>u>xr({#DNPmo>c-x9xp{9zt zKW=qGQQSKR87O*UkU10TT9{c?j6_}*2hlOFH%UpnO`B6x`QHwYN;qH#dfv|5D~nWD zw3zH>mQP#pp&s$$QoKsjm@ezen2WXx*l@GG#~yr|a5Z_}?(jb(M;LNkWV<3QOWDQA`g0OeB>S8ruPjJ4p8$<@Ru^imnVSJ_jWUBHV zw-Vq2J!#)#h7LUPvL7V_?Mr30NQ}T3QGj!>#n=-J{2t10 zn|Fje`!pNGUz$7{6^>BQX&Tg+ga#|rHw$UpY;TKq$=y|Sjjl!_$K-Ot8OvF{kJQbu zA%(!^#ACeVj-ee|#VI6^w=Knc-OYsIcp4v>y;Z>lq%Pdn!DuJpPDttDV#>=a6j`8C zY{hCJH+MmU7oI&F2MSx0QL=Yft@LK3k=T^Ic(hh+^TMM_F7Y zwNSU-cFWVuGIG5ZhsI_g<4!jm;N3;>kdpqY{Qw%Gq#|nj@kdTJ4vpKyBXHrVfPM63 z&_3Q&L9AmVj+GKFSmui<$+1!XudxCl#*%7rQ)w)eVO#0k_6$al%aOvb4SE^OfhJY{ z`aS7BCs$zV zU6xo9#VvjoGV&Jg57pS%uwRPu=H@;RRF+QO;!{f;XLZI4TmPK~?7`_tJ8Yk|u~zow z%AgV!+9nuD@#OUc>Q9ZBN~@Zg_8Wqx=ol^+gr!Q~%%&X_#<$urTW^wjSEn`4t+bTs zA&soRS6}ABrYsF^6>}T@;wfAR(krE+ORgcF&`X^VR;41U`pnX5TURS)uqDW5oC9g% zcc1oIp0jc|oqcqtNwt0R+6y;P-B!aH&c*epNk==wK@PIWF-neTvo%qDBXb{0mgv^F zRsXaSVcd*z1rKYOg3^&N#_!2`=AO$)`-X#64i<%W6kuWv*BJxiQC^)^@VtqeD*yEL z61kb9J*bG=)}BRq@g_ieahDO+{&~;_lB6Vm`XkkEjW+dPki0Y*QbZgi(9~Yh$zU&s zEg$&=pO<35!~e?7vfzFS%kd~o&oarF^lU6A|LloDO#K~=q z+74QE(SEaGW{&MRDNvShSyk^weY_r)6&1IT-RthGU7WG#vt3Kl$D$YJ&D&u3=|eAF zo=ZoTmgnVElJ%TOQG|@2$p?VY$v?>0>)(hs+*jOL;<%vkZ=ioZpEmx6)#T-%4-MJAnAT+~4faT>ci|EWNBRtsp5gdFKe0nC3p9xt*G5GNHr+-;+dc2b`bm}E zz$<}2iAv*sPZNylZJpE!`vbLT8-}|KgrdD9Kl+ zZA(Z_%!IM9ww#56Jlt_rJS{C#N9yV*X=Xt+A~=SYD~Ibjbs6Xy($a$bjoCI+mFZ^7 z9?p7+a&0yyW6f|Qk<_zR$4FR(x$Fv)P2{s+MoBZ5brQ+*Sn&;{(xnn9^uBI2t5}{6g8G>sAC`0wG!8UViGFw zkpJ2kduoX3ieK}Q9argt;*uV$f&}u0VGTW7ibcVAL-8{nkK$Ib!Bs+z)XP(5(TzXm z)&MHghAkCU?dx0WgEENK>G|=PYskpo-7fF^7Q9y<%}AaD;n-%k!4WgFTW ztUu?QN``tD<(-ka;@na%uBPlX2B#v;mv<8tQb9MlnlF4Kr3;@qeAE)8{fS1rK{arn zOav>a%j4Sk3UL^$WPQ!<&t*{H*d%c3H@h)Va+KLBvik%-f1>7L=EPUCyLUW~^l|$V z8t8MKXP2sI?LkKBNnvQePVc)dL^ES587Sd8(?7XHLALknE=!ob+EQWpf zDMxW#co_K?OFEXk{)`m8b$%;FN7{xG$gCZ~9J7Q510m$tvi&PxYb8TqQ!fsbv*m6l z>azK8dvreg`F)MFj9^2Yoj@Y)GyTw;|E;OW+Y|Nc3aD8K&k={qz*X}YXSjR1E5VWg zC*Gcw(bjz272U3(3o^#JZOwUv+NA69c$PxKWn;@Gur>gltSPtc7zuaG^Q`-QQ|*yX zJ~iXym`NxJXH5Rf{L*|Olb3Rh{g<9Kz`2q4Yn;ZeUh>;dtw=+h505<)JICI2odv7{ zwIot+PY2_vlQY4sz08I2HTJ$tEf@gg&F0midm;oQ3dl<%_R9){y}V|zZ|@_3fIP^O z-;+#mQJOWl6L!E`j$+>nLZ9HFwrls>R}}wUtG4Hq-2!{q7pBXDX3;{g$b%ynFOhp! zJ{c%=7O)}lp365c8vR@o{<;$3TNa=yJW;aO6MPY5*rI_nJ)cS z5kkMd^Rd8euw_2$QN2Kcal{v6tU49W`Jp*&A4(&1Mjw;}t${<2uh-Uv%Lxht>MY8u zENPVxD{`%G-z+ygAP=;O@#9s>NuIk@lo{G*{1UO#K`pJK3|X6Of-LPVP@q9=`le;| zEeoxD5)VkDfL3b@E5EziR*J0B8s(JdwwOXB_9u61?fEtwJZOm8^&H((MgY1#8jz-w zzUu{h3l@;2F0Hd2oGb17;x-NK-%0fRmhyb$0#;H<0tIgJX&K=8@ze~9FlQP7|vaqw|xaKi!kTeyfD z;}X?lgy66Lr0C!P7F*F5|M~52LjINr)W11l0a8H^tAqD=|2D|ME~6m!baaXm{IeeR>%Pgq48P&U3Qpj;}`2WJeXzkAFJRt zJ|2R>6936f5Ad`WJNob3{Fi<(|K_u|y4;AP_I?fO?N}y+0IUbK+I?mwK=BYEh5_tD z)^>VAID+HnEQqag3DAB3c0knXUuK341QqTXdEjlO!U1`J(12A8VEnI;wJ0PwkYLa0 z2VjY56JTTyIY8&b<-#QxF)wimK9zC>i{BsQi45kf7|pWl0oPw8AZod{s<%mcR>QV( z+T?~M>)^LiVZnuOJ%5=vDw1`!9vZ*CP~&87)(_HL+?ZDsF~2e~DW6WUV#9YYw~MLa^acv%CE3032wA6o@d= z6Pcr+0b?V5?S7srI3j~-Q?KTS`aQLGkS4EwRv4cL_-k_9Z8`x+Tr<#SSo4GA#8Cx z8t*Hpq03-Sbry%5erL~D=`ET{S!mb=zk6azV=&!UL{-dL zEY@w*tu7K4R~%-*kS_BFu~gc;LO8F28wV{#n}W!cP17XjYylCn))pjOr<_}mj0gnx zj>o=YutD#BWfsgvDVinNd0`M zQ}b43aQIuF!$9|IoE*h13*S|SKJ+A}!9?l}F+H#~5*Ci^S#HJI-{ikyJLSLZ_WlAa z_AkpHWDDe7jRejxa<2sZ$44;#`p7FvxeKgB&KX?4REtW?TuNLKMM2G^+;Ap`lw;YL z??W4cu2?fgYbODwhQZa?fWgyWLg-b=rAOvaY>SC|Ger(x z%&X0UB=)P}L)<*u)I>{kzuY;W>0T3$vx=H{&~$$&_ELr4XXE{YD6@;*e}-L7!wuk4Z4a$dBj*UlWVaka7&ZNc@Pj4%k6Qn^;QlLN z$je`XU_f&L_!jd&D*s39;2Xr@|KD=LaE_c`2^B3297c2`& zF~J~l)~LUjOr22!our?=NWF)90#Wt zWMfI&CQb~bez@Z$rM2kvgTm|E_|tZ41e6(0i_!ENm`Vpn)ejzWJYFJlZSM2>y_$yl zHlrjo&323m-aZDeME7{Wx(lyaD~1y+%eGS0-P(z{^!<+0e#5#3MnmRV9N5>)$5C z^a_N%g};gX`F@e%{4@b%RUjgexAqAem!LzHipdvZT8W$1T4@S2aca5VzZ3ghpslVz zA(17}49(hvqQX(j8vp(mdUL3dia{>_zuMYiZRKQ4ZH~*KFpDk7!*4=um z&5*q4t6X+R@sRdIM~u5$`ghmf&%CM`b2X^hX>$!V^YF&cye72!`)EmeeDks^*t%33 zLHG-X?0@OlQgm;nVfl3~paZ0Ju92fEM@zNM{;n&6R;wjpyUDuz+EQPd8MD|%@ce9g&I7#+!>{;P$|eB;0%LXQ7J>9YuC zcK>a*374=OBW>m1>lm2xuJ3kKnQss6%Om^0 zpIjR^{f?z*P(TER-qkwRozu3*8Z|k@Nciv-@IskMPNsd0Z4j9Ryha8xm~Rga5V3(? zpO)#`m)o{CaUzGjY^ig{U7nbXNrPgGQkK8uZQ}Z7ArDG#nDs}zGVO?%=nb42(%u(jDCEgtlFplG9EvacpU^H5^frPi|#X^oSd5Q`eq@uOfLSyaCsG4TA$dR|%`B%8t&m|s&$=UfxpXNWOzVw6aZ zqaR2aNz*bK6P*0>i)p}c5Nr}btOC|zgX_?@*yTT3FD4*?(CZ;*f*k=~TkM(uJ>(})NrDcDU{D*+i=dk!}>L7?#-Z6(Kc*&y8FgxG}2{Gvnv93%@4w<78@Tu{${$MRGVlQ%MEE_)xX-RpEf^w zkKb=wT3tiBTT*PM+dMjJUa?J?JZ7sCcevV-?`di%Kim8YZ#&5y*I(IsAqObTGC$0r zJ)QOV!)_eW(T3GBj0NE#3#1e1m~U{UL*7BXO>)%tVk0)ldS3yE4*5{G-kgh#CoEKG zSE|p|28!W2YQHlP&h}?`X4Z(M7B2s)S~W+7=($kj`FbHVgu`HV44HQSALfxVEFnL!BRMtrgho+Wr2xkjZ~Bl@v}} zTZ)Mg+Ii(ijdqOiTp0Q0-pehT10E-ezj*oj&kq;&hg+p-mVIJ%RfpMmwze`8ty!Qe z>CMe*c+&&s*D!!p&aJoOoqjMWD>H#;BCWkwSfmx4f)7HA*ItKlGA2)0Wjh{Oja|Vk8;2JWU=Kz zJNkif^>J5OK2F`DI|?AiQs)`*K=R2!FD$~7<}m3rK6^`EPPH=jrAHi?r#2*T!}&HQ zs4T$KtOo@3M(DT;+cp*|I69kvFhCuw`n*hFqW%)rLyhZp;~z zyPcIA$srku>;3$Cq8#(e(@+L`?|Nsr*%PCo`u@oOPl&s zOpr=j^B$NDUxq_^l(=9q;Fud(sfR0832!$GE$}2?TFhD$3lO8O(?yx(O$31CmG@2Y zA{qH4YF*1Z;@wwktQ!dSx^7b$PmI&Y{_PX4&otrof-{S1~WTK>E`HHe$pg)7I9isi)q)f86v=D_vu(S8i6$L zB%3i!J(+t}_q%dz0SzUP>VqJ!P8quTY1H~7mPeYN$Z$rwKqS1pJP%ieMdoS#LYLq8 zL+viK5||F3^N)l0!+t7J8zm={?ilWO7i&=n=bT-K3;&h@swLC|jN#i%!K8H0s6`C4 zwl*;Q^qX6;U#xRV@}WcpFQyFbu9 zmZSy83_J@CqyF`QnOLUHu-LjJ-(sBl)A=ZRrzQP7i+4H^+eQJ>#p$-xn zoC+q+D9%|lSIQo#Xheog*-?C0cUk|3vbTzg<9ot(ad&q~kl^kX2(H21-5mzE;10nF z?oQCa;1)c%4})8P!JVA>|GxFDbKRj*&0StZ>K|Z(qww=e4YYjp?r2M8f%xw(wfjL z;uw2%xz2N!H3uu(l4I+e>gL%%?EATJ5;j2wrzR#fksigDO&dwzRYUN^udcXZauq%= z)7TEj`*p9yGnyO+c|0`@(xm+U+*n=A{dTd;UH+bNgqVj9-y7$|veObArgt?cYttnD zIwq=~>hT>o%};Osj}L#i)Kfh^qH}17Nomiqd}cm#nJmRKwo!F|D|31K`BXjX*|OTr z^W5@3x3k6wfR=iB3l%MV>@WIcREQ!(X8`9sT%JH^f6#;WalRwu-UmR*;jY*PaX^eaS2Z-;pG*hd*)_H{;F)Y&(ZG^Chy@&3W!Wj|{ac5orW68#x!nqpckL}pF zLB8@3xq%RiVPEuNTR{#hetNd<%$0XAG!b&WrUL|^dKTy#bfAxYToMr>FDdyQc6>vB zkIy+Mu2S-o(Vb*4{?VCGrTr(gG5-H^!2N&Y-~UI4|G!}Q{|_ww|3Kp*68AG5jEQyV zV1|!9q}5{_hYD3`Y!Ke>aNeN;w#D@`p17)F&tmQrhkzq3Gc==BUyQ z)x!r)nW0SICtpo1_KLsX%hFoHIYs za>7NH&vmFKHk=F(NR-dvx>>{lR9I>M(l_QF;Qig+u#}6vq2Ggt%wSqfCjY_Sl0IJV zYYq2DjNu!Y#2B?Y6$l!DBqBdWU^uvZ)wUD-Iq$ds*&$*Q z(&%9DRUuhk%0}HGdcxP~8TWp{*EL6DBXEG3{1E^Fy^|J?i#z!9f_#INS^oTI%%WM% zEBDe@w>x2}?fX09(n;dUPWXyHics^z#*`>F6zy=7Bop_q+<@ia zA;}QQB1iXkF`DNvz1_XWWfk(ezL|^6bq*zFT`|rS$*hYS2*H+krz{ro3IS`(wip^n zp5LL&2Pk$`EgJ6GrbR<;sMQX0b?x#uRe zt-|=Pp@vMAP;|X2d)EvVAnV|h9DR=1YmSxi1Wv4+r2z=#xMz7tva; zO0oMU0_t9bLJNKi3M2S9yef<=3C!b0ng-Ctc&fZrPyI|>YD`ftIx-?H$>@Xh&kvId zmYc))Iv+7N3up@ys?4vR|BDk>7VGlGwJ4qj9w;5Y_V9{5tGB^6P9f8z>T_(_kgc(Y z5PPmrCw`jzP=%IefFk`Di&*Sg7 z*Mc=p!{ML*MG;4)R`dXiF6N7xEetT7UKQW((9!>p8@@5`;=T`5pZ$rMw;vNA*w84 z;HxSKV#oe3o~C^kl#;Oc|F$w2v9J69*FWW*sql^1Q34ZT9OhcQ+Sdt$eRV_;+NR%$ITDsb#*W4MR1_-X*CHzCj;xYc z(Z3MCGK&-c4IltUO)`z1zLWFQCnDJ@U@p4O&|!nP5TN~04FRZn7S_?nyVe}FWlf;s z%L33$sLJ>}@^$Zz3>k)@Sz7@;3Fo9w__^H->&0og^!hsBp~_FbM(u~&uj6$0*v*#* zlTzWemTL)ShJ|q}BlNoa+8++Mj*vKq_gtxu&6CI~r5k5+eg`GeU$CUb-$~2BiAR_P zS7W{#PKsnVdh*)k-H~z#2DEx4e;{g6x#!9fsblHdwHh&&?o_%)vch*jr~G# zKD&j_BY8m$NG8IQ2D1r6~S9M0;Vm|_JSnWB_)aRmEG{b z_{8X%?Zaf$-S(Y`+b334&&zOC%h@<}pJt}$vY2Nr*h=0vK?ZNc4*th;-<({F_G|?f zw0EWEmT3C-3rDKS$&iHiYyRRKV|b49hGm|cAR#qLK=1I)JISPYcA>z7#L{sK&iyyK z(GBi^k=OmF>FM%m6<@`dg1_hH#6s;qPnNmG1bci3K42OWOsNqV9u0Iu#R(w6J>W)P zK|4Okx<=y0t(?8yt&)5LS!q}$9Ef)kg)H<7W8O!GM%L>iSb9uOwYy3j52ss{VV8_kTRSwwN7~Oq<*}et{M1 z432(s-#0NpX|iJeLD%9Bxd_5Syc3%|!b4@7I*HBL!dRHbR^3>Vho`w|Y7Cu5|UylkK z>&5;p4sWT|io(0@+b5o%cu^6)u6jQN{5ot-+ec>=W$1muci|~+MFb5&C;b4I0doAl z*PNe~_ax;R{b$U%jUz+66gVIE4_6*bnJQsGrXf4)y>_QL&rDsEvT0So_tBflB_zR%m%- z^znUe+wa+xNT5}hy#mIqyAQmjpvo);ck5Gq7xt(QX@e|p+#Ab2d`BlaUP!LEwtSJQ z6rQUDf0(a5)aT&Bzy7&jA=x>E}A23b;oOT&J*e9p%0wUMP`8^Brc32 z_*;d0O|rTH3UJ1**AndAdF5T+C!=vPJ_eu`w{abnjhaIT1`^91?`*=b=ww~~8P-NJ z!TZY~K~wQ=*1)i&^^w9?;y7XJ%nH?*mz>Oz0xEbZng}afG|lZgvn5=@y<{uHYqeXRNAJ$@|l-wEK1F; zop$1%J$f`=jeTZbNJ)%F>7$m#9N4&rcBVLoTnlbOOp?qIRThb&0vjad5puCTNDS*jvrf#u*!^Rjj3QS z-*I7G4UuKv_A1ph8OOXEDI9ns#Zet&mMoghrW_<2SEMB|`xkZ0X$oWgvxpqqZ6~B4=W!kuk3n z!~kiehU)&QHOooR3c?gz7*1-7j^wiv5LgkY*HHpXTdv|#*o@*UcOo>Nu{|`RNu$8wA!%q2tke%@JLCTPLu_H<#1MH~~II{YC73)8W zFoC>6GQf+6E<&W^iihP(#dQ_}Xrm+e14rMl*)=tt?)wqS_oK5n)XQl057~|M*9t=s z-?u*T74lhC9CP5zk{>&X8RWe#i%&u~#}Vw}eGetT*@vOGCV1o*#P1d=>Wu5*B*%%!Ld0emc%BDCFe9l?|`$s^w&E z;a=%jMW9W;y_LSb72K5!C;)MQ;mMhGb_E)Sf+g!SG^js9Klw-823{ZmiGO+MQUS%U zo(K^et)wYBh)-ERp)_>L?2aEI0o%-qIqN64ujCefc@7ww_VFI&zC<6zs{onF<|0@x zTrlEc-Bqfneh^)~e`XlB#yc}MJ0`_d+xWwKmtm7$*lxmQ$uEus%y(7coas!E`Ytx` z0YjR+t{!)e_akBtlNX{5oaP~7& zfy!vVGyG9~#y9lvhxzqO6kr_gxsf_V)_TD`fPW-dtVtH_D!cnlyj=u(?pK>nP0e#B5ML%>T!i9&oAX7n-O!6_1PqEhGFvlGg`b5^=Wt}c1Dm9?g zV)(g9mNiPezZy0@E4vK^h@?$;%RDg^n)z$6P;xI)g}gTqGV!Ap*~H%PRMk`2a~T}u zaW)iS2go0j=Wn9yjHO+=T3AV+N=!zRFy|XRf52Uu?iYb|_2825d8Q`bGLi<1Y8moH zEAXFpYiws*LN0no#aZ#yOyTbH`G$r1N8edI^j8$>a_(AVYyU`Tm7o9)h(gqcAIOwt zP!eG|jtudi8*hOANm`m@>-0^>{IDYn6{4VNU}gO&ncKIVstb6RpUMMDh=8=9<^%kE z!>6iWp2HDYQRnTY2W}B|s6n8)hwZF@Pjj6@A0f;Z4-;W4{;ZByCyAs0ETy~|93V^W z_U8Mk5(MptD-F{L`G>Wu$O|EhkWG7$RKOhjSn)VlneWH6f5xE#-ucubZ^tFk}C&WrjIl4h?K1RPj(&<`{$-f#+*uI7hv!4}a>$(o3l^LF-;{b-1n zp2Wns`&7TXGg9wpe)SrTFH%GZyfS~A2u)`eYD>rEw@^Os<+omVR)as=HS3uFtX-vq zYV+~76E%W#_de$*4?rd7j4I6mC@)ijf`g#Y)7-8`n?23AQdF5Z{@WriI8$~&i8+=M z-`xNcwQn<%X*zYOZ`;al2~aN?VyR2UP7Dl-sdN4p)t@)5Vm=kRPhD^I?3m+y-GbAH_FJ4SlJqH{eBu2h@V#^dK4ScgJtmQV3lXdc`r_IL+gI>ikP!jPz0 zO14L25GJQ?v6(H2dLo0=jOyzAp1_14X+9To55|Zrvl=}qak_)=7u9TWTin>SvdQSz zSH(4`t1x_&1CHn%IJ@f4DR2#ZHN2luc4->gM-yh)N-izPJL-=&ZMh)3x$<75LWP`6 zfNE!!_PiHuAO0Hary&Nt%CA9_GR4OHfcok%GG9Nn5mg&x(DXjRD8db`5O?p9#r%Q! zsJC@H`0d%1DBA^`LYM;WNUJ`f%NegTn)&+5q^a`R92A% z0aftJmw0f#1m~v;O5s(C7792ca^GhDC*dzVFs}M?laV9p`7RbgKs3Y1DC0|8B#vp<672ZH=0u(a2|#>W^w_?F+;I8=u}O!RGsKUSSbxR zl_WJdkd)OFo50%xvTMHHbq8j0zaq|csHrKg>8i6U=Ve6|B8N;IsdW9gtPVZPFJKDy zwIl;0(kDG%KNfIxjH;q27KN(+-&}x;_>16dsF@HEGoLNfa?UK-iMHow;h_3^ zNoH#$izh&&meb&EPZJf^vJGBaaR*%{RWWh2|D?=w@vLz7JJs)^dQ)m1 zmy*nhPBHKoe6QZ%pq;IVjzuZSD!rx-HqkKR7#bpauu}7)9cLKN%e);#F~Y5NwxWmj zjBGTF;r9J*^{ta5d&ds*w8tCU&_>c zxzei{v|>=b|2EU44w<;-WVNgg8@nM;)Kaz&#gPVa`}6V!B`m8`JNzci;(FGg*vTi* zzKI#!2g^8Iz);wEZ(jvL$r!(9rKZ_Qfh@az4wX09JMKYI;CeN9AWiP^zr`Oajvoxk z#)z3!2_y3c%%eDmIB|@oxVx_n^elW#6r1^t2rG;Piu`~+Nj^xAS|uinqeY7zZyw_i>xGidX+ci(2g}i zmcTPMS-DO15BJ|c7C+2s=A9wnlQ^zj@qIGBv`cl`coPdHUifareKUxXMc&xeRX%|l zb#iaZ( zzU>KnxQ`3V(lYC!41`sKPinwTzCiA%qG1deul-A(bmSaF$I_u2{J;idLR%mIgnhda zf0LJ|fD=v^R@c5eKLTff9j3H!SJMze6XRm==#S%gz#pDf4!^f`^e(!eaU5|aacVLU zAAgM=3TwspSD(j3 zI7clk?#V52UB~pS!2j%Cjt+6(m4XU?wK?Ged$4$hYX{bAkI5H6ydDx|2W+Gpmm3>Y zf0>s=sWvaqVSx{-$VeJt<0lXXxGIq!pN30c2J8n@1VeK3k#5X5R$(E<-Wd;h&}v~g zFyVZcodSu)$=Z2&h*xIu%LtDSMPs(Iw(W?oN+9Kfq_K^~nOCw~e4}gA&vm^gfNgKPTI#f4QS#F^dfA z*gA7{G$mj`qS|b~hcRKsh!_aSsTec{3iJ;xjxcdaZ7&;nk2V?sPrL^6zfhj3EKwh4 z(LL$n0;LRytN$3^6qw32A<^m|EsQL;EinXU#ut0o0CQ@OUl=8)I&sC}_;)l?--(^S__YoFAot4yjLGZYl+RyV z&R7b|wbjKT1+5j0wPYDJ!NY=%w<=GRb7xZ>j<9}1 z1-yP1VZ-V@{>CsIEz`hiOP8qnM~mRH%;eu@8we&74^p?;C-q*RAQlTqXgqCHVeC^* z+`b!uWB~%LHN_5piGb%+o40-sRPIvg$P z$2e3yweM-&&PWuv|K;P0I5yZ8)D3LbjuzB%O`f=DMB{vP5LH8cFLAR_6&3pbq zN*NSZa+76Qt}fVM=;nGQapjT+%Rq<07bNR7-?TnzJhj6BVyp6p%JAN-2@5aZ!tf(k zOWIIfULA#aMH-__>r{b0SE-C$f-hDOim>q<|FwM8i1YAX0-YxU?169S=GDDF|GQVeW)A@@@BM!m#Jd{y79Z;rpe zL>L11u;TM1>3K5GmFg|Pe4A3oHV<4bTKEBt48Dgm140c>;9qP z9i(s|7cqg2`4L0S#gDvz%}scKeaqO65I284>{s!fWa+K1$rsd$W^1I5N1<5}KfZjX zKyqZcu7EMY4I3^+v!b+G3xOmTkwWXOT?NGtyt4&|Z6Nbr;B1#2vGA<5DkXR%4$!l- zBp!dxkx)_#b|NQ)y|9440S?|p#xm3oE^(3d?hQ=Oc=FZww^jF;@4wp2#Is{FmEdpU zQFe~6VDJy`RZ?U{8tF=9j=|aQiuSRFX{$qLo$4yAx`KY}msCK#(zpi*wm+tAEs9Io zxC#hI#xFQtMt`VZ#F4*4Yh2P6)k|8wqWc93fca)UMdT1Wvl{1drC3>qUPf`soDyX_ zn)dyWJz>Wg4AbB!3V^l2OJ)YQP0#-}q#2draS{NS3K{cQ4L0g*gb`Q5yT;U0!U2Ee z_#SeP3^ND%;FdBeAX$sIJ7Esi6?e>X0+L0gC?^qK5#Lj-Dams5$EF(+4E%9M;5|eS<`CSeKEJHGbpp z03N}m>jjxRP5-F>&>6xg;P-_;tYaZ?Q-dCPnz>bsaRDm$Gt(cB9;OgW!p-mLSsVz* z{iy}(H_YtOt*pQm7cp$A5JO;B3I*T|%P?dZqbjCoy)y&m#8I0yLx`NIT~5Cp~xeVNNyr0lqI6v~7HA$4D4 z#k)%Se9yL?9g!}(mMlhD_m|`*XCiUlLMcq$(qPyJ@@@$4g#Qi)`Cqkl20(T*EkxgJ zg>qx!LGFLtDg7*K{GT#Hv;Ix&qfu`7%R5!3X|jLfup@%rR;tJbMjYG}`POIsM z$wOt|&)n<$?vy`dw%avnv;X-jm&Ye^t*D)C%2_SYTF&6jQ5|d42AM2FOMP!Abx&* zo(~75joOkq!CZ5RhOt4RzW(B=a1$+VJxzry7*^=NZ~XpEB0ox-vRBh<^Oe~l)o^g0 zRnN@$aIveIR3g!jjUaHSwx*P?Ac2g0FA&v36LeUIGaUxd2igTSVWO?6X!cs3T2tg3 z#exaz$l)FJ-7)E`JxaCUzm538mC1aob0?R2XJ@YOfvV949w(}m=uk~FSnxZU+_4E; z@ah|j`zOiQ6P6Nt{Cf6eF@G@S0kDa9D(9d<>A7~^>BpIH0CFZ+b%&TnBtsMX zx6QQppzy5wYnx0Jn$iqA7IWX^Rl-QsLzg5TH``w+O#XKg3jSTNI+8(u92>P<>=OO0t~vYhr>fI(`!GT8m} zblRn4D|i|#=J#1m#vfNoI{>BL1&>k;PcS;14%LC-FIe5u{@bx&R_4UhtyB^!s05c7 z$mmIP-k$nXVq6bdhjCt_+K&~Yam6>kor%oBj#c z^t~_XqUXXrG7O_ZnuZ;{vs%CZ`I~+FpH>+XglUbdjs7z~b;bDlfp{d>ox)W^x5Tu_ z++al-xeU78RJ>sfAkH5&Op?x3{?N)}Mg&mzY(F!J-Y=Ihc9pt6z7oJ)`19X^{bsz0 zG|9G?H@>*W9q5E3Q+oodEu}hCm=2mp18qC>aa_fOn*^MI3D%VlXj{i8{#G<_5{A9a`}^K0-eT<``q^{KOl(jnHESYF1EyU-CE0neql|$tSbH#sZ;q z-_fHB8}PKD!gP=T}Yqyz%+-_eDG z|APE{Q@KlJ7SW+as{5$Bcyv+Dm%qldQ_NfT6(@)?-5qHqeOs@=rT4dR&eh7-8f}qdv=_T747%Z{Ca_L zbetW&Q(3m%$X-4(>Ot|8rxL8qcQ&jIzq0QiQCHE&gLW%Yp1Z*u4&{(Pk|f-WF>S7B z@``%deSi7`^#0m872>t6RNYddw887AgY~79gh=5+GOg zArt2LhBIQ#dce3c1|fh5rI&Yp@`EXHOp@U3fPB3ru#G9)xPBRq-^cCfYlOm%ele?* z)3FC+`Qwev@Xw$Ev8jyzr3OBG?{<^(9RCY3Eu3!<3%t8qOhn#%yIO-X+M2J%U>PB~ zKN_;l`8-|`et(Dcb9)M#O8bPdd-SQ#l4S_r0~sj$R?s4go)<>!O(a@K0x+JU7*J)h zh{ISy6i)fxpA^>Q=QsZgHx!_^SwRC8SN&bx9T)oWdlj)X!F=5^TQ*-XwuEv|Uw^xK zge?LK0l2BfH<0sL9IOd~+zjPlU^loWaP$}07}6SSv|EA4GUX}Gitx4rmqii3qK=JE zJ!7*u6}!jlGZ+I`6Nphy>3lxB$q&(VkYIg7f}EagH3yh4`S8wDiuF5}{A!P~@m1o4 zb#)1S&fDIfMFDo!WpBOIx|4_^U83FUar#M?(lK6$oSk6^e}V-JQ6-Mu1c4*HdQyQO6pL8D3Asv(NkA$@*~4@hZxkmGA$R9a6swlA3>F1+a&3}>N&dO2;3R1oqnWvDEg%YO>V*#1e zM|(5f7Qe=ie=KP{R9yTxYUrzCssQM;St9Nt1@jO46W;G=4oKL<% z^6&w7qVb2ViCn@BG&JOY*O@Csck|4@W@=b)@m5k1(;VXg+MdN+cU?va@KI+Ob@}oG z4pF@SNL^1i9HAq6m4}}(tsD{5?&NBTv2J8a97mjx-aZN?+d}bzMs;U>S~5Rhb3gm= z4Yp=+vL$QBIRj9p89Hg0}MlU#`nrmKIz;omp><*q{gd#Bw$H*rf_t&m0!8}Mg z0zVM^EMi9ethWYL#!7Pc5S$;ILHcp!G7_E5rk^LXY>)m0qj-T(^YInwG~Y#QDoBL1 zw%7Y-V-yk?k(P2EqmTb-=G&k-Ll$kRddoiDhdikWI3SLfh6t*sQ{^!cfbkMU{->DFiLZMlpf)znVYl&6yWyMPf3`DQVgI@FLq!yhju6-HZ`S>lWi`&Twg@I^hYzh3 zmhhwBM}FJFgIZ=OMrTw;D2mD=K3FuC>D|7{t~$Ig<4JFX3apU!V*-&mb&(+a^V*up z53Z=-kt~U2nx!=Bmz`X_W6@QuBoKGS-@ucI?{fOhYp0keX#rLsH`ix4$wVlF*0TLDBN zXW~|3SyeiT(i;=FnQUpfx6)Z_8AASaz}~wg5+h?wP5wgUYP#s643(hYiyWHgcj)|} z^rh@F`!N>05Tw>7)+)RK;ac(xfQnrH&yOYpUCgsUXtBgenvOylFtIAbF8Z zJokGFcvNZH6>@~NT*-Y{@s4|OBdmp6+qo$d0J%OtRubbWGzqr?y! z^5&r3fBuc0hSSgk!LonXf{JbPF!y5QYYmQU9$vh1)usG8lfzHnQ$F=rDhav%yb~ik zuuQtDXmvh&=VRTH*w+m*NYpKcduKntur`s$Gd$Yuqkuq9p9Wqtwq2x4ch!zJ>_k~>9Xcb$b%^H(kLx-{9K^RB z?zA%6I+nSB-7aa?eHLq0T!pg;J7o&xH<5#3j8CHs+Ei;P6({but(0OA!{AaQio zoX(o;d&KTTBgcStCg$NOA}?pxZFEGS9^~j~VV|Q|_nQg9X6;0~wpULy(Rlp_|3P#N zAWFMDA73Rp`*P8#SHY+7yYM1bpX-r>@fzVKSf9Dt2CmCl3M7xP0)y7xn#q?5R-0^37K_+mcU z)J~V%pCg+Abyzl!ChZ+Iva~zrN1T;Z{#q~d$ZOeVQO^zWa9`h)VUenoMeU(@#JUbY zZsb-Lq8q8qL&D^>N|l@KWUrBwLWxC%NgI+CI`x3%ua92t1FRkX$?aFCrLva{N?`7C zGzmV5$)$W|cKU8Q7cew9YA6n>3 z#k;Q1x!g`EqR(EaR$gDz%6EgH8^N@K$pv`HvZ(KoAx#9M1VU~pzHmM^cqduKhsbF!esQ=S>XzD zu-M8J>u1N@`9#w792?HIYZf;O=@G^0#F`WMN)+7P3~qepauvgC?tn7GLS6?;BoG zvZMd=k18fs2&f_3e^^U@;>I~&K_hU(fmuXfZ40mCNdUEH@^XZ-KFwpp_`w=>uKFq& zeBMQS-pSxnTO-x~6+IOxk;>e5aJ$|cU0h55U?z(y62CM%qDduaulC*Z$Q(G^Ke}(#qDh7&9S{8c6nhd%}0Jg~za2y#M-rs#q^ zno=b-L9QIN)&7 zbZg`8UL?9Q)iJHOgo#p-&4wrs%%mx+(gp3N^}%JtU$stnv3?pe6kgR0ew zsny~J;xNN}5o2ELpo9L&xURc;di-w@vNc~LO~X7xP0Q)Kdz@6j`zkUpuK1>915L$l zV?X|VgXRlaWI<9ID`hLUhL9dLS_#a7RlbACaUWm5se%lMG3tuE&V=%~%?B*cp+1fI zJP*GnkFwYkj0|}CKsw!ZA$SvFYxPb5HYPBsh9s8_VQ=;Qi|Buu47oXicWrAX;-f1= z|5^wBj673GBbwrjL>G8KUjL0ZY;jG`DgTWCQr=h-(f$2$0uXtxP?wypOY1r0K+tf^ zxSc%%i2D`F2`hGicSmKfC}@@BZ?&mV$K!b;q;uBp`=xek)rrh57w_k2)xs*KzZw?d z_MasBiR&10GQKEmRcU%gyNDRVBUqP!etg|l>m32(R=3}12Gi;}ufqmw-!w&qIrf7( z8=M7KW^eX_kU&t;ME3%vJMkj)b^_D2Ol24pfPJ<_&z8}w^k5tOo9kSI1Ri9_Tm=(T zspDef4qZQ7h4LHW3D#8OJXBlpWFf(lyqWO9e{QFx^0IgxQ>7yPY z8#3~TgscW~H*h@Q2hsZh4nyRC#>|>(xT0Ap7Bp53TAryQ>anRz=Be3D18<%J*%3wlqQ~hnYP7-;b|!kK{1eyriKPk68ijsdQ&IhvqbL5pcm0Q%`j}YsuHb)e zBarFH*Y3wwUEFV)BoL`|9PKVBUc_jiIQ+7M>g?o}M6Ptr1R4djWg91;=wPPew2Xcw zjdTo$Y4B$kEo)t_-jBLRZtY5rU;O*SvW_^r`uywAi^QGF3E+w{%XxGrk$$3zUB=vW zG$WZ{M3IV&@;ceFDpn6A&u0gT;eIhJjqi#y_B&V9{&qF5i(rRLD_e@_BZSbwjuXNb zCkqGI@=G^G+)~tF7ZMXKM*ig+niXQxqV9CdO-$TJ23Ycr2rJYr;Jt$fJdgmW;U#J4 z+Kcgi;MG|mo{#(Cm#_$-j#AS*~56 ztcj_Oc~4n#;`B|LCr3Lj_gUZ0{}k7b?W$J4lo;+=|6!w>Rhf@j_r(9+noC4sRu)ku1b!^^?sv&Cl_-qq|&5 z6;~$kmy$9h;uT88$8wBZU#tWhd0>Ik*cl>o>y*?jQLov1cMSn>Wt6WAyFv-U-3Bjh z8P81MM8J0?1&J3jg`fr&^qvfP7}p~l83N@o-oLGF8(QW<#kG5A=cH>x9t)QEe=|cj z!qYX`;fg4i%Lw6IF{axgpDTXtj8jNR)ZTDd&|6d*TUrQ)B$}D~bDY%V?VMflz8~72 zo||F;^FosD_CT%J;4NfuP~36}(l5-6JQnHPv6vDK0fM#=`&kF&PXt8frqC>0J=g8E z--MmrQlMROKW&Uhtdd*`X`JXYm+KvCsv5hPiW?!k>1dMDIKY_)N+BYhn%16~W$WgH z?nd{Ho8`{$3Ql&#Thd@vWY+UT7EQ~Q`+Yxnnt{g4UeOq}-Ro}qfXBlq>`1K0hYUl* z5X!o4o*g2}5OG`G&g4jjY^mMS6Su~&2QHk*5wA;ls%mZ}B9>Bq9Q>QFjuqcs49Gl%&k&+k_5GDtOv!WFxfBDCd)A0dzpSzpygBuKzt4T0zM!5RnvVzGKnrS zZAAeP3ouh|GU6H!*$rVt?zLMJo?xO$$ifw3mAnf4eyU>Gr0@-ynVnxWXO3qVy|?$u zVT0s!4T=#N9BkE@2+;1>Iry8GVV@cD5n?c!Jhlbx^x`laYA@wgk}g9@6nK>8Rlenz z-}W^R-)Gopxy!aiLwP;1W!t^GKG8rby1r7vfdZ@gALS#{v>m4V*SuR&G50@7tp_4; zKl_sp;cJM-?o-l9h*k+Voc(1jgBx6S`3jd{KPvjQ#$NCn+F}j@Fg7US{^G9Pwzh?% zLC{Tf15q6p8^1O6k1xuhCn%QmyIXMYkI0W{@3(xW19DQ=i}i?* zxc;BWw0}BlSrLmIxrvhDxTMQu)>B{iIVC;lrQPCp`|s6h_-z#3*0~3G7&m?~rN>zZ zael6$Cvn)#t>Bs(MFg_}Sk+g(XEr8i5m5~5Bylgi1^Z2n%A?_~wiXZi&#Z;}@B!Kp z)ztmaCdQL`X)rb-{5)uy|DaYBmLe*zu^4DR#93J_Q5`qanY%7R_lmzak>c&D&3R|nT(i%Hz z(Lg>Z3IJozGcA;p05)0TfqL;iGlBnP0Iy{nf+w z6=T54o?n~3S`|AcXPm0wihBNh(=miFUYo(Jn;Ta|7E(=z3WdY!wwKex>B4}(sEwIb z=|2FSs9igx$tV{(lUuXcdWTK?|9<|yRf2kz?Gie2k^@*WKZa!yi8MFLkF?wIE`T!t zDAnv;?;f<4yJ|R*2{tYysearE(W>l2GsBh$I`@9wlu8^CnItA-pPA3t5Q>XbqhEzZ zxxN{*#$uLfyQ^yb^86zRXi?BFa=4?UXY`S1alcu^*(HMoX7X=Z&EvQsBF8+OjUnN> zW({@UiIz4lc7ZdKU0v>h2J=1qPsxcEJAi$ryQ2?CouW;LevMvyMPq`(d7uF$&;5<2>gtM;e(D1kV1acBcQ#)xfBU2NJTeK(NUU`O3h|nY`1y zmup0s#mMe2&rf^NWNbxSK@}vQoQ^N@+~mK_c~Hh&+niz@qqF(4G$e`)xOw(^JlR&O z87z4)^@UrJL|q=e8-K?tZ!cCLk?eH6)>};XeceYA({^_4C0L7CyFJiPKw=-*26DF20L% zH#O5!-Bn%HRcpGYe}9R~xM0lZ&3$J5oxyIW>5mhyMMDJs^gFFuNOqhak;LCa(h@Gb zYw~P_TFtaF@hQpIXEpj-G*XkV@hk>1QYq)r7ho5OCQjKDdWMV@1%35|9I5Q<iS)=0p6AoC_@|0$MS6RL$C^n@xNizfP%cZHdl}D@`3Od)8wqiFwEW zdP}r3foC)%t}}lok=;0cusD4f|9*OS9IW{aZUQ2ML?C|t7zXn76p-!S>#`#ga$Eg}&IWY44^Kh6V6t-Jcu@FBuz&EzLZ* zukylYg+Dj6VqT13uA%|*2DN+wC>40~2`s+Qw5$jVe*Qk=bJFHa3AW=Ku2F-1 z9hnz&*TDBA)(~1h+VK=&mg7;Lmp6_6`+G8Q)9&7hbHl4f01cPije>bZxCmaLai5y; zTUjJ*PEsz1vI)u}Pvl~$Hyfui3(rA@4nWC zqb8)W=pK-UXSW`x;#@1dqEOcN6Cn&y8n~{C1ft`_=5O9b)opX_k{r2$CCuVQ(yMr= z_;8z4xaqbqeSI-R!G`1-=gPDlJ?dt`&2P>n`Pp$ZKH)N%w2|dVh;ySPUioCUt_KiH zeaU|LOWHy70@bXU(%%N$kyA9W!RsA9J1wuitG>6!P)Q8WM&A(uQBjd)B@EKFE93@u zq5zBST4X+Sd?X|J-V|f&!<_I8gN`IRy?v^}jth=9McljPlR2qxbJ*w{d8nSu>RZW$|Q6DN=i!e z+WhDfKWQncUODVjjj#E9vZL$B2bj?Gaf0{8O-opiI$;iR^OSY7h_HK&SQ(@ms{MFZ zHsJfIQi&`>5_AYfXbds9K`XgcjSd~Dm3 z-3QfV;e%^Sf#_GeYPt*Skshfi$A(Mea~zy~u(H1t?bC`;I|!ai1Mej#n%4Ha5=ta? zVZU!FH1o7mg9)D9siu`W!|RXiW#P}GgFK4Rlhx0wKK8V%ajNXCE7%;`O2zx;C$1=b z`|S>6$fBLHq!Ac!-x4Gv-*0Nj8e}q@UrhNY>ilz3;a&e&>-)(>>PjVFnZCdP>QSuT zG;P6P%k;JaHtxSZZu|wy-sxUr+$L z#E@(Ur*$1kRW`+Hw#vvl()ZWAgh8+%toN*+&3OJyd@UGQjMx!nIWvg{9X5P23Z*&Y zg;-pJ;0!V90>Y#t2MHR#UtWZwAP2fLd`n>x(`KFMThrqt7j28o91A<%&z`;bJG4R+}8ZNd{T(|WWtZKOfC(Ees)Va?EdtN zpAFb)V8@C9ZMU#!8@t1K7v@4 z20ObogO@ijy7v%#Qcv6yQ;kkTF?6kx)6C8#ivV20TAI<7_q2I9lnp+x*=S`Gm~0&p z)3;8U@0HGt5#>eGjnH$HYE9k>(8ba)<8Qtb^Kbgw3+W?+bvSBjEo5>L$EtCg4?gmI ztn+n%ecGxctz4JbbHWCCgI`{WvUNLWt$ptlfI#I14>-`EMH7emC4#5NUJ(M9s*}Bx z$LhAMMvmmx_ON8wGQK&?msLA(iej;TyqSq7C#_^o>_q_$@Tvo6OZ+S6qbnjHUUBdu zx{sHg%#vX0sPGj%R)WMp!04y| zWZ-#vU>bhs3hwfy8hFswWJx<(f+4fJjdfDLj2nnA$cCHuWxNsZN6*0gySg-%KxIRM zbj`X_Ab0&f0&vPr*yLDLXpigf^3F~Z2L6?qJqOFGWm=}`*6c}3kSH(b*Rn|Jigo_c zhOIa&`%1FDJuic=54Y5i_u1E#b1$?z>4549Y|- zyrK*P=D(YLnv4VnNLwzJk4|2#9(TlrF45V=St;)!(kM=0K{v#I2ZC{<8WtS*cHmo7 zk+gs1k6|EA1m2W{ifo_@6d7)4r-aRd&fJe3JH9eHe6C$SU4);B4?f;U+tOCUrPs_QTUv&92Q4n#1o&~Hi>;YUulK+dwjr##s626WKR>2* zy}dg47mBqWG2sG#`o3d0-gGSRv7Y z?Tnif0O~e}Y819@f4Rh$a6_bXyV)%38R0fpLv`-w zT}~(0t?Gb2Lk`E#!#lkT@%}S{>X$#roZ#(m>F<2bOcQnG_hVSx<+HTPWP?{-zCS}v z)zbcH7rxqy`T=QLR$a%W{XX8i=y3&HrsCt#Kn=ciA)(jJ=65QPd3tv9M+S6+O3~<> zKNE}Jt7Bqfqm;XooH%pK>DY}^MDu-y{lkrpq}5bJ3J3a%41&pyp90vF_@n5n=U)7N z8lI@7Ud}3efXYKRJB`cG9E40nF}9w#vu4T&m@mtl_n8|;u~y$Cc2@GPEBL! zI^OMPDsTrHvg{sRG&lTPc!#aE9bJ1b`bfmbvJPVI4- z?5=zz@9o@5DKzgjeDBv?IYf%|YKlWEf%N<31*oCj+Ymv*R0N7La@c5KJ3@amLuNo&yTFvh- z$hI%pLM{TgNuT_;#?O1gVL{bh3WbY#zQl0V%eXH=gajGt&j-{H8V*`E7|;_fj7pL? zb5cVDuam^)9fa(fSB9bhV;q zi6GXLthAXMktR&n)5C%4b!c!uN%TM~O#Y_TYQq-AeI<)+gc$}I)OI$)fDj>_@PKbO zxRCj?<6`_;9-YR|l7vQBm!2sG@#y~af-f5Ljo)TC?s|V^Ux0G)8nt`A*(%{OFf{iV zIi?IP$BxnyeKCYy$y2rcqz_G^A4({LLJ79p6Q5?Ub3-hIYiY>K9^dEDmR0e&d5_cX z_nUG!;}G=At^`Z)6R^XVpU+m09Y>ZU)ANq}ZAg56WC7iNi}nz?3$?@cDZ92#wcl13 zAF|0zE7_NsCE+4QY#atJ4V7LD8!+pyOOCI9{YgWdOs`h^{H-D(E|px|$~ z;(^Y*`sFXTE+sr4KW`|v@8@ON_i?w2u9L~;AAjZ#%9;MY`ShKZ$J2G(zMJGG*06x4 zXzy@i@-*wjb!j2i;aAT=L0!j;66wh9{#GQRHP5Bl@_?sgcEXSeRVT;1mL z-H(^cB-Iou4%3pE!oQ;C_IeE?d)=7zl%fu`swCxRx5NI?a&{zawP?AIe*01zQr_`u zn0Z@m=k&-ZZ;+%4ff|#xNT+G6tArG_f8!QcMb&QclNeuTaVTrwm`b8|q(U`^o3~k0 zWI6?<026sc>BL#?a2|O0lMfT44ekE+OF;MYLN%ig&_w1YT55Ye@1vmP+VC(^D~Dw4 zr0WC+S?aoI3n)fMSf-2%*twA zG1LO0gL9hA(NR+@ZEF{j3oJdhv%~TOXm7kt5)=}F-0^($vJ=u|denj%qcn_1k^21G zcR#zoks=!S7Wt^O?{RN!%Q=sSnE6U*-1%yKE!%M@)-d=)DIUh&W-T=M+1mY0H$DKb zS*E(D6*qm{!28(ft3JAw@zJzEELNO7txd3u#m~PyeYQh?i2^+Kt~Y%j-tjAxTsChNajv2bN~CLWfR*KV*o35@UD92Q>N;AZ^!eh_sD$nk0@TH%qLrVH zJ*kYhNQ4qdcI;u#Kg#@R4I7Xu4%%PPlqLe^!{At+bL7+l~FaGn>1Gahf>$$iH=CFwkMLhpVnPLw-A>fr0mDIu7E zx&2K7Z}HW*i|Utaz$Oucy-b&9$3K2Qxw0I6{U>ZiXJcl<7z5y$qk<&!fYqqmZ!A^H z&TTVAZVngo%ZlA1HK;`U$0r9@e#q~$vI!{qV>c#SRlF$!-3hvx+lGwW?cUk^B*O%j z2r?Egi=F$MZT#N+(@AA;i;F2cWRi_es8$#ebTaG?2UL*cgt zxe9KD?lF%L|C#L$-0rOSrC06CMm+5DQS+^7GjdKOaoN;(+9@OxLLs(i?GVZJbb%ot4 z0c9{^Eidl3U@KZ6ZtO{WA0mV`zyqW);ugj9RPu|i_mK6yF1{<{A|CNryO zsoRk2cC39Pk6pO!$$Y^ioa5|vayBW+3_=5H@|@Gw_G32lz~U_iVCG%)@$s0sPeJ#| zn%frn64&F(iy?H)XDCyr&8H`oG}txqJ~uY-DvrbYCQ2=cMCfEHYv z7{e~Wc*ytbWg;+bi_USJxPq{S#tp5|YqRX`59gP!HRWg)n3hN`$wWtE>>^xX-+x7v z$$9`Amo|ATn%Ta7?3glmAq*~#NmlwIMpq$ud)xO*bsL8q_V}>I^=10DbEU+1(re`k4}99<(bP8 z#+GDE_LEfU#4JWJJDh{`)p6X-2iR)fI6`vNKO|;}B_^dJO`s}oG5~CX)D}Z77cd$N zF&mJ$hsV~2G&ya=`EmEhs4KIWjby}dcc@=!uTl997u884f%66Ygj%*8%p27K^G-7cmu~BE-g04FE*UZ z-nd`_lTL{j^-itPIDRgz2t^HmXUXC%=yD1c_@)PQ!H5RDOl)UIqnA%ER5y0<5lTMa z^9=eE-S8n_i>pDtnrDltl9!^2A099r5$Mc{-W}Zu_c>D&E=50~0}+FoG#HiXGq%*Y z#FmhGRUsCK2$*u%<*Cbrj5Rzr*~2cjZ7zpQ;PZA$UB}|M%a!&>taqE37r1edxg_h8Bl1xfhduCe`c0XI5=SO5}qhdQ^tDN{5QrVCCun8G;}L z3ev``Rhc{vqCt@l6!iDvcM4jG!M^q*cYo+`08}(rZrv5y)IphFzgi5(NNj1iT!5j! zx1LP-KVEDWtN42k@`6kJZ%>&L!3GVhR#VS|>?oHu9_Y|#fC7DQc z9OvvfoonB;5d!&t?GBvgapUsgYZzRuAHTyo%7$HcL*@WaaDfZIc!Sbyy}g2e>_-|~ zSI

BewCyFuC6GZ430P$mA`(U9A)iBYEBr?hTmGYMwgw-+5gty67Dx!+~ZWzWtNY z0pqpx*pCdv>TccFDrv}}C&~@-^k;9WP*{=)Ga9&JvU37>>)I5C)vlTKU|E@dbPOQv zm&M`g6>HO=!E*fATTnCM{yEr6r;Hr1Rw+CI2P*V6*v`bCUE#n0a21#K)lFo6IV-wL zOck0W0op_$<8y&I>x+Y<$WC3}0YcLq;^ zytkvhW`Cu^&gZyl8UJfNVCU2p?&H?V{X?Eu(d%8f81&>hS~$>~>F&H9EH`q?hG0X{ z+@jHmdZ#os}PHcrq3~|ol7F)WzX(NwG#9T)u#XD?BA*xIA zQpmr-e=m2bX%sce<{m2TJdy`&Hi5P{N;TwE0JJm#$6Pf*G&N;^^jW`9d+= zcu9+X>Dv-_(yk1FpPm!?ql-tT)#Rxa^^GsWy3>iIB4X@NEDRcz0@c_&Bebs$g|X@0 z#y~FqU!61E@jT?}D_?#VIr+FboO?`(90+aRC%w`2it;B#&LU0E{(vzs4K>Vxp&%vZ zBc^=JyrC~w(;-|^%2Ujz@=ZQMAk9=uRGsNlX(OVm62fv>>>JP2XE`il`rfvNgPCG+ zmML_`1%IKrBm8zS1$f=EySjMx5Hnr#AoI07oqaH@_KRs|^S>yjhUC(M$&L2pzmz}D zpejaN+;9@}MGpK#Bpdv`g%AO+^woRYk?4ZHIsPtF6I(U)MHhQx1X`=OA)~0(1w|OpP&SK{unTG?WvumdzE(Co1?h|f;{}!Bj%ffuzjssg>*fo; zY2{Z^6S5k{0KTsKY^UTLXGZ&vGMXPGHR|OfiX(YRs=Qp?dl@YeL6%m}ua2PyLl^69 z*O*g=FJ^SBol~#9*InxmjBA}~)o)HHzylNjvX;P?JDZ6TTIO;_T7&DtnufWaa9_0R zaEQCW(cPyzp7bwl3aJXu+*6<6fP&|>tpUQ>v-cuaJ2fs*9#N0sU@diIz1Hj$zs-Q9 zOxCZAo^LnrBbuzs|jKDin`X%VbSA`BS12-zNm6T47NI`1<=MP%%E-{27!1wBFc{55kI+^~yd!%@anV>Sf^E;SL>v%du-9wPTDj-a2N0; z;fLW32_-4qg#a7~R$~$ev3TC~X|_K5eF>b*T&*u#R~Y=vJE?@-u4jC>7(~ZeZzVCp zp2!QSEY8Dt;p;a04=bt@V(Xy_4&5oLUoL#%4O~_e6|Y{cFTShT>k#()pOA!QB+*lI^NF-TNE*Fs}`ZmTBm+HGjdJE>A14? zqiG1u%z!iYy?LpF>y~R{cxC|=M4}*t)lFihnhHn(M1;{P zlKv7~k&){*Hk}I;Z-IhEGP&6%N?-C&0){zKWLUt?IacrYA5m-Zj`%B<`ZKr)m+TFn zb`3p-)0W;G&*o|Y&wiILN`{7y8~$4BuD5bt&_b%KCmtTKEtv21t>e0PSUbQYAcbpp zmvNE6N`8~GOkDtR<6_9ruT>JMXg*r@MSX`?b-?Dpn z7xPlm=HzI{XK;$P;5)q1mGl*yMeAcIBxb&)73=rrF+^i>xShmDx`Tm34Nn6G;m_H> zqt+}QfehcitxzEV`#FDW#>yEnIZ7FhC`eD<$)8!J(X8)rXFNC z7_&-E5CLA5D_F3B&P@zJ2i)r6*?jOzL6)%6n(vqJW9$RCd|k~3&KmoT7_ce0V|i(z zWg6@d_2*->sv7DX&u{izoHd;2Kh5Rs1ZmwkziEH{;3KxfZQzPHy!w&A7=!F5E#>rs z_LohZ{yXO<5uT%fo`9uE)QWmM?q_vHcY2-{&qU_m#)>-!_>|vNW5nAF$I`?+H>>X}>^#kcS0hE2~WXlf~dBlL~ zjiXFpLv~R9m4E>S%O?ZMT2MfI_cF)%*6k z#SJ@X?a8~UMky?vR^_qV4t8htj_#S7R5&5yI(=psb5ly{y%|mc{J4y9JU+fr^-f3b7b7E%DIc#Z!=ihv z?i;8wnNx)@hu}>qu`qnaln}+2&59!3{An`RSZV($h}$cwxF%+oVc309tL98|G-k4&`Jc5Q((U)@#@WMEURL21fTU5row zL@&o5k;_rxZ+|;~4dk1cIEB}h&l{v5N{ZaRB#Q-LDxkEHAq+oQ<~OfI1`={RJ8Pq8 zvye(FhzqESmSF{YK=-`$1!hR9){zr-7H;HSHrQ|{Q=xFc)(=`|GclhUP@aD4UH2eh zck`_8K4$!}D6vN0=(bn;ou$(2TG!A@s-zi&d)sL z_@d9`1RTXpSvDEmE0J zFl`vO6Cre8%%@CDBYa}#M7(Y-yHC=aRGc(^Mjq%Twm+C~ushEO!AUszrF~5?S9ffu zDHumypBHspCPCLyv{X$*OYz~sleyiUQHXAfF&nK#37tL;l#V+>jlxvRRS8Q>+n_at z{$LG;ihu*a@0LT@%GaPT4Le5iEUQ{rW@LXfyqnBzbh1P53q_Tb%(gGnrM#k~qobqt zK>F6NpfbdPF_O+7)Xl^s8HPht5P<6b9iykCJurrpu)sw20K5Nf@4RtwG2Ak{)$ycq z+cBcc>|$$XwtdOV5WnbeuVf$=h$E?#o&LyXy2i#r{dgexxxe|IT)uR^=;7}8<2ouP zJ)~E@@|Iyq!SIY|cXrvj%?^S}p&=ou|6}uq3>8&Ft23Iv9A)+~o$USPFE}>sH#+=@ zhM}!k57&uq@6C2}xOm21O3?39m^9ciwR&z%Cxm`>egGeBc9iLYV>$^6h(}TQqwnD- zhDd79>WMcQQpm8fkrc9f;o}Re@R0%(AQ()*%-FpK!=|8Qs=ewojzE@hG1kMgOpe)& zT(566J(WNs7LEK(P|UyD{@OSKa!{sZp-#jhdmA(;63(dxZ&WdPr0JuQ)dLM-(*h4RChF!hCB z5u`{yu>-&V&N^+QK+qsjDfnPJE1+3iK)W7!A*BQ#k+ixEdZ%WX{**4}6R`;kFDx*) zyo!Nu_Ca!B`O4cq+dY~b%~AKgnZ)97`kmn~p*zyRG(O+jaAJLY8T(Z-WnK7Hw!l|C z7713n>xU-d06sPTM>~-N>7P1BEsCF=oM~+3#HJ`3%bB4y^U1m!A@`x3QOSW0h|74F zhcE;9cpRys@NC@J4)E&?+_=y!@7D#3el#;y+CTMPoV$faj(LX(Uogc+SUw3&n7Ds| zey;h~MCfV)%}(R)|5~t<_JN4F$$jSdd4xkIGy?s?5TYlxza&+K+owoi^jVy#*L>t;_Ozb07lqi#+u5Bi`6ivBBwjk8XSW!fAr3Z zD{E?AruW%@s=zxJPF98oUJr0FC$z>Suw{bDb4^dYmx80!#j2`cBkx$dnY)=a6a$)( z*d}1EnluMx200UqikYj(5cp?tUJw*j28ZX$>GX4n1gEGN@>){#g9u}@`KER`1m3GndP1{x_=(Kk0zSS7N?unDP{u2_#H zzs~}jFVqqeonkb=2Hc(2Ha;sFxMY8eh6Gw+JH_ktM%AK^ z3A)Z~dNnxEY1BuS4sa32lBdLm6C3sD+HvVL6s6aF^u+Sp)) zQqU&xXzb=IspP~IRK^lkpml-vAE&5f@cMKvqvWj|qvJ)mM)Gka)fB^pN5u>@fT*={ zT(xvFyjkIQS-g!f@OJ=i(MQz+;no!y81A70$y@>tur_i>W0($A<4ZFQ*NG}S011TO zg}Zs2dIynu+Md2NHZc{D8B^*+LdzqmaspNOTTKYCi}w%96=vl*Lk zMsQfNC4XnJKrakr*XmFl2~vxPaoG07rC zHydYoVDds5#fr{xJBZ-}^By7q5il@{3P}w=W{QQwJsaxu^>C5q#khQ{F0G|m5rv!gqvqJzmML1g@uL_0b{6d{( z(oHQ#%Vp}vzU0!4F+Kj(jl<*-XNNi2Anb6;7kqy!0#og~ZVDFZf=4I6BcN{BR;1Sd z(@dYxg#S*8LFYuqsZX>hTEAB;3X3`W^3Bs|{`8?Xj?*ScQ$R$#L)(30v)h&k4hRP{ z*+T%7f8HwjyyIAcLoETt$rWtZ9wDaT`&<@F1h^o^@thB*`1|w$Toh;&9*qEm9Z6z8=it4NQy+V!`y86 zXv##Y3W+1*w;(EAT!V$bSV$|zy8G1a3aV9vpG5w3*gIx|C-rmjGi=*+NLxts3=5jF z*wz7DrknXG#S%Cr<+-}jm$k$ih=K4QeQSjG^+c05I*wsW?*}JWb)bW^Ro*<*zP`Qg zJP8M!g7C!$pb)KB77V}R)?zp}6J5KzHHhb0Ls!62Ou;K06SF&Asy?_P_ zv|?wIysM6MQw$mXmcqd;_xLv`-|ZO&bb$fvn`<4hDlhO5jOm44>#DXNF3F+$p`8Ul zH3%t@dpIH#k_dogDtU-AOPjl_IPmqXt)A584OY?r*Qf3a{SFG3BBLvkQ8IIeU+7*<#h0|zkiezQDp;Up$=7FA{)b*Eq@M@&%KJ4# z2nLAnaKh~HYOQ4yN=;xLWoouWlqt&r{@q|29yeG6Sc6(;IN*YD8sB|F0~P`0x|)BN zuh+`U`Jn(j0m;o)_N)j{6>9p1FxH57dDg)q z0a?|DamXE+rD(a-l0nDuE|Fe7(EtUW=hN1>|yp8#jkZ+Rkqc6Hc^Em%-Hyi ztbiFClYix!*qDVGaL?ofQ1%-&$62b|@Wb0~(nGvU+)W! z&14Xp@Q24&_-|zJ{M*i=%$MtQ`%ai>x9baY28_Y443OO_KX1ci^(2dW`_tb~>(@;0 zMvGloUyIr&@N;jWi>$Ao&}1e!G>j|v*OERa{m6-he?Xebn|Q+Ox}eX_Xau3lqv!9( zlHNOI`w!LlBSJ7_VZRk#;qJ=S%4BE9&wm8nw={C!y^&6LqW))je=(gQw5G_XLDx6& z$8SZ5jnV^*fBdCB{e9&ucZIHrPytEf@)e;M*Kr<)n1zoIH7Z@hNeEi@gJGSAU(I#i3G>J8vUPFl{Ce0lq>-sLOb>ZbbR-XvIs}uUjjW)!v&h2A8+DeUZ(9Y|O>|x|WF(OE{O3tf1`|EA&f-ImDZu`+Gw& zmw0CXbD!JejlI=b#cGKX{5dh8SLgNDZE~OPX8`HL{64dV(uxlzF5B+*C(tD>HB0M4 zC;-|2MDp{6fq(Oy3r?EcMd!1dxnm7>|5|r3?`HleQC2necBme3puOf}e~i2bEy!N@ zW^E5_isEQ_CKl{V4MGxiEBc;V_oFi`g3y`lQpb6}wtua%FQ)wEqYRL%$4S*Vmr`p& z5XwYvAgi2v@)9e7Vy_3v{~+gsFlpGXX+dyyEvdfJg-wm^QC}W{C&}Y>JBdA{bi$*x zVM^v<`H;%;RC;Od88BArW1WG$`Tdd?Qpy#Yal}oT|IgUQ2jpVjvvH^c5iari<)Fa2 zPzc*JDuW;Z>NY(T%a+FApPLfUr!)qlX#LMAAZzyD8$mg(>Cie>frYK+-{vtRhmG!j ze%kdK5!qzX8s5!-&o5;byegMjXWM#XVAJwoIjcqz&#MMenv?~iQobSjkh!AbP%P)7B=4(jOz8$)*Kbn<18TFYE! zDe!i`=w`Fwd*JHCqGFe|-KTR6@1HooK9Ol}r&XXz%3@`>CU<#kIv-vVU&HLTdc!>} zF{$RPWB}}maJM{X^i0BCscUw8u7R>+EBQqB!)EdQDeQo#B$QW@s@q}#!Siwu&&Fzv zbTRK~U{hnqyJ}Hs--sua_HC%N@c%1qTFE&0msWX%wW57K7 zEaTO4Q}-o|D4RJ5VyoCt-s{l%rARHVArcAevSN^3wK^MrGY>pq~Am5U@eoFRKY z65VXgG_s+cr+<992%l)Xd5X&MbG}^UyQa*Z{m<3*ft4?m{y$A9bxkKAP_@?}L+4TD zKl6ARmB%ZB>6*ZmvOd>UPE9sb^?eK@@>GU{1Gx6oO*mi0=(2bOG^mVPJ(4C~yRxsX zuT?J}mm(ulHAY`_we2JM55Jo#B)k9jxQ;f5pq8Oog_X9UsbC-LE!1`S)l?o-Mc~%1 zBa70p8sPh<_S40?1L?9-=YA8)tgfOmOj}o*U_?9U<}~GhRloIL)ekvT4eA zXKDd~{c8H&R;_44*P zw~EUw&mvoopK8hVFBRGTv zPG)m5T|Iz`{K}rjj8n?@sF-S&Oz2b4sDIpANKV8!BNtFatEMT%N34 zzS_S7<~S&}d3TO*oLGtJS$RN38+p;i z013-705u`wYmpwpvEn*|K{7V!5X7D** zIH!dAgK7lyvs=#S0!TwdfEI6|qc?F0{&*^Oe>bf0BnC<3S1Jn@y75^l<8`jJ;;7k{ z1r1Phit7%l&`LJQXh<4(ek{aGu!!HtXp0!EabteU1)jaLl-iT{?_{9cX!|>{8);J ztv7#m3n483<9}-blw5pp?w}KT>t$5;$BQNX#N#q(QteU_>$2%0(3zf3`Q8ic@Q4Y307))n;G#GX&Gagq2>WipA&@#T*8n1;5=uPp~ zVl1M1QKhREhp|GHIYfaoIjB+j+uq~DJm=@K_V>U8F@=kwpg9FllIwnGqd?xI9>Kil zYx3VGjSW=BW8?b)=rhR&vD=7bGn(w^gHojF46ia+XFa{K$$ixW+E>KIZ8MI8KH)J+ zzW;VbsD*v@tIP#^7rF}6t&V7hFPL>~Z}fAjk5+eHdQ)lDrIk$*&Lb}R-pWTSy3u)X z;T{ig`h$*PYqd#YBLNaihJ;I0;ecDN&L25S_mIz{^!26$GtJ)uSb4WY$+j01@8&0` z*zOyUMK$Ab*$z!u42G!RV=#}X z(A8#mKmllh5w=Ozd?)pCjXWG*`)@-H2Vjz5h((lP9{;Bc;tvMNNPP}o_Ub1K$X&7& zGXI`e*1K&U8}`5Z2O5pXhCT!6f~o`Pt^AQ5d!DKqy@k@4VVi%~o$%NWNhIw3cTkM;oW(w;v#u6!N%bN2DuxweLL zzdlp*#=`OBpN^a+G)^~z4M@K?b$qu3iUd$+yK+oz72iRBwVt5W$PQyn%$BFs_Uv1R zBjO1OV9j?p@wp06*zh(5B0i<73WaUq2&sS4q(js}L+tOz)0vL8>WxE$mm*|IF#GLf zy{+SZp1tH~${={b;lR%3>a7zM=VB=>V?O=tJEG-Xv?u$#ckM{!aV!Y*PC9WGf(d|# zvI6m$vp2BDM}&c)_$#wppL9SOi7B^$(k-g&={Tul>5&oA4^y(FAGn6!(-TR_VImfL z4Q{}|^ga(mcwH8ajP^3W0iKOD`XKfZ<@X(rB-MsIi(?k$M6MV+f;z~#vK>T~=lg{^ zv)4xddZ{q12Kddx4G>#P7QWSyknTzbYEm}59i`+@tP)-60B z3)Un1cc9;X;dYLnPINQv$v`3kiM>^1M;;sQd$!y=$%eQG*!w8~vl z6=RoqeBL_qHb{Mjg$YS}`-TM_2OEDQ=83=EC|R1|b5i3%nDFQ0*Y0oSG6 z-BAgnJM9L7YBL%z%z^syTmPY5gHO=PC23>RYDNt@^#HA9HG+RG@ibQCdeK7& z10ZlX22{WhLTLY6h*Usv04~|TE)j<0phF8Ggd{;;$xo{_-#Av&W~P*^BVQ;F7z?zC zUDQ!8%D+WrhTJPq(F6*-9Pw=M$xNYLZ2O4lxYuMsUQ^@xeSA()6U}s3=jnhB3_w5M z<)pR{mM?5IT`Xg0ZHv+I|;13I#9fI76a;$R}0$G zwTESwCmR{^>^VDyG(DFb+)n;1y9qijdH+#}8M&}RB{b-EkMlUB zK3zg1Zfx?2m@pUe8f5zIOD6eq4ka0Bh4;S3gU4K58goO=F?$ks5;_m+MHbpc`f{Jr z5*4MqyciAHNvb?Dw2=GzErR=-d{fWjW>3~7Und4yRKd?;RyHFvt>2R&o%xVeA%kze zKR*@5vGAant26GIX|82p+j^U=jC?oqSl%qXxfZfENB$&I`MoSnS%`Cnpn2+#AJw9j z5Yf?f^33CjfUi{wx)OjA7v!k;G+i4MqweRtywpxVG(89RX=OtN-UbiUjAIbHiCx@) z`)GU>m<9cm(mM+y_c@YJcd;@Gs0$!f9Slz4{Q*hdIL-;_k*%YHy zKUl-gPeJm?Iqc2XOBVru0XuR=X_k#jB+cHSOJ;s_ce7%0S1a{|_Tf zC?l+5g_P7W%H9*duK9q>5RbjStc44vpXM4DtutA+rWy3@iE~?ua-ZTNPVX3=$YX+T zSVy;6e^x$Dmikpol7CIW4yE{q;nW^?EOdYB+m`R4mV_XwDe)_g!6(9h^!LtSAr({o zuZ`!q_Kg##?c!JW9f*DC9C9PS3a z_db>Z|Kj=5Q|s>>C{Q)9)p*`pz9*^Bi!Kfbgy2E_4C+u&kNd~bpjZFna;R)j&;S3s zkti?l#mSoSX)x|p!sTU3a*ZY_WAO%LH5?nT7wTcZLv_$nIv}l^5lNuX-!BK)*_w!* zpaaIevdOyvvW~kq=YstbNnyv(9exz(Z;UnTj_msZ@HsB=Kz~&}v!Yh(Vs}}rGXcv) z(1$*fLv?Zh>^TeAW8twP70cXOUy|j$hPws`ntDQHocHQW?VK&dHRF); zFs=Z*ktseWfD9u~Nz0ekOo5G9xn)J$Z)OO7c@x`4Fekh-# z&?QOrdwjMn{ZKyL9I|o^;Gnm%Mj1h8neA!0i6C)~ev8VPHZhst*B#+K| zj>B(=PLr-?WI7-+O%CGhxut#rGNJ%g38{x!GvCH%oVznrKaw&O0&d=R3LiZIcJ;Yp zqDs7%D#3zde-2Ex=?$QN{m_Sb9F{WyX*8It?~1&9Oax?*JaBu`2o2On1nfO(Bm2sw z?P;MyySx$!xi4->DXb`^;@=vO1JVKIka|$r47TaFzBnQ<0s-Hk;UEa#0N5|rJNEz3 z_7+TWMBNrB5ZnU^F2UU`xVt-pySonV?hxD|xCe*9-GaNj!{AOH-@V_hdhZ9ks+q2? z?mn~kI(zkW_wIex(Gzp*i%ttk1C##TIoRE!*g0Tywt{EU$IyqCbnF`+Jeo!S&)R>E zjoyY=0A6D-{r}harvK9`au9snc1T+E6q@4arK9(M4U+vA$^Uw=B@Zn9OyP!knN$k@ zb=u3L%9=5_aAaqz4&90kW4bZLH$W%oB_`a2^P<%50;NrPL!o^BtYY5vgS<|xMB>y! zr%%Vd-v5visrxp1%D<#(=pr2d6QN?}_2!AEAc*PYpdqh^LH{FGvi98>ujOUOE|1nt zcWKL)U398?09@!<0Hb-4p^_4((qG~7QMGlkB~Vpe?Mn#?d8FCtoO3BC_5v{Fy+hlB zZ)*8oE?Qa$HVacU$L{(4^EsDNSWN{v*WD!(w^vTXRMIpnPVS;REkJdZ8#Pw;@K=iZ zwSHZlozD_LVn@ZP&{U?=gWJ5GG>*PkO``Yy3ull|4p?DzC+)2Ny?WxoUa{P6bT}+t z!FonJv$grpr0>FgO^k)!P!=_)JN@RPyZ`lBvpe;pd#AJXNMtP2cyWEV_Ilnp=V%?UO@Eu3&F-$@-4C+ob(x)ctc#j*waUSWghaWMAzC& zLP@0fJxl6S@ZRv1Pk2%ivB0l?cke}|-7RTxr38f}`a66(3ZSXIWt}OX-Zs>N3^9-| z(B7zxp3x$_G~$k9=-}F2U+j&!bsg!t%SR3J*(~4S_@P+@EcR~C4%&U6 zGpH2I>-Ky+AI+Px7wmXE3l9T2Q2gt1D}s8eynWnS7m!WrUhld-JvxC42J7C>UG8g_f=^4xTnzCdNgf%>6MxFv#cQI3 zcA_V}AWGNL!Yrb{)}lwaP(r-41a^JqaYLz6pcslxX99@_Y^cjW*p5%O2-b zlY6G&3|e1>WXyVT#|>7%+Zq?eqinB0pZrZz1$hsfjRic@A#f>`I;Y=T?oMZ>$a+Ym zhI0$-GVskEw4+~c&}o|Hs={KA?e;eXt%fo9}||ES4|~h|PUNc}~eB z7CxR$zT%=gmL-n~U2F)@L_gkJx9bNQx||XZ*c8tSjPm+_Q|-@@uv#w9BV#as)Vt(n zpW`tY<6do4Tsfx6Afwu}4Ij5ZI0(YTtMv!yYE*wS2^Ov>_w_D334d#`-YH*f*s&dT3`|LL7YDzD077lOt#Ij<;*q=$Z3 z31HjYPFE&A6+ncE2cH>4EHS1}W47vSqW#wrQj`qx*r(XLMUfjn-V(iyuntKg0D;n{~J`j&EQEIZHWb}XJu@;)gXpS!z-6o zU5wQf#@m1MLa$Ymak7<36BiymiwF_XscozE!6xG=UHa1cle}l98h^LZq6bW*eQiBU zI%cQqT=HVZIe=m*H)b=A8kBoT{@ew(Z5rH1R_!V3{UU0}QI0AQ3zN%`B;Cr#xmygh zIuQam-ceh>KTb5SIkxNYvs>;&QjD zu?HbzkxzS}lW7dxL;NiSj2Rn5X<`-?26p^pzrKl3qFMOrBXxyxx8+!Yo;lCxh#r!b zeiq0;3BMglRE2yauw+e05CgT~6))4Dl<5Q<Nx6gz{hl@)u4^9K4@(#UtBX z)kNp6%5>I}`wx^Odh%=~vlVtEff$%{ir8dV!f#9zyu`(>J+^UrY~2*Plh;d1&@uao z{s2Mxo=Jhsyj9PN!I8jcN5jENnrLblaE&IO9mTIz8pODa2Pu9%JyPr)<2!vPD+%1* zM*d9x3e3P~Go=Dt%jNADH~Uf^z%EDbJg`y1s?Q~z_lP|k#i)((aY#U6e4~~h^EM?H^$ficAP8rP zDe2zEw9HYPW-#}(dQ|}>{k-V4qkyB-R{)41VPAWJFzk$4Uuu~ye=Q~4yBh!LahSl- zPNiF))2|?O+2MfeG@&~`--Ol_WzpRqu5RdC&Owa(<5*)zB@5!-Dc~QGHR)AeM@*_Z zuqSL5$bJj`UxU*Oze>EWN8=)Z95aEV`Rh;l18bNY*?qGDTtD1(^K*v|dah%6BNxT^ z^?W0FwJuz0lKY;*I8$PiB+efbHc(*N(aD^3H!OtW_c`E`EA|O;FN|q}RLTQ1>JB4s zk}34%3uqx^Jb~ZT9Z>71Zz$h`cqCSQytpq(JJ02w(!ePZTx6#VEQ)}2E!32srg&6W z?UO=gihDPygNJ>%q~h~)Lrvcd?|6U6yH}6Lh|1IK;YbN&szwEkZ^X{)jz?`n&+%7r zTs1^|+4+WDV2fOrB(_wnO0n7a1HHCah{jzjW>VZ$XaL#Hlw3kZeuyioW9+X9#@&1j z7A5Vq%;rlZnanS!>un)pZ(|#^;t?p8YY(V#i3rQ z^yKi%iSzAD%FP(qz6s~VHzYCR%LJAv|0shVEurv)#92V0CR~6{?WT`y(*RKI)V?9B z6@Xu`tS4F)ub6cxrV-F<6v~zU8G0y1Q29{RPCc*7!G)9z$e`2-XEcq5cvxsNoTjqH zz$+Qj3e!h%PQPpZQ#Z4PW6b*dt~^bOiiNfy7}W$#x5A{MTuy&)6w$YdbuILs9_BAe z>VvED^t5&gve_i_fic)rEpse!L>f2#Eu27K;VKtOL&3VS>3i*7?n1i;#=gDx`zHxx zoO461JEo~0s1nsk{8%8V$c9oh_f^&hmH%3HZPc^4t^IxD5+Q58*aqqaR(U85Rw9_3 zu;V=y&;5p_Y@m*OEPU%lKmL5oJF|*^+^LcseGr&5tUL8JVOhpB7q`KoY+jQUQ&0iu z`}49RfonK;xij%D*qAu8Dp@ZP%}EH`KbC|*;4dQUf>EiuO1-r4B~6z}ID;bVW_7O_ ze+o2ye|5lK_4O%l$OmlEzyYrE2P(lPC%GBMCgmN=Ou+GHgA5S*ZQo$Wlmh=G$P{u* zK{^?Q0{guMQ4?RQ(mzf(`$)qppP;{HC`|ZLQlSA7aLk8DgyBrl3Rd28{G)HrnYW%{ zE##8**%#6)FQ@IES8qojzCTHn?U>ICOVr|7){C8J)z~e*2NJak_nCKZ4R5p;0=8gF zB7-rQBnt;E*u^x}5p^JTAlZ&9lYoK}KW?q5s{6gP_ikNm5*mHa3OhTAJcP{|Fbz9+ z7fpG7x0~o9?xcV^x7u6rl#AwPIR?jD9a`ypQv=T|48B~qM|Ffcd^74svb&D^WfD^b zNk5>6sF`Gal%ILG%Sk8W{Um@q^YV9x<0fIiX1eR^ZQVc`Z77VKb*q|Fo0Xit;k7FG zxv!uU^Q&<*ma^^7kD*+~c0G-|W;X#W3Z2cS*9{x0sdb44+>20oc`#&{_of|3#2pF^=ql-&7%DWe=KUh^}-bNT+jMbFco!fbVm4~G7Rb#+;X zxf!SApuhjMaVJ_5licB7kQue$qhf?d&M%YF9og@XOmQbf?itVR1FsKuDEm}QSMPU) zuQODe#L3-){(z5*XVFqEF*Ojkb+}winXhSxiuBVL11`=w+wIK0Kb5+e8QE|1*v&81u*m+z^k1ig0c?b`Ra9bVvo2xEa~fHBM& zM(3RF@Q5+gr1D|K6Sv}O5Z*wYUK&Kk%eFjX*}-EF0A%=l>d9zzJV{co$VkbTq!U2- zcVLp$=T1)BIy-wJ?_&=Su_{KV3zhMxCLB`(_k2)j5hZ-`V?8&Y*+QZM8S3-3z(mwc zTD66VotbsUk`R*qm5;D9p7q*5l_cnBDo?;a=MAiv~*nsHc0;P^G{6yTu{gy=bw{#s;y!D1lq~lm_tn4z&?~fpFNG&8o+*4t&9ipno zFBZwOAZy<*1LQ}TwJ=i*^f|4rhC=`HIvT7J@wxX}z0ud;cIJXSF0L6(cnKrqscZ=x zv3$mR#j%c#=|e)+T{eXXZ@%7qcSaDIW!Wcl6@rpZTlCG8z&KT8W*ctYJUb|__)Pg< zTAi^z$a$2jCHdX^e@qpr)P{>_)k#3$MN4Dh0JXpn@W{6>2~lLdDg?O`+Kk3sGg2YQ z6b2VwKT=FH3gqu@q0RX4w`*~k6SBE>RurM`EVthuiMRf}j4yS+Z}@z??CgC=!fg_N zv|DyIhGQSy-b!8_IT(DLLE{=|74wKrD|F^ zZU$EAi=mZR*-5WM^f?~5t=z3Uk#!_xEev}%wM51fPH$XT?k1HO3b7@34X{<9ps?Ot zVFcnE9#`?y3lhQ&NQI-#3xL8%MYUK?C@CO?@EOcc2#Ir)P9NWbIFVd1c~s2;>Tz_1>P16%%Qmf!6^XuDZy*y&7n%e=zP&z-`Mnf!%)AgY z0Q0g9K&PNaf4(gLmiW`utD`M}*Xb?Uxc-<1lVxW;dAJ7O!ME4$3d7!(Wyx~u&XvGF znq4Qr&3j@WxaLi6v;}NtyC04|xfqH0d!}K`sWbd5BPkBgXr-(Ou<{gJ5i2liWu{ z!ktj^`s3#D%AgbI`*FOm*Zo=4?tce}>GpjVcM0t7e7f!}x_y4*ithrx9)9_SzOrr6^)MgVb|s9bJ@+vM4M|L#~hF>UZxZDEuoBE)rCS&*osS z|2S{zTL~@UXEQjim%C@it*MumN+83%Fd)0!E*JoT6aXM_vS11kHSr7I3xaN|i8l<% zrKvGQS+&d=BXtdfAD4D0liAOSNugMO{Uuw>o<@nl7`& znWaYmTwdqf%d^kN+nEF7W}M(ldk!&UDjKnX&&|f(mA|du{mv+tzaIqdZ%VL=3n0cP z{6(WCrmt47qA~;livPmz|7rnd|4m;YX{#@YPGAg0z`wsB7Y-1<33F1hG4SpiDrAJ? zpo7mhVL@*P+`6gJE`x4X!yA_Eo{&k+@p2hwu!yjwZod`O)Cqt^R;jLy>%|Qjh?;7F zQiUc!^2bej7Atx*wO@|=p}A~!>a5>OxGSo6&qUxdDG}WNW;^k4L$iHrv}>0-8Q36U z@KB3iYSrUg8e85L0$FmPkuH-j}ZRwM(thRwed&hx8j2WY;l2ydj=dR+!WNeUd6$hyv| zb!yWYKlA6z-?^&)C93-!6b#w!--GZVzzAgc)7poEe`WUFdyO)OzCu-odw_k)5@pjw ztg#}4!jwC}60Mq%uU05>)!5FP$g2nk|Yvo8!b!k=*H!%>(c?a z2_mkOG%)`}OiCn@N0z()C+copJXz+r^q6VMY6T{A?I7<=)2K=cr8<>y$6)j;4`$V6UkIke*gzD2w8bdij96== z$WG${-ZfXyh^PRC_`sBWr8PH!M>OEi7D9>_rb*H}OsULV*t%#(ie=^b-ZL$1Hdaxy zt=H_kb5%Z_=yMb<_v&qigJd&T*~qX!ae5G({`gTH_I4M-F`uU*8VE?G%A0qH*uJlU zRdutWQDAneP^yaErMq`3TaDSU6@_k@zGP8mp!u09BkT#9lbK6}=G-_AKOzd?I{j|K z({G0_;e0(HrS*^`@?l*{-SOIu9UVyy1n{RFC1L6c`O4(KM#zqr5S;RCyPhBLWJ*{i zrOzL<3YkFN|3=TlO9l?dXhWg!hpT2{)e+h8>VHk)>1vz(qszH-;G4}3oI-5|KG$vb zs*C)>vbVB7`(fjV`yez z`khSN*~5Jho`6?yNtR=OCzaDxh_79G90AMSN*d{1O0H77ys zGP^X~Min7zZ_$s@;}DnMrQ|Zk>U@w-%$V67UsI7XURMlTIK43wKSmT$K}2|56wP>VuPu(o3tIiq@kav>VLN-EM*(2OTl?(S{!srU#NgSP z0KN9YFm$`qKec11H+tF)oRGskarv4$|#2!OzwpgmJx%! z2Jw~dk|e}^(HWYu-W*KM7O~oHy`zKsIFd^{sIV(`1AsRgKABbbkYJ_|Py~mC<7V(+ zr)C2@Q3BgMv+ntzo`m2Xh5GgY+(e+LU}1t*Ve?l*hmX(C25ZG+5YwStt;Jb!I4 zsvoI*vR4%t?}rkFW$&52Bp!*{O>9T#n@-`L>$=(kqFepI$Wxq9W5o$BZ;=!p+hDZ! zUy>C}E(Huq6mvY*njm9Z9?=-rpgafd1%*-E$S6uW9%J9Vn=exxy*Z*rnf?l>pyM>e zOsr^~AXkKoy0TPDFr9`Rx3SPoGp95B1OmkpkDqew;B3BV(>6yHnR;Awq<-n zm;=%K#8@AbAOp}sTszXkm#<;7X5&n`LjyIYu=<#V<7oD%8RUU6njQQ;0I&NtjM z*i42U7+d}ZDyFaA1R0511;JiT`#E7im!h+sI$55$4rVZo1IurV!yiYDz4!#@>^*2C zIH~{gv8F7c7qv7Al?C3kb=XpNh=-(4!2_<(6T1VUA?!4XU6pq6w3@D~s+88l%t@wD-4q=x^n?AVC zAvj++Ohpj`_8WEtlQZ28j;CzAQKP=?2WgIQD&T{>guaV^C zM*6#Kvzn{n=7_Kb+R+D}%vZLddpq1cIq?|um-J*aili`qbX27Ph8xK2c}axbMl?v2 zTbwq=W9dC@+$|T~Z;RfZ8UJbdG;fRZ$qk{iEbj%^=zQ#Dz}H%}b_pO;7Qihl>kP$scQb5`BtY z?&LG=k(!0nC3C<=4bv(((GQJ!wMc60M*W+SA9&+<#};7AxlOQ)0daK`*XEtdEk|S@ zS!c}WTPCcJ zcXtcg9^^mefM5wk%x;1)Ku@7wlZdOLGUaGm&LsxS2`+n{fPqRK(R%D2doOZ zTXZTvG%;`+2e7`!q_K-%8rQG#LtdE&s|F_gS`8@HwBab_TBECHZMtQNGriHTc2}}M z&4g>N%pvr8bQ^!iBL@4u?Q@)& z#~-I(5oMGABGV4ZX~+DaMqIk-UC`s`mb4{t&}nK~D}1P|m${z58P|I^;9|lS!(q_| z%uttVm)+lY35zwc`G`X>-3!;73(fQVr+xpAwYfIcNnP58Y(BP^R3%epHbrJ`N!AFB83uQ-1kOFKyBv%;o@w{P_R)`;d<0GOed-m1aqJU{Vx|UJkUND%rKC;@JMo2LKK-(X z`sE^!2zGLmAef&9j1f1g~0x8gCeGGFl}VvpJ*P z`YJWs;B;ou1RaHHy;+OwdEZEg-VK}bhA^mQlJe(vekIrNI)$NHd-341!X9~dcJWNm z7#No#W?R0iur_vDYDd^2c(?tp<||n1x?c z&353Yd~j7;hA4QjO}@6SzH^$zRlp6?@M`|}(Nbos{_#_Gi7t)HoMNfs(8>P5IXDSR zPOlI_Qg8QLR3YUt6_uQrjQQPWaM}W%m*m=7P^U-?&tP3hTD{&8IMujcs(q1*#GsU9 z{W_J85<<}fc<26IeZd4~X{~3>RdZJjF>aa1+UM28IF}9>Z*|5(LNW$ITTZ6E9+2OV z58^t~+&P8xihTuzxAZ7zTrU9?RNQrq<6cmCbbvpGN#TEgs~tYKOp6AQOCNpL!9-ri zfu!AQldX3mA)Ch-MxgK1KS^&dQ`q;Ng^`A8i@450Spo4E8kklY zf6-Qn{1wqACoj+_{O7iMw6k-uaZoI7GkEo&Q;M1Gm;>4;J+}0F&4YWWv}RDI#r798 z1$?{DIg+m>dXaw4ScI{Z;~H{K_t)>5kP;pr2w}Y%Az^&uK3MTFHea!~iGHkc2^cyi z)9iAhWxxj-QZlu`cO=-m2)~E)$cA)LK9Bs&wKx}r>e1^vsFvck&yy?+-i_i*7O)F` zF75oc9hwVh`I&l_PfFs#GbX*!t{Qt}Zd&ELZwDA+5zuly!7gZq#H~@*dTJo11%; z8ECf09w*KJ6JYXt_|`MET$lT(esk(z-4DTGJ6V+0lt8GVdBpnL*8Df_a+4KZRx3rI zkL-l9&T%IfhfxiC0;5A-t{ccr=BX8C@sR#-&*>&G5PQ3UD+pCJK3&SCR7L)vx5BL+ zLDZfv4*^EinRpiRB5r(>!K9h-0Np%}yijN$8pDD6ggD~KL1~-+d*{@Wt5OwC{Gk4h z1ZH8I9(=+gbA|fuH8NFNw|9{NA#lqI16-Maye-y=&W&}V!n3p~cgn=pgp>yLHA}JU z@&m$WGvWSa?v|G6Yb{3Q=I!T@emUk(*)T|jV(oqaCQaFn1AH)EVKsv?a;S2>joQ>* zbs$~`W%grkw}UX#jl3qx8-`A-y&Ziv0F#vAw%r0{Hy-5XSd@zx>To$Yv;Ko`6y*jE zMgPpsGSK4b-GHdUs1DEbOvV(Z(Rgzo9M=9Z7yoNaCko~Ew$dQU&aNB>a`@hD1C0w| zb1D4M-nZIniZQUUlE2g0q!wq7Snuz@Zltcxw@E_q$urvlHdbp2E{o^wZ86;MMZ>Cu zcwyMOSn>eM^&V>vk)puwn8i`@Ffp7odA>g)la-u-*E@@r*Yy;!6j{!0>U2JKwj6tk z4%aZeJnGl+JGFKyEWwq5X_vWWIx??jx6`f!-WNu89dSPuH&P%O8v7;MJ9)qC9Pc7R zFYu5_P?+%Ygv{!vWV`$V$?SU2QTv;Ii z)*5v9?i>&ucTXAlZ~D95k5AEn{Yrd&pWuCXKy5rg3X6;$ldK}#!05d&rK&(nxIz>C z2UD*1cqy26ibXb3$hq%dM^B5$v|w=1Vk!l+rgn;V;ZgTrt29kxG```Tnp74u+P()v z>o{k~)jh~;7k5x0=sR_XpgZX@{~;X5`mAf!oq6`eZFE^(765-^r3Ii{fD^*J*yoP(fJx4BbGYvncz?OP>qFTi0>v{Mzo zV7up@m6?)5$?zfS_4JyoM6xWQ;hlJEJ4!nW)SBi=6j@c8en}X8(3w|tftk2pO6)!o}Z)(9%E$E+1sHtt7wrctPFSf zqTlYlYhNz?azMD`bWi&XWal|}@`&grUDg^wLH0QpYWjkokME1pN!ERngo6bHdp}XH zp=xoS2(YZ`A?=^FYbfnWiTpsPsS@P&94&1|rrDzoXfCSY1A#qmy&87@f zkhi4*UQTu%fA9^s0xf$Alqt*PDL>kN6NZ)DYu{E*7$K>N37(u&%uzT(p-m2+-+?wC zYP3<}{C)8)K76WC7foXhDy7`d@-EWMLyD8yEHy%Z+d*aTeNR??jThwcq}K6TU!vD~ zS9rYB;XP#p_s{Ylru^&h;Vf>_V~|)@6s@m%500R@LHaROEFuUf0>0zn>F|5WcbS7v?5n`Bk|j(EML7Xpiw3H8f<+VsZ!fTFr+|ifatwho*l`f#-t&D1- zh_>@p^&s;z=umP#E6swS9ewR$E^nhGCN1dAnsmqKG^HA^;oW}r3z?C|Xi6Qn3xoBy z;5PfaKW=uT$I<-$rIhfux;7o}O#O3*v$jfmaBtek!Cu|--ZIbHf7J-PFxpkUTAa zqo0W)?VOL~vavl|-KO~84x!mb2E!pSKQ~k0lye%3BG67b(;7b){4!YPb{F$+EWZ-% z6R)cITAyYr5*dXdVsx_XX%90!os21^VZVR8cE07JJD30EvTiT3@^X$rSDJC&C-`~a z<7R&rmee1Au-5Y8>E&eTR=B?4c6AUC40)Loa8SMbpeV%gM zAHP4HChI(YcnE(7Re1Mc_urH)u!0#5ct3!i(m$Ud|4wKm#$-~7oc7uwN)jI|i4^yy z|DDFm12nvp*6o^B)L9tMPrcsu%fw`&yv1H9BVl#9X;k*oM&OCG=T(tkFQ!vU6B;J4 zP`_($Q*`_f9cb`kQ+?=PA&t|>!qP3q9UjhmnoToa$>V)hG|0bN9^{%?2HPT9k$``S zY0n<%IQvgGgg!v51uD5#V*VTp!Su?MpLlDWdsZ#IW#cD2L9(4)9mSR-EYsMz2v+HS zqv-LzA3Fn)2?p`MzW5bi>#uEe7+6}>I#}fe12%e*E)J^&>4G%h&tsvm;WiNK&{KQZ z=mNh>U!5iLno9rm!L!GoK|mJlh%iM6&L37|^e?MYkjMYN2b+ZbBOCcl2i}fdwYG0! zF(>UL#0*sM%&X<0V!~yO=qlbsVT<+&KbZ%OIv!K#Y1vRlx6qhYiD(H$Qx^#8h@XwF+2GV--Dq|6M~jopR0f8IaATML%72$X?;OI z;tG^9Ls~+9Ulr6LOp-LNbUx>|)3_=!vK0FVDU`q%F$-XCCZmruF~MpgJQTx8!+pNL zABnyYE$HeFnKYg@02A@DWhP3@O5u(AEuEQmg%9v%5>LhO<#`^?j9gi4?}i)rfET!! zPnd|i-gKPG3Oap-{yho7TpCaKu9YB_FMDdUD6$Vsywamyr?N}KXrFAQ>FVjuM{p>` zZ1GL^hNv46+YI-rzf~r0-FW_9iwgWQz4MwaI?mzq9kI`5go zn7L{nA5Y=35H$4G19?qWAL3#AZaUQXz99@}*#z*ug6o!>XBBB3{`_1M6dM`c3P~;k zUEBcjfZw`{o0nf%Wn6BMyaF!NKUm^?J7zsQ&PBle9$UVTf}4oOv^AUrEXzSh=Fdf$ z6b{#V{!|V%W?gAJrjMY|l6tD!kv~uYqZx-Q0N6?PGJt#ZIx+;cc`i&@{X`vhF&r6| z)mPJzJomnpN+E0>`Z44`SOux1TN6d`E`tE9-dWl*rP}}~hf<36pCXE5shWu$e;I86 z+I%rJSIODU|nS8r{zwOgMw*)%(`gW_25(2K< ze^+rxGU%fKN#6hVWG&L!mB85WH7z9?z-%|oM=XUh7W~uyinWK(P$ku2LL5-PmOWwYA4eK4I5;7#W^7AFdC?+9ue^Khzx83Z zCL*=k)4MB|Mh=N$wOeVmw;E%90VgO*ybEbcRuj(QX-@z!{P{!KSB~FF z$H{9cn_^yO=d|>>I?P<=fiDPdz$~E^ht<;5h|{nyY(gS$DO$|Bs);Llz5HApKZ+Ks z&_1V57K#6y+XPdt=i3ldjj_xmq}kE3lO3tTBsv!Zud;^=cXY&Lg7|9onk%b$M{~bq zH{b3P7{fPu{Fmk2jr~Q| zwv%)wWwbhZtigL+x2eS=6n&uMHiX^j&iU6agtybRLMoe>$?GmwsJwI>tvP&t9WCuU0+L=KM}F!FTjw`-A}C9ykDCq#oek0Et(wOuBD-x>Q?724!2?A75eb2$u} zA7VDo-7U}CCM#*}7@#H7?+epvNag(t@E`m?y_SUsr(m_TRb^Mx{J!!7GU0Cdz{O2P&4(-25{@2S5q+c5BP;@ghT|M7vo~$g zdN)=4c!)ACe!p*Mfjr2@B8?)IbZymFy;glCuOa2BtQMuqxugC0|~cj^%h>WtLm zmySKGRv+Kk4=D5}Dqq#oAGS9aH!$aIeRQ1M)>HF>B3ueZXYEiuUQD+cBqA1kpa2Ap z!jeRB;XgXUQiLxSgXpLKBz^UuAZsG@{P(`M5lkJxZ^G0}Edb&(0qfh_5Uoza$r6_0 zD!dU_;5gRa@Gkyj6}CIpRChm@Ts#dZuy;{rZ`d!hKEagbKxWyf9YgWX-S#D2VMA?Q zE~@mfk60ficRO8Na7nH)&*-QM-%eTo740>lk9m_?P4dU5WP8I!;N{T5GDqa~G%=2r zifKEZdOC1ELF#l+`fjCDaiIErQRB9>Pv0ENpF&sF9$*2I@Ifo0pgEc3W$rCKlDD968LIpZRw2 zKd125=;ZQ3CQWYo4tar|)t)75O{!BmpKJ{e^|gu$ufDar#_be&_69df1)l97nqWT0 zJ+E**u|!Jy{f3RU3^_to5BZExZiER3wudL=mUT$8X|p7fWi!Hrb|7j60d*G3jKCH#2^p<+Ww?O)dq0yFAwXz zTxX0d?)$0ulx)Y4aM$ZS-t{XL7uctffI81!?^L;CD#*?G{nWbJFI2=3A?4(??faQT zi7cifQ#pNtl!lziYLcZHgctSR7^-8gcyqLkB#=a+X}o29ja>LFf!jscF3Pz)Jbokg zCjVCp0Ff7+!Q~W_J#?_VXHM-bj3QBCi(&8++CWkoJI{UgJvX5@zXKjSjHX`lk_NzA zXuJ%WlFi&3tHIiWxe3=l^SxZnP&r+~1a7g=G4|LD8*BBE^DioBO7y}5*9x7-8yses zbvUV>mT*~<>=;JVr*Ko!mVJYJ>n3S8SzdwLWo~RH^g+ntyUJdQQL9us$){no-G)p= zW`Or|#HcnfZ`nu_w^US&j4 zM%j}Er++N@9Vq*vw_m7{yP&#~4L)!!my|{RVzi7~uBjBRJkwnGL2WqaH(ba1g+H9% zm7jaTiU0a8#(>dpb`b4MG$a^zR2gf#`mxGD3=bL@-TR6R?IWk>_0i7zJ9tuC&-J#5 z<4Q`xI+?Ub=W0DLf*l?#;0=~hupoUeJD4W9vEJuUv}uEI;4i20Oq7!fXvvhNejh33 zvUwS=A?@*w+uq1M6lW!Y)Grvg1+j7H2DIcpR2XJL)I!uIKwQmPlciJsNBoQY^YfqY zf7b6*A+O|P+ptsGx~vNRwb&=vJ2~6Tl5!U{N*Qe~&dv5I{bE@-2(w?2H;7;PGTT1*okm6hcC!}*s~%9b1O*ZiDTQ+=Vi8h(@mhC)xbF~1&oddk za!{pGvcOJ`#PJdan z1fjhLSp#DQUx~l~kkD2{nOO#f7_}E?A<{WfE?7e3$+p+78!|=+4-?D%wMU|OZ8(SIgiB9tutzgs z6!E;E)=(71aS%6O36XQ_K{9`cG0;FZh84?%~0Zar5O7J%6?wy`~>=^wP0b(Jaoen^@ z10&^Q{yn|^arB~Ov?hdGguFYE?)lsXS!~~4tZ_eVB3NOzjn7h8UV$9BvLq0qO3JO9 zK9oV*&OqbQ81`WoG9|FP#|&LHbvn;rX5g_da|HSQ4j-<(mf8p<*ipUjjD-PGp9FGq zFQ6r;FyjJ0xWWw1uf>TR#r`+OIoj*6HPX)(u8FQVw&TZIK#wi*a1zTz_y%)_bxe5d zQ9en3%;)?Jf*&^r!-B!Y0$x|0kA5GMbl?+3gHKF3IG}^A@u4UVH%+_J`FsPo9xj zQtQ<2z<7PK(+q2}1a$D{4rM%wOA?A{_)#T5?AWLGHOt^%UT0;v6`4-a=J%Tv_k)cT z`qS!LrawN5#an^R!vDGPQG3396jsb5c6DaBIDWb52!J4Kk zTRrwE<#(~#CM0jyxMtVxL6XJDXnk~{QMsVedH~n5rh&;DLAZ#a)Oq5MD!jrvQ?sDf z5k+P7*DQQZ<1B1;zAD%fl$C{#_tw0@IK!ZD_k8Gb_K+QJ&aUxvd#fWbi+8oP3(!@H zOU2>yO}%G^>j~=#qkyH4XT~f8OjLEqMG;Y%7rWOSed?uRWH^Eon>=rtZjtObwYj+d zy#jAn_!1H;xD(`#R+051oTim$vH=fv;#EH+m2CiQUN*66e0N=EP&=!{CO_MADcsws-KZZfHr63Y?zxwW%?woPx(XRe(0IHAw7(8`YUUN5l_T zDL!G%i)VRw|LUsSc{1N^$~xPRUrRPyyEsRmNUjDkvnxC|@>}h-dr#fjO&cPXEaCNE zS*T($S3e@{ojAuN;VKF_@bV_WyN-DOzVJ7WW+`OG+Qe4S42xg)p1&;_5TC{-hrz4* z-)?4qBZ?uM0p6F;z-l{i+J+G1?c<2WU2Tdf7DEY%uxccjuurqz*{&ug=OUM%2safong zk@Whc0>b?UJATyCtH?^4o+>Wp=25?ChH-W)J!U~|ad6el!#bR;Pj6e!w$$op)^Svz z@P73^6tot5F|b%$``+caP~yj2A$0{ifO6Yv2}B&z6_AfqJl|cW(RE!ZAx% z**$ox16RY-S1!*mpR(TiGRfVhNtnFAt-$8EWct)>p$RgWr-*?Dwhm>DtZd5i=Ki?7 zQzy(=Auo@#a~fF|9azV4%wxN)9^$QNhrYz_zpaKf@dCY+VgM-`@R@gAkIKJR(c57{ zfN_M6F>uWFP*1% zo+4I#2pow$7zi9Dh#nv$4pR(vz%>*^3^s%z=)X(wNQ@@diw>u;Md8G#Q$6!_w&iz- zPBX3~+3#D+2+|=pUG=pMd80%8#s+ILX?A4lIv;i8VfyEv-n0{#>&0bXkBRu3j5?d8 z_`?W%9fz&J?S#rtJ5OAW7IK?mau>;!qrB~^cd$KH^dT$Mkyz2NP_}>WXT z?40h#?L0(>^j@tboi=C6NU%&ZGZ$Z=32~RiuZ1P}^cbF#`*t+vxwTw5_ky_@2E8SfP6eg~MShO` zO7sfkYP`Vo_7R6)$8<0M87*t~++PE|8U24~XI?deY46f9NGZ3sgD`QM`g zMbrMvOjpmTp)AA|_c>Kx^Vz+R`wv*XPX@x}p8SWUKHI{v`zpm#YOkm=Ql!7SsrEjT z6yw6jHwE|(wXaLB9p^I)CfiVo1AhXo&3lB&>ahb)cY9zyOj)0MVzJvp7{e!l;}S+z z*;C@2nb~M!&bQ(!@S)9^Lx8Guz04fs3KP;H<*IZgZ__b&;z3iUzK;7Y|98!xn@bOb zidc0ikWZ;x^<_=as!ED*UdnOaj^wocEnP6|LC)JcOcRs!mM{V!@3R`~^PD_(c5EjA zU27yw4N)~O>q7TA3_o&_7TkXmM4}L(3p}+IsOzqbiwu#;D)lyx-(Q;t$UTr2>P)>Z z`BRh~Uka4jRoTPX!z^@kz*{RWAj&jX2tZ%(bZbn{Z-%Yq$BAF?T8`o1gZ_tB5N;=> z*B{r(VS;LBeJ&!Xhby}Ds!rx}=lW$L+pZ?GG9!0MJYoDCDH`76Ru34W|1os*e&+u! z++W)n6m@wSygIZ>1K#qV0ef30b#_GOKd4pbN3LgM-Q7>&=|2)Tp1oxXvlST2AZfoU zi%x!>uP^h3)8qT$hsX4JN^Ev8zO!%U*)nIz4%u49Pl`uwTrk;U0tF_iM2Y%y$0Qdv zUj*`yW}*eTa1pD2UK#ugM(GS%g}x*$cbT{ZnAGW z(m5_IfL)l@{^z*W-`69MH`pEXDJ|#|ou}E1-nPbnv8hjAAG18S_goQu0vpS>;q{v3 zhp8E|Gnn@azPx_DvPWC~p9luD6TIo5c#=K&xaCcX(>7yhZT>&ay>(br-`6)xNQbO|Fc)F2?Oq<{HDkmqixVy)&pfv>;oq&_v6Gt z(h^V43wf?e3Zo2nfyV7W#D)-&ZQq9t%!i9#P1D!SzWa$GJk!U&2rN(1Le5|Ex1`79 zXhl&ljnuA%eq9&$diN+?T16}TrxmM+KKW#y^z6as3q(e3dlHw#k8MRT7(Xd*%6wO^ zYxC`ne@phR?DL7=dKsxP3f!yrb-MEonMds|oy2EiN%3fDN|)=UYv z=UO!;Bk6=(mqQBqz!6Df*%J=;8Y&ggPjQ!X)S_-5r3RwRpb_oX8d<@K3wDpEKi9;FD+^ zCy=Py0$ik4rgc=c)u(opmd*~Z1rRM*yPL8la?=0|ht zxiG6a{44_^geK3Ugw6+d*bk8~}Y+hI)Zf%}*x6!wlL2qgkETpa{VlHHo zm=-i6qaV7OY-U7jfER7I9`xGyxJh9yZ`+si=1|p0L(|=Tvm|Q+I#2cCGT&JaHC|OQ zwUR~2#L)&L^CK+rWuR020+sXsfXa6`s2`Ry@hN5PSQ@mw1D6jD%N~_AKiN_)Dm`fP z*oidt8Lts~@bFng!mA>e+q7C46nX0Y3dE+P+3}%bhq-SC@9qZ#RHD!z?jAseoMU}o z!D_}5jq2K5E1KFX{#U!mfaRFO2|hdd?7oljS^$3mmZolvr04tIhT9KuE0C$J3)L%h z`>)L`Lm#B}d||{m_RExki&RiK$$`B6HQ-3#T0k!A`yHQB-1Xm|Bf~-5#aFf^)sPz+ zY9%+#xb7rvXlk>LSP5Quy>DpOhEw5rveVX`d0y?g-NoLaiUOe~`H7ZW<2f+Ck$|1* zKE3vR-JhA5Vy|cgk0Czxmqwnl)X{cDO}g*V0+fMSI^#0NgpKVpT`edX_QPM-CD095OuA$e*s-bOasU>WZ93 z27sAmzRr1WQJ@PWugVrCC24x^BeAlDJ{Zmp*JRb~MKK~@-^32rllMtCvwt=xnbu>3 z()yRE{a-mXwyvF@Ay+1XP46AevC!s4c-%Q#PI)xzR8M#;=DRFNF9KgBD?MFJ@hELK z_CI0!-rC>NAUrpG(1#^Fq2gi8$(LT|Y?YboNV=J`K#{Y!y11RQSQD1kU@ed)2oEqF zZjF@9eKoG3hSuEW`TZ>*wkUSI@L59$PKDfA2f+@j33AhGgEQ=9M?IjBI zH|&?GC5M(q5t+L;$FF<8gwwi`WUsh5pz5^k}2$P{R zM~ZrBfuwAlbV#^`uI_f}`6K~~AdoR);(1A$iVCC35%!82t|=lBuLoV{Ajfbek>NWe&=ynR`v)uihVhr=Q3v=I#TeA%UE3%@N&3 zV2af1`a(*K<6E;gA2Qb>aRifC87s*Bt;HM1-pJI)N^5u zKe_|*0sevCidq4dV)*-EaP zks>qDbnHOI!*&}RVzlX

  • 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 literal 0 HcmV?d00001 diff --git a/docs/sources/operators-guide/visualizing-metrics/dashboards/alertmanager.md b/docs/sources/operators-guide/visualizing-metrics/dashboards/alertmanager/index.md similarity index 82% rename from docs/sources/operators-guide/visualizing-metrics/dashboards/alertmanager.md rename to docs/sources/operators-guide/visualizing-metrics/dashboards/alertmanager/index.md index 93062f5100..972bd34b58 100644 --- a/docs/sources/operators-guide/visualizing-metrics/dashboards/alertmanager.md +++ b/docs/sources/operators-guide/visualizing-metrics/dashboards/alertmanager/index.md @@ -13,4 +13,4 @@ The Alertmanager dashboard shows health and activity metrics for the Alertmanage The following example shows an Alertmanager dashboard from a demo cluster. -![Grafana Mimir Alertmanager dashboard](../../../images/dashboards/mimir-alertmanager.png) +![Grafana Mimir Alertmanager dashboard](mimir-alertmanager.png) diff --git a/docs/sources/operators-guide/visualizing-metrics/dashboards/alertmanager/mimir-alertmanager.png b/docs/sources/operators-guide/visualizing-metrics/dashboards/alertmanager/mimir-alertmanager.png new file mode 100644 index 0000000000000000000000000000000000000000..901fe6d2508d98428861029f73c7dcc2353f0323 GIT binary patch literal 77472 zcmc$`cQ{;M+bAqWBoRG`9z6&Wg6N4FJyD{M=%S5o^dzFUXc0Xj2!g1ij21@kHH;aI zUdQO&w~^oTJnwhj_gv>X{~WWewO70Qz4m?YS%kb)l_$7OeH#Y{hd|+lj5-buE(8bX z)|;ExfF9h9q9CBUZuwm0ISx*76#lU>F3`T>tS&EwQ`kehgoASp=cTfy?DozM3kQ#H ziQRIg@X7wl?A#pYquANm+2-EH^71lTMT!B^Xx}$AIg4DL`@_TkR8aJpgp~Z&*4FXy zv9Xzznuhl5I!Z%ZzqY>N;bXx~Eb8#^a2>Ou{8DoafoN`N_3(Z-JTl7vR7_M-#?i(7 zEyU!~a?jq;F)B*8XE@dHK;3;f2M;`mu_^q2b?6aA9#Nb1Pej zm+u4;m6)8mySF(HyTZiSX1!;NZm^%OLA9-8b z+Xu({#iiu}!V(2_?wCIbzluvgjf}UocdVpahlE9b2nde-{3RebbR+BQ_s-nvp^}Ei zCVMB>lCp}mCLJRai^M^=--m$ip5Eb+kycd0%YCc6F^2$niMP+W@&kyB}sp;P$YkX0w6R73U{+Z5@D$n8h-ma;Z$mrMw>`X#q z=-SQ-v-$Loo}bv2uDJR@O&$GYlP}syebM7Hm=0@9w`;X@E*ACu>}VI>*}Sp4?$h15 zIa~8#c=Fpwt6T5zSLD>OvvA`a%DEpERkkv-g*n-tit4JIo^B85YS?Q?KG2iuU7ReQ zp28Zkue6wqP7OAX>@UM!#CH^7yl4fSW-tT(;DA<>=;edXd_=t-X6IDt{rqH&!r0v5 zz*y1rMB#qk-I|&=`NK6GjaDry>z$PZ!q>aNBpkeM;=|n`S{*k&HMv_i+?to@+wJS5wuL z5pC2BmfvGuseZEWqu}oQem(g2BCGXEhmyWd!wp_pyW3Lt^JMRC#FB=-(aL?1^77jU zvZCObw6v#XR_4plGUB|JcN)kj6`5#Cu#GJAfG z0q8lAI=zCu+7R{JG-KZDem?}4_eYHXA0MTVy{DP%4Xw8P*U-4{7(O(UZLVo(l(fdm z02AiJjWwN!YcL$>6D#Xc&eb$pjGx#AlxGA7Jk2&Xd4UE=5H8Udj@Sx%8kDOb-K_XI zZ^4w!Ufov5w52JrX}@*I}HhKf2G zmlsEv(;V7G717`L3q%*)ZIzU5Gm=wmCREy*#<%qW;Jz6jUHb%^l+B7a?tJPJ5VlX& zewXHc^w9GcLk!8&Iivo?v$U{V&xS*UXd?paU9o}Y2ZWqWAsy9w_|-458KNb!Lq>&= zB69%^m{$@bB7GNf1Ey~Kj%7q4E4+0!;21~7K^OTwvV||HN8}JrVhj$)VX*mH-OQyy zcc4#!@zjfYCBvHfMYGnZPd0Q^ZR?qNs8Bv#aWW%nLJXv`MXr_@J7L1XgSv}oqXft8 zwpI`Or5eGcUiy7$LC(lEQMYK^{BpyX0W*?7~Xm0I1hfc zg`0|hZel_#kCX~Z>x~&_HJ_y~=Q3(Nq7SmSm;Y@Z=AMwQ$6%Gd?QExV^h|=*M$fI> z09&Zh{^$#roElcWF}#!ayLgcEM_)N?$Iw_~v>qinCXD%7+9G|eXgvhabCI|RjGo&H z)%FxL3xyg>Pg=pW^a~-*M@&OQBxVlZbsX%$4aV)`ydL#%Jr`-nfh|K=Oni>Mldz4XjGS4|Iu!T2ON01lI=4Iqym_XRO6fP5@>8Y+n$eJ487DL= z=?*bwzUx>H%*B|h<{$llDn8l=eusoFP8ir(ogN!cX+j)dQ-4J6EO^y;Yi)$b;NHm~<2jQX?o z(r>J0qGpy~2%E#lQ^=h}IZ7L1I!NPn^vV$Wpkl(adG@X!Ker$@<~=gd&7_=0;mP}@ z&pM+q4q@&ckDgM3lO5k_zkjR*D}JRw4X4W-uvPjwMqDJ3WMfqJ5)uC!?2IlaEOf6E z4wugT==D(azNnRGOLB3IpF(EwJD`nRBYG%i)?$7wE9Mgh&?@Sev6?i@*pkUA)ZL&G zDj^3ZX6X{6SOO=j`KM+p)1p%o%#&CO_#3O*-wZH<^6I*~jRg2mDG;J3wOzkrYSI|U zbt3b=XQI&YxeQeNH`Nd7X%)M-o$BseQfj~&LqOEZC@YMYN+{gX5zRU~xFDSkTA}Qz zk?yhX_keNGxm6TOvaR}6uDm!MIJqq~oknF3m(Aup9vTaD^VDIc&b7R?#FFL`1{D|T zd-6Jo{#WZG5Pey*ey3bj#0)QqbrT{GveR#HL^v$l2YJ>OGAdHpKlVVNvZdr&iGPKu zH+(pylIFoZuGXve7Bf|!>r1l!4};p->xN_3&!6{x~ZQPD2BBs z;VXSE;?e#sq0Yq&)}!vvJY$|by6OE<>O;m&MwcXrLdO@$Pd)BwL1g5Qdqet7&~&D^ zTsCf1NsorMI7XvcsSL}FRKv%wP5MHWde~6?qdz>sf` z+j}B2C0B0V4aY^}))8S9^QgsDV6(kc@0XVzrY3r;z~G%9Md?_Sw$-HQ2SqC&UPu9u zc1yA)C;>y8tt?EcEnpZzmX$%pi?2q4)r;uBXM>0Q?h>Cc%MQJ#!a=enAv|VPiF%dBiC!wkiA_$YvzX@< zZza=!ogOST7d5gl)=#96f9Qrc=N~z~%NA=+?sseNNZW0^3(kKvvtynz?|RTXPU}17RJE-U>teH#nhce8M)>qujFB~yFI;^fVsajuIG1#y^-qIpB^H7$y zU)p1ZxG1yRRuel&W21zN_9=h=5Gx_KM@Zb~k>oeUGoTT`<#(`gnFo?yn6G<;uIPz%>Dx12zjAdu=b6s|un20Ejf$5MMA zESn|7QSgeGi|CTlteA)M!>3nwn^aDf&{4>5#rngS1<}-ol=_e;dAwX)n$e=k=oJ zCB0sI6Rn-AXH8$k^2NCwLUP|j7%e{2A)pU40)0WVE)Zif_pj9+^*Z{phN{u5thoe_ z_FFtTMfK&-46ve>KCh@^GqUX^9#@KC$B!hQ@Tq25HvZ`b+|+|WDF9u5t>lAS^B+ot z8OFo#>zjwY(3=!5akN-LrdI-5(H|v{98d*BOPd3WRGZ0zFQ4^8NN)wIkzx95Uw&%2 zq6K^JOb^Op6q~rj7PDVs8)cJs{HB3U5n?rjkntf$0Hp%M@k+> zY?7AS{Jh$-jeGa<>B%Z1TW6*twiPqYbr6#hr})mb$5nFj(=3rEaj$tX zh<2%CPKHAUuZ7XrmVs7Bc8{)EgAgqz!p6|xAG%%dt%^@=3d&_YpJYjet0dj~up>n? z*!txeS}Q8|oA%mU*eV>fE&F954WE=W1pJK52fyx}rG=%1?%jt&yO3~WuD`b$^~jg z>r``e_oomitnb?y%OimhXxX|Knw-p$?b!@sxW#;Qap6nj`N?FMq(5!FVbGR6MYqmTsX+V1@=xhk zp{4c_4~LnC`a~y&an@5Hm=+sGCGCm~N$+s zdTZ&q(mNw97=*;rAM}wBJJO>avtK<()0jMYr5PV91tTzhG<7>LsGkrA9ROhjVsoJP zD$adSFeMrni1dM2cWUGo-1io?MJk)jREQ1bDX1PA07SHui?_>9NnHfKetjuUvveNg zPE}mQ`M^3Ln7%B5`~?7sbDkAkMEMuN|9LV1AUiKFrUDbrbA|Is7g@#ncZi+u;4esx z!_c6gq1Y=?(sFJ((O)^==O6B>+u<05Wqag!{aBG}w%Ljb2%c=)a4|dzs}^%(vDO!H zd!we%t-G2vj#EjYvc)Aw?z`Jch#f!Kg0$Q?wA;_{)jtO|{)AP)viRgB?yuPS17y!@ zfLwr{3waRpHsfD#|L+cfvWuZh2?2S}#dJVc*wd@%Zm~M+3S+d-da2Lob-ZLq z?wZmcaw3qX%}$d~`Z#8Z za)L^F&)P}ZK>EF%$?C9am!X7|FJk z0O`CH&*!S@o}YTtE8iCWpzK+!@|7cUNg7n!mad!qL{BNJX^uUWfS)ZL^)%Da+AnGwt*y7vhPsmLr*UD<-{n!uAX- zS!aLPI(+t%@B{UQS(eyE9PSUGA7{}y6=_->WH< zbOkjTb|?JoIR)LC0vqZ*Dp#0oN@3JCF7KwPY;jDm{U=E8HksSQqbOA;`2#Y~HbPfn zg{Yk^=970mz6K8tRj?Flz1#jXCexp|c`5Qj-6!E@Wna0Kux>qmwnXdD_1=%+x(n4- zFOn?Aw+M&LIEr<{AhNz%*?xKZK=2@ic5ps?a3 z{)F~9Gh(Mw+AXBwfB#hSD%6r9Ru!FQq@wzCWKo`PkwD_eKfK4soe#ciZizrLj-oeK zzlVPHhI^a~C>$c0QUc1LwSI87i_BdjaZn9u8Faj5dh+Kkh9qqLYt^-4kQTN@{^-Gp zjgwC3-mR=$g^})|k%+PHp)|pe+UWO54_O6mNQ&B`EFU^eS81uTD^_#(ESnxhP&r9H zL)J2HYkkmzBc$a1NIW`5v)U%FaF8RV#2%Ww4oS#DVIRr8H31&SO26G&e^G1ZX0i;s zQWErRNw#e%Xb}}f@oL2ve^rby0{vta)he=bi1vG{_T!n>*QE4?f}M%yN(3)k*RM9P zVI>$!K1HL~CXbf)xJ9!d3iMIo{lWhe=0`rB8TH>Ooa==37XeW#@fdYM{YO2;T~ z1RHOv%e}12Fi?;Y`qA1+w4?EO=qo-pPhmIO*QrfXa;TRZJ*V_1NMzxcb<|$gh%Ebz zE(d6&aq?F1ppmc*ea9T0ldDol_h%x3U&oLZri86LwBhJ+%RO+*JsuPB$+W%g{@W^K zC04tTQ3D#TnU)Mcrp;Y^5<9b_U3XTVv_lz7-msbBjeUG{K_-iCu|w(Rj@fW?_8q{(*@?iqXRhQBR3jU2nCKyWd+Gxs;eOh z<@ekd?<=^mSiH?2O?UmN+nmgbs*j)tzm~hFGzYNbXbNkUMf!D!lzUhpOs17pN@9`x zk5M{p?kP)nRT;$Kw_mVd9ReUT8rL$nThRpvikff3wda{OXQ;vq3aPCjR(AxtVxx`? zQq=d7`+w1r2=vqrx*UPs4#jsyDxb#hgx@?mi4in5 z#flB}l<~0+*S?`;eY|PHJ(laq6{d}wcXil1&YMD-0AL3$(07M&6xFW~QyePf^c?mr zv7B8M?W@SQ63KX|*(sN!t%BX{wySVot>7kfSIxgE4YOutu72+>kg|9h`2qCsUM3;C zwYs4#?=qa(*Daa%CU(Ht)i~A2u80%m#j`n}iVf|ihQ@{%nE5_5jaG8S4vcME&Y<=7 zqxY1E&SFQTU(d=%9ZE41vVpkk9#N7oA@4wa>(bTxvmx~=vH>66$}JH`{Fzxa6{PR2 z_If8&+2C9>2BCY>-|jDy?96R{sLX%99)J7X4+TVZ0YBvTt76yu%Gqb&7z?GSue5jz zJWQYHz(hw7?QY80$erpUQeH!B`5v*mZPVODO7`hca)nF+2P)1{TY6;a5T#=Nv9ewH zCrbv+;cQaoD~`f$p{>?`;O3kvy>>nZh7V$88Nxw*0v-O-A*mlCjx zMwchnkCXBBJ$zYkk9r^l!_Zf9;~k`NjYwcBdfJnos$%C#s9cUTxavF6h_APQr~p0T zVI>*u)eQpQ)>jme*U2n#yNXWSQda#to&wL3sr4Y>c-W9g$5PZdkVfy)~90 zc>R;*rFx#UA9Nw(pCjr1XsA0=c;yP>6b5wTwYm~csV^;PwssO-!Vv+6nidh_XO z)mI8HX$V=wyO>WF8p0IM;2G@vmGMPziG#E6ie<|#uhHKf=j>iGJ$a3RfIy(3~08U>p+-kl@D=6LZ$m% zfm!G8tG`$SZ=sDSFeV%GdbiGzYQYjd$C3l!pXtL_&U!w6E84`pjq^@0Z1gPN_=K{K z55^c%&fsqX)r|r@v3FJd0~yIk_Rr^ebjh4=qko8xr?NJMPHjs~C@RVo&fv7i=TM{hRxI z?w40QB9`#+Whd`YE1dgDXn}4oTr9=s?*27m^XlSD^jc>*tJ))s+6i_yx)X0rtJ3UL)B;LGpWNr`ZeDQ{ zOsCTw)=`0HNT$k=^qK**y; z!w#J4HsouW>ftttMM-U3ic(@K*Ix_#LA#2oDchu@z&A%?ui&6h;$2}`?0OH4>&*O~ zNbE^>jgDYO}=Wm0mUrTjG;V%`gVp64lm(M;U)OG6%z zo!>FJ_w@7t8B7DWliRKlFuMUT-1|e!DA9BKc7t~U)w%6|)PuR7CpygMnN}EJEh2I- zA2P%HWMn=v>|QP`>~{UgFA(;~K&?+f)0ww2V#P&bVk;Kym0^Y{S7TDI8~$rn3gn_5l40Gv%}x?A(@F%`K+n8JU0BTm;!Y}L zbZt*?ZWR(;69}nIB>^wU3X1xLLgsFlQpF^U56iPyGwY-J&Jr7VtWfh4J*!8GTiHr#UE3cx!M^$0v3;TYJ#H+cViGabi11cPILb zM^cfy1bt|4y%a2!Tvt3!uQPdE{1s~OMt$zGnS_KPy_=iTJ>%eP>Sf~_WF=cJ<0Sxk zI8AEN9sS0fQta=Hio(J>yR>_?J>6>w@N5lu-F(=bc36^esJ6FQvB=(B2?L)A1J+I5 z%_UG0TjeoH?h`Qea0 zL`xrbq8n|PVwU$Ulc`kNv3cdYTklT;*ZYO`NeKmPJ@&Vl?<7O~ZwY%;+qEmLi7=yH zgzR|~gknNjxu)_y^KvHX!%_3juXG+$)e#qo9H$>u?cYYPeQ#TRNsAT96*l+Qp)4xZ z|9!KG4fRG!HBADmXkcB?Y(ogiUQ59ZKP=$fhP7NkNjz-4n##AamMufpdA}K1SP-!tz@2aqZN! z_|e~2ireg0Od4`cjJDuX9vq@?!k{AuTT-V@@BhfaQtu|xb-=sJJ*`!#a`2#vcp0m! zpCA3+KpJeZ1ELGn-c+~YM%|2p3|q#h&2`xfme7c|E?Zbnd`WjN(y#4~?sD?}Y85uR zeBAr0VDEkeM3l3{^Fq%Pd}&>+(2k}Hk);A68~ZCV^c+`{age3J3kJIO02LU?LC2#7 zoPI{oA}tnlhLdvb+=K3e&YxqKHA@gg7%!L*@FT#X0B2(Yomb~$8O*}Xox;F_=3*=i z@@)%#M0DYrzYC%ugMKrAp*x5Zi-U}w4!On32B(5-7uL2ZG18v^u zUmdGM_0Dw_ymC8k6_5~~4m5X2AS^f=LLjY*wXT0v8xxwa2%s5u6^7Hag)PU+!(@UW z%simE_up1puF1+_L)XrfcItlYc!okk2(hSeNW@|Y^vfvsrYsel#!F#GkrR{=mI0BZ zygH;7WHQ^FKf5#hJ%f!vyy(RPP_f)U<231n2M)D4`N7cdMI%CYd=vo4IZ{mc&YoxKvQ~JdzD2E4H=%%mgD1B)^{zJ9 zQ`Gg<52JK}B9z?aqLJ@H*7ZA1e^9R%;YSv2hmKIk9pB_Va=k3BOkOG}0-5GWOeMF8e&8*ZJO55#0RGS%BKn zjU?B#O>6ra&&lQYCxgrp`B2BdP;^)Lm|egtMevoab@MGZ7-X1ky6QC+z$aH56BzC< zv%LBHRgk+|BSCl9BL3+z_b9Ike=mctQ7HxRdc0g0Ze4Dj%DXi$w_~>z84PG1tc2QU zM=-OXLQB8=lv6Ky!H)9N56JbYF{sUd9TgXEeQ3s5=`dv6cNoMzQeu-oCWbOIa4VD?Ebq5du^4=An1W47wxP8V84!YccY<4R{c;{+ zsNB_I8*UfrWy$c*Pe?}8wAAsIJ3*#9%M+tS zIwK*^zOpZ5$Rv5p=@ItZSlCWj#CQ~Hgf2vT39z!J()a>#UwZ8|28s73b|>(#opQgj zcf5|<7N^P*NP5*M6uXM^70t;89-$&nXJ||R(aG~ct+X{ca7|=$zDqMAX?RvHiJk(( z{%|Ucwl=YSA1>v&%@a7^E`(Onwn(OME~wIPS`-&^^zlvZM^rFlIq9$!^B`}6-714} z5DAz=g6qqgQUt1w%yiK_zbTsxIgq)h%SW8UySDbT2;+LMc1@JDXn+K)6vK7k%ZTEk z0M9@06-c12?GLdGZruwb6yRp7y0P?YZqbLv$Xv%jh35xm2JT_6YcmS5JK$H@O{)&8unJ%=;T5*_w6k)i6usY^Y| zxNxUQIkrXyJOYaRE{Cyg>Qb;-``3yOi3a&Lr6JIjW-rUHZ?`3qB8`T4dJB8-9ZZCw zGrM!k2Jgt6bNgv{9jiQL1d0>s;~b$Tc2smC7xKW5sjoO=L)lY;=U1}(^|{wZlK0`( zd~-%&L5XbIj)cg_vpc<6IhCG?U8MKw=W2cWHa`8DW%?nR7q-|J4T+D0sF9M>^k9j> zd!a(5V^2IWck`UBFk%x0J(%%josO0p4w~E?zt8$v{mBR#xE66hWU+Nh>Yf-RD$LK)-4&*UyhdTWx(!sePsq6 zy&E9m1&#~hqgg?~MSOmr@4_h$+r0vu7Wx1j4FZPFZ?qyIYu5mp&W}X}CqP0HfFa<% zXdsssI}V(!x|l|K2}(;CT~73X?qd1JxG6R>SNaf z-P1Wy=4jk!uv8C<>?Xt@8Q2S0ieT=S!A3PX8WeYEo)0kfJe0*fbgsQ9^De#stcyRX1bK<3LhxMPZj@^@!N>_=8YCL#o z+`fFY;e)!+4DD<9?fDDFjMTR$**j=CEJicn@locD^L6>D){FQFnTv}v;1CGc+K#HKH6I8B3x%fH+OkTr06Yjac^}NRy{Kg*!6@6? z|M1(WL@;3AKgM2NG{(~NtKW$Q4#jH3J6|z3@0mU9tamz5Iniv|`bCGN-6xjKZ!fkR z0AVWX`2`LQ^M*NJxpjlAjZ zzExUPYpFjyQVdx^X4E=>i<}-AfL}D%(ET1=vd^4e|B+9PLkte6T3-7-`Egh#ktV?4 z%*x0RmQ}U-vaC`U_H`8SvoU^EZKH>sQu@c;WJo6Vlh=o ze67dadVjyF8&`)x&zfyl04~jqX8aTq<|-xQawZhs954R#j_;RVGq#G`6?cLupEA=2 zmH&RO0uyTLf8#c#uMZ>+DU8w@b2Ag=GB6)JE;<(`-}u zCody=PHqDNA>XpM0P3*~7#i{D(W?W8wbOWSHs>5Z=`&1Kryv1jczebb8yT)r1Xc?aN1W4oE7>@A(~eVAhYW0C;UWlyoyOV$ zvd8(KL{7~6ciSNSyNjH^Py0_LB>ZjKXOLN{y^Ay`s{OIkD>eOc2AI|XaYu6=a^QX-)HziB2w=GxBT*|^SL z)LinBv}mnYqCaSb0UXW$U6U0gd;w37?y~NPW)6aA4K25w*B5j)=V!RR1W*GHfOE3{ zAr@UOazXU}0hRxStgV3Hz24t&rGpNl-lnrZHTCI&g--})_A^8}$aU_KbTVF{6@2jg zmeh5VEoM%ID?xdx>ax07>L16~acQ(@%G8-1<;zK`LN(`{cn{=9O}*}X`xVkGtST!x ziT@>$`2Z`55hclWM$O>+##Qq-G&;7@sKJ`xi0AbX%!6am za|`7s2NvMx@&peE39)jgw3wETH*WUQ{YgjE1(L;s<|Bvs=h`rL`AH+XrHS#LW6vGQ&f%B2ru+AU;<4Xl9J zfc*?oJx9sG;MTwFF5CrIdODjwJUaRPdN)6?d$)+10#R@Mhx>_CCE`Elk%RZEKAp^r z*BA*w<&@SkiF|$1fhJgp;q<6!6rb_f-NU)^Uqm{GL1U2Ez?O){9c)i)yM<*3v)3?j zHl}E@Qevy*Dbu>0MGJ??X^YYS)0p||$_Xj-xvdpIiet->- zmNuon1VZ%rh7uH^uZCZs>4_If;WG3NJw*(b!M>h1deTw^6=J~9Njlj6V_|nO29G}$ z?Cj3}KE+;Z{r7B;#2w?WFFOU5&OHJ3-t-?|$hh!@u2TjsM%Y-PxF@2Eh*rPv)wNK7 zoW~f5d?^jWqD~*#O_ZYZw>P?3^c8`zBOf9UW*sIZ=}^|^S<0baKa@Vid-nz&9y`xM zSg?C#<%mut$!~+3oxL_kTiwUcPLWaS?l+!3U57CHMY@}s|0<&{yi*W(Xza1->N~Yq zbLr<6-Uq1PjM`IuxOhPj>I*uREAUr&nw_1b z9dZsuWNdua{LeZLRA&(5ox9e^+MpT6xX+zRc zAUs6WXPgpy;VJoNAuh>>g3$$C^;Y3VqnAeILw4b^u9sT@LI`{5s)LuKC#0C|0^+2A zz)Oo=L(pNY+*%Ps{~Eo}%X%_7N!6DF=a9dSCnIwjbHJBAgVdpVSRiu1Bn6{f;2o8b z3D&;&{Rokj0rn`M(3bfKIb%VuNmx2nSDt!C*mYdND(-gV?vDg46Gh%G$T z!c?_U=f}+mpPt#ZMw@)-dU@2t6YqMT8}t~~Ib~&Ep2mLkhz>9&twU}-!67UZZJ zNDU-E;VGg$*Pq-AMN6{px~OhDsX92VdCQ4Y&PKYIZKbrAe?!O4MKvd9RVRPq*N0JL zNG@(Fs~&nv&E#N?Ua18Eii?O>)DO;GX&3fcR6E)^>PycQK@ShsO0S*^`qbG(Z9#^2 z;d+jH>(P=YPaq^p+_L0^VYZh4r3d+r@>%qtj)#W{BL};yco>4wfKJiq+%S42Oa0(H z6H1^9D>*$p2Oqt%WDqZ3=FR0KZ0VGd;QS%hW`TdX>K=Mc+;S6I&QKVbTa_t_x(t>0 zROcFNqbNxMO*uc(WZ1{rA9^~eE_;@kxo4aMYhPKa^WF5^6afsbinFGSf^DJ2Pjz)E zWpOTLYIgh}+>@tm0aDYOIPpO8k5z5fH$64jPSfU}6_=FM-PE4BMWSl4*x1UnjUPHZ z-GQ?^+fMB!<3mu0m!0dcVZJrPK1js9ZV9OV*ru|clJ94NTMZz{_&fTbLaU_ zN0Pm4pLhR{W2ddClaue!`^mn~91zk^K{pOAcRD9;j`7x;Io}O*SQqAdy)ssn`+dUn684L0?~g`H`d#C3|CTuZa9(eybAAM zTb@R;laO2~8m(iQUG|zT*Z)l5icye}X;_JWj9-Fj^h$jU{n^its9}J<{`tj!tT*YoyNgNvm$Hy;T!3zg{EX4dM;O5Wo*t1Zrud>`pY+NlSJO0& z=EXIhrE$1o%@ZyGcTq$|g^hjRik)QU`(aNj!p*>*)hhBu=pn>Ej|y}Y>HkX8(rMAE z_E-QSsW2q+JQg!>xQWetwSR-I^}Kcz5-4^t>O0 zb`|jM#0S$;!fJNiE90o+WZ=)Y<(O!K=JAM7FZRB-Uru@x7heXt*sZl}8!8x9v7YU0$S8zgq&_OL{lIOo{0<5y{i?(f z%gsms>LLVzw9?7n{Il#DNCNL3-3IB!=PEBi%9V>xrm0gy=K{{Z1}=MJ&!>A!R8#4m zjmoFVN&2kBdbg5Ju};}}9LNkDI(|inkVfaeS`pG73;vQwx*_q)cp}hU&|TxKT^(I# z3GKDgy9!%NSsPe;i-Tbf)IN3FJ3NNVj{Q+TOw{GcVj+ML+1!IppR`1*b`}uA8W7($ z6oK=4h;*vA!lKb{3tB7q8jgMiK4uPj%v_P7rjjMu@qUMd^_BR8IgQdiMfRUcvr2TK zY}t_(1q8PXR!oQaS6M~Gl3vL8ZGFB97M-?B2^8f8leWh_)>Ux5l)X3i$A468G9k`)7~x7apadWO z;PJJ!#KIU^HXTotZp2<zYKa>cCHNchguorN&eGy3uV^m(7fTi+ zhnJVQ1E=$$Y=RlS@s!V-rZ3Ur1w>}t98DsE0WMdjHq~$I6?J}v-i09Wz=KaFJgQ5XTi$nIx*B|H697v@|h4JO?L=zPG=tCY@_!!pc z20>XcWxl*MDD^43nS#KUx0PE??8V#(z;UII@1e2Nh7Tk;g_ zf@z`-%v@xkfaR-KEFIs5g~j-q57$4Gc7>>Q4TbX2Oc|DG@3r%7oL+?_XHWNZrZ&qG zfWW^S5bYbwHqq;c4DE;#tCOb;*8w`isg4lbcqQ4fCT^0oxEMSe=6ccYRR$dv=2T67y63p8PhbjE0AryB`Irl?x~9^m@j0)6-|ra{n96nZ zAlg@pWZ1z?qR?U2+@}7F{!%n7b+t?$q>aJa%gYfuRV`By!tjF(;fpp?b{N}KM3wXf za22LRKDUk&K!3b`=Jy~B%6RajQ#>afSF8rxIJ@3Lpm9_!)d>s}+ z@XPDOGyi@60WRvNQ0`i;Oj&vYK4h%6K}nJd73%Tj-hQWqBHIXOu^otK%6#uC?}-`B z8{pIk&fotFa26B8*%hTLkKd9$;fw=vW|<_+CW@A9b95<}v6kr(c9ZRKDgB>gxKt|qcU zNq4?WB1hSwnuJ++tNsgBu>qRn>82}v@P^KHTohq|(7`t@w>esJw`#(8$<`Y%?tnc! z)4fv>2vw@l)LL*cu)|;F&AbMpxW-#U38A6`T9m7%l(7n$GIu$@?OX@yu+($V zAUV8qJvDSLzDu~kb@y>&c*Q?m_uRhbG!h)(bte1-ige!Qg=T|mG3sR4G7Y$x`hw^*FW0j)88e| zkoj>{y*Wnf^>gJv;++(_=B94FY+7DUpU2-s+CA$o{v#+bruWsHBV_J(#4W5}!}jm6 zS`-%<@3u8Y88+!*DH5EbSKS5M8rVz?Gxxoo=AP!B-rG~RHAA;z3ocHufL;ML;6wUd zv#x{f(s#BW>MvO_)cM)o*|-YQDoCq?olpO-Q$H?Rly;L?`NO$I~^b^17$qz96r;y z)H*{Gt8a8P%^Jd%aba_}!I;pU2DQ!chWI=hw#*tko)-y_MjFMC58CN%?KkCH!owX7=kKpG!2jFauR4ii}Q2)g`4?D>J>DutS*}upj4gIB1~B&Zkga z>g*ciUJoZ9Ty=SIfw3DOv$~WwK4Uv4zgt)D;dD}awsUP!q(L8|aKKSMF&8VbN4pdJ z{t|aG5y)!+DovoWJd$~8u~T~%Mf7zA2a}V4dkY02V27;yXl1?uGCU^+ECEr|B;)f2 zA*~^>Q`A{2UZ3l`y}?eCcLR%0)3;ea|1gzvF6DpzD*6gnFXyksU8z?&|D)h1Bi_x1SkN%hf_vRWqA)! z(hd7dy1&#ktJ^>ms*p=l2QrwP11R0C6e&8BCKB!vC+? zAg5_%t%9)C$rYy3h)uHR%U)+4=Y%1hurD^U4;u8za$FdHR*fk@f3z7)!|9R+0^H@b z9#t2zOs6`&r2aV*Q-^(!#lg6-d^Zt84)!5&w|exl()7k{zn`A(&h zlIc`}L%YaP8S8ytJssg;gVNU51yq=1x3^6-QAJwGMC)rfLxI40YX!mPiO)7 z!`HL6-mY!10irpg1!Mz^roMo%OV;xcqhu9NICz%y-IR{ap9mpH$;qj}h2K1{fX99# zVCt;IAW47s_ezIy{Bb>1<$^V1q?C85HZp+mgWpHagA%x?;+|cKntmh&XbKmD%zBdL zdaIzDK1%<(?1iQ3S8S{oNfb69`X#*2{(QL!iC=1WQ8P+yo>W)2DV5Klcz$jMlpCM9 zVFXbjSBn7GHS>lBs6P=BPh4M0##eWh5F+T#R+w{cY>~f&ShxXtYTDbVq^hc${QnX6 z)?ra~UEDB@w19}TfQXXP0s^9RhmtaYbW4x4ASERtC8cyDT|<|&bPq!}Gjzjy2K0XJ z=gsfG@4C)4oU_l~YpuQ3Z>_aw*uk-KnQGV{Y330f?L`#JJWf6o9nCqflb{zL+OR-< zEhwDB?k859Y6K}r%yZ~r*<)DJ8R)k1K@ z{;Y#D1)-g3^769(u!!g5U@^;q$xYSD-D-mc#+w-64etEo)4d|njzdvvL`5k(WBJ7s z@)ZA)wh!@XvqFL z^(N!hNVfr=?rn0C3XJ?gjk=p8G#S-M&80-_Xo7tzf=v4ZzxHEN(NQ3lwNEw1Z}lai z`_Emh)59D>oJ#j1S&xvhu=5#>5dfk{uIUgi`;L%b4#AxEG=uXNd7B_%5y z?H9l2wU|SlWcZe}%bJ46FUk$;#fCqh62ycSo=RgMJuaoMRHQlAPr-mEx6=haB&uZ5 zgt$1PBRf=UVPT430d$ru%Acfbdu;{8KSb>MzaN-k!GBiAetv1{^1^S~?_**#Z0jlC zi(g}6j}W8TH-adJi1ZPI0{1KNh<@K4*lc_Ll<6TL10Lu5X()Zul%+|6#^J5ggS6gi zE+}-e#dJ@znhW%ozv0k}L*SWK|0lg73cxr8Kq)<4Cv+Rppa?QRF(+#A(JWV&2Z^Pr~0{qi|dM@(k0 zg1Cp(oa@D9Wuz0FXKDD`rzXAYGjbGbur4z%L{$Y)I01Yl#Hb3q&bscpkN~pl_rM~= zND|0ogvuEkrPZb4?8dEx;4rtY=t%S67(f2cJA=}w0VYvI$=bB}wdq9`RQ`=+B8Yfy zA6}08>9~`vTjPd(5P&Ey{cEB$@&7nTFJ4jI9^jNqCTpB<>*?Y-lp5Q>ma|nvdQPplR$JQ(Bow{DMxhNB zVZDUMe|#dgQuy@4!drexElEcGtDc+(Tx}!4sRtd3QP1 z2cHi)esxT>lJR7lJZF2dHGJyv4k1Bh;+jRRmtjEk^EE8Y3S_}CUPEBY+ zUWz^91SKby@ayqc&EG}uXMUJ0(eXZ=bLS{H*bIp$U(Fjd0U4O{Ci%q`OxSfHa)m{y zKVNQE#6TM?wA|zouFkh0B4A}b#zh#Ynlx!~u$q>=t|Bbz9i*$?BPpzYA+mmTaw8U6 zi5k|cbakj3I$WKiA{>u~=kY1XlhqKoASi=ImW z%T;~^gp7<%627;A$&C<1HIWHiEa&uU(D&nY;y``cO|$B(=(!>VTSBrB@^?Y!0;Tvc zvMHN-fd)B5O)Q{_ZBN@XxNbwcsaXXoFv2)#1}dU**4U0UZ-BdDy`j4@DQ#!1{5v|V z-nMWZ6$RwL;;~0#Na0jD!tEYJ`#ngeZb*}~pZl_zG9d|3n9(M&jK`VWj15_>(Zh$! z<3J5)0{6qDOZlgGde52aprLWUJm%WekA2AXDy`w! z9!d;lhlx$Kzvw-kHOKCG%PRKP3tx)r8WIyy5;J@?UzXvUNr9Y?fd;XM25v5zv)d z=hE1#&oJjtLCE+4q@7*C;83(8zn7ty~Md2Xs>?FS?5Zv2FMw zY8^s}--cV`?^wK-qLmB>%2Y{#FjfEB(2J`#vz;o8i@1N5l8i$6qaUFR;2IZYal{Y)%s8C#}IoA)tGdr7?cYHAeMv9UF* z3T_nP+TVQEmFGR_dKlyk4Chj%2K6!Ed-L3M(}3PRG%qOjPLy$wGBk>Sr<2!ankkWr2EX~`pfsXvL7BU>o2HCoZ|B3<61%%JAV-yY? ztgETnnwORuq-8~VS`jWppr7X1ZovNItLCdSr-q;Bop>_9cbh>=6L3P$$4Y6<%9%S* zjho8ckR>xwh|~Vli?V~}tCXwP?@)8lA#FPPnN7T4;k|RrgQf(CaC2?`HD7^1!yf1M)~a?T*Dj+%;Jt?bo0-0qdXl+0IsaZ*!-w}PPj2y@aduvP1|46m zFpqejyY?O;yYbovl>+*~88CxrzkXh!?b#!U%?&!D$>4ZShO8-v=g0ouXT|*$de7HU zirhA0!lUd7zoBu8cz0-fq!>seglzt_07Mfst-RWOy_R;~?0v#V0cGYGcU>zZORKjY zaV5BQ{;YY5HOUgD5P!=~jm{fne_**$0$3aq(uJTE-A|A=Qy$;SqH9209geIQ^$kC( z_Zc>9(}f%$-h+v##60u%&uLT@E0b+2In}_Pcdyk!2HtA$UV%mK9j06?o{!>PHCz^M zW_Tl;qC#n!6LNS^p{Vf<{CYE)2)PbSxEs<-$`^Y18m-#z`#$rm9-Th z;KmFC>15D5$loeJ>4nB~Hs!>lb3ueS7p9F=pB%!{BxCc0Kg1I7jaY>xn&bNi_5BG3 z9FVK(kMchwo~R`KaU6fHap&bZA|&rt64H(exKK_t^|f*d7?+8z@eDI{M> z3F>NbKj_IJU8+r}@PEME+}-~E?eYEy4guE-sSr+0*Prt=p~dnPy^)VkgcuX>Im4^a zAToN78+D!6cgL8Ew)r8d;h$BA-~t|}mLIiaK4auXH7Ilu58bj0dt!`n@~|a@u@Hq* zO%oT9%voDuS2-0Q>-(3vwKApPhrP4f4LbHlIp>ET@G*&%c|h3z>xk2}<) z#sn$i-}6@_4)B_CaSQW}kWSefTWLTzH(^1niDhcs%mpaWI$XQ=ca2H9Eq>N}0VG6BzW=W*dASr>FjbsxN}FGYiRzo(%o!Gvf`b)<=A7{S}@Osv6IO z4yB>7_g`=OM4rP#0UhJ;@VYE8`yjAt6sPN)OH-|QPcwl9!qsrgZg|uP(B>|YV5Arm zA777tE$mZ(DTboaT}JiYiKQDI z3&643FH&AkJPS~!o1>C$bC;fS+Rp+eG4 ztgRJndTv52FrXgMjW|N>2=jE*%3#!dYh*MX&;=L8r6Pe0NG{AJb@G#}HPPs2;eldo z#gE9tPvm1vUa}Y^ca~uN9e9i+ScQj48EKxr7IFxop>l7`Jy$BaFA~5oJ?qfkk`Pr9 z5$snqz~${#<7P7CuRB~YmS$vB?0&%#`SL$BbjJ?N?>A~-eHCub_eT>WY}I)Mi>7@^ zY&(eoCN}|Ve*g%4$PY3%swjHbL-pqV?Qev4!l;MH{*3Nk+a*zjtnF8oh2;H?tdFjC z66!6?X<{Yjb87*ESLzb+?KFtI>zrn&yCR#pN~@ht52(aRZ+=0+gsgAL87JR{6I41# zyR`_uFty8neaBCLxQ~(uURLI*KNP_*g5UHkj7130 zV5CrEZNbc^9ujW4!^f`ad?gAp)3vGADpGFvlIO%Nb2cd{pXb7sEuDL26*7VzjZtt` zo#@1c3(l*DKePQi0M#siT@;4h%2#mR1^ycT2i5PM?{psw>eJqyf8y0vOC6Iu6>LdD zvnL=w*89c;@~$V^sV6c#H8L%vH9Hj@0>nymh;l_eSxS(?Gf3um&xuZ(|2tH-wgER7m(Q=O#-ao@}`kV_e>QP6yxO;vU~~1SdmJ<(IfP zg?A&f7Np2%fJ6smT+fpC3_P#m3!@E9z;*kU9`nu_2gc4Ow9qiOmMl*4NV}xC-wrY<| zRwF6E_E$?)=?c>WX~$OhyKZsE8ei*mh3Ult7>@J8w*3WqK9_l zjKpuG(f})8MbwpUSWw9?RP~4cR?X06TKh6+4JP>U8}X%#3IFToZ1#-X=6I5~G@@^# zNwtL3c#5a0NwW*93Y%n1)MpPCnz|3EX2jQ4ubKpIc=^<=j)36UKpW_OlezF$3d%%k1S2~Cx z`0}|f9tYLi!0K(qtF$uWBHPbsP(`r}&4sU^ae|MrSM z4OfzDAS_;?8Y{x%aBquwvt?n`EotYJ_ANvgy5FFb_y`rE?S~H|2>%_=+Op|mcXl?h ztEF2iIbdYddsmQWDEY1tzE{@PMT=n*I(kf#B)3>!$Yc7wxu%Jp{IE-0ujRxZDzrXS z2ue|qv-iGUGUa;aXW_3zfF7|B$+BAy7Fv#L-mFqL;vsOgU2S@X;v^dE*}+@gbf8KryA!pg#QS2#x!QPGcp!9y%jq9 zRkffJR+u#zDs9>SQI3BZYmZ>G=`}_X&6MRzg2;j;4B1(YP9aeCyEDQJ8!t-tiZTaz zT8#9Math0B{J+e0O{28lcR>u~^aC#vmY6bM&QiJFQI${dN~g|iyEQt@i~VnkdJEL9 zecFh5eyomL5J1Y3X|jhe%QgaP>>+yDt?93=_b&4Ra_2D9S)aiV-Ez}$w?ak93qo?7 zp8kiR)yx=o)hAfFk?xj9sa4`apCB%1x*hiPLo7Lq^{xD#p1?ABmn5zqBvE&Z!;B53 z@}HS_y*s1Ib%K?Uh`phZ6{~%$MXtW~Zi2Dg%$JX^w@K%y9KVnOyfv;NJiAG`Qso%# zOJ2$KRD%)vP$L^rGA0mfknpyi-;#stF|B;o=(7LYJ-?zb%n`yjrf=nh;do5TFX=91 zw&Jy{m41ramf#jH2aN^Tl<)Nx+J_6TJObNO`7L08UNXrp#pVuTcEmWk-0JYEdts5M z`G{W(EPrywPr<=z|1RM`Ke9Eyg#wp%*X(Vv;QvW1CD;fanJLGtZHC^8#pl=nvPWF; z91{tQyvAgHQb^AYvQoU`47`VIR=j5Cfj5 zKx01KO0IWmDZ5dB=K_4cCyHc_3Xz)Q$0EGbB7KD9H^vLL28iT>@abmAVPwPUdnwMl zGD0gZND+Zr*x(3J@CiQEB}}Zq1*7o0$6NPp$fMDZ)L-Ab@Vt~z-_3b8`H@n+k0s;l zh&$kYKJTc|u|LfL8l{DJ1cdPqJS2y3v53gwsHg~L`9J=Zxw}eg>CmVf{Z$Uf$?o=b z1HX0h7V=74`zMn$uQFv457pi1iOoGa$M&V-TS^LI=|aHl4MQV_kf=QN*fX;tz;ys-2cz z8^qNeN`5E@Kbi2V2(Uy4S*;x7Q`w{vTul_6+y2<}wK6z*CZIae^rp97gJ}5iuL?8u z%hL?;hV_JrSG1ll!XBIb0QUJRHIO^)*2KC`;*+TsG2I zO?;^v{+^J%34^W|ji5W@I+QwlT6|fXae|I9563y&m5Yx;GLDu#T`sphDU0&9*=o@7 zG%^p#RFD02S1(bsDPinhBVIKnq={I_(L^hrf!P=&_d`CMZ`K zPmMOesaxTd%M;DgqF$KERLF-|<)s1UVJ%+)0iIRlApe}*duOk~P948T!h_yXVL&i>y{1Z;2KGM|>4_F;wxjKs)@L4_6MJLN_K&J4HtIgN4hTE^ zxk*uh!pWn0VbS+yL_ZI^OWflVDo<_P@he&zr1hG)KI3cOfl%(9Co#Ys8~9f%NG*vMRq z@h9Q_Nwq*8-T-o0h$G5Bk>yXMK?BcSmye>}Bx_{e#`PmVqR!^Tq%zQ})5Ts{uNZob z4?(9$#Bg@THOBgPAu~4RcelYtSuIWYXj65~mJ=B|Cx-a#SE)ew^1bgv?tA|hGOFG3 z{m(NH%Kkh8vF-k?KaV$6|33d|2|W6S3xTO9ZR#g>c$J85`L3fwitRii`&>5AIhh$= zei@$czExk_5;4tGIoyHCVD(N$>AknHm8&AKTea+2$-u`LNDoLUf4+}~t`)!@E1?ySezIF6O z{)eL2fD&?!z795Sbf9513Pc{1ichNfV(-gWB?*rRB{@!6_`59TdPbYau^4?%bolxe zC2ALpxuv9*S{PLyztkB;3sKv%G&8W){*t=;12564dh1=7RC{L)A!zL`4i%zIhE{HZ zO|Vz4NSYCE_jheVzKncj!s3|R%SkTJbm=dqo%s*=+`j0PR7xeT$4^i#78EOgH~n?{ zYO3k^!eXufrQNRz>*HIe4=>oiC7=R!fstXsdDnWv@zl41fq71xVm5DVP}*1Yw4}8S zg|(i{FTW*C<7&P;K8)&T#Ibxg1NGzcu#dN6CErM@&|?PEXfT$@=@f64T&)V2J)?~X z^ApYB8sC3^H^=^$AP;j^1Aa?-v^sE>kNHDR9x3lP5Bd4?bdqErfj(n_C2_|NGaTRp z*$Pzdq$K(|H7;g}mUhN(dr#UpAcDcC;8SZ09;;Gb0(aIQ<~=d*2kK=+@8I0it!RX< zSj#s*Vc^a%^BTZ~p7!*ij!NYvf8g=EDEa(I=1I)2jV4RRGo>c?ZsFE;L!a1NV7R}4 zrjS7Bo{Ca~Xl&5gcDgq1J-i?Du|?dJPev2*6a`(%akX;r7-_70#@tNq;lY<%+5;|m zS6E%PbVBSCm2CJJOV*puPMpKg}zPtq;hjOLHoiYz}wEE{f)S|LEdtZzicXMpi7?2yyb-OSq! zPQyacTN;S)r?JJZb4mD_{8Iei3c>KuH2Er(gR$)$N&-Yoz$P68FhJecdK`v#i4XJ8p>^hb^b-_v&>C>f;Yk-O@Zsp{Ku~kHL2D1IM3*_K{rh&ct6Dp@M^b zj;3gY^^-f6SZwO#siJ-HD}4nF!Y9QjN{b|W2d#`swftOlT=vP#wB>6x{VUs^y7)24 z_Vn~TDDNtO^$H(>0c;W`RQMjg4?Q>Z_LXVMj%yq6yc#~;30Yd7`I1+QI5iu^UJYCR zlw)T8u~M|e6&I=trROI~bG%G$e<5Rg4NTUg*dM!}dtQfDmelf@@l4}_&bSM2Ck@T^ z^viL7i=>2DWkw%c%W8A=+bQ} z$Bm7Z)txeXs8cO4h;4|+B$*93CY83J zZ_2MPdY&x6OkU?W;{N2!i8^9Jt{*@Gp9ElY{TI28fGQCQh+u-g`UikPKyUSL-dzf8 zTy^00v5j+nV)zm~Wu-mwN!xKMA0Hw5t}UZIB33OQ2LX%~Opf5@#Xs%r&dv`GBCD;k zMK{caSp`S2z`(@T50x}wZK4IN<&T)REBZT^{CmdX@V?@wjb~30^|Ctgl}0Qk-Z(C4 z&B3phH!~<>(jqh#L)6yt;{_>?%_-K21WkH*rsyP`nawYuWZtkblL*W0X&Ua4}mD z1#cB?w$_x3fS0@KECB(Ryao=~F51 zz5q;ShLYOXS67USwj;LRvEb!+@Br#gdU-5} z-sGNg{7*G(hu00z@hC}80_wN+K1Zss3-$I9c>*{#74&s+k(D>aD?V_NE`g>l3%dqF z5NJ2!UPSNhU`jT+fgo&GvpXVb9y&2S1t_@WZR1p3o$|L#>#&pLR0U}sjkzsOHb65^AbnfY#O35vBJ6j*ew*2%??5SXmizzm?oZACuT_)@p`6{3#G}bV1fWAE5ex8&5-xCP z;ZyKL?0%~qAAWID4!Rv*)!A;=Zw(7qKC6R_=*jMM5_Gl)sGO<^bJ4ShX89IIE3Y!t z6QUPs@njq2hfTqLatHma<#Dg^mhG^*Wg6x8ZzJj>9+iK2ZF!nTF>6M@X3=z(uh=VU z<*4vmHtV-27#oy3CST2OJ36s_L9;qPU?yy$FIvtDHT#4^>+Y-c)Zd!`9@5?36M2OX zIrs-LuvibrhaC7y4z>sG0Vg9zR@m|PM+LpX_|pj4)C9=$Kt<$xLp~RajG*tWnGl@F%eP= z46MbY2OW~EOJN#~TcnBPf;&PU^ECHk`N52W?@Oz@n!-to%#~zs16o>M@y&gAEQGWH)y~nS*t`b#&7cFc62QoC6MEWPHeOt?dPK`&h_K9m3GjX>WeJ|Dfs( zb46dnMGV=AtD!5z9SMe85V3xfAF=W&Uy!;L!mw)<(v~sl(@(bD^0pkfmDDb|Jl5^V z6SAzj@aX+a9V!Usj0H_u-YxmtWDo^>B{t`|o`=q94S?hYBQSXR-{GXW9fgzQdLhou zavVen7ZNX+APsELI2s7%F9qCFqFgW5nP>P@2Oz$K37)})Z+#Ox&VBFvJ%MbEaQ`9T zW;B7WU#l@d{8D_7$o;b}r;WOAP`ycPYh=(-Y7rg;dP9{)3C-~N1*(1@Uspmjj%<|_ zfOJmuv!%2o1%^bDoQx<(Vh>bMf8*IXNMguw)a0i@{*22%RGxFBxh*_R&>AIFW{RG! z1!d3SA>6Q_Czz4B2le+E^pzZn>~fP(r;u@C2pK0<c9OPFw;MN4A`sw=YQMr+R^{_cKks8PiDhv4B-S;ECKfY z5IX{J`g6r%-9!u^=-k}!qJRLo{*wVSP!aQZROk?(9A@GSi1OzG%CE77gy8iJ0KxxC z!pKmCgdh@{+BARp{nN#NhpIN<_xJy~i)n#JF1>UfBalQz(8O(fL9TZFs* zKuzY<)5NX4=2JV=a^m~1+HSf(FirmhQ+d?Lx)Nt+2ZQ8?qmm_>V%NEd@c){NCS7%h zZc@<#5@KopuT*4azlT69JvcheJiYiQcdf>CzWZM>x$MmHWP~;>#ZzET{nh)F`P2^y z_5RXHVDBV(JgA$Du`pwahhYzONX^gXx-(J)V*P#Pq8ch>pz4=g{(J4mUc6#blm$Lh z51(>6%sZd93P0ztK}b35nmR`N(J+Jh6TuzmRMDG>zrILJcCuf?(-p14#}xyKI4TI| zSid|4pk;U?tFWZ^&j+MN88rv4Urrr6XQ`r6YLS{v^8s9SQr~j?6n2%4bS7-5>Rk>r zJ2CLgYa}+VW5@q&C?I_NSM2Z)L%ohEB|?biyZ?zP*J%4MECLk&3v-4>KG#^x2i8>s z%&spa<^aI`Ga9?bB0%(?sD{Mc_&wM)7J+d1hu=Tp@Oqs0$F2UaY4b13zgh> z|DP_xjnKSmmx=0q*QPB#|^(0C(cSZSdO3(0St)Mt>qxS+&^)V-O6g)J`jF0&YB3@;AK{=tgM*Ila;U7R0M-G$v#HLQ);*>;1UYGzNu5YgIF%r>0 zpMc9JN*)(H^6D(oYwyFZ*GA++x`@y=J&O6#OIoLK(2<$k%T2`h55FetoTCW{ok|&6 ztlm|UeLLOW*n0EW>NoA`RHHv4S21_;D@$1RBsjNs*~st27-l0j2#@y8E&F}$cx1j= z5JNz?qwP&3G~L!$wz-cGdS-r~+Z|q%XN}k%6x}(p+B!OTeCCkEYCOZt@W@^(C~?E3QYV&nOksb^6CcaPt5@zuo#h--?wV+z@Y zCE|x&qFkZh64yD*_*dET^Tpl2d!rvUaM}4TgkZFimR<;p% zSZbHxr#tl018b>YNWsHX076JarEngYw0B~mJ28KpDEXDio|dd!<`KjD-e|usLHZdF zJ||RQ;I7V~eR@ugLys1+y!J_yo-9}|O~Yj5?hKRs<$!>Zd%JDo;%*B%hldyyc892$ z$J0yWx1nLatCpTPSgfWeR@wb)cV?CY7I2IWY;cUdj}&f;?5uCSs?*CYmn^T$ff`_;Y(eyV$B{(S*!e< zi5?m3A2#91IKUR~bxFCE^5qrThlj&c31e10fjkQ|4zz1WEQa}-iLaR!w4b$_skn6B z_MV!?=X`m;Y4H5#%*Z6kxbY?VvZK&ezbBbe{b0;fl zqv#5Zk_PvOLCN3)ms}{v$Yko|l)9ZAsECU$6gHL{v+pO0Y%o^#i^> zsiU>G5Cs1N1{zn=@7V7p2fIVVbcUi?>P`t%;mn^ulrw$4nBfuMZ_TSzKXAzzy*mO; zc5~lz3p;tYz2Ho@R%u)hnopC1c-VR06(iW8_?kp9&l(`8^(iox{&V9NV2ovs-u*yu zT>n~GZ7&Wp$*;yqk}6iWhe0r4D!lM(yI4yb)tRlFN`a!WxZ{34#P=re!VfY>OvsZB z|Ln;Loc#D_GhpQTLzL9Orm4V15MGaQy)*E0{r`IZ?}n*Oz(I+?zNo)ptMWJ72k-wE zVURSWC7UG(w}oq;Dab)T;34z{6%AqP;OrLKDTzci=Sxz%lH2I_8SZ>pmA}1IkFSV4 z>%9;Mpo!d+7?9%T6DS1s8NEKM2Px>y(@mxSR0WFvo?QeqRHf%X4v9YK#r3j4kx+!t zS+sy2%D~6v0|TNdwnWo4$*cm3%LeM-=6mT@%)TyIpL4zR#Wz#T)q!qPZTEMdHg-hi zWhgD>71y#&ZB1mbCkmoS$V2iZPLi=K2H$JFyaHu*X~!?C>p{;HOk=v~_3C`VTl5DL z+|IHiy;vFK9`iOmcBP`&uFs7M6r=7IIYF??`(3pwp4_9+YRf@?p5E&IT=LWf8_Pm% zgWX8mZD^@ZQl~*G@$#im#v0#Yh2&W>_=9`Y=oa|qmC zGUGuX>VQ(l=oFDV4wdCM|9aYNi$gM0SXZpruE7#x|81Y43{2^^9s0cek!rl1Et$!! z_*U94R<(Uk`CpUp4BD0FZ1I~Y@t_xw%y#Y*h7~X77)I+?N4Ea#yfcJoN#k>krqT=p zZFNqhMnO#+kE-k^gu3jAlx&y6b=d3DJE|qP#Mao+?S3|Wz)TcIk&uC0{n#;?vab-o zd}zemGBUWlp6&Hkcj2qvVo_c-3ln!W?ow-_^E>a*ht=Yi?F#;;5WdZzQ0wR_apQXw z9ha8LJImuE1GqG9#L1=>9ws9cA42Cyi)davEDl^8=eRBXQvqkJfzdKD$3E6eV-$twnMRdRNL#rWEV}jj+^XW*=3=vQnm?< zz)PavejDXo(R@;Yx51_#*T%V%Oz9>LyC4=|Z4-XY+C{VagWB`H=}foKUR4`k`GT&y zF3VBY{@(ESSn%R9-mdmPkr%I2x6m5CxGSm4v6U1_n1~rO#`IH z{kKGHKg&`saNZQe~(9tmTh}HJi1WucB zRIx3T`oHH~Y?6giXDP@7%l6gF~JK8qF)&k>vN;+j{qsPk&o~fGj;S|o- zvU07vNgb~ma<1y z>(WzBvfBF|M|H!ftbI$Kx}sFASV1!0uj$1&_77%Nh$|fn*oxOyg7JdqyGqF##D~9` z9lnaBlJMUN7KqOdZlLunFjcn3qaKtJ*vY*IoJ=Bn&I5f;{lW0c-lqJ}WNN~3IDW^? z=(M+C69_!lefHJI`cF)3f!*#--V)-Ls0iJA! zCEZl+V^vldDBqA?aC+{vy;}} z_3a7ViB=G3T)0*I9pQ>Dr3Yv05&_ov3wk?+CJWG9P$<~7v))+nMOy`XDPC88Wq!kOe1mxOazBQ9t3}Z+%D(En#Q*-o5OI*4U@t-+xdgH3hG`?pVGl~58lf3=@B$N zJv8gQ&DSbs8RY%_zF&usTOiLz=X$O%sSRCRAX;AE{xqWB;*nu5%As*ivA%&s;_vrX&53f3(y zrMK`}w)OM$85rF@kqfTLo~C`fvxBIkr}T?ET@f{@Jm{Xr$#mG_o2PZuk1_?mI7Cy8 zogGKIb03L9K_*e|(`D94OGk8oJG^m|UE$wASM~yTH&RtakOQGz;LTgc^ALz&h371n zknA_%A8n@~Ysq43Pi=n3r_Lzg?0FGZ(}Z?*I|>3uDeM(LURqF@-=qXa_h@Wpuo)i; z!l3PpA@<48$`M_f-%H0w5}KL2VQTwbqeRb=@O=W=pdI4Yh~qKJC&?Yi|DrnWLZ_;B`C_TBi;RHC5X0LPtujie@?PD?@TNTh$AefMk#6D@&c+wAJjmy?GiZ(z7H%8poO%{Cna z$7;T|eP97h{M#mz$tgX;`A%6cb@nZcD;{EV=z*ra*3dOHeye+n4jGhfJiAkG7+*j^MgHD*T8 z{Hh@Qmcg=5UrJ-=uIv&<^8(_VHEkZS8|;F`L)S|Kre$pmWqY(Yh<OXMA0L^Of7*I{oL%>CeUm2xpi2K}V_Y?Ob;5i2U5511An zbiJ%eN(&%|FNT2>e|<6x2FuG>xr8x5OUR2DGtqfFM&lq6gXd**a^PKzjrP4k9(HJL z>)A5%&fV-;?hFrD#9|*+~|p)#UbjNDqojo7GxERqSijP4;+Fjc_r?|*S?$J&S0=@JdtsX=)y3T3|mI&pa6SaoaXZfhPzOi<;&fF$&sez~%{(xq4V zY%aj8Gj!ZSOiV~fXHmd1^>y`Q5<3tFU(YA>v!=oD5N^GV`Em?vamZ9p6Em4_mej+V zVtjqi;7TKplXrR^NtcW5lc&j~b`f*`iVo zTL_e+4fa}&(D|Dx?Uz*xJ}E|m!_tr6^;!^_&9G@r?kHwjX+iG#js%AvatKdtJ+5xI zVz>rTeXD$-XUjHDu>Mts+2w^us?u!PTpVBd=Z&pSW|C>V?%wqc5V%Y8&-}#x3y;Hw%RNR4c z@@`ee8e1m_q|7=OAktkH|FhN~Y{no_{qFZl>-Vol6H6@Ld0aiW!Pb`-v}$ka*6d@y zNV;~<@9!$KUa@_Y@ii&n;6r?I>P})b4W(7@5R43y%m8cKijr+^OcT$~Ok}Dc4g#MO z`Z>gc6`htjge;65vThY)mKaR2zPuElQlpK;=$<5l+uF%&6G0_cE@h4|g9h0$V(*>y zjX>jr)TYNP3{|%876oqyz`8H_5hc&>K8v6+k{~6PAYlU*rT&OX9Z81HgqzKKu@|%@ zT%;c+hXssBA+PUa#8TvSmNUk02MUcz!owOG5p+-D^lr@#}-eYWB9N8TtL( zz%noqnkAfKkuQ~3OfcV4;KGK&!ZKGa<4Rtg=yp+X;q#wHp6Oz=Ct!VpqlO@zJc}eY zwjkrzQLipIns&Lgb(ld}!EQc}VnS&BhiuqMbLjQOAvtS)N|j00IHDF_k>erK0q`kT z^$`}4f=py@3ZMTjF{Y- zB9&ePX>TZ>FmU$MCp*5yt+E;p!Uwbbb`!Zm+(3*A+YY#Y5?b&nhVniXH>+bL!noxV zIUAj8*b%60r+8kSQvQFi_SR8xE#JCmf;$8c8Z@{|u&~jD0Kpxa5ZoOaceg+S1h){} z9U2cFJUBFs2X8$1T_k(&^E>Ch`^LLtynoWHs+x0F&HCo7m9DR=AQ~)q6^Y2J$U|fV z6&iGiz}GwI}Z%NgR|y-@&SNwB^Toq4g+T<4}n zzJc&iA()8-=PJE=T1%(RdnL`@@IcMv*52@5{hD)U&+C&tBv)82^P()_L^^B}_o^&` z`gFA7{$XrDAAQ#OpY0n-^gn+44 z9wLAx{NmZW$Qj=LL(e<__|YPNDrulQku#RX8t8)jK4Z);^=laB!$I`tt53o&IFdXV z2RTf8MxJKaybJ=fCifg!05>4nrps{tMf^@DY<20A@ec{l2pXf&liQtUF#Bb_#}LZV z9rDn};AEb#)$y$yaOoL6;*lmJrui?$!TqL~lLC@wn3bh1{7@$Vuct!a^fL3WKUw^I zExO~}XMA#a@eDd>!aXK=>UkwFl1tL8M_iC>PJ3sbvG^0&>~roSMjI&N)>M}kG4 zxjhxe<>)?&^r%XORR4VOyt?WqJJ36qn*BtY`)pfg!yDvR{i}X^OGZlMuc-PQuRE6v zMR}0uD)*4czt164J3JPthn)5qp{Bu zf3A6z z3Mfwdi@9`t5RrSjo78*dJYyXbh7u?Yjo1Vo;)7xDQvJ@C-{Y%~F!YT~g4!nLk}5M+ zt!{HsL4nSE;mfBBZhe-5Ked0zN>iClkyG?Eh`Z*jwTg;9)p6sIhwbBlae1!r#JN`} zMc7Q<%r$%mx0?ERec?d0TwfDs-nP1rWeq* zik`Hv_;ohh_NTGO)_gJ%%+`D*!x|V7u#@)g@xS|9NxwJN9!C1_Cfh>;iNDMLE&M+U z&gH>DxG>)Q{=4H2&Cz)Iv?^c3*r#2lnUKfOhRvfE?pS`d6>c*5N^YVYlLLFVEHg zy`J$FU+QWe9G!F$E0qGsbs~TRE_PR@hSpP@-hRZfI}19}mXBCd{z?^gA&&TGK>J}c zqH%IU1#+kt-o0Q2j_@^QMl-+z#6Yzn`k~LRDC6~uufmOqXD8a;$_N`qjue9c6Yozw zYK1S`M-QsWVMm2tTa&tD*myPt#SYP6j>3cI0M}k`!0T1JV!}QF8<2s>a0Gj=6;~p_ zC6&PL?vYa1FSSxexdrOgB79W{xc%P=ZuQjEdovM_6UFK?08SP zwOF7{i;qF}+DvJDLhiO!)m{YJA0D_l&S^O=5cNgxOAK(UQI5^T`eNOH-D@l{o#mze zw{asP=e7@8pl!i3Rl~}@{M9uV5%SnnRmuXEP6zWQg7ksUubZ|*IwtA*+7ut=eIXex zV8_e%CoUe0t<{p_2cw*y(({-8A%+h2ax`A`W)s~mOsGmET z3}R~eWyWOYYnt|yVO*k5T1OyTK(c$ekIG}H8!@y=_Wyw6zw!M5dRzYsCtH(66%}!W z*XzX?f5(Asfcv&b6Ema-^Y59moyA3KU8Zfx690F59V@jL-9*#oS2DXFi5uq@s znJEXQNEraq+yldZz_RbJg(&D_3$hANI@!6C`5Pb$jNlS#1+X=<$_3|+D;V`pRJ0R8 zws;vK1IR$>``$lL0$Q@}ZgKlKvMW;&yWZ3OjUrnD$dv*1tNFFg9FXzhzt()a7QO^8 z3%8>_pb7?@=iR-a{dYwC=67@g&UyIbA-w+3Jq7?~)1Q#}Q`xCTj#M2_HUM3rJ-0OReY*!Q5<|a@eLP!= z**pCS@x*xcfcEo!erR3e>qb%?PtMD!{t@839e(h)_j|hZc;8!A)yeQXKi)2$O2W3| z{}Et?n17uAzH*~;7v{b&?_QH)1Un0t@su?Y(RKv#Ha!ZzaFUE>^$xTDZ|oPqM{r}( z3>7mivtk=m25)RAx;?2 zYWS-6LZ4PtS6Z^U>Jl9gDIr2vk>S2n&_W@bD6dPwsCgIKCc}RH;0A!nnA9!BnyCL~ z-Pbr>GYAoLgYd7)XG3=WGoV?%WZ^Q5mKErGCoOSjMe#jVf$CUOC75fs-lU&1TCCiP zu+zo!JQgCMOazdUjvZTA7efSg64@Fb8JVwGz0zYO%<4T9a3YbCanWRPCHVpJg#fGb z_G}T(;dX@a90Ay4OV_K?!uVkwxg1{6&=ifye_PUJH^#~Rr6Q)!Lg-NY{DENm5Hh2@ zP!+G98sDBJK#_|>33YT|s;|szoqrot{NpMk!Jn|qQPQ{pWJflyb79EeDY~uOx&oXk zpP?Djx>^*Zrz0NMgUSE|L0|QA-oI@CDp)h8RSW7SJZe^T+G9#JsYJ;>1xd9^{+F3i zxF^d>Z^L6CNdIRl{>|s8d?x=p!2bzzWY9x4{*$YJH-Itx-QZ98@5a9y{Qn`y$vOBC zIGSaJz_RJ2fecMTX?y~_ZMYyqUcO%;O9n70hGg$@)b~bo4(S0Bzxk*fQu8I)W=`f@>e&9v>pV` z8x{Ut8cOK!+4`$XRw!GD(UDGsA%Cy4x?vZm(wkdUhTr!dA8ys~A%3rrbvu9QSk%eM zw&$3Fmbtg}l>|X4?#Gh{+f(qbzu%os9#&z<4?Om*d_o~~hoY5ww*5!uyxkqUB*bo| z=(eJ<>`|pAQ@>@F0C3zEtkk31p9P`Yv*-Kh{xYX;!i4}YNA?J!zhARt_YcMOsLzhQ zx?kaH`JP%Pxe=7a%GgS;8);I;A1}DyPrL+qYjIvBw@=+`6dMXw*zMh3)hNB!X#aKd zv3ASv(!P4nA}J$S@FCD76~LqB3gC~J^QD5EX(h|#;#{7s-j|Qs(H-_GKQNmv3xr&3 znJJu^ZB!t(y)%lFN5(Xj9*k;l6A-WU12IvHsox6zQRfb}$WM^hfoo2W8egsIW|!Vh z-y|QGsGfUmA3E&<3c3D-Y49p4;A-{CchU)_A~kzIeIVpRISvDXTJ0q(uf0TH{IH(B zdm@Yj&s|K|Q1quQ>OUe}nBHjn_UalfDG0baNNM}`pKnIzDU#4aY;jPKD8##6e7j*(Gz$724dZzPLJ0W8%Sc` zesT|<8?UT=K6O>EPu&tEPd1t3ho|Zd4~O>3^PVkK5)kMG=r_s zL(k(%S-fEom+E0(ZMEGdqk_Om@zV z&70!mUF@Ld$&Kb(0$U5}!w^0u)2`9++}qvjXj~hqYF=bpPwy(tFSiQpJlHt4cKYJB zpeA<^Gyg8JWlc~+_jyTGj+zu_P1n@W;bW+-1v}~%jTk4oXZX0WRKJM*{LL2^3 zdtQ!#YA+anL#oJ_swW?fTCa%d%<2x6i{BXQxl!NT&=Ru%-?jMpNO?hwaa^|>tFWqG z1b+|0&|ifCC?Oci2+YBPA?u_H%IGpgOs~TeGBN*pA{`(2sU`dCfJWq}A?JwsV#6}S z>;`jl_jB9IwIxs6ildX)5zA(7Zdte2ee?9Z$F=Hn>KER22W8WP^(C3{D!d>5;R5iG z3vpV-)M}2%jqCLoz*fG55R-I*2!o#R$*SsHREAeEu9Xi~zD!d~ZnVjOX{ZgmuAk2| zV2sQNNPWB$`Z?IJ^Y*@x%Eq;B9EM7xB%i35u|HbgI)_$Yz3-_cbWtm-%ewXDXW1$T z++jj8D(W3)WG5OKT~Vo*_BZX1j#{SLS;Iy0`t@T(_HklUi`DUS=?z(_-xu+I>&DM7 z(CgIHA}eECFPl_#Rg=UL!>v~p-&!n4_tK>+OT3;`wkEnJvS+f)>5-`<>3N3~6R$pf z&%)l88r{OueP#33V71yca3;-a@`R<@)0QD07wj- zyKnj3+aMy(WbL9Lsf&|oLFM`-4ZW>DI$bIO<@lE;@U=AjlZBd!0)fCXo0c8sn)s94 z>DSg9>4dEsi^x=ObuAp9?8$JGN*L28y5dHWTJszfW9`-mxkd~TU%5l9iklJ_gNU3> zjL*leXr{?OGagy7RwWI%Dn-64VU77=SyWx*mE3fv)|zNLe$8F9(XTW*dD z4Y--tzIeikAh{EV$Np4dW7-R)nd+z3?p8bZoY$_f>J*MwygkDZFXPyq$b^?lXptM#!U# zc}Ip5D?bw!Y00m+@!yDC9I;xjsVTh)>elMc<&awCdCHN72N6tinlzwIemmMPj;Pix zK4?riyToR;tS3KyVOFNqb8$=1&0HnM@5pQDQxYcMo6S7GLpP=4?wwW?y0mlF)!#c- zxMz=TeTLhB*eY+2gE3-O>KlUw((m0o{*_Y1ySu0@923-aBX*I&s=EEsD~oN^ebafV zy{J##O=@mH6r`my#eLY8lx9EPP!wj(6F7-$T)nDloH?vJElM?$PP?ErLie9 z>YOvj$8qGu+d!JiXIi>4brQC2op11h@LmB2ym1m2m>2tsauAJPp{{GO*z_uxf-ZkG0B7nF~vGyZWd0GRSE?L6E&T2+MWDl0GK+LT$m zKYEJpi`A2*X6(6_a};;=tzGWV&8U$ZnkLD++haWVCKC3UD9mP43%gMP#yKO4BC_?C zBV=|rJ>GAzvVSqX|0NIST~tbE>Fti?x#qd`kwe1?(>Ew3$J2ZM;H6i-kU9~shv>7~ zRQ2X>V7p%E9=uy|gK-%z4!=mNy5ff=lQu>l8HSgxQf9ePavV+TK!|gP~%*8$1Rh_6(B+CPgCmSLn2Jq-xWDq z$0PJHbYlLKI58jc<==Vp@$bBd`H(jmz|8+7N*o}6b}sCFtbP-)mQV@gTJlI;^BK2F zV&Os~;|+6hDlXlk4o985p(=s|K!ZJClKPCUw->ZiYS&BXSypXz5%Q;nwyQvu1%C+^=A;? z;q*;kc`Qw2S3NFBpOFI`w2RqDqUodyuFDQg#RKVuKl`SU)FK;LM<~@_+32S){Pg4P z45n9p-`o>(9n?A;sa#BoWXI5+o0vNH>EM9N)h~y$Q{2+3v*!S?8Bq?!v#x*jc?dMN z`2#ti>I6fe7+%{hMvV@2QqNt}e( zL#o%mDUYPvne(RafI`Y61V}D=YbBwuD};k%gkwk{GLgEr1?H3BU*Ns+c)ZQED&4Hk zYmigl?5-!j;Og&wjT`dAc-rFn!t52iK3*7xtJCZnmUIY(VqjbrKTejzgkm5~lQ<-k zeAtp=%1CjCXDV7fw@p(-LLfAEFWZOj`|b#FPB& zQ-mtdlz+{zIKOoeHu~CpvPNFOkW%QkJPmbV_{oj*-~a&U571VHH6j7%Pbd7d@OR1wto^QM zcIaT>KnK0WcnA=Le~bT!J++5dPrQm*7jcLHUhu+(W&_=C(rZ)~goLOcw9Zj+7-K@q zk8lbjjyN9l?yvCF!;l~OhvNYZA|!z9+bIu6c=XT1|NQ*FtDF%7n@1KD{jfAcNqh7N z8v{BJvbt^QXoL?u#atD4DuA3w9%aXOS~GGsVLlog1N!kOkmQm7e|$azqXR6c|55nQ z^Z(aM{%x{D|5Vb$u74eHbOP}w>(7dNaHtJ#auu>Y>eiR(nu!2;{nctQ0Cy1WvP7Ie z{z-u4cQ~R0^CH9yBox5$z$@B66XY-ddxC&qYDD_C7~x@FR;#gt1lx5;b2}=M84rA-)=2HO}&8=mX8FHR|I~AdqB(0>CN(*l~3k?XoBo< ze(gqc6!LmCE*e6!Vzfjm+Ba~(JA__LA#(NHEeaPek!taN^ZUM<>F=f69q7uvZ&On4 zrcnnKNDjNqZ?9a2$*jb!DPHVcn)&@2otaTcZgA{S3erocGBLdR>eXY-@WXnK=3cmq z1ydH1B>TzSajd~L9DH)l!l`}qRcBX4Y1zo&sO~BhJ6!PjV!~2|8MzMKH)|A@Z)ua^ z$800+&$A>U?ZP7W;lT^fC4Y30F67oIvhU*(s1I*ycHdn{myQ2*t?$6Um*ZDm`_o`* zc4C50K@D=@+U*!EwumWRuELaxZ$7jjFBFbx6Ko<=2TA*urertx*=r@6LY?|~uU~VL zZ9g=Yq=HD<^=R-UlBKrINxJw1l}g_=1zeV0M5uI{h+--cve{OvODwAu;a-}*wM~(h zPt)$c%Vt1HAr~^~?bc;|!uE#7?{=L+kK9PfGE;1|RVw~3QKHP;i;B4r>(Dh)%rA@y zPcYnAoi&H8ddyTP{dRw_6mJ;NLm^ITz3K0}os@mjGaamGzxR}!xdB^h0akbwo}fa> z^F+GPudPRX&dFf*oFd}58rJG;TBwg@9b0rc{^49IFX0=3VlDLK9$o7y5QH6H=8a{P z;xWmM73+n>mkdtKpMt&1=ZxC?OUC!K-Hr-39j=Um&#h-6=NY9xo6ABWPHV;})(E~n zW8Ys`OMCZ}T(~vjW;NB>*-e~f(;?#qdf5C=d;_@hdAxc)xz+2U zb&zE1*m^yi03{M`=gYYzTLdh{*U-fo+XPzpPmv;3f5+tCAzEta1Dr2+7~^bD=}z356IZtPq{zd{p4C%5$~9+60tPXdF_>5fiuNWx2h3LkAIrZwht z9+;vet}#`ha)4SJx_hkAf0&vM9V6;}0L+;f3cYVFh<;&*2kN>KnKGY%!DdblhVU*Z*uI1^WcPk_6?IGUTx7!*O?zQS{*&(&L-%oIvYja(wYi5Z{CQf&)?>$IP^ zzV&J-EVkr=wR|0o{gw7{!CAslBGt(T`JkFsx8T?Xu`(|#uB&gqFLR^*sK zG<95#cgXCZmc&&DNfH41VZ&LuV{Ghc-xoRarmz$2o^3ypm!+jncf z`%>iRFUeYX=a|V|mJ~8hxhke2k4r@MO0YTuD zfq$xC^<)%N@a4k*25n+Afae2Hb@%{^4ma~3QqKe7=npdp?FAX|$G0dsi3cLk_%jd^ z#UFYP-#>oo%M@9!$V8Vf0;qFFbhB%9w#I60})6%=wBMrINrZ}q)KT-!1_l7 zfJp?j{1)}VOL{Qpp9l0z67ouM@cL7GsJM-*hfne&v4Y1lW4Rf@8*A%W2?$B@jfD1?d~(9Rz&m>t;fW|ur67%ikZFYR zq5&CbCGgscJ3KXFY2?^C{U4<~5~{=@f>;rLAi3j?0k{}5dMu0x{uO)vqF_ix=3hySdL z|HD4}TkfH5^^Y<@?%%rKbdUe21C;$o9nc9|jROV*9Do4S&+sj6#wjOP4`9*(5KYFj ze>rr^_U0Mv0d@M4kV`gqyRGN{HXU^`Y`B;0c<4N!Ln;;VEAn$_z)SmDt>@<5%EGT9{rO^Aki%=qRipQc-q`i`-1-YY zC68VXy@52;&$Opt|MGPSERN(OQNUD$9PUzk30pA;iG)rF0iLsEfzIO&O7*cGojE-n z|C#NS`)@S7;ah-C5W3WY-D~g>t0e*5ykY;wQn>ad;sI>W*=Ucx+k9zF{Xw)`T*FqLvY zAjB*W4LwwpbLtDNroYem-kimNNSA#1J)dE<)meoAp1?!yiY;B`Dg5E+U0`o{FJs)#Lh4szmKcgT64&=g2h&Tzewjl6ajmI#BXVZBbgzcM zb(9fQ7nhuThU?Bp`TbW&+Xl3-rstZ0^{Cw2>u%bngQ0mySc8b!^mD4LuEpvS%l_$i z8HT1(sY{-!W6buSgV-mQ*4H*>um}hFDQ*1Cl%q&fVCaaI5C$VTm@OA&-n+RN3qh!YXrR(aX6Lu^+&Uuq7 za`?SqzpvT02Z(E@9&4GQDzIMM{!!6>h0g|v3Y=7qw})79=)3o^P6Fg@xJbFL;LLW1=MJb&OKh`KLOg*az)xSj z)o&TWAucHP>yiQPq@b;F95~8p&n^Pw(IIeFRjnzig!I7|{1M&I8Kb68m8J1hLY9Ha zYUXeZBn(IkJeE>=X&idD!tVo|xGJU(?n$D|C5(_`NUz4??2i4x4AIFD!G`1X^Eur`a7Xn4EHj zB9U$ZGX;TK3=d`+;lh9nHlcH(L$O+xdhqSH?x($TyWxDDta{GifkzmS8n~zQ>|>C} zG8{M&>{&_s;?3qiXH@(nACZqjVDOFYjQL|S>3yIOz`q9k<-_}*wN>ZK|!0d zYJZ0B!($OLL#ox)^u^F?nebJ0BC_0VFhNYHCW9|dg$Uq)y>P)(p`BPp={!!5Byz>i zM}V6egk-f|-^v&FIEZGb=^!~`GdDrqv_iFInLwFjd+BLH$? z7@Wq@3oB=X4n7IfVg20GY{QD$%UCAq0<~61&R~)li2(N}pfoCwJ1RKk^X6>E&M9yg zB}|M792Whw*1NOz1Afv9qn&3FQYR zWfZaNQ6?8{PgNGz)HZO5WrvqC94DNip`#>ko5Q1#rl9yto~_&@1tfrB<^oE-3Dvx{ zz&VukV1jdW?W(x{c)PtK=4Jt-{PA`9VJaj#7oImyA0w+tCTWJ&#N>bMY73ouMvlx2 zDYy8NGj%yAZXw_nig3sT@q}PPFkFvt!sQ+JeAFFjmhfJ+FCsL)}j z7Nn9R0!x{0TTvXTJDNnJ(trE9rEm3XKDoPv6eJbkjti2{51Ucrc0HoaLVhN9r3jW_tftp)af1=uGI z?Q;4!t&B|3I;TBX=H}ap4GonufDEKQ|H+RUy}ASGGe_q9Vfq}_dSak*t#x<2Votr} zdv=Lc+}8jFZ~XeJ_<{uC+7TQue@~%>AapQm;>*%(mE%8uQ$ODh1Zr^rv5kMi;9e%fDLob_uWh=ZtlDtH5eLG46S%x<1 zn3N~XC1Is%=N=S>YIuUzcGO4&Y-a^79{=`nhMi#Bu-{X|`)E@?zckb3tC_lFadB2~ zpW}MPa`&kfJT+6}x+}t48cnr}DdPo>lUDcchJ1NW5Bf&gE82)&5 zNy1!aQqK_dwHgufM!^80zei!e?BHKQFp@PF4uA&{P9?7M_|P%ycJdI)aW&tz)LJ`N zKj-Uo^FyaSteEmh_9;hFV%Ste+znk8h0&d*=lTb_i?l>;dT+jEzPgDPTa244?4;X$ z`9Jf@w|@GA$J71L%l3&4E0}umx>~_9r6UxJV?Lrva%ntF`wIt%lTqAmxzendXQ=>X z$0^ITDf!7^OWgJHlJ1ouT^RUpy~bHvZo8S}}ga93D9r2OT8s859q9en{x{ z&6tn`B?HJ~w~uAyR92p@P&(k;bSh#9X51n<;$r0^#{K4}`JnhyuiatuiE~ zNdNL$E!uDLAz6H-7T24g#|7>VgJ02zLA0UhAiL{O_A<``T%eofOSCh^qISzsN0LI_ zOt`3Pv)1Ur;ccf}Vnt3-WEEs5az;1Z-Wq7_+vW7M+5M&=-u0X$qm0RkdR#5ciZv$I z^}rwv$l*)zLXV~O)N5uj8e4)lu8m0=k{$-yXM5E`ldEF1nTY-^mteqmf-VJElK z|DFiPk;+#eQ6B2%7GtnMr*Djy#H#qVmE8X&%;F`NMevN=*W_=x6wvrcgc@H2yE{0! zEjl#2xzHihz3uXLuG`}|4k7pgcBZ})n+o0Y!2AT~C=;kt>3;DExU|E4($)qou`}B& z5!be~%Ni+ZTEK-k*%RqpiN9=w?VB z;&^i!6E|_l+6%kLFBVA=`)2#}C=+~TX~hd)F*5dPMskp~f0-m&1SH@I$_)C`{y>z7 zAf(yp$Rr|V^0a&G6X6>O-B%h*@sM)rXOoEtT_O^8hFh^)@umA*Z4dixwuTLQ&`S{{ zEdS+@TEqjF6ua0%^U`#}&Uq*IehIHw$%_{2rZjM-Ldm4zG5EH%{)T-1ZB+BIT|Y@3 zK8y%vu+YnKSXk_4w5zGQ_?D-BDm0c6{aBvH@_BP#MfYb_>jgHUCM`@*GlM{UEU&4N zO(OD(*S>iZu-f>M4$QN~6hmJI)~3+@oE48qzjEwk0u*1yPF67#aK_WysD{-ntCq5k z5)3#7+-@E|Xdt{o7(i=DhYPh@Jg`J+D5kN5lv{mM=qBCX(=XQ|2y5S>tNpZI6~{A@ zB<`EN-x~_@7wj5w`LSW8x5+SrC&af{7ryQv9B@bhK56XMgo)W;gIZN>t?~rj%)G<% zA5}a$oDc2n6$;8*5!LekSlgKK4yvA;KyOs|?K;{UO8Gfp*=h$cWjIL_@|Aw{My7Y} zxDU5>X)L7hUD|B3xmhtsiERpyNY=-=h9g1LQS?|h(Sh!x6-rBsFO;nn+O71Cl8m;{g`np2M+Y5*H=0tWecfNk;8dQcY?6D! zDbUbCYVk2QXZSfYAp%XS*T7;`fxUhhkdzr@q1u^)HKbM<}o1whooQ? zK6_k{t>g)N?W$qj_hmDC3KwKBkf7|&@pMA+tcEdq1dopwI1zR!j|I%_=^{;)YW+!1AaJKMmck$kz~Q6}HKB&%U$&WPo` z)v<6vg$UU;_IKx-y^F~cYG-+vG=l}M_7|`CQ-~ugwze9A?wwQlocCiXH$1rg{FAaDoO?4eD#$OEl%x{Wn|W~074Wa@Q0#iwrN_nj*?v%9eEWO zoD%U+Qtww8D%tRMtdt16*9{YXg$ar!_^)B5Zbcrp9a5S$1XWF|lYdSpC}A55q+cGR z^)ehY=n|ckQ>`&xQnZ*2vJBY&s0>q;UJQSOMGzA(!;lvRc#!fkCWJU($S>!ez=jW2s0gTOn{y-g z2`Tz*bG5>2d)*JX!P^UdaG5{r_S+WwQ@Xcf2}w<>Em)s_j^(6j$QMPxq`oBQEkGo@ zp8ns|1{TBis6q-vV_M81;_-Dy2yBc98lU_P z#iRMYWor>-KZ*8py`zeBSEFvha+|+^t5E>#&j&lJ%Qf1`4z=}GOSqem1u9=ZeK$;& z?WFNWhlLO8VRXneLTs`ovt$Ws%TuY^jOkdI&55FzkDwk%I*zaJSiZxJ0sOb?YdOPL zH>imi_TstV28b0JSw?w|*%K4CxX_el9|Mm)z3AWgw^bn_vLt=|LtA#pu1h)$$3}B} z?1G;?hLzv*{8qC2^Yd^^((y<$tdGVu>wQiz21m0IzI_REmG%Vl$F)msuk?+iGor`B z@zh-B?67P)Oc!i_2u>>+!9-A?5gPU`!!TsrT%!AQ0RXP~AH@+M2oP*tQY{61WRE~j zh`%|$Evi6C;F-)^1gl=8orq9026hly!x-gbPNDgi6fy;Vg@qQdSj2^Q^1T>fi3J1j zhgh4W597#D3RB1`T%0@#4GT=U8d9XcVguZFeiR5;k^Lk>R}HRT&EhW~RZv}^0sT0V zlR*L^ojl1TJ@3uPm{~1F3!B<&z${s0H9>At-a?W@m5jtG;?EJifS=hrd`Wk^>_~9g z;vv!GH-Y41ZX|88lkqWXJk2hdMa`80!%tjR@QP^XhmCX*m08T-uTQ%gN zvcZLV=n6YAcU<2iL6yYY;H_C>uc$M+Z4K{^Hw80qeS^$9go>q~^b;0y2J>_Y1Wl;Vj&~twSSFVV@$2_d2~nnjq;Ltar`*L5-@ZU z^!0F?7WOVJU+Z_amav{5RXV0>^P&Y^9VO0}GZ$Gc+6voW30`-!SO|?7<0jda{Yrkj zt0p<+HmmqXP9~ES9Ac0u1_ya=Z;k5vCB3}q$@+P5H)Xi&d$i%&O6d{qtR6x8VVp-m zr)~#81V5o^GDCjCi-t5pOo7#2N%vnoWV)hc(}aXb@K9BS8CyQWMs*wVS_66+LdZw| z=#dm4{9gItj z3Az6@dhWV$WNv;(*ulDYj1_oM69>P5vR}ckw$_&gM~05Ws2_bAy+00$^Yh-H+QK!t z9GRLiG!oH6vgu(at*%NOcY4SNed(dK z+Yh?j>y@2Sx7S+80_3#HX@>4NpI7W+T9@*hF=LGd=o6pK- z@-e30#|`t5am7;ktpgvY+bO}U%PISfpc(O-6Ki*vlha7aY&1jUU$XL3X1^mLdd`!C zPL<`7yw5Jj2rvG#Tf?g_D63JVj@Sd+0x3e#nm;11=?Q0rks(x{H0UA_hXbAfuGTN! zm|Ci`Rv780sg11Xb+Fr+E$#Z`r1V3fhzm{zuTHTR7{r2@wF2E9Gli4Fu&EZ8+RATc zZ!g**&v8LU$>s!*3r^~>EWevQc!8hL)q!=jx66S*-I4uj`>;s$4V3?K3G<>_P>iP7 zZlw^vk1sF3yoQ&ba<=q+qH)iU=ao~%^#Yr2Md zZ1zw`OYjNA#KkPVs2T6>$uMyGs(dQ9(}t}%Y!Lu&2=hkf3!gV30W$%~!}@tDPSe_S zulR8ZD?VAYg=pSH&HKBX-Q0GnJ*uc2;zfrBosdKsaxD9;cpS5XKh6C*%>1}PZSZkJ z@ZMo%Ly44gLB~zb|Q?q78kBohMe5>JzvQ9=_ z9)PL!)#Xqkf|(O0)$_<(P_fRaEKsc}Oelb#|MqJ@s7IX1%FMOT}%cJ+BB( z8(j~uJQMEX$SOB@i4KSQZmE53gy#9h$S0d#qH+!pkuQsX@;mQtm_-#wM>%1sIHCrG02KoUc4FQNA%hA+tpVXL zk8i>JHB&%d5o~7SiRMh7h>jm@?r%}UN>3C1tRe6x2t=cPLy2e57caC5)yi)__FyIq z*0+upEQr=!aVLlCu3~9jL+)f7RcM&UKP!NS5xTy5c4{M>}}`(M>g$t0=%?v3k`#D~}zbBli2r=p`Nys>TL>1?3a zJ75|-4rftk@8hGC!xQThZ+9_yO)D?w%aG8=wA>u1kw}p^=sws3+}vy_1Ndx}9i>nP zkERJdWc!9E@)#NuQ&z?6~yEaC%C|d zlB!@>jd`Z2MKUKI#4j+qE$ikcS^QS_a#-B=sHB}~@X+siYP1bh=eXhSce68kV~Z&( zi(PBv&$t$t#E_?f-+-vCXDGAXL)`x+LWid*{5bG+^w1f8@bkBPBGzQ_@A6Jenx!i{ zy5u=9Z~RO;I(HQv;yMnTJaTs4?|hSBcm%b<5RpybKO?g?>Wquc$agPZeNAG1^(#IU zr40wNx}M4P#%B7l;R=?SwVI`GWr(=C|AhUV)&a9v5Gt1lBQDez(UVEy0=L!)1zLXE zx@A0;8_xj#e&qk%&;~5#!!O`^-Ye#zRcp4P3bsad{w{ zS~z5xd^s!G?LSMx0c=ol2&=DJzm9#{RHd5wj^&9GhaN&ja^*w6_o|ojc`_e$iV;&R zFoJrt(K}m;jyX#4uBtk(qe-Ttr3Q4_sQ1S2zY))xk5ENF6Pe&STzSkUJSe}cY!F2C z1_pXJFz=Vw-FDh)t_myWDydV%48=-f9eq?``3m>b7)Jvh z;`lS?hp6*7ALjQp#n;PT&BMIb>cGv`S(!z0S?e7B4J3i?xf1(#nN zA#}_WoGhuCRwpZ97`xPLzG^W5jayj}WKeJyM+`^b~lDkRu`7wF+QUi{(G2(YN(RaKW+n<3$d>78vgCjA@ z?rS8cWZFf!mNJ@#p4#Zk3TQw>Q0{=MKY!VQohE{mSjFqwEQjoJbgK)v^WP|O>~p?? zm+%kvL-DS8luQ!^ooC!67RA7%vbz%(Q1KdTWbhYq)9*-LE-pWF_T-46yl_x3Y)KZL zo4X?tG`rT3XUYI2up;UzZ}w>O;*tAdDi^D=h-(o5#1DTYl1!L{59L4=A?=hB{;8Wo zmoC?RXWH69P(xAm693g%PX{_D>TuQ}Xpjy(BdnAY(9RY&Lp3kZ+{CamdD%)+NT|s16wiQFR*eTE|5Ac*+GX~yVNi;Mw)%DGi#OemEqn6>k*RN}# zg6vC2XIDqv**heqp{2WuQ8qx0TPAlSdO9NVw-5GKY2BjfQ-BSf3Ixc#kP)13u0X>K zrZ`|nLsS>$^=1J9*hK`L_~@R8uAZ#GCAL-E_L&hYuDHG)!!k0O&2U9AJ@;L_uppYR zuIMx3vEw^{K*5Ee35W*=h}j9TV?Ln~-h;nO)b#6eWgJrB%CF$$!;1DfQn3b{_?AR? zn(n<-4xon{>c4x);V+nq2v0qR z#ps+nXl+wt>DJ2b{!@D*Cni&s%G&aTW|9jOqrbLuwn3z|KBiytglnr8x|?wn6ebO;`KNFddMrLmH_T@3jVeh15o zZ`B&yXje_Y^tjdu#Gm(w z&qJRPD1`0J^A1vZGOp$2?qNSAK5@at{$J$1XH-;8^Dhb_phymaARt+?l7l2AqeRIt zC`b+?dB{0~ND|3PlsE#y2n;z%mYjzS5{Ha{z}*At^StkWopbJo`{Ay8*J8o$?&|95 zs$W%Y_U_%i4KdWvoG(9Pu-x|NvC$+*-dfd}G?^9SE3SmMdzjHu2VIG{E?S_I+F*Gz zdLPi?j=yFMi-CFBMzX&=2Oln1cay{Wt-=vR<$&>nr7Te^O}*>(UG0b0dAwx`-lKty z0;XjG3nIMTc+szU6k-03zZ;Zq=Y6=4ddG{SbOQM29FE@+Wo8p}(IXf71Jb z*=I6IiH{_cnsUUj5Cb}taO$-QwJbqV;j<5CUPck83sELpFOA`Xe@jaRj6q6SASjgVEP2s@3au@CrU+VNLDk-7%<9pML zB-ZTq-DI)!P zT(-aP`t5WunTs~jZ0l}xgOls)bbEZl@#kp7sDO>E-zwQEY2(EL?diL1_a2tmt#o=u z8+wp?Wi7VdnE*s(tv!)ESnVhCkf91+_MFI|R;;rhuCC4;4BlH^3-(Jiyemf8k-j+j zV_LHfx3MN_wpAFvNo^?{EsyC7+gxVz8}g!wAyX^^jWUC2Ec#OUh9x^Tj>IS1%=7n} z#l>r=LUh)MqF$I$Y;k|JIl!Kk2|jhholV3J#tqnujOq$i!vVDEdjxiklFe#q(9d>b z;jRe+cFH|kraK+CnCkZmz{!WhBNk)*jjhOaq=3I*Ce|axk{hq}nlL;kBKme;3@;yVB?ze{hWEeFOaA`g zt2}PkOTUzf;SbM`cZkY<1X#xi`CW^6ENzGhw$!z{U-@=U975+z|KJtHyQUbjR~k!( z7PH(p;1_j+e4ITEDHXBGx-{?!a}84o{!QMBJCL~Nl<{?~}JHnL>{ta2X7j(S4F{4czT_ z`F7T%Kil8QcX@*0LpFQ1^3Y^#^KOHOtvEKY8@cDXSk2)WTs3x?KR2+$&()|Vmo={? zb%bgUWcePJl*D%2rm>e>D$%QU9XhDKl@`n35lg;YdgvECJNkK#n4{EZDeG`6WLa)gs30X{yh5-yDK^_yjuKw} z#l=>cdiz~pyGD+cH$08tRimi*sN#Z7yjz#vqz!AnNNHT)T5kDs zRL=9xnGLJ{(+51~(Y1wVw)5YbrK_#{7w=0qync%af*GtktTT^34!bYau6AGhe$I6q zZK=0g%J@M~=*g!Wm!b-vyGz>_4t5;!E7A)ljNB%sDj(4sc4vYbTQd1X<#@Z0#y1jV|ve;Dn(c{UJC%pTGr(@l|mI8b_bjp6) z%F6v;RwF|yJ;p)cY_da(J#2~0T_ysG?H#f6*U0~xml;B)A z_P(O(^~tr!Ezq2JupcYWZ3B8ZK~FPvvOAV=<7nVEJt3l9ojf^KoknZUma!=%u6fsl z5afI_s+09VH_-L5;fG05x&`JF<#eN8mdT|HDY7>RK4tOfaxQ!(Wp*>0lTl(L0`)QV zc4@zk9(^S7h~h!OaiIuZa_+@L%$M{p&eO-8UgSKu*)$odq?miFDq12@BBR{)a5yb4V(UGLOJIaorI{&6g z9Wg%svLI&do+;P%AXmJbU@qaX+~*vnINXPeuNC#>mn9)Va`)*&BF%|Gjc+BtbgYpD z#Z|dk#+I5mqXlZKezg6@E43Rv9;AIEMuoy#nU5UA1y7wlpodHGy?U`JK1n!%;ecbJ znIHw(IZOG*{gS(I+m1Ol<&NqSd|R1Oqq}Jmzv)zm7}p{q?(80X*R1Ug7|{*^DLR52 z=9ZeeZi2|0QevBaq$lb^V(5wH_@6_VnmnkE`R}@QLZl3LANArEI91@nH1@ml-R|(Z z6mj}Pa6oKu2bPYNM^TZ~Ggx!Oq`gX9a07^N!%MT z{mj`ZMbOa}U(8f@rrAws@VjhPwmYvjC;|mpsE8&?hp?O2j~>w9EL{3r+TwPMgM&OO zC#>rW8F(t5P?o?=V&>?QGGNo#XtU*)q&G6R5r9o#)|fU-=#b;LXwGevyR^t{UX@(& z_#;uEsIIZO){>b|+s(S*Ky5?Gwrc`9+VET3hBMHlnV;nO+b-g^<~1Kaq&6j~Jp8Z)1 zP(xHh6hsjvW8&y2Xb~w}+!9qKtbR8KOVGHhwTk5(1FyQd9v#Jyi;;fPeQ&ZP| z(Q(o2Rg%GR1A%u@dRe?C98?jeKJbKEVD) zu;fIffB-msHO!XS}eOC9m-;xq6pGcefX})hT65Cg@wmfa> z-*&PJg(Ikhea_bFh=9d)YpH2HcU!AHp2SmzqwtzMzs;DWo&=5QZIFZ|FWYHph2e|H zh0jB+E>dZ1H=uGAfvzHtM|y}Cpf-o!Sy+Z%H5lZcN`*#YYR#p&szHRg*X1ETgZ|&; z+UY6^mo|3xSPtteiZMR+A-qnbM)(=vQiiTtY>?qVm`HBwEW5ETnPkCBqAWw41@Q#? z8*3EP%oHsnE`CIf=v6VB{x4GK156!Lt|>Lz#|}{VINs;%Pp~7_Z#vD291kL|WaSB9 zTUn|mL1bL`eh*l%rO7hNWOCqNCdRVDXdBATIW137Mh7!iW4~Av)%L>G99|ffVF%*|+l!ApURc z9OP8dxmTqhE2uoKU;UCv*nIt<__`q}Vhv@MP*Y97EKvo;4rs1cksk21`;W>}9@&=Y ziQU*u53wO%F8>h5%*z!i_AkJZ6`xg8N<;9dzD8D#s-n?9r}-1=7-stiEq+7-=v2u zrnLlqYL_91;ZJ5J8aRnfmroY%XHXY?$V%*5+fs1@(EuFGt{}g5a{&8&jKqY&(|zU! z`^PNK?obNkv)JV9PlV#@Z*MmS$G4G$6SoK@g|f(q6|*SN;l3AQW|p>jnf(BNfSkyP z0yy`#$Gw$ynhxUpRJc*QrHsw@dGpB^rSyAS=A@u(=K+@X?vz`fr!d{Vk|!!aLZl!$ z@a;E}Ak#-TzQ)<9Qp7UBW$R^K72b>3U9alhw@gi32e;PXiDUKwn`YRuKc?M~`;k^} zJLA#M_q8yuV=*smh}AN)?(MC|AFQ9>XJLb7e`mU{MOqg5bWo(VJMJzcSx_0*lZj== zAt_2vY=>oaz%M6-h_`PA7wGEbH-S| z=HfGxCI-UTa*2>aVcy($ZzI3g$Ij1nwz{m(k)p{U= zTTx~MqjTlm;R&ksrH{A!jg8#KVL55Xo^P0`5;;3k5)V!B^NfFv=nic%9F`Em*>b&K zj)gB~)H9Z3&G$z2MFVi`xg*LM`F6CwEQW(tuFI^(Na&f7613qQ6nS1&`HXMo`Y8L2 zAnm={_xA&H%i6r@o*0E_hqg)`=@$!e8!>Ym1#jEg3A^t$P*ryP9FD1XK}v)|AmaXx zPmKtb@b9fGSs5RzZ!L(~e|1xW+46iZ?Mta2YcQV|zS;ZGON~R=7qG1%#O-y)?4#El z!tV?q$Jwv_9f7Myz?1UpD>@FBm2R_tFNGUXZ5&nGy9#r^TeVdn#Td&78)5H}M=usS zk2mYj35Au@9ml+0XS?~pntNXce=nW^nY=!-#JE}PQUiWtYs+q(sxm$$yiw$jv$8Ur zI%^YJ9nM0P9Qk4d{T)}_fUVYu|GU)0idoY$9H?_cDzvKDgSPhAeRL~Y@b1{WkX!G| zqn<5&D*TNvlfvDERu>c`~NWL0?0T`e} z95sORe-1EpP=9ZzlFZrDd1ozekzrAOwZk!C6T~p;X`3>QlE41Qu2yTBT4cL#Al&$; zjQ+>B@0SXx%>+aXKlmH=-0ThhR0!e8>bS9NWwOe{YTclCWZB`SdkZuI-PXhIHl!Q# z{7O~f^Ym8qCWn}too>zO#X;C~ujQe81Oan)K@BGoEU{nF+}kq3#%OkI6_V7$CBdp( zlT4C|r>4F0N;ZzDd$?`DRDHxZVQVmUuk1Fw$Y`zt|GkIp>9EF%%Zi}&p;LVNBUtM6 zyWqXN4HxC|vPWet4Z6hm+IR2P00A*#%h`Ho0thWCY0 zIbGRB=Cx)`F51c3~LK0xjih)PQmA9 z!AX8n$6=fwF!~(P(~<)6jy>!5w&~OFJZDhRY|$Giuil+HSa^d`p2?>vvDNtiVQx)=xGcv=q3rY-m0{pKJ3(yRwdR zwaaB6*foF#TG242w0W%LRoBqXvX@^7HCw7$Z_hVY^?0j(uuy_qj^nTpol-l5;(n` zq;r4R)f+Kd{jSza;q)XkJ6@=pKjy9S-c3&0WQnP|ZZAW%2_929l)SMVVo9bet=5KJ zi0Z-YrvzAv{ToGbZ;8u{YH8%#T4rC_JbU)40y}TSrG)1@LXynZdnSGFV3Nn`g1EFaHM*Q9@`L)D(;`G>R|pYb&;Y@zlpEJXH%eEt9`dpMO6_ zq9;=*v8ulE{sC%IczN)_OM5DDn~fhwQx;i|Pr9DAe&d%}^|@H7DSfukpuR6y`bcwH z0DFy~fbsdb&%)%}jg#*FMXD8^qY`1NXZcf(0;#)PGXpUI=yF)f;Q`1UEdUoYUfX$4 z*6<0u_U7mwWPoStVD3rbzaEl1}|8@r$>utmq?fnX`k3$NjX3rq}@q@XK6%Ur`;xlaxuGjt3 z?NvxP%W{)VOzU%JfC?!AaxcpV9rvBg$WDH};i=7k32=H4`Ng?@lM&{3q@?mrt zb<**QOGojc!PcXJ+9Zv&kLRU>VolmsBmj(@P^%V7>>-*J*4AxQN{3(@fL~-ad1KVbNWeO#~Jf!a)2smB{b(9e596!|I zLa5V*{ts;*L|bZ@bN2fT;niC@l52t(jSc}J0^-*IJ{K7fm0Vbs!P~6@G^53VPyhuN^x5VuA>4rBM=eLSEtj zzQ<^7-f)Vf?&#Q`0rA+=0p!`kvOLolB&}wrL(Bg|uB}2Q<2}K0eR}6771I60MnFSH zZ248K)6=b0@l2qAxkTf~;@<_!lerKd&ZFONIJS70op0G1H+f2C?C6c%M*5Y~RW3$o z3|39hlU+k=nQVYpy7qwiU%gTbB`EWU(j)MWLl_W_RhoBxIe7?iTeo_=g8w43tg;Lf zRJfe)1L&sVURLnT(raCxos-wCA8hL9&w7ZE?~liAeJ&vPbnmiN8|}1pYr}!v^w9{B z#okqwY~<2xG~eY2&TKu~M7fnQ_%n94mO@TjL63Opw1XfoLtT|hQsmTkj#$-tJEQ=+ zhaPFopXtkL%%|M-uA#oL@hqe(k9!E}6q&Iai*XdS-i3c?l~b8_Pz)tYntl+?(NzJv zb1V;lMiLG?6&bJOSQY4L!HD*(hJ+}^op0_;Aa}fPwehYzzKd(&xWdCC?WTB38$WNf z2)RR#>NHa$ue`(yU=BFT@(OchGyn>L^CM9e{{>242+{w(twD?oY%zrmGJYhz3I~a> zt&GQ&n9fsk%aKAtCP(s?gnr-)}>e7u7zBXbQ@zE4Pfi1G}6x>A!6Em+~G&3>;iG8 z!H^mm_;^-UY$dbZAZF<30;V*ardUU?_SvfQj`%2eU{^9oHZD$-cP%NkS9!H2y(3MD zQ%$u%;@#6XT&xE|MPA-^E>h|~ZQ_;f1f2ukkA7+9kB0qR+zl-^yyNsswTp}hDaQW6 zkbUoNiP!t1@MVP^Z@E@B{)aeP`g|*kO3y6gazbk-pO9_X@4V??IPfg}N;or6$Sq;? z-tYq_#|nuRki zHVlQwxiKp#)+PkaEcvTpnxh?*Ql3ju73B!D? z5o(Oo=B*I75(^L+l9SzRxaBtZtizQ~eJD=X;<1Tm2i`USQt++{~sNN~o@`mi$c1ILl%oN}6#-hu=Z@6Ir{M!+K8i2X$IW z6|sW}?C*K1&fe*FCYxmo`77J^%4cRU9+-IO{_I}K*@+$-obfT>eOIzH@TnIm5ZT_V z_QK2i#Z%flTD~i7t6?WopWD_EKAkwaO}XFp%MPRu@`oyi(`4U8EgAUd1b@K%@hV4T z!|T1vN6VYwy)faVuiFT&nJ_iA3v^eQ?9Iai+EJHwWY`8}3igQfBe}+souv{*pDD=a z!ZKUm(c1cyvznZPUkwAC5T;#syVgf&h!>bY%>J@OQnQ(x&o_D0cqR(Kx9p;bH}?2J z*7%V~>2MNt37m};vFM?_G}@@)aC<|2D@eI|J-{&|N=AXdsc_5b(D^aeFtwkcJbJZm zKE4NSuAxOW7e8Op`?#=M$jx2NM9NN;scA~48}KsMi`Iap*Uf4lw0?3+&o3|M9=M5@ z&zJ0X`P+;AK+N=r+j3;IMV+`DDCeB6ub3`ehXjy)NJ%(zO>PUZBv0<$7KnKtr*IZ+ zjo9sp7MEbtw-K%3S0sd(8o!*uU7>p8pJ$>(j+Az(qndKf>0yzn z8P+aFd1CIq!PI<4`T`7p_4R@c8-5oP*rS~h3-wpY7q~pbg6<<9N;)-k0bB3Fajy;( zM_uqVC^<0#^cerN{H}Ir==y)Y!=N)nCAtR!TKx8zxd~Yfe7@KjrM$;JNCb*qCx@7u z(c&>S(?@sxO83A*6esGg6*9pYN4dAtsl%R^(RV0$_lbQOdZ6INZ)kO|N?h0KGc!5a zP4n(zoO&x@2jRpWOoTcI-R?QZ!S<7w8Gc}LT|d#l#$!<;TJx@WsM)54z&?9fc}2qQ zd?994N6{qiHq(Sh)Upla7={V zImZx;45EOK+K4`%`%3W#n4nk;)b87BS0}<>c0p}spLh~`7e%6OG|MD>wMX|~LcmH_ zysroWs(%ya)S=pM!H39yj|B+vhp+?vUmSDl04mpjqy4eS6&W`DCvzUXCE)iZ-97-d zLW#s|T9OyvTU@1Ao4Rx&D;uYHg9*o|kva~r;pTE9<91qFAu{+!SCffNm9U0aeTtk3 z#id}qnhxU%Hath?@$E#Ja9MQJgn+KcfDIseuRNco?cDZ*rR+Vs51cEYY8H^CL3wuV3T- zt4ox|01N;F{-c=xS-w(_HWkDg`SDl5Npz`_L$gh%&=s-xB{os+ z=&p>fekWM?m&O{t4eIl_ue7hn=yn`N^$9$CWg*+S19-@8%bvfykcpk9-L#}v0I)<8 zU}JR)#l}%>z4^3!sF^?pi8mw&*+!WcT4xS7IXF^%(=yPD(CKh|@&h>EqvC-j9_?f> zc&hsjcZX#{s?qj&@@nU=a$yM7%#&lj5|LjMCD4_g1Ys}^0-&%54px|GTCWS)EjT#% zkvS13tYBC|R*Ra(KjZJwbdqEs<(ULBU9!R59k2>OY}L6-V0q1LPN~lHHYqs(`n-ab zXYdi5pop!PgHid7KYGVQj&uQEbGh}<13E=%dhccaOZCQexEawO+hRiZl4btbo*dq5 zeftkKjJ6BH5_|!B9~teg$y^$jce@&@dmYq^@`Tt_BlG_xzib1xpdz7Z@l9Mjxq-;Q zy?zb6LX%pR1QUP9;!{_rA`ZX_9f)9?1yFlD_!Z>qMg&ckH&5`TkF;YCOCM1P%GGNe z)ViCLB*5UDeNY!d<+%`HxzaAhC(Huj^eXk0>!R~^Xjfts4{Mib6Ki>q zKdZ1z*Qf1GTuw`9a)OLJNEc!c+QLGao2OyY*lVSIr1-?UG*ciEp}oHTD~$PKuC@1< zTwWck>mT7t>v$@@h*^p$i9J`**&AjlqB^K;)2Zi z>kUii6-2A%fePPh&Q#6%sX`1b?{N(6U(%%$*`hsWRu0@vxlI#cB0;$>tDM&lYw916 z!+NvdXnPa>8G2KT1W>ncBKl=Gn&g69d~-5A$3nU2*)1eEsieCeFzKZVFN4S5D064_ z-({}ZZP1eJaE{MqQ2FDg*bo@VY*;gRG@UHd@lR!94wiFi*YL}jX0JcUp@J_6(qqWt z{Dl>AzD!=NHj!$34Fl|Dcn;(X^~wIPFI2AF6zbR}n%fJBXqfCdmb*WM3&&gEjqZvP zeRS*ax0{J<_qIq2nCUJIuL4J?8j8D(e{C)Yx?j2n6a)D?z=$+Xe&(X>eXpM|f#2sZ zc7R8NLKQyT;j*&6sY5HHYHM0UQyea9&XCLL@n)B4|`MG2^GF94fU;o;>zi_$yySAvZjYYHd>Y zcd$pf(`DlL?H)iD08DljeNpc6-(|qGfBhbnCH{Bjeb&5guu1yYE>N!ujem@GIIR4~ z-ND-v+M>W&696WZ9O@dajsEF`1x?lg&O^FN2AELC3Js5iqo>--M)iySd8mw4;@S(@ zEKHj)@^KkGo-yZ)8X*8T!!FW+BQlt(&izNLCM>Oitwr!I6VV(c6gURsKT{;uf92Ny zS^lql2xN&%=LAyk<@~QS2;2=_mSJ*p#Wr|BNX>c?F@c5S6EdZBLDd<_t8iJ}M5XJY z722B*HM_iDsbGIM0{&3v7kHU*D}r2|brxS6c{#hhN@F***5)Xlk@Uj2`8z2fe@1=t zjd7@S=${}{ss)%fpzwqW<~3hA)cJ4@Wm(^SGAtc(#P|)xhC<{WwpQ!ZQ-xd~p#(4bSj1u-|Krz!^?oKJaA$d?IC@iVAc z$})_bl{U;9H<ob-jsYad^88nTC=5GWB$Bd-OF!vGIN&6(HEe2{Wx*^&sqQ+2+5u(BB9FZ6u!~h zotS3i7v8Jbu8zDm2-9p-T1Ep8iL>8WOG2?L&fZ8HBJ;Wm#KI(L$FQ#dTE zIt>Sc&OJ!J9b3ihEBHC>grS-P9n_$-Tt~MJ@)RZGf9{KFE5t@bfb-}Zy7n>QzA%C9 ztE*S|z{M>{$K6>O-^A5h0Haw<_){aGHyZaf)Wv0$>B%(^k84gtVSxg^c_OTOilo3T zo@(;)7CCAs4EG zNZ$1c^0GXe-FQ*s$(&!0-m|yEMkgFT=c(SYnXKRhMigqs2POdMNUjeY1Jx+Vx=RW>-s-dMXytnsJcNZPFl#^+Z24BP`M=KFD!ED* z1TK5M1e1$W?QD7(Wn&<|9_s1ii+m`;ACY^wNeSoRddC{1;hJQV6H~9#& z^XZ6jqIERPWKw&%+F-jan#M{Pavod3qeI*JMOzCV^Sh(wu4bH5-HW%?SGqh)^kVhk zE#2&!l4TpT-{gngb&}MjE{Zmu;D=;wqHHMKQ20Eb+3m~EPulpJDMv{ONx0(@ueNls zHA*+%q>_ORJc>E7sZ|RaD-9?AqgPIWLdhbsWb7pm%z00|nI|r9(?Ki+obk4F69;a; zSy6e{Nop0(Wn<#@V2QHyBme>cr{w&)SA#~Nq0n^=1WY%n&Ns0e9dsRaaan~z(|=>= z5=@uk{@>`CiRCw1G|4;&JGjK0A{zv+#+JuRA0Ndwv&Db(E2^;-)d-f9qu+iodS@?a zWM82GBo*z`LzaB5c;vDxsKtE~-Zm|eRL6-0;=zVc`DIOrD-1{Y@v103!$ww|duWxO z#Wq+^*~YC-8lxtsov+%dQc)#TJ<2O?ae$zligBaMg_^?NxoYLgiZJiLM+`_^Y*3%c zySzit?z1O4*)C^fD`PruR$M<2)7BOXN(NaD+mZ5Zt80Eg!#>=tbJAr;;5XZ)Je|?f z-vKPOZY6&9a{q#MH?HsLuwZn`aY-qjVa`Y#K0&GZ!fs$Ft$Jw(p z(G2fVb0k#p*z|j2|K~G_h33@3YhxHtukXSvOY`wG3kGZ5t8&f4tRANT`^s&We2My_ z)xL87t1&3CkhBt~`*K2`X6y+0eySHr8R0!OAcjQM*k+pDmsuuGuL|}*s_|vZ8&$eB zpA?YgoEKrrjD{$CmYTyV)>id=t3TQWW=QGAb)*+Ucp-A8uy*R(i$jS9l~SE?tO%e< z!$S6<2L+rM6-a%bRVu!o_U$(1F3p4E&&CtBBo!2>sB_?i9H}UACYQ?q2}Nf$6t>;J zn=c0zF#wp>&L8;1p5Op`lto=bj{0MzTSHo@@cyc0?Sr+WN0b}Ewo*eOE@;2UPw=EL zxMO2|xIY^IO*O5UkI=7{h0glX8c!j06Vf+BS(Q64S0YsUa_mV@7|G5wn^!-iPd~Dl ztxEPDR>fO`QC-KYdrtOceak5TfdK@*h!R3b7XMIUx|`el{Er8Mu{F!~rrcti%`uc& zud``790WAF*|bfmEe;jdoK*WjPgE})@dA#fK8V*Sd~Z@?rw$XrV>y(w)%LNcN=3R<$#L;S}?0doge))-RWD= zx}S8C#w)HlAQ1Y(r1CX1`Pv48j@6EiD5}Q-rQD+49(}z?(A?lBugC<^V2s$`GJ+Hvxkq@0I9SaLWVyKlFx6?Wh z&U%_=u=U`Q&9U19?Kk8)w`Y#IQyErZTvpke!!*tA^it&_M7GK?Re|RC+t(0SIm(*- zW98;eR`qwQSJIurpHak*hVHufOz{C+1YFJAQ&*|jU!U4|F9%pYBQ$TykEzu5z+Df! z-s65EoBW@XQa?V6vOUWSvMaqA@HmJF;Zj=uQfu*n&DJS>8o*^c>ZagZU!}7AD~)V%iU^#IG9qbXq{y|CUErnarw2{!qcq?YGGW{#Aa+l!Qt^I{ z$AID%vR5l*bOM^uNqT5eQk0U}&B~Lw-OW^w5rp8gwNkAe$AR>{gN6qenB|8*3+%L} zfcT6bS!q!~nwQPDW_~?u$C)~qN~vS^tG%fWn5i3{*Zp@wN{=81xt4K_>$a8G5YSKR zG7A?%ycza$FM)?^_8AGBc;mI>tdEk zlawIK#4~=6!O0^O`@J_XHx&V8?Na8|UWI?N9O1`i{9Y!Q zb&jz}VLsfAXF}lYg<+a)559Aw?9|iQ$xvPhUVyaq{ zt7ZLhm&oYX^*f_P8di_Qc$NQtYQru&HkAc|$2v#ffI|>0J$ohoeyu59)*1m?M zIcBX6c6ix@4JQ1?cIGQzSRM8K{oGaI*-IvXCW&TcI(`;>{9SFtKU9l>$&TWs%oSi2}bTpdoobe$j{JeH9W_|5B8`5tIKh_~Q+_c+c&v+Yx;&4y8IA6hS^5 z;u(UA67&)l8t^=)SMH)&0Etsjoz)LA-nKcsh8o7oH8;^f!s@2kvq!vTCfu4A?6P^- z0~%1y!qXS`Bw*&p%2BuIT&5ar!Q~9R5r>T@8}f&?`p%)J)2%a{>+<`LdXZXoMRqH=c+>5}>+4B7{R->B6qQBKN>^)i!lDTucVHsPV>YP>!8ZGx zuOiAbEp!7i&psGE)f?8R5p0=_)hp~B%StR_$s7`7PuB`@!Vjlfzu31pQGbQ4M2`ld zQ$(@}YQY?XgSQr}p4-@Rt$@V|M>*M9>`u7WeggBqv8~Kat2gq}MFb78we+jN*?g`= z*2t$*uR=R>FM4^R$a!b1Aicm-@Uw`6H9`bLLEXijS9HA5WbgdVynSwfkDup!BAMcb zuj?Z1J7gPTbK@h?QE37(^}BYOqg=xaZMxAHW4 zb*rGn3RuJbW%8MNCId^j>B`4bb4fH`6+3>NGH_)~tAV+G%;EeGXnp=?N@y#+F_0il&2xzGxGJzyJ7xQzI?#;^_=-x9Jy1ZLm_0t|t4JtbN2+;6LmMpOuH2-Za%dSl7{h z>cIUB`zyZMiSKW`r~$vM=e zIk7M!5NV;;F9^q1nf_IG?@5Dsz&&{<@8~y+o}#PD%5Zq0IK$sEA-9R|57c{A)C*N$ z8G{V)2Yu(-Jd;T56L=*0-?y&6-@c+M{RXM0Yo^}ne476`jU9S4#@9aMnft}CNNXak zn2oz-ox$aHO?Us)$6?TWwU+hr=kJhpCCYH#Hp+Q1wmWn@t4#zBjJ2nlE$ewnVGuFB z9#1Z&V1mNiO7^V)vHO#_GLfCmX+KG7Iqkf8YLBuh&T4{uXNUQN!ER|dSBkM}XZmE8 zzL}&rNsvp-3{NvOXG7@@#&M`;zg4z*u~m%nx?@~XQY|6+xv&}Ay8dzWRJXLORb>8kJ^~f zFltQ@&L=}$(5;GIuhbM`Bvon2nlPpdDCc{slOk1JYEtNEPKU*YwuE_Wr2&})>{j_# zHuW-=sidw5V-23t+c3pN7YpgNDC@y;4KpciDfmIM;$-zeQB{oVDYhO}nX7y$7~CBIs4%o%1P<9dVu}h63um zhTbmk{?#$6bCeJZ>hh5)GNu`!9W9d42kd&C(gB`yMM`No#d0IqnYnWw>UEJyt2X<$ z)?L@#^Gf_7>wF3Fxu5tvj5___J5rXlT2p6R3p!snRms&CbkKaNP<3y@*=J;B%(BJ9 zX-8Hh^0QM3ByF~cLs1*9EV;Rs{@7U3J6>O_r8@m6-^|G`E%7XKuvGAuFfS4Kj%c%O z=H5I08<|N_1I2l_pKwKx7ZeH85o?SHS@4KXMX@yHcI01*aC2R;(ka?irbrl1!92Qz zQ{?g3TI3Dh0A|z33A!58=SPq^e=%8-!&Y}4>l;kbf@qJj)Hz8Ly z=YNk4?Fv0<&qgK{kA(EY$%+JN6vt&~oLHjn2p_}8r{9w{^WKhO35AttB&m*y9WtKv z6NB^VI6;OUgHKH{M)I^_M1`F)_O%A^n3JdyyLtnC%?#eoRu4lbiyiTCZbY<07fy^o znbk9L$o%kXeBFbCB@`&Tj0fDQt-pv5C*$>OK|V_qlaeE+k#SO`bkKaLX=>CRYyDn1 zXR;RkynG=TCC*_nRvv25)2OeEavVD%QB&%DY8&C+D)4}`DJ!8iF~qy>@8Ub>MO(zU z?l8*mi0Z|xsWRiN>F0uB)7MnsBGewu8N4Jr)zUSwx4P^TbRM_BjatO!YN|57Npxn9 zgd10>e1f{C;<<6g)u&tZ171*@J8-Dpqhq4zRkh5Q-CAgEL=={Ql#ZDE=GwOXxr#|_ zrw%LyZzlwMFjuI+#TMFz9=9Dk^x%KtX%>uk6QnrU;|ezWkLu;{41@;{qUoj5+Qgz_@qVz~AwXlsol zd(e)7Wc}mn&u7s3lq6W_5ygDML;ETN_?mrL@ooFTHzWApIL9*pfBU6V))(>VDO_13 z2hXVYX^XyJ(>_ZU4zyDvMCJU|*YM{GEmk|=PMF~|Y>2$R&MG_7KZ2HSE zioQck-9ZOx`yVS)E-U-#eiH!;&Hi$7Vhn-Y!T5*MRYbn5ln#N+k%k?$T71eG)%A(j z-E)a2mlO+6{Gpr%F;WQpr)yJ1KX6TAMzeZRpX{(4%<|Rt#h5Vp%GW;_*V)crr;tfIA`g zPfd6tv3hR=l@>|~@*x*P zOiQYHdivzyFKe6G-|jY*es%bWQ}T0rjO549`#@sxk#UvYi8VNTT1^=WtFqs1dtuP& z?a@_jGa$O(x8OK;;k+HB0U40W-1BfUS_)5Gw0gK|wR0EQ4f$mHSeA-8b$oqe+nWb# z?KvFKjY2PMzL+}Fk1_(#$VcEM!VV7>Axacx>UmRKLh5-Y;g&86Nfha2dP8;jO%rn$ zptuLhd;({@(*92Df7bkqmhNid5y1B{KETWUqdM@T*gO2 zbu;enqn{E+Q#~u9;*e^ih3pKPo$QPW>WnAw(4)oH)1SR*yGxomOQRTFVAri*#@zL* zrhOn%4|jVYRVb~#a9tW^dDor+@-F_OL0thmf`FmREVj;jRz89usb9SGM*Mt={U8#* z_6JuIeV*%`7aC3HT(i?{4N&R|Vc_!d)UBXQ-w!cK+m`@zDdx75E^&J%73vT6gxFM2 zU*urTi@9>tiD_fboNSL-iJk+;Y+QK-0Q5`cU+Lj@;lc!I=RP67EA(a(dq0ujMUl|8 zE<&oiq}lgc?mZZLWO9wOK@F`H2u_lF{?ZqVd!#TvYP-5C%N3%a#C8D>OAts zKjNc7!?vwtu;Exug;U%y9cvsC+4PK--pZ+4?9i%1M14&#rI@H;ZZ!>QcBK-aeEm z!4(kwg>D81-o;d8nzUKZMrz|(fIIt-6fi)}_xiQiSwt*MZ&}y8p5?xV%o%defjoPq zrHs{8ngM7BA-0{2^IJRK4)lpEY3WO+IayU!_k_*h{dI3#9hs6q2{DbD`E^N9|j1D*mZ{^2_+2}$rxM50e^}j%0nc(eVd}R6^Xg)8{ z`TY*1(857n+!gS29J(P{Uew5CMV?wVhJZrsUb3K_m#`j7Hy+de_R!Xy18v{w!X(4(sWlf!B5=?lIU*G~W){a?CGj^f01 zu#LTUCph9Eu&x62v-uD{so__N{yTh&1-n{Vb^AOJ;3xP~6LQoXeYI}mYV`u}JL?)) zoc3~2;VdR_v@J4A&KZ(Nx%(%5_suzTvpFtZ4FC{ahq8cOuTr|-s4OG_04^IOVbOOq zn3n(N==O5W^{XUK2H_0Uj>3o7`fESKhtw-W%r)p?;A_yJ?E(P5&$bIX(2=9ZS;2FI z6B*>(=uof!sPC%iSf?Kbc46HN_!pDju8!c4)aRFo)gRzl%K*RXvBXl zj!b~WH$L!3Tx{DNz!E3=_||1EYV>(Q5+ZI#`<7Ib5ht6N6E(BFH7+n^tNKM?N2^3L zxS~V7_g;@&Wxe+ckKzrV%!=C*T8BOdcKon*%D#s?G8g3x5RYxl@KXP8O%Ridxvs=y zeS*p6blY6`j|)a(LqF}PtCt~N7`o-(A$Gnc+Ov6(SGl)Y z;d=UUv($C6rYD~Kj5{rE%hB8Pr@B?GI-L1S-v~2vHQxeLbzg>|s~Mcp{P`)5HNQ;> z<6z;hrIbUOdm{Q-3|04=CI?OFEL|Fv%E>^_F*${eE+hc(_>vErq( zUh*31xmGV}a}Os*^GyYFA^29Ni^@5DYz+r5*n4ay-z&Dr5+&87_UXD1#ehC5G)HHV zR-2pli|Y$kntY55i>#_;Uh4`_)bg%(qcMyD{x$lC4e-3JNNg21WYloT4thB1W^KT{ z1)LVYt5-N3H2mgQWid=0WW6JAHQ`3^#d&t$!E9C9HB6j^|0tg#&ye)8dCCk(4_*~pT#r5R=(GHs>UzW0 ziuqm=A|13@HNPAJ*0HDUAE%-2(DfL&gAXnHl(q+^W@$~Rb;OvcxOGaeja6Z#A91nq z>kVJs*oa@b3MCRf4MR|UFJpCcbvT{<5P|XWKNQ^~vw2>3zCf1rK4BxOb+!T1O6BrS z@<6N8n$;zF4|pW&XL{_tYEe>9C7ltMeA=y7tesT_H~Kv0K@fQRh$wBdKPI(;C2e(d zr#fQ7*38ak1Ybl)b{Kt&Bp)5t4-9@RZpODi$3ATbx3zol_519ZxtP_|+!(!m`}5MCLiKc- z(bHwoQ~NZ#nt%S=|L3`Z2z>}7>3=*2kOux?#lAuP=L46^|EjK@5Cp#YMh9B{_k#wH z<>#SmNfEH!W)Rc-2hAJ6fqig^TFA_dN>Vv=XD)x5(2wJw{D?3gGE8ym(Q&RCE+j?% zYmM1>F7S<2$d8>_1_a_Z5>%zdG1BSt3qIddqMzl*OSF@|pdLVsd}!jsLmx>oA5=mH zW?H8xOSs?qf7NldVM$+6+-0*iF*7w&mzMA3%6wTCg(hLGj3_iHbC_nnq=5+p3C)$3 zKv}cG%#@xiQ&M5Rkf?v5mIj8YndH=jMHbFdLLu_y(fxI8-*!KpbMJl5InTZKoDaYA z{BGlx{VT%Cv)hfH$LV7~5BHeX2ya1b((>8^`B0lR|~FjU9W>*#`;pF0~hNXRWDg)8c$`l4dIlm`utPO!?#1t z^zx4)UvWxvzt@Mz_fzS~g681;*Jl(H>HXDJuL|MT{pB!6E{)=-Km^sCqjeyFSl#GL z@#el!Oy=TC8Quqj7(Wd-1g>_lk&oZ+n*Ml#V8wRObGe}9dEN0 z@CjE?s>(g)eQjM0k5>u?k=J6hKDcs8HOTL`y@S!+irS~dQj)=G#VjbN=ists*4kYRp>{xD#>(Hl{_5?_60_c0 zVuZ3nH$3dotAA!KfR=1d<>fg{`%-)8`uxVJY;=HVuP)CZO}fzX^w)4pH?o`Z2u<&Y zt@}{li`YJ2GzE@bUEz;0_dz%!`&0=KfegBspecLi|}FFHEaVyrDKo^JNnvECe2FQ zu}1k^h)GHED8Ml7*5LtVPTXAQN_~zLd8|x<@Luwd=D$q)x}&RjI@MyH#7EbU#KGLl zwJPDTr>F=rH= z+CZ>enft!)>N-E&Csb4>A-4E(Cxt%5jOyW%b6FrE7Pj!;?i+~F&XaLL8sr=q7j*K4 zs0*t9v!-X#q8UXwBOgFOjW(0fvaC49!p%WCc%D?SqfNZtEF7DLnC zMhbq22KtZae*b(Isy_PO_5Ha1nMVFPEzfl}}). +This dashboard requires [additional resources metrics]({{< relref "../../requirements.md#additional-resources-metrics" >}}). ## Example The following example shows a Compactor resources dashboard from a demo cluster. -![Grafana Mimir compactor resources dashboard](../../../images/dashboards/mimir-compactor-resources.png) +![Grafana Mimir compactor resources dashboard](mimir-compactor-resources.png) diff --git a/docs/sources/operators-guide/visualizing-metrics/dashboards/compactor-resources/mimir-compactor-resources.png b/docs/sources/operators-guide/visualizing-metrics/dashboards/compactor-resources/mimir-compactor-resources.png new file mode 100644 index 0000000000000000000000000000000000000000..08daa74e01e61b51ec9aec93bf3a3154daea8600 GIT binary patch literal 44903 zcmZs?cT|(X@;@B9f*^{3RFxvqrFRgJUZoca(wh)KfrpOLLAro+>Cy~EdgvVlr1ubd zCkaRw_yxW9e&0XdlXJ4!-I;l2KRYwe?4C)urn&+#AvGZg1R_>ae5nNj;Q=5J&gLx~ z%!syywGXDjwUJhn27xMKi2j)2Vft9_v=n4O--l?oFq9xoRUNtO>+8$YodYzysipPc z1m#!h$i&L^`{-zUdwX?lZM#n7;^M;C)co-9aAI;wTi@8s(suaQNLP37#^xp`uh7ig z9Q$*D%&s_9O&vGD8@@Z+JYA!qt>4z(>FE>joL@vzR)K}%`O?yIORl&OQ<;EFpb-e0+X!v9-NjT>70~ zSOW0&>+S1T(a_%6*`qQjeEdIZ>KJ@#^tE?#`4}8_u|J$& zSQJ|8aWt2<+o};69oNvUjTrw|A$<3fW_R zeR0?@S0_--o8XqZ6aj3S#i=2kEKK%iodo^9b0$OvUBzRVDxR{1z{0 zU)-7Li%&7}V+%E-i|4z)J|3Q2<+mPgm^gNHbzdwFY%Mizqb?hUk0Gf$3DtJXBav(B zZ@P!#2AYgM6z(6qWjY%!-JVSA>;g`{K3ME``<>%())c$3jXeClI^1qkUH5uuzW*>* z=OicMB!~07gZg~n)q$tVS$o;1*!a`a{pVUpH4x}ANa>}t4luhrk5r-QdqjX@ZU5vt z_Am-RxclL|og?#jNQGuujs5dk`pj(mcjk`S$D#KV8MQPkG>1Z6?|w&+5gmVU4R%1k zy8hrj`#biO^h8tg3rpyiRmjY0AYn!{-f%%_a zJSM%hn(z?>zJ-g81w0|Wg^R%Z*92px0w}RRym$=a#>M^sf??+VOY(0HfoWowTQ6LY zBCSLiI=LVZ8;cd3f4>83cP8)$6#hzxz=JUKEiIgu*Jk{2rvA%j5hPSmTYKW-?IGLG z^_QdP7E<0?67!he+Bj?DnU*It>kO}dNvoUhrrm`%1&M;-)29$@40Ch%w4c1GU;n{A zx@r$ZspH=3M7zq=-F(q{QQPmNl{GDqF@Ji&j}hua#43AD2oM+a|Eg&7E>Bqfpx;!K z#Lv08FpYy*WB?^XLJ;WUtsIvL2@>rquXVZ64FnE2sYA#$LQPvJc05d(XC`-;s-_N? z7%>7tFc7k$ZJ?SwcVWuNope?m8-q$K5sID?Hb0jqdSDf}&>79f{Xfb^vdFG4KWxPc z%+uavnP$J_0vwGQf`U4|1^yhoDbk+jXcEgjOov|=v~xs=4+IEMOa66vqH=&WoszWtYdXceLw+JO!8P(Hvm@= zy>z5?51D)iy2x_=kik=Jm&CH=Yi>~O=TsTOAP*t>$etB!IMBZg{BhhTc$PD-NDw;J zCioN8V3$xLWd4S96caCj?QVfPT?iEtC9eL?~WbL>S$uMl3j zSI1ROvBwp#?QqOJ%W_to_Qvz~qG5%+mK2ljRrS{`H17+lWmM${eBDO^DST2o20YT9 zoe0kEB>NjZs-F7!O>K5Wwc2dHdvSg5a@UP>)Slb)F;&-Et+(jwrguIHP3(E?v*Z0< zGyOK@>`_`POxsB=JQ91yBMlb^cJ|bsjoM1&cA-o&5kG`eoiBUWp3Xzd$Ida<7PpkI z@(hpLD8~@d#4GZ^4*mECMa}uVqFHendcC@l2p^UmAn;apbG0}p=oaCqbPxr(j(m@O zZg<#J2SRQW`p{#8$NNaN>wa*XL$;qq0DUhGq-bi#%@S*LT5iXSDuc*iScro?E_nG9 zaPRzZk0z;hxqCJ@adBox7LF9K@dN6n_i;RH;*AfBm$dQa zX;^FZ<#H@Z$1*iHzH!pQm35s-AmLsg=Z?liVaM=^eDM5Y#qV8j?`lG*aB6)`lQvFN zMqNYoq24#T6RQWwb30jOC(HBC&JJ5DU=~g5j%r(+>qU-`Rvtsi=fEd~7wl z8hEm(%zgH8)r21?3*;Q1HPI3i&#HQ)K)@}d@o4+tV18-8*)#PW9aJ{Rmz)wgdL6QH zq1}BPRe*o&wkXi|#r5p=?PZsGHAkkn@SULFW)M+WbrBBda!4wPBqRW`Ft&90fo|=N zd*#S7Hof)|xdPvm`{cu(#&vVq86vuj!>z70^<(r^zE?f_=j(wtx@DphZ$4AA+%q1< zBPp-3IVKow#)su7N?FRs!MmP+w`K_{GU>JXI5i0A8^(K(&5^x-2k6_y8yEOPG&UaD z`&BN>{(0M6;4e$uGBj%_h1X($(C5?@Uvql2yJOE4ujk9{&u=t~7%$o)X}8a@vSwf$ zPw{1+k}cFDtQP2N;d0ztZ-@M7nPIldcf9mFo2tqDor95oqDcrK4)x6<5X!}*ISsqc z*r#$%W7Kli=qi4ITR7PbD8Z}4(w9{XO;%AYK7B8blc}>r*IQb)Ej0W3-jUOsj8}zG z@5orA>yR${x}Xs*OsmM{elxSlPfcCpbGti$XPjRzha8A|b>M>s>(^-2sRkqLW zx!;vUXM|!ZI|f=!e&kSj;b#+`w+7V8`J1y3hb2cQuV*mj%Tm|j`w;NBux^AUyK$3B ze~YSF+f}GZ_~J?mjAW&yr9lK2Vb_jp65fmR>HU|u__yt}iLX8tg}fSyN~{){A=MqU zRqoO&nJ*9k@11F|I2dRI*7kr4I>atCCahem4yg?VI(B|kCSM4rlR&}VTc2Ng>tqBO zsB`NPC8Ke2*{jaWq)DJU_96NWUuLl8?|tXb=)MEJS7uLaTX=RUQ5J$=)4`D4%sRzQtxeyVj?}_>q$?;oTBrH`=85(#Q+Sse@ zqOiolykZGh$h})5OJ$EY_G%=>WhaRO^`VaA>%gTW>nZI;n^?%)r|&-x_7zdv`PRT% zWWA)8ehei2^RZf}hs2T43$Hkr5kD4sx;tWMN56Mvbcz8!NofwVr_Tols|B|eJVG1d zteoggzMcqwyJ+(c4xE$Wo~^S@cnX;A?mw+r`NLyK4#)X!Z!juA{4D=0(@~Mf){Ir+ zISlXn3a7-WDA>`lBcgAC<(U-BGHcD!7zuy51M$r)5wGCqvTu}sq5K9WLn&jH5fxeQho*hP(g8@r zYp3`pVnr>j zGp0xOY4X7K*R15|v`opj&A}Wk%_8R~ja##hPo}uC27?=KS+Xb!YIq1mGW6rQt+o6j z;5vb+@rEl+P><;}X9cIEq$iwRs;6rVrT3+$f6H5Q1kb;~Qsx4C;>cyDkrf1M>-Ame zFDdpsdy+9!tiR`&XZNH3l_Cr(rCaR>$SWS%?iB836ampaUFNFCe1Q%zuG zjC1_U?w!C7QD_k|ai%Pls{ja}oR+kFWN+h-z44{w!^ZqEvgPWW%i;$jMFdM(HG zYh@yHn{&jYYK;FUY~$bx0(|x>j}WR-bKL!^@~Fd!y7xZvDCJucGu&gGPCOSVbCVkF z(zFeq&9Y7H@ZN|Sl)Fj{evKaeFsODHX=*LAHLf6oq#xIHxO?iNM94M`=gRJtyS` zVHh!2Ab;h6(AYOJFn+IVSWx9N~hwYx@Q7v zUAKPNE_jS&}wSL!jPxz2`dRK&e_`9EfW{ zkA9g(D%|x|lGm$LUN6lY*1Do&%+!7Y=}dkC56+iazNDROx;(VvgeSCRO+L5Q%9<1N zdJNViSzh?c<@d$+D>0LBUFu9`wTxoWY~{6rU98mjuW$&=-6=my2lhTe>hu{Ir+D3THZyQ1DX(Tkn|8 zJ1dHu_uJ`Xjupkp=ipC5yGfKf73YPc_t2aKFRwV6;50aY%zopOK}!sCA^5+GOf%d# zJ6@LhQKd_?B^1Gr|D;FnPUQc4vd%3TXv0ypQR4tMQ>51 zGIoySYmf|#?m%Blyh<}P%I%={wa=)Vo`d%NVk!8Yq(OxS7iI+A8BRBag~~Ied?K4b za9mj)IEy9m&grf8R4MP>uOjUmI~D0GMhO&7O+fEaRontI|CWI=m5e7BnsMyKE7@oA z%fP<=US2>MPHQgH-L8^NjOLH^+Ahf+Y0F$MZ#H1nqj)|1Qp()=sj6d5c3;DDu^qp$ z6~`~ouS9{hKB_R{7>Nnh*35>j$2=-w5tZ>ACJgBPhdt=eON%1W$fq%V-~&K|Gu~vy zStv<3j1K8k_{R=iaO^RiG(IA|8+OV03@#)pR%yC(j~QO9P{Q|puwTui%%ExJ8BP38 zo;{IWo67MI(`9n78_Yfh_pA>;iuV2P=N52g#R_xraE;=J(=$$-S8+oi44Vz~KOV`YP>r2X#Vmv5%D%*7RQG5YzY6VlxZhXSASO-hvvJH5SJL9drJ zWydd5Up96p0$CpLJcv&Wj(I-&=s;v$)&)h;-bf|H;d!g*!$Fd%9>Q5uUyC?a_aE=h zlgetG%-m)zk{-j%HTB~2RhZzu7Q?jm({S~yy2Gxzip9ovtyzl#?qkafPcACJ_cg-2 zDn2fo?AU}J7ue{ACsT25n=P<5y(&Hb=}HU^?U-|>P^s=)FzRGqS-Cf00K7fxxIOA6 zvtL_&64hr}6*+x=#UyKHP7am7wnTn76?WFF8SeguK}R6SCq=MpK&DphIbCq_*m9Y5 zhSD*Gln6w5>wDu{RGrZrT<~z|3|(ezU8>pKJ*=)5{3y@Z+)zO9E?iaWTZ@~-&#C80 z?iEk1?jg7Ourz7WHFKP$&(M0m?_3x&2qgk6y|Kx$Mdb!XlyZ~vsUr5jM7z95;?DYq zeZDQ_>faGK-P8+8G{~PQ#$6)UWj1Vhxva*t_7K8g_fQ#T|0;9)VB_v5*+}4w;yABu zhJAXaY_c)jrc66LIbURsSz~Cz{#QKZJMU#^I{>j1$@g`l%0$Caun3&?Ww7a*56jDVW{HiUcuW}Wq0ZS^tHWXPCZb49= z0NuIb><~JUa!#T(hd;ZPx~GF~f1vPh)M*4+>epl@j0_X=A#r;Qnf=`Gu>_p2!pkNp zRS4~6N0Ogs^H74(<%~VXykgxlXKR8kXUDl@DrG|m>v*n^_{uWz#BDVGmcM7X+j%?3 z6R_OP?oY1ltu0INFZ)fb2vFX2zeKNA?4r9@Ch57w&=T`PB$z8_!ec;oHF;3|G91Z| zj$d2jBMIwYa3v@*u=J_y8L(iTUvV5?6UZaKq?+@IiS_@fvpv-}{RhU$2|jrC{+)Fo z#K^N04j7*20UO>qcjuCV08dYMy(@MpcBF)dvNEi=txN)(8S`^^7hNoKMlB^~NPgv= zOp1)qg;}3toqq`1eMci-6AARk>r6gG+Vx>MhszRk)4sP4|76*DA*=wqck15%yLFZ0xwAskYQPF+#l42&6WJMT(>nD#aH~WO2HAQ=L@8U9c_nBh49zsT2 zESQ#AS>b^O=0eqjp;TlFi=+_Cui07YTyQ?q@c72HW!;M2Q=pSKseRdT8A2$Q>-X}k zR(;wotPEBiioK+M!1p3*LQKV`(ugSV(zY{Cjx3*gbIwy`lE;oUDNX{4{^!N2L z-69SC@Jdote9A8e`hL#`)rCCpL!9oeKC&CSuJRC+aAfkNGe|!k)d9rlpXJD2sZ~SGy*z&(+8C=nb@fEw+iJwtko8 z3wQaf{oJ0=mlybl%S)alb&V#MT9>)>`pJ#b@+AMQ!R7SC^T_^YGWzz15>jF150;08{vT1jF%d$K77uU44N9V-Z6S) z%Y6E$FQ>sY^%fU&veP(KF=aBAw!Gm&r~2jE)2e>u#8JA-)zo`X!jqDkh?D0|f6kV0 zVUvd*-P|Sb;&#}F65ch{c>B9(aBLDoo*mh>_UpI&f?c$yx;wFyeEuHp@r=Ca=QoE) z^sn?#CFm!=0~vu(J=+VfS5~_jI2x*#Fn%3Ebo<#u zdqmulyHt%AVa%N@xC9tITVALRhNS$ckH)()i9OEkg#xrugg8^5L2_J&&jATX{Yn(a+CP$ zolUU%qc@n9fqq$|Lz=eERU2IJF{09gfJ^w&fZBqo6ed>{euW+ah@z_SkX-+IPg5J~ z{2&i+2)_YM@B-%9o&V?&kc|%loenH7I9|Gz-K4SVIAXY*cxe3{^e<5GTG8#4vxUZ22pCj*v3!_t}uA{ zl{NZ`8CAj|VEB{GSL-aaE%f)UJ!3I!X= zViu1vK&`8V@~s^TUga&{bqO7qR8+6Tp{vcZoE)s-@w>9+Cc}PX?Zbk192WJPM@v&i zl(KP~$;CkAfzM@Zt^1?r zLR5D)tP0&K{J0~RKIdhu@un@fClU9uV)3@^O@JF0XiFuw? z$iX}c3w_S>-%_C^QJYVcww`!1e3iJT4|9p}V?Sm;oXlyas^vW|TUe+xh%vT4-v8R9 z`Cx8W;*G{d2$TF*(66&)iBS{c4@CekRTkkc86*XzK@f!o$CER{Kc^6O530&cbpw%W zl2sCWF!FK8YD5)liB$!h6&jy3((fw4(KL4u{Q?W|F>HzlGSN6FOU#~-=3O9mUM>e) zEL(LfiWJIGP&+x%=oB-ps0EBV(>S5=2`9SfXk{-$`2A;~*ALLthk8vVzGKI+V`vjq zogRR$v{EZMPyAtaj{-x>QS;je$cck*dmok;;`Tqvx|qgze4k(8)af$5GlWmjO9tYK z256?^%g;n?xGr{<7h)aDkR-~L;wSP+8T9snfT=O#3b6$&Dumd8(K@RMY7|P1J^B6x zC1pO84cx>~sgMbBe$qvwsN|nxYTkv9zH%B!eAz6{=J2p`_ZQK?bnR0xU6M|npT2B@ z*%Wg_N_plFu1Ql%cRp(-WW-5oFSaLkYw!c;@!R!1pVMk5QfTublX>AWz23&v3`EV! zszw^t_3Mbhn1&!ipVItTak>gpF*G6@Yw zqVYS^@>4bR&<(+j>fE}$Ck^T`(W|00BLc^O6s-y@eS)Mz_I(CDU7y?A+>*$tFSS=! zAv!2QwSSRu_8E9=$&nOV$N%4f*%e0$$X>qLeN1?Kfr*w_|7)?A@ouz6|7-7(a(f6o zhLfz-wr9cO;;1(A*?$kj)$koME=x4Fp093nOp3|GZg6&Vbnd`mjU)V?E}h;*Vqfk? zv0J4@D3H;QSth5OlGXimcE9e~wO!8#y}D@Qnf~ z^4>>r2-Q9%a^r56r|aNa>hBHZw&|1pXsaq_2R%l3m2J=E(7>or%?cWEcY9}9f-oAG zP}RXq5boZ>IF8l8SwAX(9%(~QipJ{n%I|Q2T0dXT&jIZ-XK3mu%HrUICby-PoA2SV@`GrWSkLg*_`gKWWz{DxVg8 z#lUVPQ(%}ZSc)|^X0%yDADaIyeql1Fez|P_nfdqk@x`_fM!5FvQVQ8>RYO>UM&Lq< z5mWI-1^K0GM`^QVKZ%GOb>MFm^&5VM)pZSAm8sBvHpJp3KlB|gGwzhoXivgFamtylq9TjpRUxz&V9ScHbl_sjhqV2WB#$kpj)XsVSg2VP zu^^n8I(Ty#*96yLV@x|U#;VQD8=nqSj$n0aF!J++`qYcw)=0B@8^%#?kl0zI~H#j?M+}qEYa27 z$qqIn(aGMHg|^T#C5@Vc5u~v*zMYVKy3<6pWBm$~fGN0uUP0fHg~3ffU1h))5HsE0 zj}ueN=QS7OPCP!ZvMZE63WT}HGe??O@Yc}G_`TWwZ!Li4esu9NXCGguH}!{lo;s_~ z#mqX9c_%I}JGY*vO(?8+Owi`B!zUjP8-@^spYSc0Epy+MJX<#vG5vn&Z1=io$_o9x zPZx7?-8;SBT^Q6Rv!f?K*+j12)-k{JF&q|xDj>sF?Gv;A8i`B(nnL;)o)tMEKDjk% z+ims-4t?~cA5&+rAxXMM#`N86-04k&eK-mb@FiKzdfnykv5fZtAA(}lh0d<5iyQZT zCp;bI9%j*y+SVp5*(TTJZ=%WshjA%~vb`Mi<| z#{9ka^CDE$x&fm!LkHiEw{r{EC^S;>?HA6L=z^E3vB47e3kswcYI@YZQgp z&^t%XsD1UkHrHFgUBVp?tEri^?BE!5rNEGvozde*I9T9}Sv05X;>x2ZEBr#qzWZw6 z$FuI~14c%azWsA9^lt9G#Hy06iPY9t7A1|=A745$)77TOW$Mm>*DU4)sqOv0C{%96 zHZbx&>zJF2$i_GMKOOuF$@50|+C!;BY|prWfi;QxzWtZf9H9Xxt*DXoL6O?U`yt6; zKisXuNba|m*oZZ+W?x(GeVIQHKba8AndPZiTSUH7N4W)!kFkPxcTMcH)FldgaYWT~ zYRqi}-j95(Y4YM0H68M_?cFb8qbihkQy8_`^(``Tr47(e4l1(KtQ~1Bk(@9#T6D!aZ?5X! zJC%`+8oQ@C>%tD{$!cxu z-aEh``7l^a&dsxckyN2?nE;1@{KWU!RE8O9+$!r!5M69Y5JJF+*<*@oPRT$w;(wh0Vkk;G#J9a&${{QrA2gkgNkrq zxBd+gVV;eMiU1W4{Xj8z*xiOeJetdB6CtkwxicHJmW}IjZ{=GlX6&cKZG!41E@E5> znjLN>KfX)<&LND#;~q{-?NGF+8pReAlMRh){1G$-Pj#?+_w^uZVPy}w|9JzR{_Z}^ zWMzq<;3>Ay;zD^pr%24_3j)pH?vFz8?5v@w-PZX|lg)C&&s~#~P&L=8iY7vAi_<7| z#{_FJY_F=t> zKCqYQ`OQbRvW%tPuMqMlIONAZ+2sCOK*}oWdVo1=AGD>&ngmntJ z{8oiewn+Xo;FZMazAW;IUy#-0GSSzO=?;XUUPapRi*s`K$J#AD(~nt{hEF*hrlq`0 z0sn8YJ@3}6CRdIKXaaq{eF&r6OSFT*XKCTW z#z-4bj?80`co*8v9)VFNd_J-t1nUm2b^082wXjo{*M1?`<5{C_*Mek|n2^l*L_t@T%rxv$m{U6HQv9RAgNe3YRFy??hY3FVFBu(z z+|j-HO>H>F_%S|11h@qV`N#xXWogr3JnXMeJiQ0TzOikII26}+960~SDPx0MHv?)S zuqwF#p$spW3i}N^{BuWRH7-Dm4;?PJy~xuc)*7kL3oh69YuGw{qCC>))Lx z{i>4R^YGrfhmeF)f3GtAYD+qS)x5@>(01YCB}t56{_uTv_WKJ}4N{w(j4LKJJ=0t5 zp+bL=TnU&;dl!wl_5`HD?Vk?4JCGL%SrqZAQa6KR(158Vp@aY>apm4D?3sprOe+L@5 zP-^BVO$sih?!19+kQfu`GjT#`cKFvcWEMvpmCv9D*IXp;3y`$TYbp znK6W|jV#@hYcbr?K-HbU=7A4joIdnq?ZL=TCWkaJY)hu;f~)@LZU$$JI~KtM7?su9 z@F)>#cicpqi04VBq^K9n+uS>ic#jXzPx`b(irKhzdiz+J zee{*)6K-}sKL%NKKNDQIO5oiyMvKF&8dW^xAN$u92>~7&56Va@D}Ew;d93e*VhmE^ z9%?eGpRulA^@GqR3mfb+#+f6eD)mlz#&l54v4{+O*zMK06o!r0>!qm%GC#+4e>m4=I z*GFDQ4N5~7Yjq70@&O*q^uYCnic$OAb;BvYX{woNt&x(+kx1w{*m6;gqO2E1!AaHr zq?M*m$FeA=)OuUgztm+rV$LOHw;nDf=lDEBg`NyX#3lXZ%JwP1%)5LliYoLkWQI+& zENCM3sBN?zI$Eo>j*>a16^R=aqDiN!9Rh^r~;rs(7y_|Ji?q z;p5*HG2wvLt+OT<$j&rEPY7TI!TQsrxMu~d1s^<&w@a+Ly}lhmAB|P@(0us&(o6V6 zE5q?#tM5#Y#ieWj)$Kwegizy!iEGE@gKxuMl)#ql2o^0*j;;cxexU9@8EV8Spaq}F zS58hxT&_(iY>^;Wj=Nci6UdK(R7b^>`)%+l^`3Rmyi>!5=XDJ5ksJ2A*DQLsE?w@j zm1^vlOKAMPMBAd$67oA8kes|9E6v2g9-1)7CUg zz_Wl~g_ABUB^pEZ4C32%+W#5PX3|eQT8_MtKQRXb8h5k*8_G zO}Dbwz0fV9uM-OY(6!&Ay+GBoM{^(7X&4c~%r)q|g1{z->*4qWdSVFBa_zFFB7zkc z9+0d-_Jto6?TT_A;|w^gM=$Rxg`9}UBvzYFBuUixxi@A1NzhE*SU0?E518T?#%Bb} z%fnyWF;0Yll>i;@J}&K*HUz^h zSJT;~^*}JzjT<+n1a<-~^{5?JEw#iU4l5ZY)d4J)t1Oj`e8@ z3+$O3b7x~M0ySzgjSFCb!}uS-Au)IY}&q6DW*D?XdPs4b!9T$B3CPt<#9 zVzT)n9#>($Nl5&Q4r+a5uX+wm>Vf9K2l7!QxLvd&Mo&+%zyXvDlWAwtD-;PCrDTJghzM`;d!7Z4Szq6b4g#Zi^DsfBe3Njcw2E0c=ptW8l?8xbsIwt&lh3 zDe|x;hxaqg6gH>#kg9h-0amEv^N#)0hLh;UCzx_}HG4p%1+eh+yf^XSv!oyAne$)> zZ>0(&Dg*=CtYAMj%(7fiInG38TIz#84zPx5XkbK*T3g`Xn3qnfJus4#(MN1Uv*XG; znva@veX#f!?v!;4Z1}iZ!|r_vbu2h%fIdF5jvX7hIgJ*>#UR#43_X@LUgD%cKt;X1`#*$jq_99E`4lb}}LVqVUXPp{9df`TIi4Q2J^At#w zB7)nm|A%CW6FnHo)>=ZsZ6$FRGaalbyOa-28p4J(;esQ6NP?iQ$r~FA9V#c3cmM8o z1?n7HF+qLo*=YXQ^he0ktl2;OccI?&h^UdZ&}e}vp1*ps+yl?%G=N>R?rYTpI-ZOqs`GFcbLZhy5P@}Ev zeeJUjnue^2ROx9e_KsrO)& zE?e4f zj1LI3s%VW@OKG1eVUE|BctZhB{aq7bGg)Q-)}d~L$Gy09PW?8wCmlADzf}c?+wkW? zqag2{8=ryXAn3%}Qw9NIN8)DTat{?A=lE7J(!9_qVw6_foMicimT@5giWdaIq#-|0 zlfB6HHnU3`_vbr;KLk#7-#BHNBdT8Yr&7Un1BAA1ua3s}ic#xGSGAIZLfqDi4@;c& z9z||p;@_SM+#A$q(0Ke?SKn89y=6pmrj{wi-LU%dAr}!s_d{(3*G2B|y}vQbW%25d z#Rn8@;?M1~jnbJXdt$D`QM6cak=hDI_>3GjvRD-6`2Z#AD-LV%Hr%W4Y&ZV1pD7B% zX=^hZizh-zJO$Erpa%WiK`kYXbeAuu?h2eN!mAjv^V&8N7qMWfZE1dt16rBkPWl2y z{r=1Ijw%&F2+qeb#YA+Y&3vz{4Ru8MhGE$#Lc{lk8{{}W@~n~MjySN;n0MQ#R4o(F zfP0@Zi*|9Wg*#w2Mcx2q-ctFa>+GRYMe79b`UWw9|o7S6pD-9)U zq9@hGU6|#NSygfe^BvavsxulhwrY^7aGisN zE7e`vo0UAh&=Te=ggA7!P8uL7-6fuNh^Znna(W8{Mmk!?FB}7sN#O3u+hFR2J)S@; zFdM)(=$5hEp>GnJd73~Y=W8!m7=}kSn4%YuEC7r})-CN)Rn_mZDGRlf!-{_pq5MpA z1C1O8{-U;?9`0*RFjr^O-a1K2#__WZ^Dr4hW-eUhof3&2YS`1G#NdWGM#p=Id>XW% zxE(qDYj&@9o8kYm3R(eTlb|B}Nkp}8_X1efiag2V?#Q8_`aEqK2wHZ&^(*G{prhI_9!nKSif&2{%jSA1Zo7rH-E= zy~p3+m{+&Xz5eja&_y{Lo!g;d;5wSSB*!cjCS?~6D@AH#1n1wbHWyer`&#*l ze?H_SKyu!Luje$bJ-Y*`L-sBtWtE(y`ke^wd4F<@kA|d zX4*!+U%Yqw_h$1`o+j+>5^z`R2v0*puTLf2r>Qgw5SSCSzD_kyFEMv{6KGN0bwq{l zJ5(y82L8uWx!}wTtW3(03{nc^SIoY9+g|deNFCyR3M2Y2i(OJzwS_g%g4B zMjsKNmK$FoS+!ifP}t z~o7w^PMw7+{r- zy}ZEGa?`}}r(4jF;VTe0QDDJq&Vm^M{+p^`SRVSv1+=F)LdXbFFQMFnEP3bjubF&(cw>dpoGN8U*2lVqsEoz?$SKJx;jeI z1@**tjp3v)noq~HX(+bu&Lea59}+$PXBAVQhxpPK!d`L7AO)7LNMXW*-)|w~w|TEo zOGIrK{>MWnED=mmD-$jc<$FIq`#4a?P!f8(A(eycR>NZv;i=8p(r2k_6oZ_u0DTTE z5F6MU{3wC=D-d}*B+!|Lzk%uTfJ(bmIhvf?x7t6zztc_EL-+by@%}cv?MzyN`-_>i z{eh0!k&S(E=ElY8t%g{Hn}{v3D18hi%PbSXjQLRMFKKF`h8$V@ckkPb%q;AcXjlnj ztMb{P%4W)C2_P}a3EUyXsPn(PecdFY^c};wH|7ML3srpwj%2QZjo)7O;|!R${+b=+q+3MbIRnv-A!f7v-M zteRw-Fi#!scns9ew+(O;hd8=Sf}kJ?5oc2^I|+P|(I`iHml#VfGBbtB>BgY4%LvYz!i^|uxpjJHnSBgcry zU_+X?Rc750B_R|%x!?+XIHl5gA2Tc9*(faClj{Jcg2y5f5o!*oq^mzsA+r${-WScy zAFs#SjPF2^4e{1rr?Ad{tQTLhy$0V#P>GV{>I}HCr|%jbPZaXPI7@z=-_0{K#6PIf z|LD=!I&h&*Buc*mO`JKo!P%~P0;EC>cEo;zl>U=N0xwYBgE*2E@%n6jxMch70<-oC ziSBqd;d<#S_Ar=}L8cLhu+Usrf)^XL6p+SuC~ zaaz5Va3GgdVt__EHo|P*?GC&<$&`*Ao&(CvUU{xu{d&>Pz{WC5K8T{|uRzJ2mv9oV zkCe(kb`U0?5l1-S%*T*l=w7YQU1m4v(t+R$coVfq(N^PE#&???zqRXzba+?p>1TTc zP;~IUr>$w|_ImX`HqMv&o>88?;4U8g+jGE%8SwoeB>Hd|{VecaC>i9&HatLpw3Xw) zk(L;6G9j@k=C{WVTi&|}te9{fD4(=_IqtM9Moz<{tLsl=(e$nMWU}mzlS)C8H`F}R z(U}^){StnB>~(6u^AkZwLj&z!;yd~w(W)5Qvr1~6s_2F)= zT{|kbB@jSsSjW^#I4Bqwii;#5fS9hOT#}$Z&i}#uIcQkma?p?5EBDh9Rln9(oq@Qv zoXEH*JOB<4Agfp`0F6Be zA0q6tR1&kRZ{`mH4JRR79(qgQIOM*<^P0bSS=>0*E|#~X@(Q&qr0q#HNX!0u{cQG_ zzd7r5{Kw?NAbRJgxnUg@`r%7iH!6l=Lro7$tJl^sW;mB>(R52M;;YQ~|H&EuhM2vARd5GVeV!)%Msf)Yp7^P5$npUOlemXh`450W-0SVpKLx(CdmSwlG{YHAEt;?m6~xbz zWQ3Y8O5F_?r5YpqhC(ycT=4VfDDSL>_1i#l9fEVbZKs~+BkTTMm_)F4##>Wlbp@GR zJP~YWO`n_o{LaGVifQRxgG>~NTLZK0s`4MWkrd2;M4QU}Kf_bt{?djLms%^zOq#vL zDbtHBnulJHfq##58p1U|Z)f9}e8S$|;4_FI-1lXeSg>2l2vd@8qqD;XM}NkhGivPn zIK0Hpkr(?1;rsq!0C!Aoqb~6z0fz?gAvyPE6S)~saE&|HT5n6*gb5e*b2z;mK*Eib zQZ5y%+Iz^Og&`mR+wgG$?%LJJFCjGJ|E&c`v+>#ll|*y*KhHG}T=VCwkV_$W9sX6GaDjXsAis{XfqB0xqhq3me91q)Vg(1O=21 zDJcaBNkKwtQ0bN)8l+Q@k`|B_MoMCaF6okHhM}7oy5T!`-_P^L_r3r4e#2qroU`}Z zYp-=(dvDHc))Mw?*$<`xiv!NH6r@CgWzqo?vxBQ_dCh;-1~q*_MUpMA&llF56J?xT z149)CXpa(A@VCW`Wea?+oq6L-?x>F`ln53Q4ntfW?!EnK8t~-gfYZ;5^UEj3=VAn{ z-ph9}Jlgz2J(zW~uNBW2F9TKx_|UPu9WLw-F=J2KBNj|-KGAHGg!Rebi!b zQfgb4$a79x=layUs8QyZjw+;nE$6}bU~%dUYyd*1l@uy~fvI4=E90p$^BA8EsyiJq zCC#usX^``y|7%-K@x7cJ5u~j}Q`nQztv~$i)D6z@`4F|QIVOU;v3Lsi#HM^h_85#I zi|0M|_+XbR3@!g(4iH~S7L{43;~ zkk=L|h0ol>{k!5*%JPN(ume1L`+G7oDQt1yjG|k?#xALy--cs?`c?AgZsH=Hwb>#i#2_-0~2^hF)DXalVxdX&6Y&rwCw}5(~Ep zw)2Gxq=}ZsI_l&=UB1O`iShS$T?x2Wg->VnYeXIZes%6l$KwK_Y@StHo-1&cme3ib zYDrX-`&Mdu6b5@dMtjLK=ACyx183hMlMk!ONQdjyrSlj(mX3FVd0Kwn5yy9!%)-9u z;}QEvDf15D74#3B^IB-!cm*z1UZC4P?~Y~@I@hr6HWggHiRq%*)KFAW*1)iAYQ}M- z570Bp;$A$J8saP;Bg32)+AP!ndhLTg24*2N7T+|#Zl^Fo-qr+wC_+)4mwgrm?yCk? zQuITq(O4#b=5xM06q;PLrG&l0137sL3dM>>6)z|~P$*L|zNntD_%vAzR-jkFH^#+X zCoy#com%p${t}WC*ltp9wm1x@%Xd4qNyt-u~!7N$MTl}^=Y zp?>tw07{+05ha$K#Qop}qw6zN10#A1jgG6g(I>r6qQ!TI-fd6|5Vf2bAVi1TRFpdlEb3mA$#_GdY^{CRz=Qto zSw1R#PBU?~>~FK%{Df>X%nt5^_d_oG66Ec~K0t7YI5g?^g_wN}GHL=Qo#?45?BCyc ztP)2~pd+@>|5kNLNjM#%q@$~S#M0T?M=(w#mawo|mmBHuSp|((otrxB?xFH21sn12 zO3A$VF#C6XH$OOP;mBBTl=wcDBFoLbSx42Ga6uw%^$4pjeWh(S_c*+myCU44C>RffO=qFoWG~wVk$*g3ngg#?YoV#y5k-#xUpsdwH`VY z)}kW&NZVZfHB8&&dxF!?v&g5vUOxPE>j?Xd03mTMr7Jc9Q1)?W^vCN297kB|Kg%j^ z72KVJc4{0LhdL&j|HP~64f64_Nmf6OWAqa?JdzToVK1(7-%*`$5|{653ita)hoifb zCv5t0An%BauZ?pAt|WK33}T}23i8Fk;?3-z2F#@5I}7O>aUk=!C?!Y7n}03%cg>a6 zTB(hWmy^N5LPXAZq3z{#{%w!gTUSJ&U%NUmxuR{<&}k>3q=_6S!+-LZ zNX(w`c`%E9=wfKpDb&dU!8f0F<>ZAO>zwd#m2)z@B0>zlzO<-h(%4btm-{r?tQJG~ z$1ENR=SABbx3h4oln?+*+&aykbXbM23r4nCzhj~(3zXbY5 zD`7RVc9w*+U}36SucWBxt7h|ChA`Y2J!3G~AYzRpr5edN6+N#yfo<}~+n8WsULDiX zu^Ifd2*>fVbym;QLMA!?6P8X|DiOI@Cif==HJZI zur0lZe)gUHRr?APHY|Nt`pdU>I^-$l3fC{KI^Pz|`pAzI0bj`(fT*TN>vU*;Po+;2 z5T?ApCxqn3cHWpC79=MRB;_8om!j^bx49!%Gp67x$ZFOoW6mCyabf(TMI zG-dYVJpW8#Aczf;O2*@Ro-srWHW~fH?mo2q4{gP=Nm$V~W!O-DP59Gvtp;c&-Hq@e@TCO;JulGU|N z{HF@_dr^VVKZc=@ji z3e#RtM4*QrF4!Y0gsDh`g(UWTFo^EX=_SFnJxg*@jW%Z`=B;=O*~!`jeU3ux(V;Iw z*q|8qrn`$$)1^88)m)b|^hxL-T$x>0QMn60pht@1{zCNEbsJG)>(8&W;l>36 z-!12-S`m{%q>ioX%H8Y_LkB11w(m2YAc`ocva;y6=Q3&*ewG z_Uo;noo4(il%oq2hR8}SAPmc6_bTl2(U};K&ORJrev?LF5)0QC zf*Db;q{7E&O%oT9k<_u8A_4YUcX?tMCCRIGu|hiA5@Hzi!2z<0^woziqi1W;(*Y~9 z2ubw09Mx>kHdh~}*INLvr(CIbUahNe3p^ho73%X&U>Fm*r|#J0k%ybg#J;)V)b&B- zL3T3FSnuQsCQP9!JuEwuM5pp@yxDtR4Am^ajv>Vj!0twwP+Y!KoPVV0L;9XTugquK zF{ip8+u5EI3DSf#m|9X+z!z@UjTnyo{Vv0_HLTdUJ*r{%^J2K)Mb+LRW^`r0Gegw> z`RnHUgt*cJMsbGfNG*07Y6>)#_@9tV0zdpH^G+h01qKu)n7Xul1L!i*FeY`2zO%@n zC9wULEz_Z0`l@U0iB0GsseIm<>T{yHSf;U`X1UQ%ZKo0<7_kU^OjWhZ_dT#+3aHW0 zby49+VC&1T28@CC4@jme_acj*7e8m9B&?hG+A$6{$HejJULFlk`SdL>85fDG;{6Ug zSpIP5gT7i^B+Z^L7KD}hcJLHr7Jq>3^$5+&AFsuONuNB$;LDE^8(?`B_;zea!YdnxG*06K7f(!jUxy9|Q6{4E#O zf4JZNP^EP&7jm5&h|iQ=;qK z_wej0Lby;-b4GGEa$8*h&15g>AI8gl2U}n}`=fF}x3w^h^{l;h{RtDhh(kea@p5qt8sCwKeLgf z-%X13Brnv39{H}~7DRcrM$Q?DLdZz#$+ax^=s^23&i%|Eezho9tmjdKDrG->q6* zWzqb6n!kN?AE;ovC9=1!eHc{U@RRHQ15+)=<_>gNG-C+~vCOPJ)R|X!fUg3!;J?!LLJZ;YyPJOMY!wN$}Ej zd%mop@#wBF_l@R5-vz|^T3=O|q^60Yce5R8r)#OtyPD9|hnUepF)u1)sb*Ha)C)sy zhn+ZOX43qJ8v{yo@Y~Xk&!gd!TCbOlCI>V$(c)kFmu<){On7Tq!wsJ~b3xQ*UynL?fy0Z-w8z{#At^HO58Bi_FGzBQV5$g+1OP-@E2ryhzr zvDPn+$A2dlmazAN&&ACyouk%aa%)+wf~pT|&3{`-m&X0sWWW>sel&4(!m9{EWM z79J4QSBuB=JmXM@k+J5VipQi>Yj5yi{%7sX{ug?$kvgnJWB36-+~zRvM_N8nmbnrR z6s0e&EAQIfs`<@sx7fnP&8${%wIpLl$VF$E_v&Y6bkfj$1}V0TD`FYl3TQ+WYk_VAa!~4j05=a#mF4Vm425^1uKVkBqPrQU@f_HtzJEmz%P? zGE?aRqk=@{sjnpCbBd?WKfGjDpHeG0pXkJpi;qG)uo8V=OUvY8PjR$D?=xeiqcSe0 z9!DoQUrZjTdr*i;;j>*RLGkE5DHRPnG&A_k*{l{6z9S7U)H*r#y4u(%o;M^5t$HbT z|7C<4@igJXM@IH;43qrhq{_w;Bl@J@XbiWGTh(Ng>Ks(eI6kxmv9mIU*A-blJU&l` z`x$N(V84}e_V$FcraWm4YJK)8Cy=GQLJFg>o

    yR=8uO9Vtbgwive?XI%c{PS8BDO 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

    )9>AQ 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 f|fii=Jk7n5k!@QTJoYZX| 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

    P4Ny@aQi^JqN`0E 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 J`AFpDe*#`?*;fDn literal 0 HcmV?d00001 diff --git a/docs/sources/operators-guide/visualizing-metrics/dashboards/overrides.md b/docs/sources/operators-guide/visualizing-metrics/dashboards/overrides/index.md similarity index 79% rename from docs/sources/operators-guide/visualizing-metrics/dashboards/overrides.md rename to docs/sources/operators-guide/visualizing-metrics/dashboards/overrides/index.md index e92cc26383..9e1737cc3b 100644 --- a/docs/sources/operators-guide/visualizing-metrics/dashboards/overrides.md +++ b/docs/sources/operators-guide/visualizing-metrics/dashboards/overrides/index.md @@ -13,4 +13,4 @@ The Overrides dashboard shows global limits and per-tenant overrides. The following example shows an Overrides dashboard from a demo cluster. -![Grafana Mimir overrides dashboard](../../../images/dashboards/mimir-overrides.png) +![Grafana Mimir overrides dashboard](mimir-overrides.png) diff --git a/docs/sources/operators-guide/visualizing-metrics/dashboards/overrides/mimir-overrides.png b/docs/sources/operators-guide/visualizing-metrics/dashboards/overrides/mimir-overrides.png new file mode 100644 index 0000000000000000000000000000000000000000..4ff2afa5ade6e4750551af348f52c6d0582b3677 GIT binary patch literal 23863 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

    C9);Ja2wtrDR6cZ&sFkm$%xK}I33 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

    h3J3K66lR@hG}GR;Eh~78T_M zuQ?owk?}$EfYLv4fhA`j>d18;pu?ZN%hyutj5+=$9T``$SE{sA(D8&C6Inv*uY+5n zK9$e4wrK+jR!=l zKM|=eE)%l*?Ae}->Iqnt$xKzkEHrQ(K-8k=eqh6$mW}H_e5fa*Y@}uDpr!1mefIPi zKy|`JT(Mw`M|vQ3Yfx(|s_n;STkH1g=aUVX2u8x(v=-7Z5)n2|$h+yy>*~Y1>2qtM z3Iqhu2w4Jj?Z51Zm@n8>t#>2vP^}y1-Wi`e%d2skCxsu~7Ymn~8!7eT<@LVB?gt8q z2C=7uE0;=V!VlIom0FlHT_oISv2 zJc8uT#BFO8Xey-tA7uS41#KJ7N)4PML3mP}*sBJ<+PB@qF zVMglWf+FTbpJ2gP|0l^eg7j4-!_`91a+M2l9z7D1L+$;f6mi0zt4EVPW%XLE6~bq6 zjO%~dm89UG;+e8jY4{>8*hhNHHSEj@M9C+J%s-Lk67VrIx^q`w?*@|Fo8bD(3U=0D z-IKg|-!~oNCeqgf^zZBxgH?OLp{=@O(vE)+U7vdV4IJgPMWm zQVygO{#O0n&XQwXdd8rbs_#o8(@6?uDTm3o&x8ma-<>V{(S59q&dRRxmD2WvOoyFi z`N!&A>xz%ZgLcmZ%2a%BQsHd)0(A*Wpz;I4%O@Wm{)lUcsT#ZsO;IJDwlD-t1GR1I ze_ilO+E;&+_{zsW_xnuaW-DsLNvdO|PvB^xXYBT7byBtR)}*Y)$>N3|0xUi=sxivi z%ek9gOQJzm=A&+O$5L019oc*8!R1eIeSjSoRCq89J-8ox!B?y)MLeY{)r*P|`%x^c zzh)yZ_P-cHd}i0w=Cj3z4y5<`HuA!XV&-WZ*OI4!_R=1})wj z3O4s|zb9?$a1W6c8!kK~Jg5kt{d$YWFG{j5^;*r5*Rb@#nw~aS{EMRUDjLW!>>=+e zHLA|U^$Gc!=0o_$xIBhmtJtG4>keOEL(>+n6^#(3b}UjJMsN`tt>>u=8f3ie(qNEG z^1CE%Q!s1cZ=h*+SkQt%xOz0O5K_Ohe|91Eu8u4~eU=&pOB#>*C0Tj{*xnP9g-iV` zB={-4p|DXw2DA6XaS_B_Dm|1tV?E}?AKk*w!$>b>yJLBz;KlDR;JjM+vaU6!cIW%_ z;c2W=?jU!@59gdg5@7!>8oIotEaBnALOq;Y|tiuIV>&*Y8{%&^6~9(R1K zx&JK#Gt zPeem$I{@6rpUaq9r2#;nh^|L)5&S1&m=3_6B~a_j+j(sK$$}6y#4$l{k>6)p}_OO9EIhC7dp> zR+yqf+O7qko$MwRrw1%7f{0VAwk8@nOi>jM0YW+m{lx^U49( zlX)Kx#Zv0%JpY4f#(2>sl2({O-2GJ^`0B69lX z9I7O$$CfrTL~&v*JJ!V*Dfl_>lhYS$hG!1%*n4RO!d#{iEoHSd#vteJ+oYdjYwoL{ zqpb39$NL!ai%Oes#E23egmF8S{8D$31??+Do5w_1*k~dmF74Jzs|Eo+IZ>*EM=xr+Qog6vqvI zId7EcqN~VjOvPxJskXuTX^Ou}>0Z0jpzL;-exmKuwXk}tcxN`T^_ShhEQZ9?%GE2 zRO2J%^5Qq{InUY$?E>q&JX~mP{kL+HX+Si0EgFyL<3H5rXsEsUDaUoL$Rhc<^wrB^ z`!gOM@we-`>uyma6pC%eKfwK8CU6s>F_v{%vN}sE(;kPpuJI$_B|;f^Nj|UBPlKgW4zU zY&eN&^KbY=ZXtZVzN41!dklovyo`3@8Wa;pjs@ETMG6zt<_qGO84^9(PhKTgt#bfU z>Dz{XU(qRK30iaC{tBsLc6@N7HxXfK!RnJ#aulXdv{*wwWMQ_+;PZ>kN%C%;J|ISP zgnsn5r=4GK+Z-R4c?{gtwv53Fh)%adE>_mBCEMLqYMZ(f0n`k{S??X--1CJ%AV0am z+dOr$g;iD*Ri~B&WxmZmx$7c@EQRxf~74ktF3|7^dF9#sb2J6L_+&=(+D#Atg;AHmY*vUHPC8G6>tdh$%}%KK@#` z$2fe>RDu;e9_VoX987TI7^hjW9G3??IpKR^676$+*D0LDoIJiChAwpeYba3Z(w0pzD|(HD_||t4OK;tX{mKvXmB~W_8yV|zq{YAK^qbza zGoh~Rf3}YvQx$|r%oXQD4iA2dB7BYbz=$2j_fQr0231P7xJS+rha_8^7Vxad-=+ec zRO4&_xUDj2`IfI*-q95c&^^&X4HI5*sx*ilh-s6Ae7A}Wl#;#W6QW>JVtl*)mn*Wu zpWQdRt(pP44c{!rKX>4$1r_M(b?;0aoIT3@#7NsM1Gg^loF@krKG`UD@-NK%XqPV- zwRnPWMbMQQAt1^}e!KdE&Vj+f0t}EqO6dc;0C+r6}7pC^CSu`4%ZF^7D`fkKADhWM=0DU2g%n!ealS;Uw8gx8m_ttq-R5bnIuQAz@M;l)L!48uI33>G4jZX`JWe6GQtI6iG=!;U` z0Z@M`g?pjWFfZNMkp_L_zSlO1zVxp{@iBxxSxuI!0ynfrT;1wduTB z8JbaA%)218{s``WF5uS#sjd9-v)%d8cp3{C(pWEt6C?jnv9WkHbBV zwY|;I_>bVU+NI!dCe?R){(Bqy9O3rFNGK$FG0=%NMEB|st}^?l+*gg`XRa<(hsO_o zl)o($^^VSw__=q`)3SyKYPV}gl7$AQ^eie6RAyD|!be^HEyAZZ8z)m%9Y#O#-q4>) zf!y8Q_j>}jQZsVub57y8#+q*9VVWUlHb7LY@oJS@t`kq_-m=M0v~!2{z*enSzz!QoKdqq zlX;?~2R)H*XxMK3xcr{IfEIr#^4Abzy6~)UNjgC^`WkHaN#C29s;*y8JXz33d=?`L z&p$c+KTm@TdD; zh5e5!&%)VO{cE@*?|_BjHLy?xBZdAi?RD5z4n%g}URXodhv8c7^<%`h`)u*+EPIJ)9$_i#L2eDR#;@tKS(WEz5DT zEc@K|N}q(dQr}KLO$VhXy;MbJtJfcy6Y|16|JFWr{c2_{5uEW!`}flMRaGG?cRTRC zd55m{qFT2t(FEi6qlY9{b+t!Xyk=WQI20%Wx>9HUn)R`A6*&TlEmbe6M=X zuaZGe@gT*?Gpx8-`_XcFObWD-pvIoh%jsW}%SNG!c^fwDAX`#c z9E108uS3$k-t3+Op}`ty5}o zjuT4cXo@BkED!)Fx%dl!QZQSV*zhZt=P@7utHH&`e@+5ho_{)0V79Ue|LORr7lzKi zC;z4P4nhq>rKs1Zy23>XKCePd-L$rygU=>=Tpd9)CZ5u| zu2Z&fH^UCMY#90eXB6-JXx}Yt;L!=Q(|Y%{vIqCrB|lb1_49+VgQ{=m3krzkTXqH{ zq9x&BpOvCkONEbu+BV7NsUJW=ChGg`c4eZs0}`*c&_j~y2Utw(N=7Ec>C0|5+sj#s zrO4tyqg+0pSbTvp^U^g{F%G@NMsGxh>UfAVGS9{FZw@QDG$#=rTs;zYJI8`N?+g}> zlMU}Plc)X2k8tz7mn#zBIP;s@4?2L1TcY^CdeF&1emg6e_wyduV9LL0h{0CSHR&Lf{xYh7n|S!<#hLx z1By#N@=M%sV@xZI2pZy2P|C|bpSCOJmo)yp;71QYzc8qfWr_8JdUebp9yq+u7`pxP zZx3USj&n~;fiS=j2RtV>hn6lSqDsqSo{<3X3V$!?{p~#&4U)VZ-vwEzzasI%H88-G zOOgBlk1(c#_rE6};&XD4SqVh5Vw6x_Rds#@fP1Qu{0PNU(?RQ3;==>U5~Wii{s8;p z%ylz>-|KIa0w8CLp09~t(;inbO|wSc1cqN&eY(Sj0i?}Ndz2_+zY@j+T#5qBOza*NO z(A)H|7$5=xRUV~xP$_sYw`a!Ii2fR-@~tort5Oga;cLu{9n&<`@v~}8J5FC*y0(aA zgPBQ)`Qq8>8GAG1L_=Lcmfo-MuRMbyfCQL%+vo0`(wKozT)Kp=QJ3*Ft!)vY0H9xb z^YQXg3Ghp=c?XNh6c^NU8?dBZ!poS_9o=|xQAEbj?lTq`z?&Zc8~qnBA+L$eed$Z{ z#ewB9HAFv;g$rZsdKx^fTKZ&|5+bU5eL&1Xe@m|d|}hHP|5WJ z{lB(n0d2%oD!T9<;ZPT(646B?4@XDoBRuG~Z7P@G+2H=OHtBEP2UO@e77R5fD!AQ^ z%VxfgjYm|_?N`G2X_ZKBy8_tnyJdd8UxmEe13V5t(};q!^55TgcE2=ZQ^yP}h#wje zPHKRT?%_eDNm@(MnH`jh=6_=hH(5*CP&crFCox}&Mho}HhJewCq~S#(=$ny`o$6L6 zGI4gWPA6Q%Dqn0^oDjT^`+ZkgKry1)H z)X>lUx4jt-N?iIfF2;!aq1Z3R3zA>5>iApiDy^FN4H%dcnyaXh-cqDQzi|j z#YBx-!AjpFp!{F;L+GTct!$~JuG%`^e?|wy-r^%50N~8l^IA`B%<%A;fWjv8ExQM} zTdrbai``@~pp4fo#_xt17_5x*m0};~5mZ!ddL}Rg0PZ9^sS*S5Aq?JcS#X6Ev6EBh z^Pa`0Q*~f!+EGn2OdtrrNNy@H8|%<0ke~eg^K10%QI?n(ZcL5fz>sccWZ;{frYFze z7)3dWi&APt2}~03+{BL{jM=RqhITYDHnAK5MYSNAHt_E?I|fDU6{qLFrzatlHVhpv z-)h&tjHDEA4gGRm)b_jRt?AUOZ{L!&WKu2TybgHy`DW(3qQ|)8#&4%0?rO0yRLSSJ z;(eAes=aQ)!>K!2h(NhP4s6`p`R99nzLZD`n-M)Yj-~i-njSL|!7$zAZ!<8PXPikkJOwpYM4{A~wqGmj97Kc`@ zZHyT3vCVOnhl#EbFS@ zBtral+pnRWgP~ry()-?Xa>kAaSp@nwiVTgc0N7IHFX}M{kwqnSC$7?2a zxgr^Kb)KCDGCMH&XOm$GpeT(~m})x8-2DPpIWZ{p2r5_dI-_gim%s4Vj zQYA8lw!#26%Pr^KBL%uHp}{aoYoArK(+;C&7aET$6_)~5BW~AGCZ<_upZ98=tEVR4 z(@C|8Uxf>p#+CxbuAt1{jAzC{Wf@1b&-SClxmQ-erz|{q)Ee+KI%v>7z!n&pSn&SN zujZbNiM+Gdbm@|acj+q&%)cTNb2<6;q#J>312jnTI(4$F-puzGR0~_sL_9*~tb|9N zcH9F5%WJelYp(#jaCbgQ|5+Wa{8B&J$H49ZKG zp#As`Ah7gUT<~8gGkT1rXN1WWi1p-yOb>L`==D<6i^a@8GW21_BYPEPk1DbIyjH?u zOEEV&rCSpDSMn~v=SaY%P(HBaU3{&ennDxXKTb*uJ^aORY4DQ|HYdC>W`+k&R$pxe zwu&zu$P!xkufkwJU7WxE(I9%6<^k=cLC^l=0F3&8`ec_>_~8F%*TN`1?O^vp0347S z0sK#lSnR65bSR(!Hs~@Qh157RlLEsuZJ8XQhee0Se?PE55_7?g$S-{2>eW9J!z;-5 z(_?*|>h-dP+7s5}|~l|L`Glq=DMY%8HNI zb(Xx*?kYRn3!th@*(eU^VD0Z56`UKW5J7{kp)eN#H@w zbqfmP74P@6U&ALS6d2K|L@0(__bodxgRBGx)OqWS3oyC|e=k<9` zoaFZJpdzGpu>n72h8I`L{1z_~LS4Fr4IZlB{ll=b&_FCh)RjQdVbndwk&hG`OL zxqQ#P>A_rS^=4ozn&rjh%mVR@M`Ppj90yItc))MDeRO3_Jx-P4ww^-wpekOu`eYfF zoce-v^0)m8fZLrQvxD3hX@WEbND~!mShIq(v4G>@V}U7fpa6ad_)3e+aRv;b0&@gR z>YYoYxN>=MutDeI{xI%=F;<5{adg;TX8uJ0dR;GneH-6jj66eqk}*|SFLceOPdx2F zMozhB6zMPJ2&quDkSODSiFoQOo7tQbJf^lXrPHUof};=IkcFUluWlCcfWiNrlgMYM z=e`fXqI?#R*cNy*gwzbiv{EW40x2SUV>h?Ntj-m3BgMlZxv!8iYSD%v#(}&0gSf%W zlNT?p&AMre3CFwW)*^KQ8LO}442`j-*4~!0s1q5LI3EAtO!C0|f+%(4_08X$#zEWd z*I)X7J%xV@YujJy5f8W2u-HrLGO&p3wW2Q$+9k##NF)Ob=eTH#>gN!G7k;&LKRd9( zfi=*WHx6FazY(gr{;gdjW70VLMOHJe8PPaHs`MVnO|#NFP0eIFart*yUB#z~7f1Z@ zrR{Vn-F!v_jO)hF{}(yc@58x5%y`hN_T+lE(}_%co}M(6?0o=qDNJX=TqF6^{>9nP zbVZqUunndEsijqsXJc;;^+<@Zf9_`IVp-&9v%)bAgNY1u`hB0;f=N6NG(PS+C}K8o z46swzJgM_+jY$FhvAabPR8Hn!J~zG`7)8QM=hJvg{U$1Q!(M-`ce4L-ILu*t)bTs2 zm)=1V^0-TS-c9eX9{8y(H~FYxrg{x%Xn+)y<*>W zqEQB?)1-DbZwnXv|Lst%$5>T8W{x!@Z;RktGEc0^gE zC@|+3`eOe~y2(Ozi@nroG==i!6|mMI`g`R^ef14pVy+NWw?)7n9+=`8)R2e;@C~h+ zr@qcnz>h_kFbFt}N4UPdW}eXocv0wjA66Z>vGV$=O$s#FpkCY|UKEFd+&K61RrKQr!;UMxQ{Ej(-njyv z>*YmW1r5uq=J;#plJ%GN>OL=QV+aEw+llu8k9}aM^N`}q2C3x zh$E)Fj$%hES2^}VNoUi%jlI#{v4O%htoZC^&o9WH`;R<*wVzV@VW3iaMAyXjfVJEf zi5Pa6)J2%goEDg?58pn^Yd+2k3vXVb{W}2RXgtK(!J{mDMen&Z5BmzWh;{$7f_ULE zekh^-hF``HB(?NZ1W14Nf<^!Aoky<$+rS22+}?9(DF5~0udQ61zOW>0a54#06#p*s zACm%Vs5htlG9}h|NBy2>IVa0G(6QDrNH{rqvjP8Zsq1?TzyZKKs8u_n!4Z0IZ{G2W z`j1l-GFQiq0usq&F5bXTp0|MTe(?^*0^PcJlOgW}U%v6cGFP$xyl*wBT)lW-fu8sG z)$CNn7MVjg4GY5G%Ekm0tIM!NYBI{*>}{h{B5O`<9r(#7!uJ#%N~|DrTOq*UCdK#i zrxx#(TjgZ79IWHmk&FPx!j?Sg= z5CLgFmz|g;UtN$;e>oq_Mln?#jkZ-=|9Sr^_5G0m>6-6WFTX6)ylD3n>k*`ZsS=s9rNO6dLK_I3-6wG*7AX5W#DR^e{soFkGnZiaYIdU0eyWT_6AmfaBCe; zWFcj?n!exhFz;8nx)vL`Fwyj!2TQ&JR;uuFrPx!O(O9d;M0Psl2`X-?&jp&x$&Grx z;-$WndKC8JRbQyEY8$D10X4)IRXch;XI|6xu})4agn`&uO1)ZoV<5~oQyq}PeT~@2 zh$;(%55aFUj=JIO_fvDEx=x9=UB-2}6C!Yb;n1tV^g#8LJ>;?7m$!L-YrjQ}7Di*$ z@2$>TFy}Xlt-K6d+VwWI$Zx)fjD!?`RN%KWXdqx;(Qhg-_O0Fp9**`bju9K{-`sVh zV(Nc`(6$p_*z44YfJfE%7QnyT;9yv@w;8X-+_<4|ta7xM=+f#f!}&}$F1SA-GDvx~ zYmf#Oe%vK!3_prB6{9d~)M__zi~p1WO~dIsU}jkA+bT3vTxt+xs{2wsV#GnCRNPS0 zT>}6C>%U%gDVuC1g9+LqmZ>ohOB1dgzS(2%S#6zv3)Knvpz2cv<=0Uj6g$_-*TJ{L zJe2H~Q56@5@toUrk$HNH+&kd%XhZ1kd#J{Kl@X(aPAJ$(bdGvDHyY=jbL*PW%eF%O zDa@9zFb~)q++7EM3KZpfgX7blFvH_$B49F+PS`d++QjbZ@7br_slifz$4l*w&{<993tGmTYc>WG}hA{{nDW zZ52vJJ`;-*x@8i7{7DuYpO)Z&i>BCg5Z!gcnOf#`uuN`5HX6TZIxv3gSc)NgrNZmVtky4ul5gxd0Eu z3#AS4uYp=5$u#+gZlULv@{90-i&lm#Yo^kNMlv@7mpzy5~p7UU7SEC62~g-iy#&^vh0UmD5^rxSf+&vDz)S)AWJX`27Of6i&%~nrMITlXwVp9X^#cVz}bj|55r2 zTU88|^7kr+K}|4JFw`tpGl3%7XDA+bOIVeY#&CmDdN>{H8TDH*6&q484W0Uf$I{-~3DlgBI!58fJEP+{kH{e=m1) zX8Ev7a}suY12_7H`0-o?kMDM8)JMrS5e1SEg-)|VQ*ftGoNJSU%$l`D?6b|R3j4@g{`)-iDl?VH5o=?wU z`S>XX@J!T{PZCt0>ff}tj5{h@s>FslFV;?y)brAGEp~oSvU!BZ5nCTmV74p z@qLBU&LCWENYM)y!{u!b_NK0J+0e;*uW@nlUef0?P_Vbm9Lv^uq}cIXB<)cybh(RB z`XOI=o``J~0l28|K}Lh)jk2|JyzzAXkqnMJv|hzmXxlm~UQ$}3*QOrb@#FqgzS}Q8 znTL&q4_3;JnAnN<$`h*q_df+W0$8F+qSAm9TaMqko@wuAuNHsMOdkGqYg?EmUz)!w zysrNzn_7Bw-sknDrylNacg*-dXr~HH;x=aMok7*atDx&gT&l-X7GOCBpo}P#!w3wI z3nznN7(eb<1dZA8Wm_nI1J4U)xpHfc_!oP;SPW-Kc&3{92p<@%nuV)i*{Q9_&X zCh(ouFP{VkIkgYm5J zQeUw^z?2IKSf0Fr8uJwppJ&g{X~jP`=3K&9)-B)}K$}ht@%OpYR6;S2-vyo#|E|6+yi7f(+5AjZkw9 z+ez3_+B@^9MLMnvRH>1|-0JzPb9hWnGwU9YiAm9 z0Q&!t_nu)*HC>}HsDMZl5Ron-y+lQNQ>jX|&>@I`bRs=;M2bjLs&tViAVhi#T|lWK zy#)f&OF|7bd^ENumojOm#YmJAvw zycpk;ZL*+*OoXoC?JrX7aeUYc3IkhiIgkrK^*`#$h7 zTGV{d#CO}AVtFR6M*j5_$Dv)jdb-@!@*gC8jkdh-sfM>t@5%E*3jwt&pU{G}i>~2L zYBWeH99DqPc-+Klw-A4Ze9tm(hU8cT8G@Xrm zW213^xy?S`siLu#t66P3B(oNtF`tv6KY=YUL|zf18`1(BKKs+}Jvw zu}A(F-35ui=(246g`+Nx?U4S)JWt(IM0iR%hZX62?r(QzeH_9Q zkEWBS{5|il@YYMvyy`Lha0XsO6we=mu{_(;f0JDj-eVy3{>P1+4fulqZUpyPpKD(T z*R>!~CqMfMJ`uoVUk-X_qh)18btcDonG228Q}5o$FjeEIEKm2f7l5ah-kXrpJ<9jF zIghHZB6;Gko8Gu?m5pBCzxO&y?qWMrkhtp=HLENABQu%}qL&b2ejfK;8#Hu|v(vmP zYWyYuP|$d3+AAtMyM|S~b9;dFp}nd#Z6SjGGGPtix;1t(QGkjEeD_LdvoiR&JHVuuQ@Mn)V!lV(G8qwa7S zFVRBUnP>;oBQ7Y<_T?Zhr_JES2Z&xoM7oR0_NRVwUTfG|)-^C9^8u{kdCn>5jhxM* zU%QAT@7Gk}o-tOOh5?bt-pW-I!=*OQ3lm{~F;b8+^|?;BD!RJIh6Aof%Cuj2tO7ji zLZm_ie*jOvf4==v+{$(zc>Gt(5p@wp2xg=ay>{!Ufe{D@iVLgiXK-WqdtcJi4^BQb zC5Bq7jOeYL1sgqaS6*TUM#K6lbrSJM`z)W&1HAn$Yy&vq$MK;BH1}mfuy;hh0D9(Q zv(zR54o_!eSQsCQrv~u!U$&p;0i<+@hrU;!*58KpqRxPX_~4nVk~kbUR|x?U42a1_ zRr&h1M;8EuNESsM0HaI94;My!wNMa{XP>e944%N42+8m8@d&Ih=bO%EH{oC)!SmUx z>yP6EC+*C~8mSsKypS^@05i+$RzkpozUy|Eo&%|2aI)_fK)v`~4zczDF8mN7F z*Fk`LgeeCgO4XZyD2@*&S#UAUz%+_edk_*=A!T}} z4OA@LF9Em!5PxTUi`29JHhdh_s*p=UUS2>i(|x1k3#nXr(|KIaW2^#LQ^9OFWe!a& zn&n#NCgMum`mgvBdie|S25EnYHg`o??cWO^r8vu&{#jd}5>@BiIy@V3FGW&djNS~p z9_EE}e$s)j{K1$t-!*IZ58muefx(0khtw;`!kt<;%SU|fzjkx+LU>mIzyAO1tuvR*9oLCn}k|&7aF%cnwP#+v^M8qI`4lNlhI&EJ-Kht<~tuwfj zc74R!WNCcBuh}h=TkTE~M^=uInhk^w_yXG6Pp}v$>n`R;tVsXcvUlI*JmJ}1*3-1G z6Qvm=+tSPptH+SA-GnAvQ+K<8_I_qfxa7H?)o;?Fy_8t<*_VL49&a);yv#wBWjqkgc^oAeGW?4Wagxj8 zk+UCT3;3-0Pv9{UJzcOnDb8oV(Sg0m0Q;{-0$EzVxeYi?`(uYx2Nm8gMK<>3a4uc@ z$E8JNPqz|9wJ? zcP@z`pcY8cn>!3}5;xhmMThTvutbJO{)7(i-J89vfY$=V=LGOR?6Z9l7;OyQ!u#p3 zJ~N=Rw)-UmfRkIII;?WIh;~z6d5FVhHY^W7UEOa3K?v~4Y)b_kBZC90@&aI!S>Ino z_&`bm<|7)>`I0T*IWG>J2+W;tVZ|w_Czk37U5@%a@4g?ovWsI2o@vgE z5Bdk)CkHSf4)fQoyf5Hd-eWh8bQ^GTyDC4P#f?{*PhK(E{2CV4vCacNi%T58>OD60 zfd{el+LI62NpUS*aBuXE9MBRMBnG5`U$z5q@4db$KtVtkKKvlHI`1P`$HZ*{L=nFb z=I~zlNSWhx;?znYJPHFb-zPaj$|@;gr9+flx5=%(n#dk}vw@DwO6yNb@hLn#JCT84 zJ;}}`)FK4SoJm`IiZ)|XY0p~1Y_kvb>>nj)$m51daVTA1Ksr*>&!)IMn zK8{qtWX1Y&@n^-qt;6sUxVE>>TB|sD(R0dXgNcByP866ExPy);pAnoON6iV05z5nr}0hxHR&cA|8wUd5w zkngMJrH?MJ3SieFM6j`bTgSfCgda8r24f=@kK9knm=Ro%gx%%;b}DlUj59H=x{+50 zIg6<9WT#}N4W5*LJftSyqqMu6e$tJoZdGtya5NHrKQ-+#{et0~pi=?4lcPd#!5Nk} z&?Y|PCvSB6uPX7ao{1FVF`fv#sOkzYODYd-yP_*Lw))uK?3szT)lacfsvXlxRDE9Z zz?!^!j7-8wB7e&?TF#HE9VO=2v!Cv~=d*CM;3a#saAON&u?%;zW`MC8NDI9(UA)sT$L4#Cfwo?l_HjP=ycp7;*Zjl33gNmpkV-hIRR5l9ujH&OHX(IZ=i~FP#tilMbOJ1 zkM(e!!>8*=0eY9$GoxUHa5MpMWXzTGGC?qR0=xuaemI>2#CjSCz);-3%*nq7V5k8k z{T|+j%%|cS5`v-cd(B4sfd?g3R!CV-=vhGACFwSjp7-bBbaOprPcD>6XcF=ffY@Gf z&XN(pE~_-2V};AG%7{=ySri97w08y&S}UXOFd*Kb^bS9^&Gk2@Enc2en{FDPP47)e zB7rBDgo-9aABNqJa(BP*;S5@6VtPD;i~vM-{plGh1Z%qqKuUi}!OigM53WJi2plnz zS7e6t!08q^Vkt6=C|O}@=;Xdafqi$!V}3URe2)z&G6D$CTYpmNDo$ zkyburprYP&Uy#dn?yCS*DYK({JV!tX%d9rfx^U9GHV;BrvaR54>!H;_Pk=I8i7GgKv!!hqZWM161|8(xbJJSHD5KH}Z&O-d@~3 zaI!vHfacF~MDFIISoOfGQNGePnNHV5Hq(kpD^IVM#py9n9d%yK3&9ueV zp>`+8G%7u*48)Os8~~s!Wq=+oi}wgzS<#9~&A&cb^;l&~Wsc5>TlvXMTgP`|Pt&wg zkdovgX?p)%9w>$8$G0~wyw3cfaDmj~QE}Nh=;)Cz@6W)>aoE(m4(|jU!Yf&$lpYdz zj3P=8env;54*{qARZ+v->MYTev@2^XfynrTL)xS zTqE++*NC_nitT1;OOtSyAGET$uSPUQuB4uN&Rv}6WIeNv=-mKZ#~{0ccb~NS%);PQ zul^AiHca$GeBC3|MMu1iIVaWh)HVLR3sCiVQ8U3Q2bvaeS*$SS*$4W0@xy1ac*h*+ z-T32~H&5}0LW=GVU9PVtPLu?a(>e6Li;ZM=afLJR-z7qz5aurrv;n0vkw*7UOHQQd z-z8uW?g%0PdODmCeqQ{v#6JCv^BkJ-11qKS9Rk?m6N4rigRJSv=?8F$o|`pXVe?0F z(j6rzr<1(p(1)&IZ65(BMe!3Z zHg|jZJBT~zNb~v2&+T4Jjx8>6drrql?)C+D0Vl85Z&v63nkb+DH8j2x{8?Len3_Jd zhpU6HAHyg2AyC~mkB;t9fkjz#bhn$f#52D3Y9`D+0V2?5O8tpe4k&hSk-_59_1Z!u zvXrD!e%3sU{m|~@CO=6@S5QEr%7PnTRPrw?h)_09Z&f^X8qDs#OU2eNp1!Ut4^33{ z9M?)R1Wft_PmaRwh7rT%tCP96YDGs3&L|&z8q)7GI`SHO%Czywxu{l&YxP5c46HU% z#M~ow4RQ7^+Qw^;?QKg=dD)u_(70Qlvkq9hl)xv49<&tV}^Mw>A{ZvVh@G*fj3KKnuuO~h<{li-;Xy7N< zadPn&gVmCyWt}Fb$K(dv)7|IaR<7}Ns@p#NUU8Ec(dSK<+M!N zR)sDJZ0IN7^0Wn@t+;fzJ6}K9j zb|f3|-Xl9xL|bT+)t=48?;B%DQmVroD`YFl73CIN45+0%UgseRi2pvfA@g!7Y}qHb z!!e3}T0K@(LMv`rhS#3G-SRS?r`r%C3)sr}^1-v^T|}=E(K@dzuYW1ED(9%Z1PYQI@4qr+6h}552_e;0nKcZhrbuN4L?{PFF9f<6?lha|rPo=zxToWwmv_Q#{*! zOS5s9cTulVM;-9p9!}3!u??lHlN_*!xb;FH8gHRX;tlY;4fgDGQ0InZ$H+jN2!Tk9 z8_T&zCLvquuZxR8stOerk&Ft@5AoGnH)!*KW%s*o{4zUJX4XIn@NtXdsn~W0hWttT zmavtC?tQ!A>bfn!dAQJA88j0P0pY};EJ|k^l9OIU-Eo;CC&3knOL)&n+f$=EIT6)% z!&=E&jD+kNyrGX($g`=bc`qp|>d?}a6FTNSRN?brdz-CbeAz8Q<+J&4i2)Nkt8JFH zM_yd}ZXW-J7B(@p`2LHQY@=Y_`}OIU>@?4WNCq&0~3JS8E$U)5$3u0%?E0$3F6-m zvmKBkA%$K18pO6EUB00)aFgZB2>;P@DHrDn4mmY8ee(=~cLGS{p@aYq0)PksfE-sm z4?NZYPX9m>5j2w#0H^^Vz6dY@^dJZX7L4)eG;H6(u3!-6fO{_6G>4S{ImizeoSSh= z*9;d~qXV-ciS9sM$xu`?r5CcRHN$UJ6FgOcqT)mS^2O+bG#RKPmSrj*`v@Zz>t%{~ zOdrbH=|Vcc?pgp8sOS+=HjW||Ghu~j1Z_6O@w0mopD)(0RHJ1Z$O+D)ur0NEQkgu$ z**q8@s~2&ErpO*|gSO=nLMtoCoG0l)l&{=|JFMm}E8xOJCWcNJNX?!5p`@8yKpFoK41 zZnGb)@wynSE)If^#}g7DWqw7)$Xtp#^FT3O@6jbM`_fxK)}AO$SS%lE*TwkdnU3Eg zxC#&PBUGHVjCl50@gZ?gL57kz-Q3F;-h1DCgynu?=}--}e}*pm=z=I443`{0^Q}d! zmju6?3c~E;bP=_w>ZD;p7XjzHLO@Oqb8;_>{7yu`(Lx3wKQ$K(__UaaqxZ)?cnji; zM-LeDw;kzm!0GG@kVd;R1gjm)KV;zZU$oB~XS|rZZa| zHzZWk{OJa93{f-L;b>RE2@wQe!sFMn9!k>jPI`f`u+RR3oJLy-iF_Bqcc@Co zV8{lfP*3piuX@Q3RfoTnXIAW>y{}tU`3hE-tz5?}-wOi$Na|+74=RdH5Kmgh*_VHP zW<)UD1kHI+*Iy6L{%jX5CR-<3CCE2}17Kfqsf%Qg%Y z`ZyOJjz<~2+SI{J`?0=ue2x>o zcnm2%%<)e1r-=6#f{O^5=EGw#h;E+P4%qNr;(d}kP>S;~3~f3i*tUE0O|T9Z3-F%x zuSfFLjEJ!8M{YyU*&?M<207K_fWYZO`qb$?Q0&T&Qc6iR)dlra`J-8#p({p@blzYF zl?8VxgTCVsO3rqJO`+aX*bU z;iXZI8cNW@Y)if#UE3(ccA`O%&@yn~^r!SEX3RPv-7VtE4DCPA9f`ITALCbB_CfYh zmqdA$MQ6WwoJWyiJ48+^l0Z7UMcLmrZ_3=d|W6sfv;j#-)@Kkvzb zt>MsdUfc&u?obueTS>g)Hb`Na-s`iglAkG)Lma`2Xv(?da0P)Sg=_KYdYXI>TWU%Rgkm~RijiK7=!J(?>!CuK4WN=WvG`mE+FdP zfX)vnX>x(T9JnkQaowi7f9}{uo+kdRT%PY>%c12aY_+PAh-xS3DqX37!fYUBkR|tO zX|W?8ZImYcXEzp`_k$BV(rcuMB$MNNY^qrt^3-cj*sDsSN@GOU3`}-?Dioga+a9oq zH8o(pkP9crHOW)Hhtjb|;4gMQjAWhPwR)AfWQRG&Ytp1WHv2U-Pml}u*Iam_HNJ|% zjAf;wE)eSuaAM2XdMnBclG5T>(t=>Q!hsmNxJ~AJKQbHicAu$Vzm;b!(_!2w5owCG za;35EG)F#pBxBj3Xzeh_XYqZaU-*55ni9p}#BxTDUv!_9icE7t?&S+)^f~b{-?gk3 z7C81R5SCWlqvuu;)vGs8j3$BwNPEGW<41Sbcy&~K-VADA?6p%U=UMannlM(g&UW*C z84zYSh77K2KnWY4rfD$&>C~(cm{xDZr~jU9|7PYtGwi>`>|Yq>3-b7(m4mgrSGkvt zKB}B95s1}huM|u8)L}^j``X0WwZigwJ4JbZ+=Lq?45z@9i1{@X)z#_oSywvIF4obndD5}RpVV2{zeE49s zdtoU3ob>bTV3-oK{hE+kZALeEW)i+i;tb+r>b7A|8;uiv0)m zGdFK3sbBi=@$L5;ljpL^rXMmFzoxlfg3jS_jD2$NnOtd-z1U=TK3fJ`#+2Fmc+;@I z<;*VgieAnW#t(1FCw%xfsuW-SE>9L`j_&?@Jz#3QKzbDQ+(0^n`FpeR70>$a<&ywli zGHNs4h(N>Nb<=;bD$sBdz(b%b1}|VY48)NWBtvcUM*{7Lc;NY1NsW$1*5M3}f(Q#D z^1iK0SM{R@AlB{AIK0Cy&~%jU!hzQszeK^s`AmTON)cc?Y{UgC?P*Bu3qC@QC~Qu;+gwQM3T3*%0TfFK;;S>$A-zA+tU>@aoF6wv5Z_|ZJh z-oONp*8oubzbNo;rT%lCI#mWY{ITIsqx*XK;9J3KW|@7FZaB(G7f{m(Z|H8Zm+L{? zmSvV7pYTm!!Fmz=7daWM^rAjsvGcHXv;)_AbwV$u!1=hYMdn&vMr{wvA6@EtK~;e-4l;$Rqh1dm`Xd*! z%j@wLt3!5&Yk25hBNBtZB7J9DIq5Z{{auKe7EGWEg0Iz+k)jgF#3nn3uf@zQJNZGb zOQa>PIips3D(Bt+f-A#4TMm2nk&{}MqH!^6?+3N1^8^&7oDi>2?jJ);ak6eE+y3X0 z4j1YF`|k7)?fxJ5@Qc=FDN)8XD{eqJkj`eNrSuN9F2D%_D=m<9F_-k2or)+Nq_2$S zUxIvnaBWVZ1_UIvi(p#hT6k!nyf!yHqj`NbA`?A^`8O|BfQEP}c*?t{qH|WsL80OF zoR)OW-U9@HO{Hfd4w1$T)E;`5B>sA=0+fXI8t|2PALuMjtzITSC<%1?6tPd_ouq}w z-TB~?`xQnTdIZy&pNQnz4fWr+{n7~1MW7U@THr^(uY#ac&;2ip-WNN~E9p*7;u719 zQgb~Gh;So!Azk^3*VPhuf7?9i^~kf0MC_z6Y~5fJWG#CtVH3GD$x-6rmrb? zTJF)``Ox_`iuFWY-)na{X@2K+N~XJvW!tC4+odU;EZ~#an6(u+wmyK^Wu!^*!*B>T})ialq z*VVTBJswJ{tI6?@p;)j2_b%P!lT;U6a0(fgn=?n+zFXmNf=x*r$|o=(Dm#@HyhSWe z4h7ky7qUksJcpg1tBq@3L!~8}L?)SeVqV8uD(Q5=l)G=jy$0qZK+1yhsP&DhSgg2L zq(KN?0w0+jvnMV|20e3>Fu#uPyoYS5%3hnTCcm!3Sz?A3-}gyu&WB7(fVzA7YSXsb z%+u8>%_Y{EXKNQq&1-2DW>+>A-XmnN|69mKZRKh!=%Ei4((su}y=PQyf-G(8=PGmE ziiD+_vK9aMn>na+I4Uiae&$@?p68K7j(b#t$86`r&L6d2M`9LhqXo7}!~HKJcXtM& z9`;$=Na!M8iwVuO~<=C<`HsM4+DzK0w&IV9`D zPPVKRx3Hw^GGV6kcF{uDd)vcnY>(y>GUox&LwZhHDOs3IqLR#@m`~lw;K-y*56m8< zqjBH#_#ezB9OW_&@N!eNxyyc|cehc714*K!{-jD=c%d^Wd57vs8s4MAvnyKUWJOPX z#8F)NW6p5q{1t?Z%~o4NW_*S_fc=4Aii|SFU$(ox_ko2wtAEM0jXF3M$dQC0=pU5G!DeuiH;Lzh?Al5H*Z}}E`ds#6+?t> zRV9_lYw5(8^iANyl5BJc!~N0iQbmaH`sE|3BlUrGO#Q@#pvbju%D<_K#(Uduu_rez z=a=iFEN2B7eb<5tBEPL}h#XqFGt|XoVydiE&@vf8Umc~A&41vUd`MBQ4E*{bMpATZ zr^`O1ug$yn+>bQ9_S7!Y=To727Cx4n`+Y@M{ zgnarUn;v8PgIq_~!eV42Dt17EWJ=cZ)R~k8KHL(^GlsoJGn=6z#BnUzh1p zlRKR7nG~NPIuBdu*E}Oj5iB;>_O;M>xVdvCYUkTp$ z0(&+MlX>uu99 z-SU>ftXJ->8uldqugoeF_2T5cCQv4f^qAl zSAJ*wMUV7^=zJO*J^1k3P@3m}1h6zXkNVysh5baMLAJ2JXC#?5Sv}zFSAa!dUe$!} zlK1!vD_X#Hpfbv~!IfeU^Q|=pC}GFf7W8+>*@7|0`?ev&vZZDwOpH=aIlF_YBVy z5ZL_Gv4R3)rp<9%i~u(L5*xR{h(mCS4LI2He+~2JB1OGFdZR<&FU)}8Ol*@o<>g`* z+Lt>t)5`pr_Am)|%*MLn_mu;sHY3Cr4ZXFJ;^jcSWR%#DY0#}8F289Q1OZ=O680W>wlgeZ4$au-Vk z7hFJhb`qb$Rerc*cr+-^9;edY401h({IAmH;t8=>Q_~X|raskP>2q zN}!X1A3w_k`-!k`t_HCnHgDi|=DbS0;I`J4wFq>5jEoc>^PM8209NAWw<@BG9o8bvyY$js#rw?tz^BrKF!zrRIz066+$QihL9Q)FGNc~y+#vAx10*=L z{Xd)sm`8A~@V|ojgJ^M{q@id?m{9fA!nVpz4?6zFltSZf)kv_a(M*Ymk*EMXgA$$= z8F^92F|>2&#b_1!*-lyDi%?agieS~|PU3dX>1cEbPt{jWAyQz|=hZAtLe+J+-HS$C zJ**jk3%x{_G&uqTXuwbLV7m%*@Iu?@bozIH0cNSR1XCkXV&j_81VJI;J*1#UPx2Bq zYQ$Ic?Yq4irX!NN)rxXDvF8bnMqZ5T(hms?A%Lw#!MTU(=_snOsiX;0ewC|U%l zo{ba*9ITY6Bh3l76os=_XINLp_ZwtLu^NvK*Zfj?{;}*zkN@s*%{xJ#GfUBNZXCt= z9vbD8+gaho5~LVC6VrxJuP8`zjhi-D#0Lsd%Ip{{+ot-~&~|MNb9=bW|ESnL2Wxl% zRkcc_o;xMfdAOm`98Nj)1m$VnwU?I*qM77jB3s_w7KWQ;%RQfaGXx@ut2B~-u3wQY za8cHsLrqYb6ji9E_AJuQ+?HFnoN};T zc|eukymG0YoFkAvlcq${G3fU7>^7o>ZtFtk=r!9KDbtic@;fu zZ{k~ZHfk{28M%1ZngwAsmi0>}mruw5i{V?DmXPK1F}UVgy3`^y3udAEW~i=elz#z* zTJ}&2sswpj-+mzp?3k{$H@CiZ<99c%v&{z4^_BA`Iz|w=dL8&gi4|IhlnB*nL-wJG zbfXXM-v}3NYOvt}uf%p2^k>&@JX$PqP&5cbQU=mSi(e^+Ne^W3dMrq27qiRR8VtsT zV4&9|V-5QZc;RFn0T1cGhaO<3_$WZ^sq8wo^03gVZ}Q_m-MVT*5G#zQx?jr6<6U{Y z^3l!~QRyA77Pb2H3WYZmQ#kegsL`(BnzH*Pq!V$|yOU|y zDH|<@*dD`wr&l) zeR^N~Vk<<9S!&AEN4n|}X`y}Qrnf~SGg%6rmZOm|JIe1OqGQnUV&#G^aDbLTM=(Z^ zjiaAK>I%-SGOUi)lqzqD#d`_I=>dPYV1cF>9$_L4;6LkjZDHN^-Ol+lI$W~1Qex1@ zBiW;}p$&e(hsO-ILUctceOBzHGix(k?Vp4|^+W@5`XLGHzTSMH*v^tYFuxs6Jl`ps z_nvUM25&jK+G&r@_HWzYD1-Z^r)G^0*P;_y)_)K$M7KSw=Ys>mWuGf?GV|P;g|#So zoE@OsIvMNeVc0y@<#hD@+0pT=q0`6(fYjtLX&2zb525$ZEM`U|-;XsH@F%$*sCpf*KqT?0jXK2PI13RE>wYZLBX}d=W38 z&j)VhpBB(Bc>+Jv6V0jGYRhwa|J@jT4FLYLPr)gYH@c1bCFXfh3dPeq9`l=Ft#bf{ z)_?S&gZY=5e}A-bL0mOnfDV>%{`7v@$oS?zfnRVv`M`vh-=ni<=uWwmr#`)(Hi}&O zPoOETr}l3V{+;!I$klnwk65zt%fl|5z}~X(I|?6WkCZ&+$vefS&Wo5CnLu}q9xV@d zF3fcGi;@LLpK1w_H6tT;srYuHNw;(;w0`1wlNQaXqLQD$Lx`_=k}*YuVX(gJA8#8L zX+R8b#KxY=#6^c1D1P179MsktmN*uoY|BL7u2d;><-vnfrMYiJx_|M-KAd~7Bv)U3dHi zklf%$P@H1{*6~}^dftgimS0Lul&<+PzUSTES>RVdF*mm`*C9r&OcrzxavOy6sQ5ST z5P6TASW{=7VI7nD+5^So^}R~DdKtq|k~lxGo_>lAobmD&*(nc`{aU{D#=d%N9gmO? zzACUEb~(@^BE+?sI=(&qS_n&)|Nbweq1?(K3;9Go%i%c_8#Z6@ec#zbIZVBQz$J&< zK>V1TGL2#ladOx(5RGkM?k>`l&G*@xGam?X@>`YLLQPpyT5vS{_7oXPPG4z#nP{K2 z;#eOBr&_GVHHx7Cn2nJG=eP)=s6Y)7dxAS3HEDF6=GOQk5FKBSorszg}n--s>y8y*=iUn828 z+zgTgb#qN7{}YA_omG>G*U+*GM@PHc4ShhcTK~3is}!Q?sH7x%YNP^)V3dF!E*JUb zLb>^k33`$E%lUQm+XWd zD^oY*SA(aB8YM0<)y=B&A@mv$CP`8KAq%sJJNw@}ea*IXM}(PW8UmijdFpw! z&~_<3Ilmh&aF5E85{nEFvg&67^g3kqO=_*5WfL&>iFG=$y>b6YbF)NGj-{x_V(LZ1 z*p&yJ0lF=CSNtgjuqQ~F$_N&x-Z1vwMoR5Sl~Ret+nNOb0wiGmBSFN@%5nC-xDON? zvTAvFA!G*U90vt}7*zj{x<)b!E*+$2xLp681mt-myD558L}E2g^R}2Z&qBzxcrJ=; z+TZgmV+TIygEL&No{qUMpD20xra{$H9+uzPRtQW%LXmCuC#)CVe^Lk+5S43q<#kHu zh}ICBAvbsfKkJ=;Bu&l)!q261N7y zO?NIlz$#=*x4+k) zl`2M7o>}F*0Gn!X_3nhcO<&s+bYHbYSe>BZtU$(OCGT|LL(Fr`9UKg&v3POU-rU%G zg$RO;N!vQK_aubz*O3YHN^v0A7Ef+lFC^v`k|itez!IV=5k0+bvNVvxp81GjX=zvp zFzb=DlqA2Y+*heCNLOa|;}?oJo-GY4ACBm>PZOy$v+VWb@YPcvW!ONk8m4otdDlmusjZAMKPZ?ANRL#(7GiXet#?i` zbLIV&tP4{Gc}6x{pQ}ZsRD)`BW88YAL+yA-rPvDXjhLD2Fvi@m0U_c53>r#m8KsXR(K?4dn<;#QgWXzn{5rE-Fm??Q_Brt z#U$k>YAyy@u(TI-7*C|ip6ux%PMJFym1s!kDiMt|kyh_{8=U<_H6Lc|+Wq0~$bs$3 zGUK_+B15ko?!0q=Kct-zBJKiTys_lf6!DdQw*EWUYJ^yQ=y!yt*%8xGCc^o7PhukF zKu~kiWw~^+jxGtyoMYeg1v25FkDLY-#qst#x)kdibIY$9j*5i9kA~YdL?~~kdX%8Q zd5M+AB@%D-zaSItB(tSGxMd!rStHyrHtG2>`OB#Cj7X15jvW^1!BD24T6T1+%&wqe zww#UET|%tlW3QH;7sJu7vC8k3-Pyo*=W44HCCcLxhhhc0ya!@d3`gyrf3m9@S975i z-B*DRsMVTnQT29y;57I+myp4EQavP#X1iw<8gKGC{v3!XGTtA!<>0`aO{(Ze(*VTk zK5+NP-JV?lI#`k7`vHJ+Ag#Y}D^ffh7-m2N|5pbhN_@W@e8)R~@twip!6Eohg0-pB zYl?%ZeaUxK%M?06@}0(Hh$7F+#_snj5J9*BCc*Kwm*M3_K?mj@X9^6=tsxS1jc`${Q{CSq3sn)RR&^TQ>g*k4& zH2nhNVF0knhyXZp-<`_NCH=a7nC8YbjZ zDsim$HsX)~7&R1td8c6{f0wnrsg~z3WWD1tOUboNT2pimhLGSQ+>i>fgQe>=9Bpu@ zmlMc-YLfn0p~wm{U}0IiV^`>`EFiu+QzfIz=GcV#gw6ZN08Ck+IZacoDSmLO7u@-*sC%8k-u&3j?_L~2 z(DaTYdwCgZIMXhU4MD8LsIz{d2MO0);lkWOuSfsjN3jL^?V6S;E{KTT2nq1LrV1?8 zr8yFd#FL(_=UKO1p1et`6xe4fz&^PJ64^*8c`d z18lbc?uxrNrd>c7=n_kY7BLRF*0_of7pqs=HjQid@+~r#>YzRAzqQ3luTI}$r-PkRve_{c;%Yvz|!Mt*G~-}AQ+;C1I#p$odW@pK=Y?Ogk)|~ zrMUQ~iUZ>+GZTpOh*yvHw*yxrrZ&^pMpNE-A@8HYY2o7)U-K&KvYE;qKGyToX+~y+ z*2iLA=MjFHIko}QlXX+?cZr(3)P~{?@;^x}V)fR?iZj-a0G@%)&5%iHi)wvtecZzC$lc;2%g?n752k&phPDqs%P!7F^rA;XC*Bv4V)7Z=Cf{Kc z(2+|Z8Q-D0#ve4b)cLpFMH2j+C-dm_X_k`Qg!KvUrjI5fUyV8|Aq4liv2R$kALgAS zTP0jeR2PftwDE4JNO+>yns87(Q=W@5zf06V8BQdT$=dNI z$;7FpW%J2o44v2NRp>D{=9dj#_!sMn*)B4hiazMnH0N@K@4TBp=ndQ(V@Yk2G27d%s zzS-^Uu$S3Ca6kP8$Ec4+$+wIj0eWz*!5>}uAGnN^m6~knjlDKTqoO0j?Wl%9wrxFV>c&GbulBpCK_3b83cn$Gq4J&dfG`%Z%U!Ny zXEi!#v$s*o7~zcV9`z`^zfG5r$3=M9NZPWRXfGhbiX8@-K;sq3Zb= ziQ0G7t0G;RRxZm3%c|4B3q{xWmy3g^3wg?)+;C5bB$-N&m*c+vVcy}_WV~e#mqx8l zcYM~i&Gl7hymq%k+ht0ceJE>>NcrZ^yI>I=l;)sgjt*J>$c*PJy&Aab4Q<@M864E{t7bB zG|LTe&)?9IKVZOK4{Opc@Y0T$MZUvy$siJ!oAi{;?w8%1a}W`jda+zxtcMq*9Pq4L z(A3PPk6)eyFrjz-cf0y;d9|^rrhJi6x9yznzPyV`DtL7_HxK7oW|*MpYU`nY52Kpt z2zuZT{HELyUKv@hFrLW8HTL@?kag|7d4rvu?w@K$3l>wqGzt$@`D)q?Q}>ef+vS%61y*`-<~*`)e9%|rO^3I0!S5}j zJ%i~xTagd6OV+is+g@>?5~pPzr-sH+3OF(;Ws_|+kb^pt7j-$MF0TOjkp=FS;8L)IFYC5v|?%viG!&2n7;_PQ?W@97=fQ%83ad1H0JsVsEx0&sP0Z z^!TDvK|ii1LKj)bb7geI(4b)h_y?etP<+7;o~MqlXA~Z&&}wB}y(;o9YeG;u$QwZwc&pyPX{EYxzKrseLLtbL+Aj zs5o1YI{SiOe^rY$8je;@v_O0g4%U1$PlC7Fo%YAG%|7m$l$*j2x@p6910ZYpVC4m#!>WVQB| zn0DyHh0DZ|6ddhNGV+jtg)-Tlh}%guFj0%05N!?>bp)4k3)e&Ks89ptA*8z7L2L2E z96MUcWDYfDglNu%qu7p{)J{;k(xQHcOA=|->eKcx1v5&)M^M8jAoI;eCQBACTO@YN z?;N&;r24S7zomDlYueu9qhrYKt(L<8E-JX=ke@>X0+Z0R;Nt>WpTSNpAs0NKqbsEQ zs^q;Akv?~0NWgUMH?P*XMQAupyOR6szQkSh@C*1W`Yg=sj?1(*{vrZFn+h6n7r*59 zm%}#+z(n{9&4<4pP{Jb#`|!hY2&Rc(XYkkJbrNtp0hA7Z{XrmsmLygn0q<-!9d^Gm zgJ}=P-%8v(8S%9%D=lc5sN{r4+|Z6i51q;1(c8%pANFWBUz30;Pf3`p3@$x58b#8c zofV$17ev|z=6wvTWYj8bw-F;NeH>JvnbSQC_A1C|7%HHm@09D^4tjz7R1N8`WISkM z!WdG_`P<0o)G~OK8N7$D9>10$gXpr0NnZA>l^;pxP4Y(P8wXSlnUyEc7&&+@#V?JO zq7iUIX)$SWC-K0hF8vrPaJeda$n$fb4a@##95}wfvihJMO^AaOSi(sd3oB%A#wJTx zx9whsj|N?UD|_A(cc~E_DBejzjoj_7MAjF2Amdy3Ypgzc0V~$1LBm4K*aP34nXeVE zY_~|mtCrl@5MJz;94^s^kd*qglROWpI0oEPP&5zn%@AF0V;SBx_^-V##MuJ zpMP-xfa&2!XHOX{SZZAP|62PFsHWC!T_OTXmnvORL_|QP2?(h4t|B!MlqxlXl+c?Z zN>RE>+khZF0)_~z(2I2G(n9E+B+{h61-SP)=iYtCIrqKC7_i7+=3nOb&ABqxzvetk z|38d%DD)p=Rk$IVlw~Tec<;;V7EXVDSlOIKuE;71v==eYO5+2-K_a-YON3W}#P?HJ z$yuEj^D>=h=}p^gfQTO~)}JU1QZ-lUz((v?QQz|>H$RMUR591qHP}#x3R@#MiXv_q z3u(fzteWQ#H5{S-&WTkeK}=WR}l?qdKeq_p+iI2$Xd4$TpS$HxlZN? zNP`Q>^5F@7BS+Z!aqC?9yK${1eXl|v7I5WonIs~2c7D~MsM+vP$%xott>bH<=j*T1 zM%vUEPr(Sv)cB|rdfMc|!qjgGewM7cTuIz>KfKyKmj0L-emd3<5ZrNKk2M&y83{}J z;r`T7E|7Q$)Ml1^-**q6NA8!OduOiesI)*SC0~bSR+U@=r@9x87AU>;%vY|;%c}OI z^duR)o)Ci4NH*1d{1f-^taruF8JxODp?`tgx$+<5qx8_65SPVIzgM4bzbT3hjRuhd z;^w~tV~3&ki0JdjiuVm9L{>iIJ_gN>`Iy}t#b0PU)cl{Y@?gd7ZHI}}bZ0&M^DIDa zYgNp2%+#!C0#CM%gxP+w@s<~~m0!ovHqmUmvvU>Ye27NxlURJ^_Ci(S)iHi~$*Y}( z_*7JHs#RT#U&5|WO6LAId?NTgNn}sO2Ea}8AQlOJpVz&1YiJjoIaY>)Soc{GHLdc5 z{&8Qo#r2gunQRYmS6KjpJc#i9Ks1<60G#6?9gcze@Bamv^1o?*-1ZXv5e@#i=gx&1 z8Hu4mJz1~#8<{Qrl49i5AoR5UJD^(@){@skdPxu#A)r=Y4Cd7K@%QY4>d6S%)HFNA z8mX_(Bb+7q@pu2aPV9Z7=_#TTCXYHdI2ha7H z(TTG08cPK`65x8>Feh}r?5EM;#wJKBijOpRN9_l zM|iBuVhsy#rN#evVq>swVAv9S1v>WqEXlF7Qu^QK z=`U>_VFCSukTOp-Ufb2OP}gvz94`e<^*8D|2ULNO z-~S8pr$NY9VO;-InkwDya;r!xta8+6@Jr=hTIP0dm3RLl%JS8A!oG?M#UaTzPyF_7 zK)h*ob)v%)>gR-({>4=T_j{?JpA$li%S%m?i5zT@1A~>5q$LXHN2t=CW_-PQ>z#wD z({Ef0?Q`OXGCK-$uKnq{qG=+a#}mhg9f0cj-SEGV&deRbVbF7v2opYdyl2NT-|7$` zX^u!V7wmAuLcsmwkO3m{Y&o}<40ddg7Y&A=l(&&1CSRbX{*?`AXYmNLRKeuw6rIA- zF4y-oghnd(GlvUr^r>PJHi^gff2~jKE`o5mY^X5=LTKFOhF>WC7cyv>X!Lb@7)f}cY+6;5EXc;%;b7E2pbaTElRub5x9ZxHbbvq8N zgu$nc9C$W-$dB5#^{w57xYLYt;jF-Q|46jo`-rgw`BNX}wF*n4Dv$QS!@?nxy`>=a zMj+_<;e~-7tOw3QDN{$zpB4BUv-2m;|3{Gjf3R-{7I+iy^zx0HBbM$zQ|DbRzlJBI zPzF&lDJh=Grwo0mknz!uG}PQT<5Hq%gluoZVANgU%Ig6}u8D{$M8Q}64y%-Nu=>Om&XFGZAOtfLQc}8}!<#tdtd(-> z`e%aE*#pOC#1vb`Ed$93y?X$5jvl_$VBgfYs^R?TiGH2`unAD0#oJs@IiaWXS1rm# zSjNXQ3e8?xf$-jV{e@ro4AN_2UHK)#LImq#l2a%)G0lb~-W&->==nC5qfX3uXm!vF> z*!K0OTNVWo+tc^InL;s>2lZOO4pdQ2-ceqnn!Jmi=#>GLeOisVwL0cEGx+oBQ>jP3 zLSrsY2th$7gS8^|;>_GIcKNkWXVQE6!}8V}mkTF)&)6?!=*Sm*y+vcI%va@=y^=h{@+q6E?lDdZ2a)JCH|wU; z+Lb{QeA1cqixKu_?psVY4&Gs`vCJZu`Czw!00e}1VuB3R`JY!%TV(ZAp{(>GpgMMl z4faT-A3goDj(a`5xB`a(ItJUQ+S|*LjPG;IzYIMp`nFD$V7K(kgWL1d0`{VHN+{`wctC25VysKT^r~vLZW$qWo!)=z$#_!w4#SZ-J*U+=fpv!(Y%E%b0Y4Iw+)MwU2|1FHC*{x9-YU3lbPRiHBl~lHQQ>lkj$DDJV_YWB^K@Hk=r;|OpI3`r+e9?{8zFMBCpudO*`=)04$Dyb+?NGiE~hmrW=Gu)9L%U z{6qi2wiWHmz`UI+h)ZSBSPQ4=%&l`j*g^QU7_(JGW8xEz;Ie$@o^BI5u~LtHo@1+G=J&=d8`MfB-h>9q0$!zCc1Lc(Yo&4=V6T`UFUzZ;K)E7lR(4u z;!6Y@=`jaxgNE>s3%7xzLdBPV!<4Ql&Iv2(!#0O};sviXHhzAX#`U+GB z`9y@W4s_GC#Jg|!N|VcqFBlgf>b)--E4-F&Zu9K=8B}X)G9>bwcyDJ8QbIx*@sk(|UlKj&6h{Hi|Dq740s z!YP45^@g)aqsI!j8n^xX3ce~DOQi2(e|ci*BQdepYf%=|+|PE(eJj5{@o|$|#E#iK zNvM>|TX`_GwKn;Zw>6AcvgwwLzkF1(F}-c_oDVd#vcxbnVa}Yzv~L0xSuMvQKhKXs z8MG-pqiuBf)oxLd=DZ-We)|l3vR)=zXLu{f9ojhgMeKl$VZsEyWJp+v9Q$V8P1ZDer6a+^ zkN4S=FN{-W z4FyrM*%r^`Y&w!zp{%7z(e4bLFAtE;O^*_|_a1C{m!!$Wo-PxvIe6Z^q;x6Ftiys&9Sk)Pw->tcCG>EauX)Zx-ct$mxnJ*J@$)_JN(yZ5T zRaaz{l3JC;3e29mQlH23!TXwZU734DngF)_*1dXY7($*n?j)B~aYGgd8x)=I)*jPH zzkcB$$+_uA(!pP|s9GK0u{AENNOi+6isrYzmQ$#R#ru9ugfB6c9o+UWlHQt4w=ugR z;e5X6YJyGMAjgk?48E!PUWJ|s>3vPPF6uyvM(cPd$X^@G>Q#B8HkQP(%1nzzhW@lM z`{}zF{|)2efke!_+Ov)FRJW>`rGllS<+9!I?vb(p7IbazWmM?s6uupmj1y*X#(rkk7+H!oD7;Pg}0wTQg?tDc2TCv|;AR2l_ z49d8A{DgJtO-6S09H`Rj#8pXhEGYHkib|0?UT(OWmWB@ZBZ7pu3G9QbrS`;Z7mEr- zR}q3QQem*k2mM*?c#Hs5g?C66RZVikb^&>Mn31a<(Dx`sVCR$rF_Qb1i+c+LxNPgX z!8~_`$zI0=5CDyPE?SKxv+C1%HEmtu*2q{dI_wy{vT|o*ajBR1bJJP@^Nst~%!XS9 zFd92*bj80PgY5h+yyvSwoJsW3vQ*~zEQ$nVCG5yawaFo%t3z%zw6uACBL* z@6s-JV#nc|`DUD-2Dl0DXk;j`-gu}vsxnnB@CaO5RdpmaQd`Ge% zhyGmR4$z*Ym-*z#*{Ny|stsHtX1%uU$h-S7OyKbT;m{(AYXVdPG!J=Ew?T)a;?kmB z9`Xu&+bfq8OmlG#JUwuDpKzEDg9Jb{b>TX~H{Wn*$fXqDmC0N1x)m*0bLyvx3!Vl}nHGiV`$;Qj&V?K#He(lI!@l#So4N5{O6jhyH+<7@h6G+E-d zJxeDtNRUbZ8G@>=$fAw}?#}%9>Vv)Se$jpB(Hj?}Id75@wB--r#`p%YiaXQj2joaT zV3}YFK~OanJ^y@`0@wbc&s4Xk#9=p9|C5_V%oPOJ^u7b8BA^x4f9TZ z;Ejy9CJw|a>Fp?!KXc6Qcf}xn~FUkVF47)gQ)nH_c42!w`js&dOv%K_SWmN+> zxrmaz{jl+IbtBWK-hPgjNTu!om3b_&{T_0sf3ee{A(k`mnd!)-4lOHwdg9ygf$Q#Y zJ=1=6VYAWD`ans!LN2jarwcaKIRMXf{l3MY+1m=%p|tgyB(PSgtdMDIU(T*zPE}2T zZ!+H15)dr4e%x7mWQ5UZ%`e%Bwr$QuS8 z%d_qtk0J)5BW-me%u6I9muk+cqB|xRB5pOX!>#kwMcbU-Y8tkO#Mw;Q>;#*1WaMw; z36(*MB&Hs-BH08iG7LsrvQ&SH`k@NUW2`C(Ny+k47x`Pu$+3TsAXAr{zn;X$KH>kA zNIyWKu6pxk30&OBEke>Co146ySie6YYDu9Bl7vgQ&gF3MJG2)IsESFM2T0(T^vA*; z+VLb6hP_OTAWChl6^keahnw{-APFqic``q8H+&fEMO$Y2UYx&=S$!JX(pwxamd&jO zakq$--&ZXA)ZAR00`#7nWB@#R-G|!*e$QdfUw470aJmzU>iMqVdxf{|Gc@sZwY^kR z@8^;Hhzs7=$h!+T%q!XXs}n2xmSgsvS+a^gWX)@53D3&YIejMW+XD0dF>P6Ni|X`# z({GK==bm%%SZv+$N}SuvEb9MYY-AeVc2JsD$Udhd(yqQ)2~SSB2Bz#PS4;&_o5xcq z+b?Ibh#gHrIcCc57Sca(ddp^+>S~IAHK8|YQ1%>r%)1FSC=(qm~5Y+yeB=_CO9TNM#U>! zqj8}?eN`IH|A~WVfLvX5E+Rkn*Gv1YwfH9}jSi)MqIzrl&=J+U%k@er2rO~EW`AVM zY$sfFOWq&2Zx+8Ma&OA4fR6HU{4XfY{FA%}TeeveZ2psSYhfAO9@f-tqlrX&>@H(< zVtLB)WoW-MEv`LMKX?!V|AU_ntTGEg|I*8RzI<5GFi5p{7+(6tag1pQ>@e^&7-{+h z;xSheDZ-hWqj+Dn z`~%|`y5pF=(`SM9c38%QBP}TyjT{WbD@B1Pf=^KXk`Tapg@v%PGITtbv=RtjVY#Xd z>)78+^;-fbP`(rdc0QcgceX%-Xh|-@##Mp#&M)0!lP(Wbytl|GHhdug15edsKPEiw z&c!j)*8CA`Uc?LI1UtCb=j64f?8Mh%a-iqM)#c1>Xj&NJRYU@{*mr zu&cl_*F(LU3XA(oKCQt6Pp@={wu939GReo^HlGvW@a@76mvlOG74OW*bc$`j&If?O z{s&l06^1$o;2AYp+Zx>IUK^zDmD4r$H?3k_MaDn6)#OQ8-uMQs6G=sf?mk}7RbKw# z5pQPqZFkYKwU0)*0hMhQLd@2^>;c3PGjD=D_`trgkKR&ZhYJ*A9;aj6tTxCtQcyLC zTO#**OE>4pX0zSJ5T=T514`ec%9T0Uo_r*ERwDY89Vea?4ZdTipTyZ*w|_aitp{ol z?^F7o<~1qYD%MM3$2P_9LSzt_eli8#h?6aMze0$7QI1N*zbe;H*VS6@u=98Hx7cP4 z3$Ns!yj(rPNw*sT7eDn0+Zw%gLr`1#)O(}i!Zz2^_tdXR@g8+nzTN4LjrW4kGVtCpy5eL zfDeaJSvH)4fgf0ZRzE3X=q7lpw0FMeD;Ql=1zejrb zNu(M&h0{Wjg7_noI|4Ep7^2TghmT>vwxEmuZ zqzFR~QCy6W<8j*!UwT6DCx1_QKFDJtyxRL62Z5WrXvqfV!a$El%O?r@WXCI{B7CUXxgNYJ=6nL-_JZ8k$}zF!{4P~ zkBLNZ5(REnSIMgjfvX(3=*h2DKwFaYegT8g7pXO_qx*sw8;XJtD;7xj* zc!yBQ9hk&+`WV_Kbuis(v)v=bHUQ03Q!&ThO*Px!--diQkykV~`s;g?P+POTbMtJs zudmENcg()GF%C0zKG#P6Vyqar_8)c-f;OjQhX@}ztnYlu9W1*a22h%!(@ni$*YrR^ zEy$y+{7$UjHnC|EmdapupzXtVSs*_4eXp$#N+@nX$N9yH#I;mfm7zn9@{JyD$wG~L zv7b)%UUL_3D}cZ{+eKW2|N6En&)!#G*wGXrI-zPhYc;cF5uDR5VLM@BrJ^zgRX+`U zP_PbuNWePreV}GsE)Xmc(Y80H#9y+>@njR@SVf&h*bjSK5=|D$y@g3fg{nucQv1B? z=RyuBJ@k;RyqE-TtDiI~xr+;reYW4dkPs^30yXI`rV6&f zNUq_nbGE7<^1n4H3#8Gbt~-+1GBjl7)!#E_wSzMaDX865jUcn5YOnd$`^72fsjAwA z2MT=GTJB44J=ly@&>`E2uBv4XhOgTh^bb|ot5t~p4BrDzc`miv7a-D88%w%#+elzq zn4N(lB`!L-oWXe}jH)m)65M{Bor1;=g;Jg9E{TKZg)6?Z0W z^*Q=7BQQcm&|m24rdlD;+A!x8*9EW=T!IXknPFhM24r19rX->+(U4T~4DE~BSKSfG)4bn70;_H%$9`NEyXG)1LdibR`cw&wg@WP4Uh{`*?O`70LXY z;Qk2G19q~A^>c(QaP6apq?2}$fUhDreCT>nrVgU6V!um1 zO4$zr7Nrp4rE2rMY*oRXwi^A=MKLx-2N$g(0XI(vjC5Wt(?J14%M0r|;MyUuLEI=5 z0p>&V-*ee;d?se;bHa`_B584Do&;d1hHA91>y@~wJ>W#RfzbH4V)~N`*+L5wJZ}bp zV3na1(l)QD((AleT3cBF{N5uIk7S?CZ!&mN7;(ISPmk-cuZzsMP;am#+8&2u_{mI< zbNq^mRj*|6&l!J9hDS<%Kp^bZ`joBX zh1JMI3>X=)v1KvQHH)V%kGQX|Wa{eNP2JPPb5(Bi6rHc;_~_;?EGbL}jP2dzlJVSa zyRQBQ?RygO;w3u%p`)ese6%HaW{WS-VD>cJSpyNaKkjytN$%^$nrCwNsx$jChQ0QI z!smVyKM4^!KzZHYN{$BVzit*1JmQpNN6L zRTbgn&l1bFl}`B6_t1PxR!{5vcY@F#dKHXY+k6<@)QbIbQV7;lFAP{2j-q&@aR*R-NZke&}+Ez3@V9KA@GK|^3PAn>^f z9VbBIp9Z`%a6-gDG_LsN6%NE{TpTsFFKU_-WKF<8R%{E!kaX*+_IwV4E*&5ddq z{PP4tpuseFlnoUn3$TOB#LDZl8qBnU69dy35}%_}}). +This dashboard requires [additional resources metrics]({{< relref "../../requirements.md#additional-resources-metrics" >}}). ## Example The following example shows a Reads networking dashboard from a demo cluster. -![Grafana Mimir reads networking dashboard](../../../images/dashboards/mimir-reads-networking.png) +![Grafana Mimir reads networking dashboard](mimir-reads-networking.png) diff --git a/docs/sources/operators-guide/visualizing-metrics/dashboards/reads-networking/mimir-reads-networking.png b/docs/sources/operators-guide/visualizing-metrics/dashboards/reads-networking/mimir-reads-networking.png new file mode 100644 index 0000000000000000000000000000000000000000..6d3815f8f15a058e8846a7dcdf5ad305b5793a65 GIT binary patch literal 112758 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 z

    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

    iC0Zx_^wVc&g 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 z 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. +This dashboard requires [additional resources metrics]({{< relref "../../requirements.md#additional-resources-metrics" >}}). ## Example The following example shows a Reads resources dashboard from a demo cluster. -![Grafana Mimir reads resources dashboard](../../../images/dashboards/mimir-reads-resources.png) +![Grafana Mimir reads resources dashboard](mimir-reads-resources.png) diff --git a/docs/sources/operators-guide/visualizing-metrics/dashboards/reads-resources/mimir-reads-resources.png b/docs/sources/operators-guide/visualizing-metrics/dashboards/reads-resources/mimir-reads-resources.png new file mode 100644 index 0000000000000000000000000000000000000000..f91efd79a22eb229bfddd39433c5b8c6a4ee4e38 GIT binary patch literal 170116 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

    h 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 z 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 literal 0 HcmV?d00001 diff --git a/docs/sources/operators-guide/visualizing-metrics/dashboards/reads.md b/docs/sources/operators-guide/visualizing-metrics/dashboards/reads/index.md similarity index 86% rename from docs/sources/operators-guide/visualizing-metrics/dashboards/reads.md rename to docs/sources/operators-guide/visualizing-metrics/dashboards/reads/index.md index fa2fb8353b..3a0195ba23 100644 --- a/docs/sources/operators-guide/visualizing-metrics/dashboards/reads.md +++ b/docs/sources/operators-guide/visualizing-metrics/dashboards/reads/index.md @@ -15,4 +15,4 @@ The dashboard isolates each service on the read path into its own section and di The following example shows a Reads dashboard from a demo cluster. -![Grafana Mimir reads dashboard](../../../images/dashboards/mimir-reads.png) +![Grafana Mimir reads dashboard](mimir-reads.png) diff --git a/docs/sources/operators-guide/visualizing-metrics/dashboards/reads/mimir-reads.png b/docs/sources/operators-guide/visualizing-metrics/dashboards/reads/mimir-reads.png new file mode 100644 index 0000000000000000000000000000000000000000..62f86db86e97f8f1d4cae5cbde7ef6ff96bb70e4 GIT binary patch literal 102922 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

    nT&L_EtT5@^iITNl=Mo$&qv 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≦_3J@Ebx90!d24?)mxy)NS!RZ2 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 literal 0 HcmV?d00001 diff --git a/docs/sources/operators-guide/visualizing-metrics/dashboards/rollout-progress.md b/docs/sources/operators-guide/visualizing-metrics/dashboards/rollout-progress/index.md similarity index 82% rename from docs/sources/operators-guide/visualizing-metrics/dashboards/rollout-progress.md rename to docs/sources/operators-guide/visualizing-metrics/dashboards/rollout-progress/index.md index 4d55a7cb53..6a36f00b08 100644 --- a/docs/sources/operators-guide/visualizing-metrics/dashboards/rollout-progress.md +++ b/docs/sources/operators-guide/visualizing-metrics/dashboards/rollout-progress/index.md @@ -13,4 +13,4 @@ The Rollout progress dashboard shows the progress of a rollout across a Grafana The following example shows a Rollout progress dashboard from a demo cluster. -![Grafana Mimir rollout progress dashboard](../../../images/dashboards/mimir-rollout-progress.png) +![Grafana Mimir rollout progress dashboard](mimir-rollout-progress.png) diff --git a/docs/sources/operators-guide/visualizing-metrics/dashboards/rollout-progress/mimir-rollout-progress.png b/docs/sources/operators-guide/visualizing-metrics/dashboards/rollout-progress/mimir-rollout-progress.png new file mode 100644 index 0000000000000000000000000000000000000000..9f2ae344508d26fa92d2948e3cdd4489897d04b4 GIT binary patch literal 42478 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 Bn0^2N literal 0 HcmV?d00001 diff --git a/docs/sources/operators-guide/visualizing-metrics/dashboards/ruler.md b/docs/sources/operators-guide/visualizing-metrics/dashboards/ruler/index.md similarity index 82% rename from docs/sources/operators-guide/visualizing-metrics/dashboards/ruler.md rename to docs/sources/operators-guide/visualizing-metrics/dashboards/ruler/index.md index a679d39ff8..ada5848242 100644 --- a/docs/sources/operators-guide/visualizing-metrics/dashboards/ruler.md +++ b/docs/sources/operators-guide/visualizing-metrics/dashboards/ruler/index.md @@ -13,4 +13,4 @@ The Ruler dashboard shows health and activity metrics for the ruler and object s The following example shows a Ruler dashboard from a demo cluster. -![Grafana Mimir ruler dashboard](../../../images/dashboards/mimir-ruler.png) +![Grafana Mimir ruler dashboard](mimir-ruler.png) diff --git a/docs/sources/operators-guide/visualizing-metrics/dashboards/ruler/mimir-ruler.png b/docs/sources/operators-guide/visualizing-metrics/dashboards/ruler/mimir-ruler.png new file mode 100644 index 0000000000000000000000000000000000000000..45fff9ab2c73ddcc1941b821916310c131e99905 GIT binary patch literal 146385 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

    CbLXAw`_tp_g&G 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


    J#F>)k)Se@Ok_Nuzc7p*;Tq=)~FS$-Fto0DF1$ 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�dUi%sLoLS%{E~GQg z;=v4%P_sHsz&t3+8==B!-ma-Y<)lblQZhLfXeI@d^+;B3aA4p6YrPz847=B$BIl-Q z?(?T}R5jh0CzPPGASPa--@ftX@;RN)xrx_M;C8O%?A6-&s2fqI3hj(Y^ zf)$g(2gj&uN6Ul?!cGI#*)zzV%~WjkE27%fAU-N7&ys93jT+$o^X0Y<>Cc0T-?p@Q#c^8SlfTaSix$u3;te!{RWh=xXZrVwLgtOm z$=&Ly2{X5Fa$HhpC>mru0RbPEWv@L|jxNJJd?mHKKY!u$old$d+-p8r!7zYoA9y@b z5~gOsjBo>gT!@xYvQ{H(wGEXv)7!Sm(Pw!sasybhKn{M9391wHX&kHa%Fx5yAMfc0 zu+nj*3X=l#%trE*4cKf=l`S(ER#?=O zHEPHD2WL-EfcG7Fy@34h;d*{jz>sM3-R5B9k9={03a*PG3HxL)KYUUg^9V&WG4QqFBVK4icbZIb!KYx#F)plDpoBB{)-_J zw5uaC*r&76%Kt1?1;fMQOCspXe*5&s9*>Kw@WYGH^#flyQ(V3I+z5ty;FLGIg9^vA z-Xm~Rq?p=mb84?hG?kFly0E{(h1k;Be$^?7s+q4}3^l$t5(*wfLCbGb|Ag=ehO>+U zou+i!%N{D#(yHkGNGHoa624{{M){@w=i^G3Cw^1{ny+%`Eo~3IH#Sm#?wJ|om`r1c zSgcPE6Ns0=FD{WRpD8whytDWky(IDn@)O0l%H@*0{Gnzf; zdtjI*?pF>uw6rO1OKB!7pj8oGFX_2&pu(7y_a7iG%*;RW-+s=6P3pNoEU&CXC z%BC7(6!54mwYWxC7jBd-n?l;;mvnXT+!CNE3G}PiblI-JY2%ry1PiSW+?b++WSD}A zOqj#qLib^TDGLjH%#ta45}LZxMucCt;q}==LK$M9oDwdJP5g>Pa;1n^i8qQ@OeWA5 zL-eilLgO^R27$S6-@MRbEcB6Ka?n%}S}Y|dfoF?eCpSIxLZNEtGgrEqinFAzOuEI< zGzkLjU8FDXN#-gwM2*NJ0%D7*Cyu;rEsPYjpR9N_f@KrQ-<9EH$@dv=bN4g#YalMbJr%R$H=Vg)V=0Prrp*}%7@k{2Ej0cUW=hZmAI_W!DN7D;N%RkO zVg&V#kwm{0oZEiJ1LSnk15!7C%J459?t@lTN9*rED3F_&2k@MsGibllI=?aN9^HVz zSFz~q(BvN9V&VlOcqrSD)~JpnB-dMCtGTzK6sF;sVjgUBgdO4tZ{H>qwurMojuU24 zvs8ua;q2Oo0%_t!gXf5fG#RE-v8jF5KZJG1g%B{GPICSDQS4oN^U#4^q1`Ph5Yx)0 zd%hbUPpFBUss|00FVkgKU}{=MKl97*4kRoIK%divb{M%@$o(Y9D!y19{m8D4SbXzW zaG}_dn<`||Ee@|pxfK~9{iUzwQ4#MJn4T~%*e$d*zLc~29jTAcl2gh=&T{V^(O;%S zW4A;ur;7QFB5Z|J3}_Yu2cH2@gk2|UKGaz5P5$Uk)7k&RpZ}XPGHz|R3b(|k>>`s1 z{`Ux2h#~E(T~qsQrky1Wo(*=)xBVoW7#88g3yw;iO3%M8Zbi>2 z4$M$~wDpPqAp23tVCh1?27Aa(mCf-r)_%t!TlhR39aIP7{6Xs%m;K6EHDf}@Nu^F?pbO)Jhi~9W zDZkaenzuI^iFn@!v9wPAet?beCBHw3)3Df|s-k@t7}Y!~T=AUyK_3|xpxxH~>1O|D z{&F=-@UtCmOPKP`uvs2_OKXcg{OI4u0`J%lW)-IvU z>aBy_1&NhN6byY(3ll^5i_$QwNg)q zpQ9w{Ol)2c_!{!b0talh<Sk{Q%snc+6+yO&pcNvA3b2}u zHyH|srrg&@ASWFn=q3LaB&W{OrC(L(?S}pY^R|e|4AEOQu@A#+t_*Kqhn2_htqk_2JTfx6zK`h7=o?{wj$G zB^t&r&->KY%$Ci~mP;i;g>EV*&v>zmN=vO%r4}7!h#c}`pD-n2*rZ)6*S%p*@ zcb`vh;$jk$4o=2kHpI^;rvT!kbk$7qNUUx9zCPnK_bB>Dfy@*SoDq~S$PKdj? zsG#yMZlS!*l1=BbQIa;I1W~lkEs2}X;9tLHbO~SAB3uusS-$feft}rYLa@?*(%UB0 z!Djghz2(I$TF?E(H!3_7VCkaxvm$q>{(qz+W@bw(Ww26)TVfeuiG^u)O7hlXxVC31 z0cr{Pz1UWy}4AQOB>8X-|U+O;i!!S!-oFE5I%Ls{*g}p(!IS zmZgmx>K|Xelzqy(UUH0|}B zY|C2}rr;snO`MN)nWncLI!Kh@gA|%P>;85T;V^Fy4g(kS(h}}4aJqZ3XawmMA{t_h zhJ1_=wyVxehxz_t);raX)VJGJt--AfH}=(9bEs+X7~A@&YNLc8JxAv=$WAE*556lT zTSs)Xdx2BbSS!;74!2`Fj!gED^#dv9EVSO_|08p4mAk_w5EXPA+j6_xHRRxTJ}A?9 zcd^W`C0_SFgnwke5KS7D0>kZ+*q;pDGa_^>TRjM4=sc;DU^2~_vsM)Drgx;DOlwY) zDZU1dRnmX4H?JXLf;@j`WWoq{ROu58I6QIp@Q?*hH61}O@x-pqBWZlSmSBFCGcsC! zCoS&Hy^KcVTXO(gI7O|u5dA*@Ku^H5V*k6<2g(z zTmLV7VyK`r*oU`UH*8l5uR$}letuB@$O-Y7Kz6ZSI=8**9OIU3v4)DkwkdAaxgEod zas(@ns_%DaBjFo5vt!FcOKfOs{OzE;rSf{5D^8M{iboEXDmK@16KG!PyyyokS=-P55bf|D6uqwC_my@6B9oHH302GeW|KWn2~*gBqXP3vl-s z=nq`CORX+O@b>^sm_N!n^vdZ4ycFR6GPL|Bd7&-4048n!MmCBDfG=4D^e+EilToK6i|0IKb_WA8&|;CbpM1UMS|@aPo&bYvAc#{VLz31Eh#}#I_|);CZ;JCVb#KX z485{TbQ?(0prOx$j0DY3gik*7SK#4!I^qva&T*Da!L>IhkrmmajDJeo zUO*`(z5_0W(UTmtH`q2gd_#SdY9TZun4xl?3W7Q)HMVWTY%vUV$HKtDK66vv!#BZ( z2b%7cMRf6i+48j_t*_=-LaAbCDhjNxFmO9`CGknAcDHhk^P;tnzFF=>uY0F+DZJIZ zS2Sw)h+|S+BpF>qF7UcMs`PGv03Do{tnBt}BNp+ezLxe-dQP;oRr^b^PxbWcFI4B> zb(<0Z{FfS3g&ku78jWI|Vx%rL&F%w=H;V*Pb0k=^1#gowC$;o{QOwJL~-+Rm6?zY4acRE`OjTZdB>-t6ko~#k@6f;PZ4TD zBFw{N|A%dj(xb-{E0%qoiy^EoGgvznQVUPs4F};Mm_APe%p?I)2^`c5D<7C48*XoP z;u7w@Tlk#Z@-F__^+nf|d~`lev6j!4RkuscJo=Db6N2G)Aa8()PaXz`IVD#_N6eWf zo1S9IN@U?H9W+9fV&l1h@Xe~c+&X%v6CkN(Jjm`Api)f%ZWfDHw ztWyaW@l#8dWae1po z=Q!_%=Xl0?1`oaWUm)I9@XC8(o|z4toux4IN|Em8D%Ep|S1D%qIRC?#)a+r* zr^61C6lW7!y~_cDFTUD{cp1X^Ct%dJrE8>4KeRZIdRZ>Wf3=xw?yA-BzCE9rA(CQ! zS4z8%VKPv}DIzl$2XHVz83Ml?&JJYW{5fR(n9rEvPSuS7;m9(f_)+WAW-Rc)nI;NQ zkBu5C2r|C`m%&(rME{($w`6CY3KQwHHAb+yFtnZlDq1b)wHQp~@c8&X^)K2Ta~ zPi~m5z)kF5&M~)`N{4h)?o#0_l4hxAHg z6P8PpCSQaDB&G%DBKUUEI#~18my(gKu{`-PJuMFm@h2Hv3d!_Caj_KXqF1R{zj#F- zIW|M?L-^EX;28^T70!e(RL|LjjJs^OwMN^WY#j|;2|QhSimSjVECbWIDSvn`2j()E z!c8b0ysTomaO>JBMlXfEB!`W{db)=!$ubnEad@s%e6p-R(hG4RUnxJYod0P;CaJ<% zV$gXtC9!N!*|KX(P4e*)3wiqTvi0tR{o?>v4A;4~+|6?5Urdl>Hz@+o8VSAZ2DAMn zrY2m|Z5d?Ah=f8(=z!z(i9e}JKKIAO z<#sYLQH}AZNx7YiFev+VTaWYQNF{J^h{*$a;&gTQeFX|=5A8lqd>1;rhB3u1yOVS4 z6VManC5ul^?q=#|rx|0oL9feS^PtMm64T>fL}98*xJ2nIJ3iI|&&eiG7<^+bWQiU7 zEO63M|0-I*^ZgI;w-WS5FT!j+LY`g_R7yWdjBBhB$IO;4LQiKi3yI$(?+Nvrj%QQ2 zZqD56_r0JKzz88TJM)Q(F}K)AK1=sGO`fUd9*uGLaSU9y^xT%Wl}f3a>D>swhQ0b2 z_xY)hhr#oeH6!8r3JPe6VC6$n*jy_B*%(wjo=cy`;5(#^Z%tu77G`HY8~*iGnlBDF21iYN+JI;#yRM0Hn2Ur?8_!4U ziDp2>@l2Mjm%-eE`pd?6bgS^V?z;D5S!|>*m4_B>_Y6mK?IybtL5Cvirksx-J;pob zqx6#p^4RHkjTu)4CIB|cHf%4gN4vgu#AFa9VOd9B{rF_3%ngeDT>q(bv8HwagZA~F zev*c8g2d7Ban9D;u^I*%$VvG|N0uYT3~ZT&+$u?O@=;MVmjsat zY0LW4bd`q*9+U)C?0kl)Pad%~Kc?N{Rh(yx?rct=j%ZJs=UdA&_PqHc=y2}XU7xB0 zfoSNMc)QVINKv5Q zO`YRML+ZW)#&Vc4WNl!>J;a8`OXDjF3m-fNySP%=JX6R>UxG>+^t?agkq)48`{ws~ zt4{wmUzbY};EuIy%-|tJO*>pChl;;^G*j754*m%}hi(#SGtv^DG=D56*lTd$@JZAo zM^_^^Y1=#XLdj_(6QM%&NddnsDbl_1WIX{GknJj;Gz#=)k8}Wb#GqBeL|L8OO!cpm`o%rWxWc zf=5ro4v~c=$kEbM9ff@cQ6(^bt!D&dM)PRuE!Xu)1%t3~sc9Hob4ID5q-D|aG4Vd_vyFywxWZ5FW;hGW*#yN2T$52N%wxq2iH-4{vu=VMIK$&LVrU8lxS`Q1fq) zD>gcTidlxa&?oN*U6*UgSASc3G(Rm%l^aI>C__L#w{RD*yxHwQ^M+6)V)8SL8bk~)i%?BY++Y+P3Ib20*2X>=3$#%VL_-LrCE(bW4G1_Bil%qt*z%+(E~9ZOu=+d@5|YFf;7sYJs|u!S1AH~?VZt~7ahGV8o0YIl zcjrGc?YYuk#K6D#TsN0E;8aU(BoVjK%>AW2X_$2%n!g*pjf{xf zvlNF38-VgiuBf zJtSU{@!KjbeQ+q7C#rBmzFSn1mRj5SQw-U#$(>rx56HQP0#@>#GT*Lb^BIu$81v@t zzT~d_ihiv?t7!UEl>V3W_RC*A;H0YlYYEZ7WdmQ3Q53Nzfk)an`Yrb={PVD?I|Fae zIO35HTu=h@9?6GE;nFX6c&ug!0$doLbgI$wD5mbejQeE&`S3w2K+7ETM3@5KT#8nK zN)8)8IEFch_@-+`V1-%4ay~p;nt+m2a#bJ3L1os?R_}+woNX0tyDw`RwrDy~rmgjn zp*tewYn+8k$@hj-1Jq9XF)KkSOh8VQVg(U{`A3Csdz$YB6Or1|=vjGs-nRBD5}Z`Z zFvN!o6w+7dznkWWHNxo0wmx@~ji4*RrO0<%91R{nOo$M1#*lrsmrhr0@#Aq+{IZA~ zc6N546n)u-?b0K;3=QPmysDb=O%$FLwy{@)gym|T`lXmy~3w7pVZh{~K$ z%9Q`%0~Rxo#}TVJD8;|XJ)>b5!{%%elVDKXL(w7g%qC(H^NzoU;+s8t(t)bnDpR@s zW>tf5KZhS7j<|l3yzc|>lGfRAC^9yuIN!F^YN!lzf4o3#K`<-t8A%2i$4fW2O*>vl zUJy+08wkA%t04Grz0W~zg&nU;JB&+n?V6Wg!p~PP;_MAp`z{#c&xX~h87Ff~m7P}f z2!Cv6SHJEh#utV!AQXI%fe36hqci+)vbPv313kdX{p-U@8j;eLbAF3*GiYpAu`$RP z#A^$pAy~tkutQ!!Q~w2UKH9N;$_I)t@kCGJ-rLw&(m;6(y=x0~e*`B}PXdjy2a%m} z^=qME!;W`O+q>HUZ2+5Tfbbc2e>TS+KoqI`VF`jtA2%fLYk$Tb%@;;w2l+&j7m&>A zV|zibBxIx#Nh`QGoI?QqGg|@f16pj#MWw9@!i5z(@Z^a1!!qRW&$?1$jc$vBb_}S< zc1)&`s%_!54QLVYVuBSkr29}d1|hwG4+#sufAs0_3&Qb`|9RAPCH);2LOFA8rd@mqIs%Vbzy=XLoMZlbLpgZIgb*tA69IS+~0cJLlx<+GgEw za^iO{TTBN&Tvg`Yi@4T)!w14~6@V8`PPfuD_5cv8}vG_I_qg}^yL#)Yi z*NRHebjl18HS9o_xPJVF#w0X5Z*5p$)d8S9ZiT6cx41F#7 zj2@P(IM~^kI@w?;EL$esq^~V=CS80z5~>PqaWv;TCI!MrWFZhIeP8c}Kz!Zqg%w4~x`Pnq5_lHaR`)UN*&A4TCbInZAFqCtj}EVk zuWGHP&V)_z3F!Z#t$~Sj8d_McGx%E4bgke#?7#|F_+LfChz<+z+Q(P$Mh@hQpAc;q zUbK=Y!f$-B4mnz`#ody<=^$5v9CcxKsz^kP5ZAta_<+R;k2@PGiBZ+w-Q_hOg92$$ z=Sn6Tii+YpRR`T&ftf%-E<%_%W}(3L3o&2GL*F4z@++(yBt`|0^URc&O!WtM1(2)B z6H;p9*PZR`bzYn9_RR{V@%CY7;uwW@M|H^-pRRqEMXetFRKu6DG#k^yt64?ytp_X= z_Q1;-K5WSA%<+kDq(}N-VM?AJYhlNQ+X2<_`M)(DFp6-ZlDN|4zOsAWat%qkl4|m? z!T4z#7M)}!iQDPzB1NapiglJ4|R|7MuXqA8LN7tT*DJ{jLRi#{M{NfztWM zq7c)P`&dRq#}hJD>~3#cS=zMJAnV#@=217%eQ(ajSX~j~`dwFGtRKMg#pmT4SS0f8 zle+TdLZkIeHfO=v2cR?nlsXaPjDD(Drg78m?%JB!@HsfU*3>}I$x6dWz>wH<$JKjZ zYgg|DbEM?$%@mT~Sr|}xkYYWr4D?)$j;lM6xSgvzi1_Z7yS3$Jxz?@0P%ea9*fr+K zrcEV#hm>4NF?9{BR@nbJA(Te4W6ibi&b015FXRCz3D6zhmu2OecFPgB_?pqs`Yq3K zzDZv5Ff&f(70DGTcJE4*9}d^?7=X1c+})Xey)FvQ4$cXCgj0;YIJJ!R&Ccac=PRSE zcOQCVHfy{OA=}t_Mxf^#+E8USs82#{|80|#UAZMXtqkXxFT1UK5 z547dp3?Jl5%K@>fEK)=LQ{{ z4lD>xfmfx=8E6jR21UzXZFpT z3w2J-3Bx4)|zw|>tV#JDYWGcZk)PVpz8z4%d5q*CC9gO=5 zzJhr9|FG5?4)0r(+i$_)gd&x9{V_J9%2%Cxss$T9WEV>8VAB$xxJE_@Eo6(4LOS2; zyaK=AFqnb&975t`hW{rq^>}VJE{j{iSee>$7oR>0W$=D5pviz!ujnf;rE;gxxRGj{ zP!)?Z7rui`O%0(rx0ef16-J~Td>*eoksIV{yMFNJe!ZDxpT>>CQ%pRh7sbo2tNA8} zhO#yTv0Aeg^6{Mnhw{a{zg6GD-cGoz){CdQs;8dmg1TQ;TGE?aPPr{y+WlJD&thwd zoC`=#T>Z5H0*y4($fFf@%;CZ55iOU_2nYQ%o48yq^@|D|j{@&rJk3;ub}>X!`kMt`gZUJW2guol@~F-BpL zN3Laa7ykvM?o|ATa9xj_gGR<<=|P)}7Tgx5dcWPU+6Bh_`SYw^-0NHJ3aYQ@NJ$a7 z@D?1u8*kNczS%x*UlvV34naPIq-AE3nH~Bj7#LJ;0$+}={uqg0c+exi)r+^isHWO` zZ89t%blN%RK;(8?v&NfC2>qFIa=9GQj)K%51c>*bgI+4&2#@aIgq_JVQl>yY0nigD zTt;+xR@kp9r-FWRoSk$UDmN&6Ys|9YaL0Oi8O$btYY8$*{hrTnak}g(8FJQ@iNSi< zwS{&g()oKQ3tbnUol=%VQ z+-F?HeQjrECU(9nxy%WK?ePsgL{3!Anwlt9i+RiCzK!KrkvV;Mp(`K$TCl_C6X_(>J7qn`fz2o{p4 z<=QJ7)nKJUm7F@8iVH8&m!(3?>Avss^rtx!qVGt~w|-i~E_l}XyYly%oQiX3*bAo7 zl660Vgx&DW9r?HTX*5fNB9-Niw?)gg_NF}hi)nC3BokyftD%%q!Dl@pCx(x?DeUvD z9Thi?Ymf9|wlEsE@+3h6wgz_G>th{yak*zG`C+Hors5TzJlcaLV42!;jAGEfv z4MYZ5+d(+(soY!Cr9BziLPdZ^N|Tdv>F15KLZ_@Fg=v9_kt{*y;=&t~V{fK{mZ}MZ zHNNMtr<#5b)T~hrsHlAP2m{BL)~=vq^kEA#1s4esHa=Fy2kb*(Yl>gu2Q(nmrB{U5 z)c7h8wOjv|Wgp8ui@b@;=Z}>8Zl1hIFRRX&sE3~Drz@SH+^{&qI*)$s)w(-EJGC{T z!0McZivWHUv9rgn1=+n;TFD9zK=yl)qPuU=nc1R+C33aLr`%WHZf_-QHmo;V86txQ z->dvIfr@-*N_Jdqb&T6o2*iuRSnDrI5w}@@UIt9^48$x(oSp2Ij}5Zt7IHK#Nh_bo z^&H#(dJqdh)09Lm?nsFu>0w+UDtdi~>dnF5>ecY8`fO@{^~;oaY}V4IMW6icry#Yh z@^qhM4)b;|T}oGI<(l!?!29-hPUXtQRhP6AxBZD+mxY3hMg@~|03*S-Y*`78d?b0@ zd$$cLOfInp`$gT1KCdpVxG~TvZgt_w#3#XDzg3 z8gfmP*Be-HP#u)18OWG~%o7BmHY9%gpj((fi){b{^8k_Zs&}9BKL9;Tbc(|xR0!lP z4sfz4O`*AXAl&swUvO>-U^bC7E>GSwmU4YtEoKWB0}J~Qvn1$?=1<-qEUM^0ig9S> zg*-AujdXwEn4SzI6M%ZH^_%tb=+kW{2cHo2yS*KUIz1brDRQh`35MJsPLa1?GYf}# z3NvQb$%Km{&NNWg3V3K|FW#NJ6$}AlhuP3gWc%aV4(}i93*@Glxui{BEwk{W0NtqG z1JxmYtn)+?hGP-eDgqtfET#*V(%h2k)mwKSAE9CACNo^(s#&G(l~~4k77YyZE-1k; zjdlAnoakD;I-H-&Ts-}$u3ah5Yzg_k;uFs`_D4w{xidNCp66Ri_DRJma(NAMe>9ZP zJVa>tSqo>`w-g1G&py8t@8{H7tP@lC-aT>uXiD$64{7aPsr{(50tbkk<13i{Sh=p*yE!dO$Kn*5KCD%#Ab*`oq9IJOF&@Gw^8Sxr6!j;hN!IJN8h$iJLW(lrj&GUg?&kT1c|iN*wVeW#sY5k&zc zQtq*fBSBeEpo*2GxEi!5>Q{UvSwQtd!tU+zg(EizOcF_t6OpbNz$kAm* zUK<^_`8r51Yh{jyBx5W!ag(5r!TAmegi;dJ0>f~&o}TC6PW;_o%_clE?n=BEFD$VH zQjN81D7&y<_t!chrsM|1XIl>!ApzwDz858*UhyeP>yGg#d^uxmnRwfDB5PHY!(Sh* z=Ogj5-45B%0Q8{vN0f%QQb8zBYw<%n6p&@TOr4xnF5r7|4?2{(#n;v%SJb^kyuscg zJ~}H>z0e-oDJ$qR0PQQ}gJ|KzW%E=T4X+FxbIh2$CjpyBB5&WVez5JwZxWPlk0!zp<>gdmdmYFszh7vFg_MpNg1mx|FQZ!@yL=wL0U zz|`rS3Mi6AGxWjWYRN)^7Gm*djI{0)l*~WLzgRpmue@HG?d@T0>^t{Jp5x~x8pOY$ zhRPo+=vLZ??~5T0gM(C9p2b-TLhkkaU}thh#uUCgiC6)hhPS|*0s+q|CnD!YkHZaTX@hL>KP@qeq{$(1kK{#CstFtc~& z@JFjQU+>kdz4w*CD;qy?0`LiSHMz&n!jvAd#=runjn9dZ=Dbg;zjCiF`2GTa8cH9T z3=k;-xkbaHU7@SG{hg4L!Z@zhbJ7#n%uTXP&(t!T=G1kP*6IY&&Ms_2@H<~po9i@1 z24e0?>kJ#K@GT;^!`XaEoX0u8>@sc0Yd8*~6r5mU7;D79Qd}m{#z89~w2{!v!8PRF zeBHVMFVkVC*VALPfv-Fh`gRb6A1iw(gdMC@RD|EpTYS$wXsm#oQ2jQ3hC85y#$ zUr?>YYJOlC1wi8bMPY+9NmA_Uh`ZQHfdn8x;(V|ug#@oOy1zX7L^g;F(ncxAMLdMR zLcXt9Y7P6lGw}b%b8++lyo%4Xc9p}+?(wgWO&>0cp5NlnqlA;2u01Bm-59uUd5PDcJ2xmi1vm8fRZ7Wly}N zT9iuT1eh0+lW47%ebP_73U|jXLIDMb39O`Zv)G@vCpieuc&lqXeezj3OTpK&my)RCjLM=k-A3d(sM2 zAcyfVce?HPOJK^Jh|*ccnoCV!TG&~?gCbK*##g~)TYtL2$xdqSY{&qkB;U*y#og64 zMD`_l+A8qmj;yY^Qfzq{;>llkMFbS;ZbE zqQUo(JQ7q;XNR3-Vc3s(JWmldyBd90Pog6!#im$UzBg|)X$LAt-i{K190o;4yb3Hy z4erPkg&IXd1QDftpO84iqIX`mp;(TUKJxqN=JRI7VtyT4w1oUnXbxL|aeZpiGriU` z^Ld`H3*Q??JW5p8v{L`~1F=uY(=#@428L#-Cl?yPFK%+qf@=9+a*4CPm?&JcarR7= z&Yz=@Flejq$=l&4Eqsv?bKeeyF_@S9E2hI{YHwG9TA;KZ!1S*oFT(Hcx_!@){zN@aFdWH1k- zndTxfy>Z8GPG|*b@DX`eftA02{Y@5wm0{eVav~Z3>$JK@5)_UjFX*C1PZYggQOM!O zddPqJHjRe<~y*9zj161Q{p!YVP#@^;4VX9>0`@csG8;-j$USMg%yi= z`EJSBp|iV#s+tzAJK%huooAVI;i7{Fjk)f=55yD>I)sWRk#tRdNid(q)wLJiS)Vyy z5Q2Z7zUxs=W<3Y?AkUEJoTfdGI|n4GrC}|Deee>%4E;^> z>)LJi(!LlMo$cDryPi5AVhjIJX~fFQ6M@ zu~Af~au8}Wx0h{s^YpRZ<8y@-ev2uMNFK(ub&gO33Ak+Uu>>B&qPG~$!8A9JcS{Bd z)X9%z0_Ze-PTo(~lg0eqrPnUZGhvV2PC2+ez~9|Or_m%p;kLhse@_A%I(aZ?h{rVZ z7;?Jzc24yxSj&fx{g9QihY|8u@`F3!^zbJ5SLuKJa9 z&05`6(Epu|F3MC;KxJnsZKrA0roHSr$@~)e`>1#X!X9M(E;QiMw7W>#A|JRm7768n zN=F25orxpY96)Fsp1!?-4vNZbihpms%qFTIY5e;~`(~TQr+@ff>+ib$qG=AeqKhnf z6wws%(!`9z_!rf2umeIJzgO_~kUf<^V?<^0Trk)sb^GgIqMinT;dn0Kp7c&klTW#~ zmHh7~l*Io|`Dpig>fOEUkRjK_(y4so_{-y39r*R~WBmpONE8i3iq|9Hey}Va{xFH( z<7W#tHn8Tx2G+>h!!{81$6;~;MNk|qm%pRsd5yf@Y5jb@ZUSSiW4sZ)c-?~AWE_mm z0Gk#IsgktNK+;6ykmX2ea6>m= zOMAC!fMx)*C|y{95EUML1D5!5Klq*#m~GPKb8}Up689%ssNQkw&*L2R_G!bka^90M z;0;Fn_g#?XA6UnJpJDJ~`Lw4*^ zK)~CXO2pyC)0^!fI*AEjb4M?|vgH5&oQU1)5?b#t=`tUftoz0HhCO|nZ?>evKbY^W zcAIr=e}wRo1orCsF^&|~5rQ5TuXy|Y&duCX&jI=w2H=fj{Y3_B|NiYJ9d3KSY|`&) z!-0LrXGOo{?NQ?;R_o7Pz*RCkPI2?oVVl=tKvOU3CaG{cF<^}vA~ytLQUuSAKTb{< zYZ$$KjnCT7xB#IabilW|!-4pKH!A%t|3}j0u0$U$@au&GKP5F{*>}+{7r;d~MjeUQ zwb$Ti%luSF-uFu?*IQ&GP3;q^^KY4Z)QqutxHyC?_WI90i*@WqA8xQXL9wzMj&Km9 z3#dbLuI`K}ou^WA|ahf|`T#STq0%v`KjMXQ4O{( z^ywHDB*D|l1=MQ_MXR$(+*+U!q>yNI((9iU*f9OKzsADW$#35=NG?u+7ww?y#ATVa z#>+PagZLbiIj~c6qUll_wvnLgq>??mzky5Tn7MF`bNg&ZiT)ie*n@N~;6dC^`w1O2 z-y#UEGOJ_3X-B9z;%W3L3(!G2^eFh6JH}e21MlIi06(dzI~VaseZKd_)F^5RbM}@i zAUZC}a{U!x94sBYD(1! z7SKm3bcwd6T5D9eKw@jbF#X@rfM7e-&AUW}k_xP^m9Zv2q&Y#Wp%1;yDr@ebK(F&O z$)igOP9kj23B6#|8Lb!*>^p5sij(;jW{rf*PKe01V*Xu~6AR?F`sLryNCA`zwY*Rw zQA7Evc5?i4r|e4%tgobxffBQ(x%``kAq(hrl3Oh_ZtSH=A#NRrXm#0~_O!L}x4^8A({5 z?asP3Q&qkXPckY(H8J2&Cd%S>ZR{zvX$|dY%@0n(c!mt~cKsSEV0g(tpiu!UCCQJa zDAe7d>!Mr@z6$EIWb;5xB+BXAt!6mscZPv02Q`&s9^{cnrQ^S9xQR(n!ee<-1CYmH2QQtS8np@@eb9pgRo&z2wszzOA! zV3}ukHw zgH4(a#JVUkjKZe4n^3%kL7&`I;Ml({9tEsz$Jv(3g<_5?E(Q2{&C*C^lu&g92cVcpDbTo$#=gq;qF1 zYrg>(l66*G=|L>)kE-_{+ET}?wY)LdYa`rQ6=P15zDtMvwW@)DKX!`ab=+jc~^LKj}O4zm!X#*Ij_PHKq;R)W{XT(?9JHsIgS6o&&C{ja=f8;MOfS)C)qqZy((p zu(q9wWZjuYN0_e}KX(V6z##P79Gqdj9gC<=IJZ-nJp{YPCJW^_Gi1)Yi$}4oSVB73 zQ2m$qX?41DbqIH#JFf-FZr$j33^t*8c*qV17rrv--{1?$cGut?K@=hB(NfYXO{e?( zM(j}OAgL?`eE@Z^-jC*GIfD!#dU?9O)0ez%E@b;t!QFPMMj_WM-q2rc)C#jS_2`1~ zYhPg_I;A=3F$YnlSU%PFF?BGosF_ADhq&D0;v%rol@A)?QGG&7l6RMiOkyovD6xNuq7y%BqJ?b&@Fy|O>5 zKQaduYDTF$05jr@gP}H0^&Ngt$#dA*X;^ZdItC_8Zu$jQyc!FPfCu>Zcn5Ux`gZWO z@yuvY26@8A7>Xp?cd&>S!Of#rqyxH*dPQpX%K zgd)SLFpPrtBYcPS2cHhMyxaAiG+A-Xs_>WWjjBG#5L6BFLkdH`tXSvVl+YR&Bcl>scaGRKePKwLkA<8s01|uX;d*xVN<4u!b zGq%^5voGz(eD8H7QHCr~^TgMs69gIV`Oue`fH{+RFR$gM$hwqWuLBWwD0HcJ=YbNx zLM1~hq{K#ctoXnFOsw$Fn(wEXbt?I6V4uH*x_}wCuWN?YN6eJ(!OOfHnD}whexG7t zrD%M=D&NS6@e?Mq!3XowSU*^=NM#(LF$-fElK?zbwo8VZ<2q?5FQRDS&bBwwIX~! zWpueD5%Sb1UZ@!pCDv4asugS*Hks|d+Q1$4vVwbuFP`u_(uq%)qRV3<1$Lr+zih2vk+LUCK~D4}Bndm{Q_TnpxF}EIeY3U--m` z!(ffX(24jk$3yjYT5UuxL)f;|5Y5AYvhkVPIA1R`^@|BYf1&EXDu)aOJjb)+x%UoH zUd`r5ORkLYd_i9Kt?0z|AN3!vrzv5o@wff*T?c29M>Iu^!ffrkK8IxRu)Fe;J0Gjn zqBuc%0PMcolWIuo%N@{%sssFbww870y{WR|Je_ljrry%k6l%JL>sjeW1|kD1VekME zxQ;_EP}X7D&`mZlh3SE7cxxp0t!d;}5AUpxX&XNF8)O{VLphFMp^%lf+BntJ>;`7A zK0Ny3sRy_t2#1U?5nG` zrS-2-vK4E9J~HT=SNDTRkkQ+u-Kb#_V>cCnB=H`g#G(#9upCqo$45X_#)y|1_nTqw zYiaF-t5Ix$E4h)SrofE5;vpO?&)DxqhQE??!}@J$BJ1t}JF@fgbq1l!TRegy&F0ir z9L^XrKpUu_Q=h#1Nz?`LkA^l1Qfyf6|Y!UQ|HjB^0sjtOT zd7q(6PtJwcYZ+i8R|YLV9-rn&e(YB^(7xr2Pf?4<+G841&Yu9>3=#2oiNH4MOk9L!~oQwc+B(mV$UfZWc z=!{y!Jju7^qXd|dnbb5Hp$HP^2oT)oW$#q+%BCPU3A7L{w86$A`*4ntFtaoovAn4+=@*Dt z<`fop_&mY3q%euv4e;U(qm`qc8|>+&y>wXMKxj_IHgp5&w;1D|^{94g{>bD_ zDm{k*@1b0+4kkN*FLAwft}|Eb@-DGHIvwOO!5as;k+&j&mNvnU{=h@fVnzqtCk$MG zCnsREenZG@XXmcB9DTiI>(6V9Pr$n8_h3(>rFTG+Dp>W}nTaT`N`RSm?WfqS7v02= zG}LRmh*A(8OSXm}pT6`lY7L_U9^-5VD(7N>LzV2YuxYF7lW=Nn@_OyuMEsA$B&bj^ z>=pFMPzLtY^{;{1&h%vn`K}X8$Tm7ULVAd%&R6H9h#)$ESmK+>^yNw~kA*}3FBmvb zE~>GhU1R5`ItXAbTN}T9!EA7jToJNWkyP>>%G!?oEv<#H_*HssSk`kp7ko5#yhQkf z&dIZtnapuBS;0R_WzDdySLhSwDD9ZhKyIT}>T^3&(wHH~{Z?vqy8`U7+SY6abw@qO z#EKZQhtVV850mZB2M(>Di28zGx+lHPQ*kdJYdBm{w*DFv96Kp*-sNpbymHQK%}JjT z5(p*_BPhN5x3F^#9d(|Tg8^6Z-eNhb_s8f`FV8a)#>}S9C*hikukNSp!N$JNbiF1m zvJ)+Fb2XcEQcW-L^k@JlCEl&&PuRE#;^}guVGXr&9a7PY?u3#={#~H32S0x1&fO*1 z8O83Zx@3<4MgswFl+NSu{0%qdMWqn3i5udd7D_%34hX zW{I0ieXaiW+pKd$Lt9&I#+xFxg@~ml5xj=jh$!iN>Vk z$`D7^BS($xN?gEN^g|1u%6aco;`Bp>kcC6gvj!uGv=(q&|ET=-`dZLS>YFd<!TGgu{g!hiyIm9+r~rZHlKEMo{@@p(oib>Ev-fPfkO*-Wn%& zOfcW)wsS$FRVnvhydghS#iWoyh8uOWxXr&RX1pT?O%U@2!1;@1oae-eG zgDB`iF5-Aw1L7Xe+my+GJCNI!c%BolTJ?7tL7tW&1mQ~lDGT*oBF5x!jsr2xrA2zI zS;e%8yi*j2PK3El&9hwIa^(|$7NlGz;k`iKCWA?C`7oR-dp4MamAwsqORNx;SZk=XFMx@yWpz4Rgv|)w#NobIGG* zxQkj^8Nx%b=TM`4Ol?6PzZF6Tv8)fGsYmc!cTH=UEV01q!k|4gXr|U8KE7}DGmh(s zZ8Wzw{-qK)D`Lvt`@Lz1PiX!^Lm?{FRxVDK(L+dl;Z;E3N?}J+Vz#s8SGxA7nzJ}{ zus#t*j=OwgX%=)Hblpzg->j)fi#Zu9>}{eu@fv=X%oKC0apP05QtVpRT}q&*VQ?E6 z?Ns%M>M@ZK8M{q4SLkQ;GMh!#6RMPE5Ei!)J-^yEPerMZ3?kqeI}ZP^v^I+ZRG>2V zNeKG+2;Abq(sAxBY`LFS<4V;8n~G>3Pm$lu55F0$$=>rjs80~;FriXPC9!=)geQ>u zfF8;7z83kQc7zK9zl8tnM}j)cF!MJw1xyr9W~4kV**4;dPbf>UKUm)v+FuY3ppZEC zEr)3$iW!#q-8@fud;0GNm>AO3KTSFY+%SvYpSf`{e9SH%LEd`Qv+`Dv+WA0 zD>E@JwKOC!Ikt~gvmp1YH&`+-YRfPafH3-oNypVmLq2-I_7mZ zE%7$!F3cu*B^7P_i@qz2Q`u@mGN$Ky4<3C6p)YVenyH^%cQsR|LXhd#g>4{i-Wgpz3A8RLr5Av?9H=O_G`csiVqysRNhgyTy-;5MOoij< z(j#2XB=)sBFga7{FupR~styJ+Z1Z6pAp&Hg#q{E;^_Uy9D((flDqsyY>fT66F&_-P z>O?_`fWy>zQ#A(Y`2=u?n7{}5GJV(G($aVN`tzt7S$B$cO>f_V=Z`_RLr4gLlVNMz z+TiUw&yHjl9wzwD2OhsZgEZ70AV&d1x7=RKy&11j5R4Iwhs6+#;fVz z+^Y~(_ni_Q^%(>`SSGnBDtO4HdYg^+;5~jj?e5HQj#)TeZTu}0)|{S+1Y$q2r`oJ{ zKY>rKW#u_zoJ&GsmM;@E6W^oy*0Dt+mTG&5l4`xh0X`sZ^`IO56SUtWlX=}n2dD_t zb5Kz>?>eAfX*pgmG@i2ftLnG_bReV{CbNX_2gvCvXf=@DeT`IA5dBFEs$}m-P~k$- zqtz!9j}_Ru2=i-M|IyGNTTZHddV0sf4G za|_?!eW>U&*yQHoX*4qEJaDu(^rtlBMF~A!pDtxOdK?rzKN({kr^1R?;@@$rJLgz> zKnhw4?A$C?4C`5N$4JdN6u-&LGW@eTk-HxFf@XlvhqpiqAO#q~kOG*&-lx$VikJI! zVI_{XZVrnULVi^8&aL|j`E)?+)-)R4D4B+L^>zj#E8Hu$ne((uZO!=gO2D6AnJ@J= zv3G-$mAf>RP~$ewD2}dqlWSL)Tf*ztA%FW?Dlf>;cEyt_fxJrzQ;cv8&@M?sHFih; z^`?~CH$TYiP(}14uE5zrWY5COgs=G3wq#jTQ<1lwebP%bNvrk5YMoY_J1)S|n z(-wpI=-7yHc8nkRTXXcLG!4VwXEy>swiSwHKQ)Q2T*WmwkgWhVF1rgo9N%h}H%`_d zF8xK^e^EQWwS^__2u6$_22uzAh5UNlbjWGTeajuqZHu*EXbcz7r8p+;)T#tFE$W^+ zQe+GM#r8vWr}qfeqqJk@9ucUMiwqq2*0;vH{Tq49&jGVpnii=wN{rsnqfULTryKo@ zOTgrZbIgTj6qhSUAe&>>4QW9jF&CfRxBioQXh(nsTx>B}tMZP~xM|eT(Av9PpVkBN z>Yx7;(IdQKMxgZXsAI=V>y;bp#T*ZK)lQ!5s>lbyL7vD$b50DhxZl6)Y@P3i?%a{o zoqpjqivN;vC!;sMI{5a1)(~Bpx=6lL*I+aG-a5TKN~shZ@G!}Q0ApxASbwVhbBQy1O^wW*f;et>XjOcNfUSQY(C zb*VP0l><4RCh$wTC8ETIuDWVK2^{!7a2?Ubzm5q1^jakA^0)2qKOUR@3QfT(O2?ZU z%vMmwt`4MbLQ5ZLR~n|v-cxZ`e6!5$f$b;J^4``_aYF$v&Cshjmy{a zyyfmBvO_szqtYu_F3+UA1#I2{QN}$;_y)${n;M+D)P2^c+0i^avMLdU&yC1HJ~}%e zXg<>1%1wx+oKjU(K_4H->|_+pSnaF-(JcF`V-F7R*H0qOZ{{oSoWnZG$SiVk07DNW z|K*jtCTUnwpoW&3b)N#KYr5rItb$o{m6S>G*9JrO>DEHg*tjyNOV>cok5-U2@42G= zc8Hi#OSi>v{EOzQSwp78ZWp$VkYlrlniKfES8xyL1-|xPpwXx;2(5JvBG>nr7&Y?PG;&1oE4w|JS5t>-$OVwN0TnBsX`fM4K(>q;5oMhvQ0_SS>TaP*= zi_bj$w&*vPKu@Ai44z-mU|d#pe|0$bD%h!L@Xy#Vy<%3nHQDtV?4lw zTjN7!5yDUHB?TV*58}+o>Vm0#i!f?aQw2yEM zr_GA~yRf2W@kSbZFu6gET&OT3*--9uwU?|;p zE-+Rcyz}8Kb>LoBC?2{~MLXHb5G5lv+**Ef%+^*A<9OFUvZSn}Le%Y_Aex)~{5d{> z7a3&Bc`IjhZ#7Oa1=6x2~?!7diCokd=VKKcY7iUHA6~*(NO!e<)+WKMwgH z2yJ@ZVlRJGwL}0at!v~K6!I9YxXvyJW-fO=UM z${jg_gfxkrB-n$YT=j-0Bps9cUPd|F-+zaS8-vM^NV8e^%A||zOUT7!F6l?|>w4mg z2uXYRx|rhC@82y#zDQSUjw~kBZ4o83lNf1qDha!?KSvcVvpt9lJbR?6E7x?2hs_7% zh-3OyS5RSJ?!$P}wdKrVOr5g-(EwoSPtGXyga1xqrWeP@;bs= z!qypiXYE8eW+(IndUSfk6Fd))^7WKJL<7tHEI0Q@nNR z=TS>cw+>HQD;gZnyv8D${GoZn1`E6g^d&6F8j2o_4X{?JHI7rc{Vq5aL^`?dYH3PA znQJ~un`dA1Y1aRiE{i@Ir|Cf6kD={3Zu@;mMM6;ujBR$#Ih5r26O7aJ*%B%!UX}tm znA-BIxInPRt}OIg4=G1<|4aXjm+D=xLDZT{zJzG6EfzHsk?W9Mx?N|I2R@{4DET7$ zd%1AgBYBz5ob-s_IF+5W*V$$SLQI%iJ|OCM$YYeMh{1 zD;0V*UU{Rl$JAYpM)+Hd(^47>@@_gUS^2J$r@{H*1bd&NCqhE{HO?jZW#UI%=rH~& z=&?jtXKF(jWYJb=ki3Fhc%eCK$Nc2ED(39VIC2${noutLzY{Ih#JqOjh zlRmqp=lvkyx@tnx_H=JFv{v@gD37&RHbV9{I0knoGSjqoLU`^|!J_;Kkd$`yv;3^nzjZT>40!XtyB^x?+!Pg#s5@-+cRnsb>Cx+*F2W3U*iJEP z;6BfvMGi&I)TT%*HsXObvR!^3t5X_wPimz5dnSm$FiciHEQKF8<3fVqF7kfZesTq= ziYV-hQvqf)Izn*!>)tFjlkKg|D!~^LnB<*(ER7{vdLY|p*$vzC)ql^w+EkH}r0OLnaQxz1HHY)9W{#an!>6Gzun5J56r`}8x@ zTe}+kK@W`Zmlf7s0aqnLIB!#^fVby?OA*(H;ODz3$D?Q0>DQ;1mb|M;v3bVPDVndk zN2NT@J&s}K1h@%_&@{M|9>=Z$tx~mC%B%CAEZ|GgZA4X+2$3P*h06e98Yiu!O z5C^wEhK9)NDp)WZtTuipw!7CW6LidIra78$=rg|f$Oy}^YCBpuQ(|=RF>BgYSA+6K zP>OT9iBDIEvcdZcq&WM7B5L2N>VM7x=-pf=EMwc~WBT(cmQ0b-GUf?>I#QvrNM$LEXKoAtXTSAb2;`xz4LcxA*TV1;<8sOv;my z$;D5an~5F0gCt_%0W)}FiYxkj+k)ZO_qAxS_seZ`6$p$p>>{Dy`_aB6?$zsl*0b~W$-crvYtP+zO^xN$hNq5y`r>UVbCFYG zYAgAT9TsnvHJtx4I=4~gVj4Q9V=>p5Z_NpHH{}=={%v11SGz zW*(@zh3?HfnQ>{DlYGBRv|tJ!gb9M>7tbsyMlvqeZR~HaUm#zkE3ylzioGs^g6!KB zca@)UKBoH?WaBnpddD@x=Uzo(wk8JO*=zoap@`h@?2gYxT3LR~F-+bal#!UHoYtpx z95n7gUWu2(%kbw?Trr(@Nfh_08dPv#c#)p|bvg^M{aQCW3DN&m=8oJR;Y%+u4j|7W z{$ZwhqZjZv6%mjJ4?YWgNL>QCiM@GUzIIK6d{N$7_@;9`bzX7zjo2f;Hm}64mCECU z8QraZDqZ3&$F>@!ype;eQO{ev5>o9r&EUcaoi*zoAzo-Ih+*|H>#y+MJo;%ykD*yc z`Ne1M@sAf)DzfS{k!{_F8j9c`uoT-jGC!DWQcczoW;8uPoWl~v!v$7~$+?c6xc!32 z6Lmt2yZl$pEMAz0U#TMOF-jpP!D`uGb_deJeN$#nsL6$jDw`NuzK(2^*nP%{MvjRw zr(c)ioaFp$%jNPN2EK%wF0)8*JR3o^RqIdtVA6+^%u6GlI2Cx%uw^to#0PF;k$@^( z0P;NE(5~N;)=<-^fKA`+viMiPIbNCq-{W*XQ!K7;3VdOxjaYn|cB&oWM|zLa&xhj; z>2{kvSW;AjwSs?wTh|(N0vEX-J8ixmZfAU?2#;audH3Xnq+1u%?A|grGJ86|;+t^q zjrU36X%A|wXu(Jw$=;U^3KK~c8kp~w^hk#krbY2a{(NvrCEzl2#mge^dswv(ZrI)+ zJlo14S#JztH^8;pa@tc^9oqUuvG}7RB{LPa(27sit%|WyVBXDAB*Tc_gXtSJ0t_j) zTkFaz-fNG#mRwVi$&x77ur|V{cz@u7CS2Y_OV zTMaq}JmAgNb#Ajlt1J{Dcz>d^NRdA;r&Jpik%bWH#g_1GdA{yPj=jq28FCKlib6FV`_b^umBkF2JSYn%({0{!*UUV=Q^! z12mA_@BVOmd_e5v@oi^(nS~u((v(|XuQv~a@5nR<=Ix5okrN008 zBrrHNu8^7=I-+C3W>>s#p%_@ zj0wV*>-HR&AC#RGu+h&d7?jd;H;BC9TpO-af~%`UzyQGmlQW6vW+t|72haKq{Cj-B zpM86t-+`XR6kgD`x`phUFy5YaW||z0d)5a3fDyp2Q|k}!KoRl&BEW>qNzv!I&pl6D zYvgaYRq?Oj76Fu&_iTjZZiPoWdIpPEO3T@QjDi4U4zo1j`CRwswEYr7tN@LgZ#*O; zr%JyK6Ef>#+Kpn9?_-LX%q*_R%lKBxEDx? zG4dENpKL6_iMyfQ^UNfhz&CMW;9U{bi-fXScn|B`9IULg`qj$VUL3};>RdvSWt~VU zu=yrB6{$+X60_bOkdnKseV~K!lyhyNT}m`kIF3(ZXdC4kv)% zZqZiZ*Ad*La2Ad&R{ZU?prr}i(kaEl+5jG40=HJ*Y_M|1z2qcRRK81Qn4mY} zK*(&AnoBZkTw1-!jvWRoc@HU|H$EQW^6hSaRU}gY1N00J3Zm+!mY-{mmc>~v5e>vi zo1WoVy8n3=p{&F=2cSpin=spHTv!4e0B;L-{qz~oB!Rl7O0xEvK1DfqVltbiil(jkdW4Mj>K~*$-#oNZ8dXJ7$5@p1LX~#iiAHK z+lub%KP9`K?8#pGpn$Kxj~?Mt(n5~e!6l|KM>(r&wuYSomBupb!i|rAYjhQyFQ7HY z^Yuf}2=PxbG;-&PPb~6Me4j~r`!s`VHY`4(=AbZraVSuJD1kFs(;wiO=_tn|);iA5 zje6UcoCq%c1+H0mndjgy!%3^a<-zO}8)}W1sPMtE$lZ&R6PlZJO%(d#1NH_#y}N~U zG$R%*Oz3-ePA^lZt)c8bNY_L(jZk_r)RJQ*QOn)}8>`V-LmFuHxn%p6)`WVtIZOGN z_n9h2{j;2DCF{pcZC9#ZfZgw*s0vtvHL~*e!Z3XnN;<2C-{x>fI}r(LvNZaogKf@p z5;T&UH9iM1xn|{I8qd!spAF0;vUSYml@rTNS}}KMoJ*>vc8_iFd;OO$Yb6Jr30U;% zvY?gr@BBH9dHgvY7B&iz&EJFG(Y{kt2C({|4VvRN>0GnW@k&=OG*4lEyZBTWsg0km z4|5ZaTVm9pk;+rHeD6+NbGru7veMEQex=0f7^g*>&g3G*B`vnGioMbqD5V0&n!QCt zcJ_J0GyC%|oFk_VV&XzY9+)d~4)VG9^L(o`p1XVfr~Ri0zd{JMXdm&F($2mx?Pa@* zBUyZj((VXhm}t2_wRX18Tt&}^Z6@*HF5|}BuobLmA%B(jm9U)I<~@8;KjEdc(l>
  • Pb{kt5S=+8)E6UQ9f`zw9I80bC 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%0A40?yc@DH~Siv%4CmxvXK-Fs7>yXx;2cqt7r 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. +This dashboard requires [additional resources metrics]({{< relref "../../requirements.md#additional-resources-metrics" >}}). ## Example The following example shows a Writes networking dashboard from a demo cluster. -![Grafana Mimir writes networking dashboard](../../../images/dashboards/mimir-writes-networking.png) +![Grafana Mimir writes networking dashboard](mimir-writes-networking.png) diff --git a/docs/sources/operators-guide/visualizing-metrics/dashboards/writes-networking/mimir-writes-networking.png b/docs/sources/operators-guide/visualizing-metrics/dashboards/writes-networking/mimir-writes-networking.png new file mode 100644 index 0000000000000000000000000000000000000000..14d59adc7948f9186a5ba2647b5587711a1512ca GIT binary patch literal 82699 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. +This dashboard requires [additional resources metrics]({{< relref "../../requirements.md#additional-resources-metrics" >}}). ## Example The following example shows a Writes resources dashboard from a demo cluster. -![Grafana Mimir writes resources dashboard](../../../images/dashboards/mimir-writes-resources.png) +![Grafana Mimir writes resources dashboard](mimir-writes-resources.png) diff --git a/docs/sources/operators-guide/visualizing-metrics/dashboards/writes-resources/mimir-writes-resources.png b/docs/sources/operators-guide/visualizing-metrics/dashboards/writes-resources/mimir-writes-resources.png new file mode 100644 index 0000000000000000000000000000000000000000..39e91d4eb7c297fa7c40476771e7120faf169489 GIT binary patch literal 129483 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�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

    ul_pdOIsD=qD5g}_ohWVaSV|Z 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 Date: Mon, 21 Mar 2022 12:07:06 +0100 Subject: [PATCH 26/30] Remove mention of cortex in PR template (#968) Signed-off-by: Dimitar Dimitrov --- .github/pull_request_template.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 4e03ea117b..02ce0741fc 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -8,8 +8,6 @@ #### Which issue(s) this PR fixes or relates to - - Fixes # #### Checklist From 8dadc1b9676d2b1136fcb8ed10da683771f9e855 Mon Sep 17 00:00:00 2001 From: Marco Pracucci Date: Mon, 21 Mar 2022 13:07:41 +0100 Subject: [PATCH 27/30] Updated VERSION and CHANGELOG.md Signed-off-by: Marco Pracucci --- CHANGELOG.md | 2 +- VERSION | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index faf1dc8068..22fdcc8e78 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,7 @@ ### Mimirtool -## 2.0.0-rc.3 +## 2.0.0-rc.4 ### Grafana Mimir diff --git a/VERSION b/VERSION index f6e3c9964f..7ac6eb03b0 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.0.0-rc.3 \ No newline at end of file +2.0.0-rc.4 \ No newline at end of file From 923bbb16c5ceb8bc1d8bc69e438b329cf07991cc Mon Sep 17 00:00:00 2001 From: Dimitar Dimitrov Date: Mon, 21 Mar 2022 15:55:09 +0100 Subject: [PATCH 28/30] Set mimir 2.0 descriptor to ones from prepare-2.0.0-rc.4 (#1516) Signed-off-by: Dimitar Dimitrov --- .../config/descriptors/mimir-v2.0.0.json | 41 ------------------- 1 file changed, 41 deletions(-) diff --git a/pkg/mimirtool/config/descriptors/mimir-v2.0.0.json b/pkg/mimirtool/config/descriptors/mimir-v2.0.0.json index c750e97ff2..a4553ab81d 100644 --- a/pkg/mimirtool/config/descriptors/mimir-v2.0.0.json +++ b/pkg/mimirtool/config/descriptors/mimir-v2.0.0.json @@ -1315,38 +1315,6 @@ ], "fieldValue": null, "fieldDefaultValue": null - }, - { - "kind": "block", - "name": "forwarding", - "required": false, - "desc": "", - "blockEntries": [ - { - "kind": "field", - "name": "enabled", - "required": false, - "desc": "Enables the feature to forward certain metrics in remote_write requests, depending on defined rules.", - "fieldValue": null, - "fieldDefaultValue": false, - "fieldFlag": "distributor.forwarding.enabled", - "fieldType": "boolean", - "fieldCategory": "experimental" - }, - { - "kind": "field", - "name": "request_timeout", - "required": false, - "desc": "Timeout for requests to ingestion endpoints to which we forward metrics.", - "fieldValue": null, - "fieldDefaultValue": 10000000000, - "fieldFlag": "distributor.forwarding.request-timeout", - "fieldType": "duration", - "fieldCategory": "experimental" - } - ], - "fieldValue": null, - "fieldDefaultValue": null } ], "fieldValue": null, @@ -2982,15 +2950,6 @@ "fieldDefaultValue": 0, "fieldFlag": "alertmanager.max-alerts-size-bytes", "fieldType": "int" - }, - { - "kind": "field", - "name": "forwarding_rules", - "required": false, - "desc": "Rules based on which the Distributor decides whether a metric should be forwarded to an alternative remote_write API endpoint.", - "fieldValue": null, - "fieldDefaultValue": {}, - "fieldType": "map of string to validation.ForwardingRule" } ], "fieldValue": null, From 00d7a7250796b0fa64ce1aa00540f21bd33ffd6d Mon Sep 17 00:00:00 2001 From: Dimitar Dimitrov Date: Mon, 21 Mar 2022 16:36:54 +0100 Subject: [PATCH 29/30] Update GEM 2.0 descriptors to omit forwarding rules (#1518) Signed-off-by: Dimitar Dimitrov --- .../config/descriptors/gem-v2.0.0.json | 41 ------------------- 1 file changed, 41 deletions(-) diff --git a/pkg/mimirtool/config/descriptors/gem-v2.0.0.json b/pkg/mimirtool/config/descriptors/gem-v2.0.0.json index 5007b122b0..268921e606 100644 --- a/pkg/mimirtool/config/descriptors/gem-v2.0.0.json +++ b/pkg/mimirtool/config/descriptors/gem-v2.0.0.json @@ -1315,38 +1315,6 @@ ], "fieldValue": null, "fieldDefaultValue": null - }, - { - "kind": "block", - "name": "forwarding", - "required": false, - "desc": "", - "blockEntries": [ - { - "kind": "field", - "name": "enabled", - "required": false, - "desc": "Enables the feature to forward certain metrics in remote_write requests, depending on defined rules.", - "fieldValue": null, - "fieldDefaultValue": false, - "fieldFlag": "distributor.forwarding.enabled", - "fieldType": "boolean", - "fieldCategory": "experimental" - }, - { - "kind": "field", - "name": "request_timeout", - "required": false, - "desc": "Timeout for requests to ingestion endpoints to which we forward metrics.", - "fieldValue": null, - "fieldDefaultValue": 10000000000, - "fieldFlag": "distributor.forwarding.request-timeout", - "fieldType": "duration", - "fieldCategory": "experimental" - } - ], - "fieldValue": null, - "fieldDefaultValue": null } ], "fieldValue": null, @@ -2982,15 +2950,6 @@ "fieldDefaultValue": 0, "fieldFlag": "alertmanager.max-alerts-size-bytes", "fieldType": "int" - }, - { - "kind": "field", - "name": "forwarding_rules", - "required": false, - "desc": "Rules based on which the Distributor decides whether a metric should be forwarded to an alternative remote_write API endpoint.", - "fieldValue": null, - "fieldDefaultValue": {}, - "fieldType": "map of string to validation.ForwardingRule" } ], "fieldValue": null, From 468e681c54fe03b236568a048f6d92b2a54c5614 Mon Sep 17 00:00:00 2001 From: Marco Pracucci Date: Mon, 21 Mar 2022 16:38:04 +0100 Subject: [PATCH 30/30] Docs: Move architecture components doc to Hugo bundles (#1517) * Migrated query-frontend doc to Hugo bundle Signed-off-by: Marco Pracucci * Migrated query-scheduler doc to Hugo bundle Signed-off-by: Marco Pracucci * Migrated compactor doc to Hugo bundle Signed-off-by: Marco Pracucci * Reverted unintended change in Makefile Signed-off-by: Marco Pracucci --- .../about-grafana-mimir-architecture.md | 4 ++-- .../operators-guide/architecture/bucket-index.md | 2 +- ...mpactor-horizontal-and-vertical-compaction.png | Bin .../compactor}/compactor-split-and-merge.png | Bin .../{compactor.md => compactor/index.md} | 14 +++++++------- .../index.md} | 12 ++++++------ .../query-frontend-architecture.png | Bin .../index.md} | 8 ++++---- .../query-scheduler-architecture.png | Bin .../operators-guide/architecture/hash-ring.md | 2 +- .../sources/operators-guide/reference-glossary.md | 6 +++--- .../operators-guide/reference-http-api/_index.md | 2 +- .../planning-capacity.md | 8 ++++---- .../production-tips.md | 6 +++--- docs/sources/release-notes/v2.0.md | 2 +- 15 files changed, 33 insertions(+), 33 deletions(-) rename docs/sources/operators-guide/{images => architecture/components/compactor}/compactor-horizontal-and-vertical-compaction.png (100%) rename docs/sources/operators-guide/{images => architecture/components/compactor}/compactor-split-and-merge.png (100%) rename docs/sources/operators-guide/architecture/components/{compactor.md => compactor/index.md} (85%) rename docs/sources/operators-guide/architecture/components/{query-frontend.md => query-frontend/index.md} (88%) rename docs/sources/operators-guide/{images => architecture/components/query-frontend}/query-frontend-architecture.png (100%) rename docs/sources/operators-guide/architecture/components/{query-scheduler.md => query-scheduler/index.md} (88%) rename docs/sources/operators-guide/{images => architecture/components/query-scheduler}/query-scheduler-architecture.png (100%) diff --git a/docs/sources/operators-guide/architecture/about-grafana-mimir-architecture.md b/docs/sources/operators-guide/architecture/about-grafana-mimir-architecture.md index b5e63b5c82..d8208bd9f1 100644 --- a/docs/sources/operators-guide/architecture/about-grafana-mimir-architecture.md +++ b/docs/sources/operators-guide/architecture/about-grafana-mimir-architecture.md @@ -48,9 +48,9 @@ For more information, refer to [timeline of block uploads]({{< relref "../runnin #### Series sharding and replication By default, each time series is replicated to three ingesters, and each ingester writes its own block to the long-term storage. -The [Compactor]({{< relref "components/compactor.md" >}}) merges blocks from multiple ingesters into a single block, and removes duplicate samples. +The [Compactor]({{< relref "components/compactor/index.md" >}}) merges blocks from multiple ingesters into a single block, and removes duplicate samples. Blocks compaction significantly reduces storage utilization. -For more information, refer to [Compactor]({{< relref "components/compactor.md" >}}) and [Production tips]({{< relref "../running-production-environment/production-tips.md" >}}). +For more information, refer to [Compactor]({{< relref "components/compactor/index.md" >}}) and [Production tips]({{< relref "../running-production-environment/production-tips.md" >}}). ### The read path diff --git a/docs/sources/operators-guide/architecture/bucket-index.md b/docs/sources/operators-guide/architecture/bucket-index.md index 100a19a147..b6b1a8062f 100644 --- a/docs/sources/operators-guide/architecture/bucket-index.md +++ b/docs/sources/operators-guide/architecture/bucket-index.md @@ -38,7 +38,7 @@ The `bucket-index.json.gz` contains: ## How it gets updated -The [compactor](./compactor.md) periodically scans the bucket and uploads an updated bucket index to the storage. +The [compactor](./compactor/index.md) periodically scans the bucket and uploads an updated bucket index to the storage. You can configure the frequency with which the bucket index is updated via `-compactor.cleanup-interval`. The use of the bucket index is optional, but the index is built and updated by the compactor even if `-blocks-storage.bucket-store.bucket-index.enabled=false`. diff --git a/docs/sources/operators-guide/images/compactor-horizontal-and-vertical-compaction.png b/docs/sources/operators-guide/architecture/components/compactor/compactor-horizontal-and-vertical-compaction.png similarity index 100% rename from docs/sources/operators-guide/images/compactor-horizontal-and-vertical-compaction.png rename to docs/sources/operators-guide/architecture/components/compactor/compactor-horizontal-and-vertical-compaction.png diff --git a/docs/sources/operators-guide/images/compactor-split-and-merge.png b/docs/sources/operators-guide/architecture/components/compactor/compactor-split-and-merge.png similarity index 100% rename from docs/sources/operators-guide/images/compactor-split-and-merge.png rename to docs/sources/operators-guide/architecture/components/compactor/compactor-split-and-merge.png diff --git a/docs/sources/operators-guide/architecture/components/compactor.md b/docs/sources/operators-guide/architecture/components/compactor/index.md similarity index 85% rename from docs/sources/operators-guide/architecture/components/compactor.md rename to docs/sources/operators-guide/architecture/components/compactor/index.md index 8c05f9fddb..5598928d8f 100644 --- a/docs/sources/operators-guide/architecture/components/compactor.md +++ b/docs/sources/operators-guide/architecture/components/compactor/index.md @@ -12,7 +12,7 @@ The compactor increases query performance and reduces long-term storage usage by The compactor is the component responsible for: - Compacting multiple blocks of a given tenant into a single, optimized larger block. This deduplicates chunks and reduces the size of the index, resulting in reduced storage costs. Querying fewer blocks is faster, so it also increases query speed. -- Keeping the per-tenant bucket index updated. The [bucket index]({{< relref "../bucket-index.md" >}}) is used by [queriers]({{< relref "querier.md" >}}), [store-gateways]({{< relref "store-gateway.md" >}}), and [rulers]({{< relref "ruler.md" >}}) to discover both new blocks and deleted blocks in the storage. +- Keeping the per-tenant bucket index updated. The [bucket index]({{< relref "../../bucket-index.md" >}}) is used by [queriers]({{< relref "../querier.md" >}}), [store-gateways]({{< relref "../store-gateway.md" >}}), and [rulers]({{< relref "../ruler.md" >}}) to discover both new blocks and deleted blocks in the storage. - Deleting blocks that are no longer within a configurable retention period. The compactor is stateless. @@ -27,7 +27,7 @@ The compactor runs at regular, configurable intervals. **Horizontal compaction** triggers after a vertical compaction. It compacts several blocks with adjacent range periods into a single larger block. The total size of the associated block chunks does not change after horizontal compaction. The horizontal compaction may significantly reduce the size of the index and the index-header kept in memory by store-gateways. -![Compactor - horizontal and vertical compaction](../../../images/compactor-horizontal-and-vertical-compaction.png) +![Compactor - horizontal and vertical compaction](compactor-horizontal-and-vertical-compaction.png) @@ -38,7 +38,7 @@ Compaction can be tuned for clusters with large tenants. Configuration specifies - **Vertical scaling**
    The setting `-compactor.compaction-concurrency` configures the max number of concurrent compactions running in a single compactor instance. Each compaction uses one CPU core. - **Horizontal scaling**
    - By default, tenant blocks can be compacted by any Grafana Mimir compactor. When you enable compactor [shuffle sharding]({{< relref "../../configuring/configuring-shuffle-sharding.md" >}}) by setting `-compactor.compactor-tenant-shard-size` (or its respective YAML configuration option) to a value higher than `0` and lower than the number of available compactors, only the specified number of compactors are eligible to compact blocks for a given tenant. + By default, tenant blocks can be compacted by any Grafana Mimir compactor. When you enable compactor [shuffle sharding]({{< relref "../../../configuring/configuring-shuffle-sharding.md" >}}) by setting `-compactor.compactor-tenant-shard-size` (or its respective YAML configuration option) to a value higher than `0` and lower than the number of available compactors, only the specified number of compactors are eligible to compact blocks for a given tenant. ## Compaction algorithm @@ -53,7 +53,7 @@ To split, the first level of compaction, for example `2h`, the compactor divides The compactor merges the split blocks for each shard. This compacts all _N_ split blocks of a given shard. The merge reduces the number of blocks from _N \* M_ to _M_. For a given compaction time range, there will be a compacted block for each of the _M_ shards. -![Compactor - split-and-merge compaction strategy](../../../images/compactor-split-and-merge.png) +![Compactor - split-and-merge compaction strategy](compactor-split-and-merge.png) @@ -73,9 +73,9 @@ The compactor shards compaction jobs, either from a single tenant or multiple te Whenever the pool of compactors grows or shrinks, tenants and jobs are resharded across the available compactor instances without any manual intervention. -Compactor sharding uses a [hash ring]({{< relref "../hash-ring.md" >}}). At startup, a compactor generates random tokens and registers itself to the compactor hash ring. While running, it periodically scans the storage bucket at every interval defined by `-compactor.compaction-interval`, to discover the list of tenants in storage and compact blocks for each tenant which hash matches the token ranges assigned to the instance itself within the hash ring. +Compactor sharding uses a [hash ring]({{< relref "../../hash-ring.md" >}}). At startup, a compactor generates random tokens and registers itself to the compactor hash ring. While running, it periodically scans the storage bucket at every interval defined by `-compactor.compaction-interval`, to discover the list of tenants in storage and compact blocks for each tenant which hash matches the token ranges assigned to the instance itself within the hash ring. -To configure the compactors' hash ring, refer to [configuring hash rings]({{< relref "../../configuring/configuring-hash-rings.md" >}}). +To configure the compactors' hash ring, refer to [configuring hash rings]({{< relref "../../../configuring/configuring-hash-rings.md" >}}). ### Waiting for a stable hash ring at startup @@ -132,4 +132,4 @@ Alternatively, assuming the largest `-compactor.block-ranges` is `24h` (the defa Refer to the [compactor](../../../configuring/reference-configuration-parameters/#compactor) block section and the [limits](../../../configuring/reference-configuration-parameters/#limits) block section for details of compaction-related configuration. -The [alertmanager]({{< relref "alertmanager.md" >}}) and [ruler]({{< relref "ruler.md" >}}) components can also use object storage to store their configurations and rules uploaded by users. In that case a separate bucket should be created to store alertmanager configurations and rules: using the same bucket between ruler/alertmanager and blocks will cause issues with the compactor. +The [alertmanager]({{< relref "../alertmanager.md" >}}) and [ruler]({{< relref "../ruler.md" >}}) components can also use object storage to store their configurations and rules uploaded by users. In that case a separate bucket should be created to store alertmanager configurations and rules: using the same bucket between ruler/alertmanager and blocks will cause issues with the compactor. diff --git a/docs/sources/operators-guide/architecture/components/query-frontend.md b/docs/sources/operators-guide/architecture/components/query-frontend/index.md similarity index 88% rename from docs/sources/operators-guide/architecture/components/query-frontend.md rename to docs/sources/operators-guide/architecture/components/query-frontend/index.md index 7d6234fb8b..734f1402dd 100644 --- a/docs/sources/operators-guide/architecture/components/query-frontend.md +++ b/docs/sources/operators-guide/architecture/components/query-frontend/index.md @@ -7,7 +7,7 @@ weight: 60 # Grafana Mimir query-frontend -The query-frontend is a stateless component that provides the same API as the [querier]({{< relref "./querier.md" >}}) and can be used to accelerate the read path. +The query-frontend is a stateless component that provides the same API as the [querier]({{< relref "../querier.md" >}}) and can be used to accelerate the read path. Although the query-frontend is not required, we recommend that you deploy it. When you deploy the query-frontend, you should make query requests to the query-frontend instead of the queriers. The queriers are required within the cluster to execute the queries. @@ -18,7 +18,7 @@ To connect the queriers with the query-frontends, configure queriers with the qu We recommend that you run at least two query-frontend replicas for high-availability reasons. -![Query-frontend architecture](../../../images/query-frontend-architecture.png) +![Query-frontend architecture](query-frontend-architecture.png) [//]: # "Diagram source at https://docs.google.com/presentation/d/1bHp8_zcoWCYoNU2AhO2lSagQyuIrghkCncViSqn14cU/edit" @@ -65,13 +65,13 @@ Although aligning the step parameter to the query time range increases the perfo ### About query sharding -The query-frontend also provides [query sharding]({{< relref "query-sharding.md" >}}). +The query-frontend also provides [query sharding]({{< relref "../../query-sharding.md" >}}). ## Why query-frontend scalability is limited The query-frontend scalability is limited by the configured number of workers per querier. -When you don't use the [query-scheduler]({{< relref "./query-scheduler.md">}}), the query-frontend stores a queue of queries to execute. +When you don't use the [query-scheduler]({{< relref "../query-scheduler/index.md">}}), the query-frontend stores a queue of queries to execute. A querier runs `-querier.max-concurrent` workers and each worker connects to one of the query-frontend replicas to pull queries to execute. A querier worker executes one query at a time. @@ -88,12 +88,12 @@ The queries exceeding the configured maximum concurrency create a backlog in the The backlog might cause a suboptimal utilization of querier resources, which can result in poor query performance when you run Grafana Mimir at scale. -The [query-scheduler]({{< relref "./query-scheduler.md" >}}) is an optional component that you can deploy to overcome the query-frontend scalability limitations. +The [query-scheduler]({{< relref "../query-scheduler/index.md" >}}) is an optional component that you can deploy to overcome the query-frontend scalability limitations. ## DNS configuration and readiness When a query-frontend starts up, it does not immediately have queriers attached to it. -The [`/ready` endpoint]({{< relref "../../reference-http-api/#readiness-probe" >}}) returns an HTTP 200 status code only when the query-frontend has at least one querier attached to it, and is then ready to serve queries. +The [`/ready` endpoint]({{< relref "../../../reference-http-api/#readiness-probe" >}}) returns an HTTP 200 status code only when the query-frontend has at least one querier attached to it, and is then ready to serve queries. Configure the `/ready` endpoint as a healthcheck in your load balancer; otherwise, a query-frontend scale-out event might result in failed queries or high latency until queriers connect to the query-frontend. If you use query-frontend with query-scheduler, the `/ready` endpoint reports an HTTP 200 status code only after the query-frontend connects to at least one query-scheduler. diff --git a/docs/sources/operators-guide/images/query-frontend-architecture.png b/docs/sources/operators-guide/architecture/components/query-frontend/query-frontend-architecture.png similarity index 100% rename from docs/sources/operators-guide/images/query-frontend-architecture.png rename to docs/sources/operators-guide/architecture/components/query-frontend/query-frontend-architecture.png diff --git a/docs/sources/operators-guide/architecture/components/query-scheduler.md b/docs/sources/operators-guide/architecture/components/query-scheduler/index.md similarity index 88% rename from docs/sources/operators-guide/architecture/components/query-scheduler.md rename to docs/sources/operators-guide/architecture/components/query-scheduler/index.md index adcdd4e735..312f04dd59 100644 --- a/docs/sources/operators-guide/architecture/components/query-scheduler.md +++ b/docs/sources/operators-guide/architecture/components/query-scheduler/index.md @@ -7,15 +7,15 @@ weight: 120 # (Optional) Grafana Mimir query-scheduler -The query-scheduler is an optional, stateless component that retains a queue of queries to execute, and distributes the workload to available [queriers]({{< relref "querier.md" >}}). +The query-scheduler is an optional, stateless component that retains a queue of queries to execute, and distributes the workload to available [queriers]({{< relref "../querier.md" >}}). -![Query-scheduler architecture](../../../images/query-scheduler-architecture.png) +![Query-scheduler architecture](query-scheduler-architecture.png) [//]: # "Diagram source at https://docs.google.com/presentation/d/1bHp8_zcoWCYoNU2AhO2lSagQyuIrghkCncViSqn14cU/edit" The following flow describes how a queries moves through a Grafana Mimir cluster: -1. The [query-frontend]({{< relref "./query-frontend/_index.md" >}}) receives queries, and then either splits and shards them, or serves them from the cache. +1. The [query-frontend]({{< relref "../query-frontend/index.md" >}}) receives queries, and then either splits and shards them, or serves them from the cache. 1. The query-frontend enqueues the queries into a query-scheduler. 1. The query-scheduler stores the queries in an in-memory queue where they wait for a querier to pick them up. 1. Queriers pick up the queries, and executes them. @@ -23,7 +23,7 @@ The following flow describes how a queries moves through a Grafana Mimir cluster ## Benefits of using the query-scheduler -Query-scheduler enables the scaling of query-frontends. You might experience challenges when you scale query-frontend. To learn more about query-frontend scalability limits, refer to [Why query-frontend scalability is limited]({{< relref "query-frontend/_index.md#why-query-frontend-scalability-is-limited" >}}). +Query-scheduler enables the scaling of query-frontends. You might experience challenges when you scale query-frontend. To learn more about query-frontend scalability limits, refer to [Why query-frontend scalability is limited]({{< relref "../query-frontend/index.md#why-query-frontend-scalability-is-limited" >}}). ### How query-scheduler solves query-frontend scalability limits diff --git a/docs/sources/operators-guide/images/query-scheduler-architecture.png b/docs/sources/operators-guide/architecture/components/query-scheduler/query-scheduler-architecture.png similarity index 100% rename from docs/sources/operators-guide/images/query-scheduler-architecture.png rename to docs/sources/operators-guide/architecture/components/query-scheduler/query-scheduler-architecture.png diff --git a/docs/sources/operators-guide/architecture/hash-ring.md b/docs/sources/operators-guide/architecture/hash-ring.md index 15b7232cde..20622c64bd 100644 --- a/docs/sources/operators-guide/architecture/hash-ring.md +++ b/docs/sources/operators-guide/architecture/hash-ring.md @@ -74,7 +74,7 @@ Each of the following components builds an independent hash ring: - [Ingesters]({{< relref "components/ingester.md" >}}) shard and replicate series. - [Distributors]({{< relref "components/distributor.md" >}}) enforce rate limits. -- [Compactors]({{< relref "components/compactor.md" >}}) shard compaction workload. +- [Compactors]({{< relref "components/compactor/index.md" >}}) shard compaction workload. - [Store-gateways]({{< relref "components/store-gateway.md" >}}) shard blocks to query from long-term storage. - [(Optional) Rulers]({{< relref "components/ruler.md" >}}) shard rule groups to evaluate. - [(Optional) Alertmanagers]({{< relref "components/alertmanager.md" >}}) shard tenants. diff --git a/docs/sources/operators-guide/reference-glossary.md b/docs/sources/operators-guide/reference-glossary.md index cf7abd89ad..11c794739a 100644 --- a/docs/sources/operators-guide/reference-glossary.md +++ b/docs/sources/operators-guide/reference-glossary.md @@ -30,11 +30,11 @@ Grafana Mimir comprises several components. Each component provides a specific function to the system. For component specific documentation, refer to one of the following topics: -- [Compactor]({{< relref "architecture/components/compactor.md" >}}) +- [Compactor]({{< relref "architecture/components/compactor/index.md" >}}) - [Distributor]({{< relref "architecture/components/distributor.md" >}}) - [Ingester]({{< relref "architecture/components/ingester.md" >}}) -- [Query-frontend]({{< relref "architecture/components/query-frontend/_index.md" >}}) -- [Query-scheduler]({{< relref "architecture/components/query-scheduler.md" >}}) +- [Query-frontend]({{< relref "architecture/components/query-frontend/index.md" >}}) +- [Query-scheduler]({{< relref "architecture/components/query-scheduler/index.md" >}}) - [Store-gateway]({{< relref "architecture/components/store-gateway.md" >}}) - [Optional: Alertmanager]({{< relref "architecture/components/alertmanager.md" >}}) - [Optional: Ruler]({{< relref "architecture/components/ruler.md" >}}) diff --git a/docs/sources/operators-guide/reference-http-api/_index.md b/docs/sources/operators-guide/reference-http-api/_index.md index c0c26353a9..11261b01cd 100644 --- a/docs/sources/operators-guide/reference-http-api/_index.md +++ b/docs/sources/operators-guide/reference-http-api/_index.md @@ -305,7 +305,7 @@ This endpoint displays a web page with the ingesters hash ring status, including ## Querier / Query-frontend -The following endpoints are exposed both by the [querier]({{< relref "../architecture/components/querier.md" >}}) and [query-frontend]({{< relref "../architecture/components/query-frontend/_index.md" >}}). +The following endpoints are exposed both by the [querier]({{< relref "../architecture/components/querier.md" >}}) and [query-frontend]({{< relref "../architecture/components/query-frontend/index.md" >}}). ### Instant query diff --git a/docs/sources/operators-guide/running-production-environment/planning-capacity.md b/docs/sources/operators-guide/running-production-environment/planning-capacity.md index f9b6164b9c..c5ffc9c0b9 100644 --- a/docs/sources/operators-guide/running-production-environment/planning-capacity.md +++ b/docs/sources/operators-guide/running-production-environment/planning-capacity.md @@ -75,7 +75,7 @@ Estimated required CPU, memory, and disk space: ### Query-frontend -The [query-frontend]({{< relref "../architecture/components/query-frontend/_index.md" >}}) component resources utilization is determined by the number of queries per second. +The [query-frontend]({{< relref "../architecture/components/query-frontend/index.md" >}}) component resources utilization is determined by the number of queries per second. Estimated required CPU and memory: @@ -84,7 +84,7 @@ Estimated required CPU and memory: ### (Optional) Query-scheduler -The [query-scheduler]({{< relref "../architecture/components/query-scheduler.md" >}}) component resources’ utilization is determined by the number of queries per second. +The [query-scheduler]({{< relref "../architecture/components/query-scheduler/index.md" >}}) component resources’ utilization is determined by the number of queries per second. Estimated required CPU and memory: @@ -130,7 +130,7 @@ The rules evaluation is computationally equal to queries execution, so the queri ### Compactor -The [compactor]({{< relref "../architecture/components/compactor.md" >}}) component resources utilization is determined by the number of active series. +The [compactor]({{< relref "../architecture/components/compactor/index.md" >}}) component resources utilization is determined by the number of active series. The compactor can scale horizontally both in Grafana Mimir clusters with one tenant and multiple tenants. We recommend to run at least one compactor instance every 20 million active series ingested in total in the Grafana Mimir cluster, calculated before ingesters replication. @@ -141,7 +141,7 @@ Assuming you run one compactor instance every 20 million active series, the esti - Memory: 4GB - Disk: 300GB -For more information about disk requirements, refer to [Compactor disk utilization]({{< relref "../architecture/components/compactor.md#compactor-disk-utilization" >}}). +For more information about disk requirements, refer to [Compactor disk utilization]({{< relref "../architecture/components/compactor/index.md#compactor-disk-utilization" >}}). **To estimate the number of active series before ingesters replication, query the number of active series across all Prometheus servers:** diff --git a/docs/sources/operators-guide/running-production-environment/production-tips.md b/docs/sources/operators-guide/running-production-environment/production-tips.md index 18d6e22cdc..75d0605438 100644 --- a/docs/sources/operators-guide/running-production-environment/production-tips.md +++ b/docs/sources/operators-guide/running-production-environment/production-tips.md @@ -48,7 +48,7 @@ When running Grafana Mimir at scale, querying non-compacted blocks might be inef Configure Grafana Mimir to ensure only compacted blocks are queried: -1. Configure compactor's `-compactor.split-and-merge-shards` and `-compactor.split-groups` for every tenant with more than 20 million active series. For more information about configuring the compactor's split and merge shards, refer to [compactor]({{< relref "../architecture/components/compactor.md" >}}). +1. Configure compactor's `-compactor.split-and-merge-shards` and `-compactor.split-groups` for every tenant with more than 20 million active series. For more information about configuring the compactor's split and merge shards, refer to [compactor]({{< relref "../architecture/components/compactor/index.md" >}}). 1. Configure querier's `-querier.query-store-after` equal to `-querier.query-ingesters-within` minus five minutes. The five-minute delta is recommended to ensure the time range on the boundary is queried both from ingesters and queriers. #### How to estimate `-querier.query-store-after` @@ -61,7 +61,7 @@ The following diagram shows all of the timings involved in the estimation. This - The compactor takes up to three hours to compact two-hour blocks shipped from all ingesters - Querier and store-gateways take up to 15 minutes to discover and load a new compacted block -Based on these assumptions, in the worst-case scenario, it takes up to six hours and 45 minutes from when a sample is ingested until that sample has been appended to a block flushed to the storage and the block is [vertically compacted](./compactor.md) with all other overlapping two-hour blocks shipped from ingesters. +Based on these assumptions, in the worst-case scenario, it takes up to six hours and 45 minutes from when a sample is ingested until that sample has been appended to a block flushed to the storage and the block is [vertically compacted](./compactor/index.md) with all other overlapping two-hour blocks shipped from ingesters. ![Avoid querying non compacted blocks](../../images/avoid-querying-non-compacted-blocks.png) @@ -89,7 +89,7 @@ We recommend configuring the system's `file-max` ulimit at least to `65536` to a ### Ensure the compactor has enough disk space The compactor requires a lot of disk space to download source blocks from the long-term storage and temporarily store the compacted block before uploading it to the storage. -For more information about required disk space, refer to [Compactor disk utilization](../architecture/components/compactor.md#compactor-disk-utilization). +For more information about required disk space, refer to [Compactor disk utilization](../architecture/components/compactor/index.md#compactor-disk-utilization). ## Caching diff --git a/docs/sources/release-notes/v2.0.md b/docs/sources/release-notes/v2.0.md index 4aab8f4d7f..d4da83ad32 100644 --- a/docs/sources/release-notes/v2.0.md +++ b/docs/sources/release-notes/v2.0.md @@ -34,7 +34,7 @@ These features and enhancements distinguish Grafana Mimir from Cortex 1.10.0: - **Configuration parameter reduction and classification**: We removed 36% of the configuration parameters in Grafana Mimir. All remaining configuration parameters have been classified as basic, advanced, or experimental. This is meant to make Grafana Mimir’s configuration more approachable for new users. In a default installation, you can focus exclusively on basic configuration. As you become more familiar with Grafana Mimir and want to push your clusters further, you can choose to tune advanced parameters or use experimental parameters. Refer to [parameter categories]({{< relref "../operators-guide/configuring/reference-configuration-parameters/#parameter-categories" >}}) to learn more. -- **More-scalable metrics compaction**: Grafana Mimir's new compactor uses a split-and-merge compaction algorithm. This new compactor parallelizes the compaction of overlapping blocks across multiple machines, and splits blocks in such a way as to overcome Prometheus’ [64 GB index size limit](https://grafana.com/blog/2019/10/31/lifting-the-index-size-limit-of-prometheus-with-postings-compression/). This solves a problem that we've seen with tenants with greater than 30M time series in Cortex - namely, that the count of uncompacted blocks grew indefinitely because the compactor couldn’t work fast enough. With its new compactor, a single Grafana Mimir cluster can support over one billion active time series. Refer to [compactor]({{< relref "../operators-guide/architecture/components/compactor.md" >}}) to learn more. +- **More-scalable metrics compaction**: Grafana Mimir's new compactor uses a split-and-merge compaction algorithm. This new compactor parallelizes the compaction of overlapping blocks across multiple machines, and splits blocks in such a way as to overcome Prometheus’ [64 GB index size limit](https://grafana.com/blog/2019/10/31/lifting-the-index-size-limit-of-prometheus-with-postings-compression/). This solves a problem that we've seen with tenants with greater than 30M time series in Cortex - namely, that the count of uncompacted blocks grew indefinitely because the compactor couldn’t work fast enough. With its new compactor, a single Grafana Mimir cluster can support over one billion active time series. Refer to [compactor]({{< relref "../operators-guide/architecture/components/compactor/index.md" >}}) to learn more. - **Query sharding for improved query speeds**: Grafana Mimir introduces query sharding to accelerate the execution of high-cardinality or CPU-intensive queries. Query sharding distributes the execution of a single query across multiple machines, to significantly reduce query execution time. We have seen speedups of 10 to 30x in our Grafana Cloud Metrics clusters. Refer to [query sharding]({{< relref "../operators-guide/architecture/query-sharding.md" >}}) to learn more.

  • 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 literal 0 HcmV?d00001 diff --git a/docs/sources/operators-guide/visualizing-metrics/dashboards/slow-queries.md b/docs/sources/operators-guide/visualizing-metrics/dashboards/slow-queries/index.md similarity index 100% rename from docs/sources/operators-guide/visualizing-metrics/dashboards/slow-queries.md rename to docs/sources/operators-guide/visualizing-metrics/dashboards/slow-queries/index.md diff --git a/docs/sources/operators-guide/visualizing-metrics/dashboards/tenants.md b/docs/sources/operators-guide/visualizing-metrics/dashboards/tenants/index.md similarity index 79% rename from docs/sources/operators-guide/visualizing-metrics/dashboards/tenants.md rename to docs/sources/operators-guide/visualizing-metrics/dashboards/tenants/index.md index abd1110398..bed7d6f451 100644 --- a/docs/sources/operators-guide/visualizing-metrics/dashboards/tenants.md +++ b/docs/sources/operators-guide/visualizing-metrics/dashboards/tenants/index.md @@ -13,4 +13,4 @@ The Tenants dashboard shows various metrics for the selected tenant. The following example shows a Tenants dashboard from a demo cluster. -![Grafana Mimir tenants dashboard](../../../images/dashboards/mimir-tenants.png) +![Grafana Mimir tenants dashboard](mimir-tenants.png) diff --git a/docs/sources/operators-guide/visualizing-metrics/dashboards/tenants/mimir-tenants.png b/docs/sources/operators-guide/visualizing-metrics/dashboards/tenants/mimir-tenants.png new file mode 100644 index 0000000000000000000000000000000000000000..e75ef9ae9ff18219c5b1a2e5260a8791fa0fddcb GIT binary patch literal 49454 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%0A@SBs4j@cL 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 z

  • #dGPxZ{ELOGXJfUlP6ku+{y*{+)4p{L5YCHms(E;o8vQnArS5 zpBwa?6oGzxN_|9V%K1rH+ABN2Q-m0p^k>l=bO#m6HsR-TMSo7dq^YDKOw789L2qJ> zi;w1p<^IMW`jRbv+8FY=x!(p(&4L96KSugAncaeuHZa!F%ybmRj=jze3^UO)6`c6; z%WmoxyJ!ScGJZoVEj9X|Bs3vJ_YM)|z8XZ-YQ-j54^g_4$*hWAXe#a_z15K9gY7Po zl>_MHNGw|WGrwZ0Wh>>1@+8}>qAyWTk(6V2M%^~dS{ra)_dMIAkkg>yM zW~q>9xe%+mtQKHdb`)S_*M9CC(nvalSKS171h;h1SDd}-pv@T^#rw3U4Sz1N$tJ=s zVXSQy_H5Dz6M?lP#6xP8qY>l!Ys43B#kZIm96z6zvK3Q7KLK^S;8LwKiH%=SN`7`v zJ>lz&dIIKRdSvIuNIy&5&#~qA4{!i{8$JjR2Kl#Jp5_4cn!e zm}ffLczB<1rpLURWkWLY|3JUqSc*V|cZ-sYM`PM>=i65E>C&9oS#;hW3z^<`yO>1E z9G?qKU-=w@L|`^+V;cF(!6QS;#O^zKn^CeNIODHlZnUQRmk8V7T zms6Jn&F-89>sn8KgphHoGv_qV6}0`(6h9DEKcDobA+R)Y;k(0onXJR4Z%X`Y2VYT5 znOea67%%Oef(%+&OydZSeU10=BoZE=lQ+K5_!`?CGuBUzZ^=Q#7lEMpQGZ(|ag&_A z`ptfiK}2Jpc*PJrT0I_1d9^rVKVux5@z$>@c`AYn23_YakcW#~%wOUzVJk>U?oZsE z%s4AMdz4JbB4u(2n#gx+5|jkz71=a~Or04RFDZ8j(TP8F_}v7iX%wcW{8in!jwtfq zKz*t+_Wo?#_FqtUU9Q#G1lKO|xk+ zCf0rYs>}bi^KZ5Q!5EKgG~263utjsM^}NvZACvrrSbQ{F170RO)bfr8D1J@8B(-U2 zQC#TC?dl5GmZ;-)U7DZU@R9V|$CLd$<~n_Edoo{P2>UFNK(S9(NXl%v9&Zd!lYgS^ zb*k{AIsY(=?AT|yJuQ2vk`YHVly@8KyE^eUtx--7SRB~*FNB4nj^VM~_)fhNbYgQ8 zD20wCDJo63hDoBYn92rI;pU6yWn=aQ3~T2V?dLa#Q%`(6&KU!jov|7D(Wu(5S?j~w zPcJL2Q+rhHte?U?26Z2J(yUvP!Zpg&GVrCP7E8*;OUvsX1b8$~yHX9-Nj$Ifyc1}e zU!^&V5|kbn2=DaND-Y@w-tpY++}y0R@0J?f$@F#fd|bt6RA?)>IK7Qm=vbX{FVz$x z#btDX`Q2VQ2x9B9^e|H;e!KF2Ef!XB)EFgi?hnsd07t1?|aj zdvl7K@e9rx6%$0hGSIb9Iu!d5luJ(M1AIGW6 zV5Nh`<*f}HeM&0lj}!8VhU59Q_VIC^*NSbdOWE_CprXVzOn(LcMf1{_%lnt6Fqw-@ zTuDGP@dz^EvWP!_f~rCApKqf^4y}qOxi@(-+4;1t83>C(;hf>uCsnVti~hRpB^Ely zdhfew9|;V4GpvYWZY6=B4f|w6yDFOHLUNB9@4}l{Uu`;#FwLSAJw+Al=~<|$>ABK; zq{hlDqsP+6$JfeOlYZJ!t+pqsUWmY|II!FsP7ecJeQacvX*0c!%%{CIoWG$PipvUc z@+Fo7nY5X7)iG%RR72%@Ie_M!B}Go!4P)TR*LTj!^;uTLp^XZ~J!YzXJVr!ngz^{i zZf|Psr9?3&&rJI)p&zP=Nw%n+x`@9gj=-8z#&8)!R44fy@uoA-Vf$V+Wqpaxze^Q* zmnE%;Wc9h~>y)^XVpZ#2dRq?qB+Rw_>3V~>-Ce+K0=b<^!<(|Wu_e2Io|!_L67>ysE#Kc!l3 zh-TaM;`P~2wldF@?bg+k9u-lr-hARpoX^K7kk0D}zV2)LagF4AO`~bL@T-u7I$@0` zEPpUl#P7c+itO>PsV|MNZA6bvcV&D3aS(K`D6HV+Yi>!ZpZ! z9Zb4`;)C$Jq9pJ79a_6V`}$aneG%oZW}~2~9iUE4shPW@+8CgjeKfja_MoYkf;g9{ zpgSJ~|F^LVNaCvufFB!x@y=G#rlKp-=lZ~F1peYHZVI^ix4!D?bjI3X7v1%m z3=lv}UeKX+M@AB*h!2Sfl}NY{Bz6GJt67=8XVuJ=jSXe3Q&qNyvJZUE?>^*X0a;mF zc=-`CXUk;0r}ffS_Qk7*2m%1?ICV!ov8L-MCB*;9Xr+@(QU2U20Vj}e3* z?Y->)KQPT(eYI&d!Fcv(7#HAW*JlrR*%5)E8+&c9oQ3iphLVdy4fn-psqAbje98Q& zxwwror|_viVbm0Qy)Qe`G*rv->gg^J4`Ubcvg?~ZSCFYiL}AGbo_oa@TAsic5_A$# zV*fMEq<51J<^Jx`Ype37P`j)d#HKPm{HREKcs&;Ddx|C3peZ~p^BDGy*PX!qzX74| zAllt8`5ytPQdzMXvfz9h&xk9GVt25xqz7BM(#jtk`1sU(^*PcYK<#O8?pf*mg<`XSy7r3}Ql<&@!W8SQ~?c1BvM{kL4ZGfn1C?eb}I=rHk zN0{cTrUSPiM!ACF>>+%BJ98fo$Ql<8-t(|S*H&8j&<~N&AED?$Fm)CxJLwjJ*$|uB z5bl~Opltj<<|HH%C^bQ+1-GWj|IJmMzQ4)(H)TQNJ)kA`Z_0vB|Lj2d_Aiy6a0*!D z(qP>Be9Y(HUbgXs{tUU}x{HObyO}GnIz)z+&Hafa43>m)o6I~K8+hpnDZDGHbGYKO z@jxkhJcM!StXKp4CeZR`$d&eMJ8LZsmYW0ZZ{j0#7Q*0M;4&LcF!&&g(@GxXj~9@3 z+}!EL^^-?$C^&96T<6>~!UTLT14VsfZcQ;=vzgPz8xiAbigQcvEB@U0M&N9C* zU|cS3#$$#0g#&W326~$HjLbJnpVEkR$?JyLkTC15p^=`%<7v75jQEc2HIf@I=2|Fa zx{yfch7Hi&m3xJmc~IhQj!i0$FnBOQew-a0w|!^VM{`z*I3!0AERab${8A+2U0_$> z1Vel){sKGF5qryM34Clu|FHgkX-qkB)Om*9DZkb2DYu;>_yFb}%ohrh4_bKPACHVw zZvF%z4r zK@0XCqP?2JhOGPR1li-xGmkT6044$nB_Yeh_NY8RPtJ0;$(AWH;p=A)BEE5NmMpVz z*Iel%#Wn_GoJ$uplVrxq(Z@nJmd;v}0y8VyNyg%c+eKK$1ObO=&*MK!*=Oh}7*dO2 z3p^={Qdu<6rzxC<6yH#iI2@eClxKi=4-ktwrveZ)H{GqE$2pX-9z|Jz)-Yl}? z&H8ajjxoG{F3fC%lybHHi=#V2=x(shezkqE0u?wbgpkcOGCrhVZxsu72+Hak=)*V=M@#m@N1q^xhXK8qlN##d1oviM|pXx4iA|*@X_FlWB>x*yEgWKYE!PG zFP2n_6#IRv(=U$bkJ#rMDysphswmcKkTRK8wWl z$8Ac8PlwGyvmCJ5%1Pa^p$YdL_+A~-y;=HU5%rO>&DZ1TP>Gh7I#_{d+YrM-32>e@>(2u~Tu?z~$>MKzy*av_?} z>%lx9=(FTn{ldupqNlofatqwV5uopq&-Ssoj^Y6NR9tU2cS)!F*xcVU0J|$|b=E@| zfaN>Y?9V=Gf4vo)HO@46DqIYty=SE`8(G46@5Zzx{Kp|W5EsJPAmI}nz)Pt05Dwt@ ziI&dCCgRhF&WD=Kdn3r=h`$#1IAE_T2MA<-Ox?QFCV#XxZ5#n7q`7_mGP!h?Je1D{ zs$5rc0Bv+y|G4uXtc)GTCSigd)~ zvb~O?8P3cikDfguTNU5;bcuBM67VIFDIF5rxzyAF7KG3`563eMSZLE3l^-F`RaXIEL6A=Jx z_UY5L_fgte2}HOnMEFZ5m9)mhW_d}mgKD*IBI5Nj2iktyf|4Eol%^_2<>Ed~e=BwZ z+V!sx=IlgHRmH`7!ulip!ogRa^#Kt%avvs6`GrvlQsYU7Jfe1L*8E8`j37E<5j7lx zA$`G)*CM;r+CeO>j@G6mbGlm!N{9O5NjRLms-ft66dS4WJZfXvO!$i8yODpCabHwi z=|pwq+MGF}NfeA<~&i3^5pAZ$x6 zB}5ieJ1msTE;C2ggXr49^4+C`i=x>SyHsVyMotaP-39FGOpx?+YQ77Qbl*JwjL;N+ zD)vDm8p~NkK1m*6(G+i$$&TU}yq!gL!Y!b+WG%s5NWLt}zJ7+tiJoCeENX#6)4E`R zQ+Q&2la>28$VjSy+v^xZGt`AB91nV+-Si*B3$%x9Qk%zH$piWIt&gu$?D-0-Tsf88 z*FkypNwkxKwm;s?(Q!T`Fbo^mGXMuwM5ficYQV>R<(Of|T*>R0Muqk>ciwnGOo zK>9UZNR_ZI+3g%dGdyK-Gt_01tqt2@xFT$6MR^@B+VDWJ15@D3rHNDwPfjRjPD!)z zTm{0y;EGY+6k#~jan#E|tF4D~9su*8dGBUN4raQQeR&*oo8a=R|mQ(B$ zT;Nxz)#UfM5dJH{b>P(cq`f6xRI3A532~C?b;<4^d0pn%?r+XxI0=XH;5)5g1QaV< zeYyAGIjOVaNIzKDpfnz9ZAxIVBW*O8Xy}-kauq**YZ{oxHGA(J7ChntY^S=9(UaBZ z6+{b#BQK#`ewb++{lVY;Qr%u!C$Z5K1St4;o4DOhW370pL8Lpe zFOkD@oQFSwE9cM^;ky*sXsN9@YsI~f_wp+GwQ=eY^+#K;u2h=ml8PQ+K4|VbSnjh> zOfk8y(}!285+PKlUE6k}E%VpFOOOk-BCo@jCe|zyef}8DkB69BdMb6?kQi8MMXovogvQ~RS*V4#w67h8QH)kg0 z>8)LbVYO^{7oHlyHw;^%>n6=p={?l0c-MB;d&=E`l`fZyfV!*w(oPbq6N^^&4x%&P zalB#-TdM1WqJJnsSChPiIUmfM!-x3*xTkM6)jnM=S$dFfMvlF;z7S!}s?4-HQ>d+h zj1+*I5}VWJi%9nNLr%FKMjFK|I6G5lZ3St2x-G#S&;pe1+%XT+?ps2&5pXCaEXzkb zJT11#cOTSETjr`>r=O&Q6J|Kx`mwVRIhI9k5348HaXe7@?z*O1X|d{n%wm$<`6)%- z;n1v~QZAAR*7-Es<97RP*X4`NP4CxB5a;-DTYGF@*Yfj0%E4l_hdU5%qQ@AcoHuls z{n?*3UC8wkzL!^sL72N?l^QMJdV0*Vz(*r1V65TW`Bx_*OzFSBc9O=y20ToF;Fpci) zh(S13sAlcg!z9WW_FqI5sxzV*m@^#*wm>M=NltT-#^^f-=294g~NZn}gkUGl{jg`L-{Cci~c zo>=@`*2Zx;&s8Bcyg#==>hQ~N=}1EO30og*>_X}IGkod*J$1JQV>|*u>uf>!LAVk> z=17Av%8=}R?tyOu!4kOk^7&%gBe#CK^6w$$1k<%e29X8yeCo)N9+@zQzAT+lDvMeK zUO$z)A!lmhaOTtQ9L&!}9k`88D1b5gV)ncOVc(8WS32|M=d!9EP1oLUpanpH1t89P zkbbz|x2B}5!8*1Gdf>sKLE^uEi^T(=h!5!emC!}DfX<0p z07&hBl)e$2E&KzT1fl_%V9(WQL#~rZ_zx+#>-UuL!;Kvhd%EsfkRkqmRUXF_Pl+P) zllh7J9|pdUVUbdP445Z;luQ*PEqli|pHkohQhvVEmV=z|SNT83@s9MFE(TwEp~1%! za9itoEOi18Gw9USrS_D#e8&1};N0$|dZkf3&FyARtp4h;XENBEu4VKD$;0=!2Jz{( z<02Bh+o*LZB2SQ4|H`C&f^24-sS#bewQ1)SMM43h&}CbRl%<1c4`!m|*t}P|g)Smu z(SilS^;1V|`q$5l#4J(udf9#&{m94|UFPXq62uku(7_?8`<~*oI8s3 z+SNEdzENzT578hI!YD?Zkq-Q1Cpr^pe&?srDlcWZL@3>gf!-f|;L8!y=j>Cgjou3S zM%YPpzrG(8LJL7tSR{kBj~b=?KrqX$o^a#G-)Z`FSbPYD*a6*VjA@iVp69>B$Y6A0 zoI+G^A}3Ne)s-iQHm7wj|2LOGR`7I7a=d2T7x$n+PQ4HYL~dAcENSO!K1Ep#8WcHs zG8Gsa`=gv(Qd+raRfg0(KZvXbw+5R_C0NlM)V5XPTTiK5?T^8iSXn}bHr@BypxGE+y1GjJ`Y%1zvTX9Ovp&>aOcc#E2kihjCXyA;UyuN2gA=Md zcK3+THkm%YS5*Hg5{IghWr~II zeud%anT3IV1|MC$7T>u7en^WyMerB+xLj}6-Mai7N@$v}|+M{eWwM6CBk zqh#rj$mh+=h)yZstd?4sL;!;)@Q0RiEyuq1Jm4o&h4fxMfeQy;&#`hr%?I@(<%N1g zka0AjGxz0d>f=_@*7 zhw>aVxML>kAMS<}@Q<+`8=o^et-Ka=0Y+8KntexfDe?0Ss=ytoq+zpEXpqHz+f1$E z@uZ}r^sJjX^l)Dj+-{ojWaY(7MNn&aSVbphJ1eccGTO?0dwEuzRPcSa|2SDqrI2)a z9lTcvosJ3l3H(5(_uo89Q39t4-oGzR+_HzYkA}yF?c2$-;&4|9XvW?G-|`acvB(=o zsnl2ewe=laxW!h5dnr*mK(3^kHh>ep#?8tZC#oti+s=Tcf)-s=^VY$4)Chny*SoUtB^aqp5sBPM>qb? z#N5vF$0GXSeLH7@tT3P30vs_~gNJ*1TKs&J$L(}^L?rhxmuJzAYAx1@Fz*d#frOZp zwj$1a^b{u7cxQGLUp#t~G1#k1#)-B7sS_qM@`p!4az%1kYhut>a|bSsW<46}Ez!#F zbxh36cE!a^irLR&dDGc4Wm9z(zFF!$bdLn0m?Br~xi`AvOHrUJq!c}-6EQ5eU%993ed;iM5Fvtn<&s4+R1nDY6$ zg53sNR;#zOkJEY{oL1|lAMR&*op(ix?Pu=06PdEy{cBM#jTTE??+iUqJ?&$?7K;ql z^OzQxDoi&-u0-L>(kk6-Q>D1j*oWJIs+Lxk5o^v=GN<*N%bo)8&(9ZE)|P}^-VQtc z+gf7+G?4=s+2N)6m0={9^5r2*qBfVEwN^SLr^GxiH^Gcz?dc&Sw3*o-qsP21z1iG- z*><&DnM>yHdjY39hYT5=Z~1H2C5^o3eEz$@x?}2Jk$d85+m;qB1R=XV-bwBGn7s zCsA7LmF~ZO_V75AV{u(2*9Bu3k)rX9u2uuli#Iso3umuvdrMqTr5q5X=W_kh(y)2# zme1^z)+vZzP^E%B1TYuEAG`7wQi+4%p$r`Fell>rxOl!TZ_xgNy>(r;mbawC9X~lZ zGldab8xUanWrw2n-**AHQ1JKIuf%5YhTjoLIq}6Ul4nK=`_bWy_j}sCrf6Y0UM|nH zZeNhc*WX8Z(ttYMzjW&lzv88PS1K%ZycdIEf?b|`w%OkiGf|8|%<)b^f(kGzYx-i6 zM9aqg1lam{^<766tB$zWbQp=tGsa&bGH6Qf&HJ(Z$n=qac$oKo7&$~-6Ng8+2S?`o z;-)6BQQeYC%C6KC?|Vr545)ILZay8-kUFzv zJh5TRoAdd!eGO`RR74>?_=qktU|z=<@?iA4QI!}vlqts7FI=MRcNO2+8;|A~R--q6 zFW(Rp^v+eOOHi1noxj*7vJi~P;?>k;0(D&tN~=pDdkOjCnD8zvEX*k_HM7Ru;fFSo zD5Wc@1QMUQT5-!xgvjdN4sQoBI&U$B!{vpa>gB#_k1y^2#-y>UJT^rvg{Ubu0j`iW)iywNz4eFMs!P^xp16BEg+;KP zZaPD{EEXQ;$Mw-C2KVP~XPU2!LYLxJl|aMIGsE<6m*3<7yz#m0)0zzqbr0&)n4c|6 z)2}gbpv=gX*r=uC$VNWf6;WJ5S|(nsLNewu&*Uyg5r;7=*&>A1xekf7(NiPCrgS#9OrEB%i>X3L zOu6?>v2+U6K#}xKw*+xAjXC&t7Lptqm>nzYnGri_;I`1WOOd(0 zZA4sahCCq!1vU+*Vkj_~r9)*J(r+@VLxR*OH4^RxUb9)ml7fAou#q9b9?2y1dd}?4 zB72NBFC;mU7$K_Dsi~RC)i0c=(UEQ9R>lp!W$b=6gYv&pZt+h^pP41jq3UN~Mi~6g ziBI>tf8a-jbG(795U9Tlsrc6wNk@p(^R0Ak$)4sTJVM7GnK6h`=g(=q6{q6viIAr` zD~vvHa1FIABJhS`BvObj#h4J=_^_$ksDF((2CrtBTsla22F>mA5nJQ<;Q0F)4hD zOAKnJC9fvm;##Yk=ivZ;ln4z^uxGaMIxkdJ8&SV|57I=evO)6Q9UJF3ou6Q=xG74; zni*XLRotC(#q>3b!Q0C= ztwz;T#v7cetDx5nR(M^VK~yLNPLa z-FAP2^+mmR(3Y2@T!p@(j0DRsN9e~cD*1H8Ovk#ZGFThZ4_O4dpQpK@_ZYb-Ih^Ek z%R;KwypBhTbarNBas=(X?$@?)@Nb?a$ic)OF$ny#Y7Cun3P{k>j!)8u%W(oWq%iu_ zI16GM@}p~adF{1x(?$r?3Z73ta;bzyO8NBp2Tpg?;jhIwB>`+5r=BVcj)UV+mnZA< z^N&xz*%M#JRnpM_oX}_9v1yt;0hmXbXJ1?thFQKbDTO$Ofy)#b$xxM*GK0k58@6I%WnTt_sPu;jFL zVUVD&kC9_{)Zp3i0jQlryl?F0M>@fdK0Z0&SS`MiA+Y_XOiPHR9s;qewUo#4sdUBw z3#ktoMUu|yV*Wcjez+K{B~pLQc5S>SO+!dtm}BF;!T?^&{Z*}nm{sHIPBaZSO%Eiv zf-Q}Dtu|&GUJ$P{JbodeKceda8@wM?urXy^{OjX+t#HZ{kpuEGdb?W7Mx(=06Dd=% z_P5Jm@2Dvu=3a5Rsg<-m;J(kJzy#YJa5IlHkzFp9+Zs-NIaA_m|3reTtiN3& zv@P2EgZo4#pkGNhx@G!-jTcr2sSC5MEbmU*xg+nrym z_*qu084xCtT@tn_k^4fsA1Wt!1d`ZNT%y^XM+6w?`DUB$32ycg6>?=>j!B4!f2%3U zqF^HkLp$7#i&Kb!&*s8Vnt~n2jsDmQ3;~GCgAcDY11q~s*C*KV1izqLeOF=rMR@0( z-udUk6HMJ$L5wIgH-nn`Bu?`VL!yUFv3fSsDaFVUw@?iRB8jBnMX*vnIR>Q! zH1G2sg7D%^<(}VncMI{{C)(tQt9j*J?t5f0qfZ$Y>{{6g+STHdF)elENRf33E$e`u7>7Svm`P8e(!oU(s{rnyoYK~2TgGjG9r~cq5QEuGu6S0+6wU`q4a_|&U zS&+0HA4iv8ct*p*8IKjU#(1U3?cZ%yZC24F)@UCr*h>HCcCw zunvNP6cr%BQl<;!O$^JkPr~95KhnZJN$6$$@Bo7$lZ)54#+-B20qbCQC&9u>b4qTG zCqozJIid7UyM9DSH7al_=y3U&1M%x8boiU zNjQb6c}-TYAtuCI#CIGq&}NN8yQ*I6{Q$q53Uno1S>2+z9D@C3tTl{a?uy09T^<%V zI5-v-Bh%sio6qbSk51zK+5F-u+VBPZ&0b z)mkhfW)A3Iq?tfMU~cXN?4am$Uf0@-lC~`SKB=GkG%f;Ve^^ewFtuMe{uF!VQ~ao+bF@^-GaM&aCdjt0Kr1=!QI{6 z-7P?X0fIx2;O+#1I}FYlvcK>D_szLD=jn^C?pmvsy4eJ}ms#nVQ|X#m+;4kdQ+a+)auw{??5rjAY) zU`h+a4CSfNV0Rk)4I_BkD28^UV}c~1ZJOh9SfplP{ZfITe6wYMQUcSjEu(C}{`Ixh zPzgJTEmM%D8Pv`p)R{8od%hRtRN7==`Sokl;Bm8h3=h8$(n$5o@c8CGxqc0 ze`L#+$c6V=8_n?3vW+TYA`6Gm@yoj5BQnaN1JjMw!e}?HwAtD7C^@6CYu435Yg&CB zxU(AWGaZY%CaiJ)ZY)x_sth!ERG;JNq z>)~B<68t&9EZvFFi{+^25?T0pc7y#m;`}li&w`S2Aslu$wA_MHh4wUlf02hYATfNw zGyz*gtD41iTsX(|*1u9)MIB+Tg?mwTD&Yd>wLWY&TxWq5(1n&iR7XTUBM{EZ=C%3M zNgoL3hlLIheBL_iH`sipI7$YIM4_(b?Y@u!&QVzeE?#vn!rojr15alwBpkVb4yV1Q zi`tC34mF1wLDrzaj~zjKg>On=Y!Msa*KuO+g^ z12YZdqwumInFtYIUTeS~{^`VRGE`s46)T>G0MG3x!VJAsie*iBKEK8bQdvZ&hK7cI z^DnS!DhvA_-J0nOUewJ>#F=?m)6iJqma21n`i?`9%uM*zm9fUu2AgS63p5lV3rQ4qSOgwC-kulx52BkgP#l3##0C_7t zxrqc+*q0%b?X8ts_c9Iv2`1&=*bud!cIoOIV{9{Wt$0FQHdAA;nyLJ8Bv zOLRnAwPJw{K@+BQ_}-U0&k9|}^+=pvyV{fbt{s-LwKM9;mQBQUX7(kY<LJ0d;c&jqSU03MI~JyaWA2<5HHelK!UL@161 z-elS6P2bP+>~vg{wmmYc^ou@Ot#iFv1u3`|S}0L8-G2tUUT616p{ zxFw1g`5pBut6Oq|bE~6c_Xi{Ou;_zIcfaxB>d4BbQ^w2ePRo0iZjl91N1%-Pj_(Hg zhW!v=<>hp;fZB29y}IIP{@DES%cpt)V-H}?-la?GUnZ=VQnT9HQdM1D-A}wNH8r%A z6%`GChw_L%)l|3SuOof^`Zvnz-WbfZ@`(a@sX78ErIp%CXwR&q1Fqv+02+d zL1}%l{7B<6g~!mOM2xZBw^N?QrpHalJqZ*}e&NQEwYNkwYJEe>?DM^S{bF5E^|AFn;4Q*Uze0>Gj|nAeEt+fTgA= zIH$|ccS;hI;=j*88`LZl#^x0A+c;ZbcMV^IOGR=*Nr;V#(t<9D2j*Ta% z!jIk5)zlC~U=2Aj2Zl$Dg}NXu`JUX8R{43d(9jIk-9{oJg{HlMU-^XFAOXCoYzZl% zAtOINEO@&9$$m#f2IqLYc2g^oR{gfeifFcYyb5_vr2tDR3rh!>(_#Irw^!d|z*4yX z=fMX#RT(N8@%6|yen)OJ6s37ozYTz#yIMuICBiNLqq&7LBQIrVdyzQ5Pqp|mG6!o; zSuFv60RgqN5As`!lFcrNq4}DJjE=q8ASdqko7Eq!Xg=})q*p1HHN8At)YQN3&QBs? z+1V_m@+v&->xEz2_GgaBKQy|i$Xi&@<$3xq_C>~?+79NUdW{`bEiej@NUy%Z;LLe4 zXhrubt@V-KHxcTFkbrmPF6tJBzOF=oZh7{5dU;}E2a$3EL67vkk!bl?k)vA<3sezV zS*Cio%|XB7($aoi{MrZ#O50dR>U|mveE~&X73NWNWp*}B69GkfDh>|R#KhhDrpLI< z<>|>Z`c07q2A<7jA8kZ`CLmEJ;>S%NnYH%sUh)NG*z=UZk|g9Fn+g0~3>ypReEa;@ zM`A_xn$NF0A#cR3o^)mK_R-PG(GlU%*OMuM?ObA# zGLxBY;-MTtX4;J=g0YYhcJdNx5RL3tZqaCVcpzuM(6dGp7!Df4gg=0>8 z@viBoz%p{TM{a(8F=Q~Q>C{#^RKw2*#FxqfEE%<)&7~z|nB@t7O}-w_$EWf%t#F=r z(==O}4#8$YVc}*$HEu5K-|Z_foSfno5Gb;2(nT{__^_kdpHcO4CI@-U-)o$)q_A!?;5kbd0Bjveao zPsfM=w&ok{wW|henXK1)TqG=L#ez)Zl9i=aWW*<+!w+k?(PzJKH2#|Hoqz=4Y6wOqK>2CD?BLHs`&*YbN7ryIC{CakG3fl6j>G8TXvfsf0{T>S1fmA*3 zC8gc488aV*W18*6_&au%j0cZgJ0 zxEy17`FhY@^Oo}jfY)*T^7NekQRTU31Z5emme77Iy#WCAbtp`???dvBIO>@n$kxz{Av-=$ty(Erzqz@^Z*FOcmo4E0`mw7{s@PB~(v;0|rYe|soaf*MJLvHb*7W7=uRFjP zK&=*%jp3Gz8ch{Dl(I?k2s66V%iE!{un>D!wGuNj1pnytrEhI@)x+4)>VB!}?}dK) z@UGUHHG+5wTq6KE@9Y5o;77v8XFPNOo|9nq#0q!%3hly8ALQ3tnA5?c+?&w~Jq9{d zOsdJI(PmY4TN?NX^zgc$;nPc<@;|#YxOlhL)_^}Un&`0+XRLkAOONf6&QmDc*xWquQ)=E3A zHZ5^KbJ$Y9(3*sYcXv#RufY6Jv*6lio9nSj+qAlB6I^H&8V7Z}@a@P*+?8a_K%2K? z?}y7ztOS3xdfpI^8!!o9BcbFPZm+4^DGp**Yl--yo}z3ZK2wSYI*e4Y>d03W8g6}E znjo{paf3Nk-vmSDQJ(SrN;55E-io036boyw^nB???Q>!hVc`t|NB_?N#p`wwV>wf3 zbbJzrfNJRBJv!Zme;@;s94au^|xx_nO{ zLftMtz@iJmNh-m z`~U|9L#r3!rme~Jc^RHD6m<99ofz-04&T^o>7>zp+qd(pSBVcd0<)DU;2+0;F)OBM zQ2Bbgim3U@Mr+?;Z7sJbA+f<9V4`=_;Bqvwq2SFo6K2s^FB;aB$w&AZ$7Y(x_Lnf; z(s2XJYp;0)QQ!^?2Vas4)T1L}#+X9a23?|QQoz6$HhEhCv4Ix5lSOuNdc2XnlAI{q z<%yTS;`dDyjA3`&a!16NJ z-5*(2C)O{nUNy*~P*s)jfy7%h7);k5t^9~#Zmy3XFe8FqteVG>fSu+W_=Mu0jX4>_ z6l`9D0k!%@=DK0*G+4#SlP$)bUVtB7X+jELK)+ecjA$s>qVP7mVeZ^W`9z3??FeZq zm7{VHC-#(R6yp&F@5~o9{Zx5)b(r!-YicyBn4_ZAFezjdW$n#9eXM+gp1$~0u;Ym) zex}jGJV#6$#g?$H=JG8AT3X=C)au213g-RX?pf*#p5nR_MBOS!kD8(;y>dPf>#&C| zcP}X?z#|3fU~`AibKt(lm|K@g8&0@FXVS)1rcP_a)7vj)+7q>vKx-s?LK$!P1aAym zb~1QEz8YK(N4h})Lw*m>)zEY4rgyhi-Sei%<&VN=b^qM+)&n(T$J||?A|I8SP!bV$ z_LRZZUrPPSpqXA;sF;=Y&8Ho7WpTAD^LXyhOs_vy!pZY`FW}*{ZSsb8ekn#W8IR`p z>*hY38mK^!e&M(3`Ot=T`xrip=k{o7XLtO%z_`@bYMf82qn-3~xfdY(c4f(x3EiI! z;^|z^^f@R<1eC|(EMXD9sog9p_xlHzFS{2XzTa#o(+X|>q0)}o?8?rdB|Ce4w4<2rX|1uvJ-;9s z91{54%MSi0m={bYNbBwK>Or1koh8I;N5xIEJU6tk^WpjIt6#t{yGQ1nTYB==1_otQ z6BCvL@8!_p@aF7;;PWIq8^kUC7fg^WO-}EYJ$LEogHgC_>SyBPx_KHb&Wb8iM;rv? zH_V?egX?||fXDdR^m2Ra2L1)w;8}c3czKD0bYA{kP5I*+ftMq`YR^0Q%%t^0^mSNs z<~0h%=5YhQO&@{V>HF%3^y&0=l#?t$m6uD3q-^e(pjHjlPCPphkK@8wW0Kdtf^J6E z*GOAl-!f;mCdE=NnJOE0hUvisp_hp0DqS;@9JP7I)Vvk%^z;WL?k}tE{(GG+_^vHo z$20gtCi}hX!*{1n{f2#=DNYFIZMo^kfP;x>G*+OBiXgz*P7T!dV{!EJl^n-|MeEtE zm(GQ<|3-Kg+G2-!DQL*sr%veOw=?Jdzndprdn9kykB7Pa--$%m%~vA=_J4#@;0%Au zxiuX$G4rCbjTB`|S%QrAPU5?v{DU_TyCv-4PY^5ZLTIW??ljF2FK5Y|n_~L5qMx5FU7A(n|FeCLyLh@_krHNTg)cjQWyN(U6R8#$h9O ztOic&CAR>sr8-%N5%gBAj%;m%c>n#S?_2P;ytKM{fSyyJedw)!K8YOT-hKuw0U?r?h*aRZL1gOTXrRYnXJ58gv)+E!MiB?A zamnB<%D8up5Z(`iH%8X%_SZ{8-w}=IafLPnacPe2w3rdZZN6-=eqG+RTR1X#h;;pJ zH|u`3D~TSm`{^nfL)NA&tKTxNPFz6_l8ml6r0C5p;wU(SnivPQ`zud=JwIms^2Z|8 zGkor~j1NyPo_=5ZarvQJ9AbUfwg1t|9KG+<9c;qLr@}z^RREgRNtpK*6_&9%IyaFy zIyO)BL1NG}R33~ZDmw)!TsBeG*3F(@D@ zHD#wo2}9MFPkv-E*EtMx85`6#xw?_Fe)rX0yp8nc4pqJqjJvfm0_Jkl)y_|l&*?Hl zNBm?E;@y7vYLuw+&9s(=IQS;A)A>c|}TE6?cZtBAtw=#`V%5*0x0s>Qd-HoiY!2$k7PC0N7V^ zVz~qOjs%Nh}!s)B1=fCfS>bj666>P*Mi_!MM`{429MHn01G3N}{qE2>Rn776< z0)xLPn#-;cE-~&*csppW#TQ0V-FQ)qA=Y&g<0auOT}2BuY^6^uh%RKW=1*>WCK#_a z5vL0sD;H1m*>D}P1^l?_Gf^Ng4RmvX73Y%(txUGgcb5=31oK$a@9%w%`iWIb)iiufAYk*P!RRB|}A z7g~~%3U@5SSVnFh{p^xS@(Ph8V|CV#aOLi!@EX{}959Q$0%+6Q&O>?m5nAAdQaN&S2~&b{_5Oqf7A1eM z+fo+GwxrR;M&M!-3&si-_kbIQRZev?$44f@KTBQnH59Hi8CBOyO01^xJ+IfXT!vqt za_L{6M5t+)Mu*hZUcvDZXC0iKGj=rktsp(T>(sIW<=ON6`a1T<8zTY;jWax?{JQw} z&8K!d7yj}U_p6_VLG}bhLChABnWbRHTXDOfu#}pby$Y^=d-JS;=yI0m>DC*JInrCS+zS*5dZ55e0D%|{osxNo~p*Nw3%VXYVPyOt|5xg=Fw zE3siQ^N%f=y9a~(Y6}5_0yG<@M!W+I$Y1I45LgLTS3f({gSyW%c1Ob({u+HOSk=lp zpJVx4M_WbsQK!AbN20_a{TX#JLKk6SrODgAUSR30w$&V zlo?{u!yi~!C8B-)O9U@(ec~@YS(|=tOO#|icM>8)(|F|MmQeB~@`fX{Bltzt5b0*U zT*a*46ra>iPhB){dPS$AY4@WlmtzE->f>)aFu$^TBPq?^{3&|cKJ9sPP5nGr?{RH> z#Md5qs^?cycbe)2QkFHzKpIyL==xEYvNTw4)eK|0$aWP9{YQ)Kh)DXguHD!HUx9CI zV@v|{f>lQmopV!*gMZgL?zX!FmUu_h?+vIxCImp9n^2Wu4UlyI;H?*Wh_QoSsKiVQtrbEwnar=Lp5PQ<+38T7GzZV z##heTRDsDOo8F-+{@@Txz3?@~)RxXm!Q9`zZ=?x|3%a;lTIUUYZI)t|-{7z6Op0*m z6^Hg2-HS~G(!2I7aHWtM*`tt+&OP|FAd%qhp`C)Szc>AD%CVfI*~(Vm-xA{_Jjnm< z<)Qkg ziSLZN^(WwkwXD1RN>+s=H+1hjd|CY!-gf&quf1T~Qlo7*&+U7OFTqaydMi&7V(OLl zf??HXD&-QOu^bhi0yq?eyVz+zKtdLq%zDwA;7cLA{|3k;fgE<`Oc-kO>e8~y+>iL$ zES+tgMt;-$la)<(Muh&>YaIz&YA0!Z$4>8}l|0nI-jsdMewlN*^uTIW>W4Xp9N?zh z{tthh;-NgIe}!K`i?1N*8Ik~3dg_!F_|ipCv&h|RMyaAm3!E;0hli6$4E|nI#1!6> zN_tlR+((4CPb1e$PaQJDHVzpx`#=D+=E&=Pa#*BZb0dQ)j_vvYgtc?LeqQ_R_F?tu z&;?A$3#7d^RcWd2hQ_G5P%?ywY6&v&FgW@cTr|V@lw}2SaiL4V0x;z6V0JQ0f?53L zX*yV1BMXA5IOd?L{uFrOA&Sc$sMJ9DFwQkGLDb`L$U`CAjb>O1MSKLnz$Sm8ZN#*V zH0y!btQB|;WYl-B&=xCRQ08&@6y0N8Rc2Y&vON|m&I_evX8++r>&X|l$Fpd5${1^l zC2zM$SNfn%`}p)jfGs{bOjBh69@?w?07cA$s%>Bova0b^R_WHbu(tl~U$iQL7&bAF#nZ3YJ@dNt zppl`ID<_1BFL(H~9r%XSJ?!Cu0StPyqj^Q@w>(Yh5W#*)of(e_=Gt@ukpzuoR2YZVP^cVnl*uYyhp&UM|()5Rd(^{Xh-v zDfGpDQ7?Y}nB^F}0!zcq2CC>Ezj#DNjknTn z2yX^)hXk&h7GXgYLPHLc{J7#&37nsGKa{4JoD4Xov3ld-c9L-wltAgHbtG^@Yz1vC zuV~fJ8Zs`}slM>^MrdS5Wfg7RJw}MO{O!~^f*n9qB?G(aRO72W1UXw^F ziIa1mP5%L`GYtWR8Qa11gq@IQXa3(JL)4SSZ3sGNQQ>^4kuOe#I1?sk*@-;=ApRUujO96Y zz)}QV!hD2f{sb*acq?auIR){Ecvtpjd2Vl>Ejz;&GsWbf_8cop0M*~bR2*U^iu5Ie z-5+a$dLb23K?Rck?zcXWGlw@ONFNI;kne};PNobse8D@| zs^wy2p1u3fy=32Y@xErRPx)|nsqdUDNutukRbe11#5Z$Kh z>(ddax#|{oeUF+!jgv5ATpsyw&#rzUCWO@&BSrpLnq<%B`EX3|s5haL0_aot2kM7t zEhX7d!N`J%4C^OXW+N(>jDie8A4;}{Zzc74gh;X*frAB(va?-dgwzZXMT>3qGbBHE zw^RoNY3rj~8AwmdA=e|dABC4f>d5`1-o7OBM^wA1;#s)Y=P58fF{NXnY}au2Cjbua zrI5R;=cCGh6qjkpXhI3Wy<*=tTeD~b4)yEwM`7xHgj5_l5)J%wYvyUfi^yxV84d)d z{72l?K4iqG>t6u33e5ZJ?%CvonXx6nW-OR1>LU4kAHPG(l4g|A(Lt(e}Im^hiB zRflcK#0$RR5B6=PqXy6{L|ix{M7C>gL&6KSF#$kIXu+jb!^0-bgImL!tz(B_1{tIk;cSshV>iG2i2^7t9Ij(D0pRgU?A5I{3Rx%) z_xEKO$rTS;hgA5PjW2_0gt_F=Iwez&9`m6}@Mm^8ggVB$bZPA)5}}6({HfG3jhvk4l=p$u{dhrP-VU?I)pN-JhfR4O=arzi+M2e$B@4NE@adp0_|zk}~n?R+L&1 zQ?-Y~Q2oAU4?Ac|CjbFsul)6Kec*?halF1B5d0cxNx_x@ynMDO!j*WOR<8tkRBBLn zk+u`Ix8=NtJI?|hFcQKQIpScxYEjBaUjAg&ZU#&RQ|nDv@O-xy{cI zO zMbOPvP3lbA@WwdSysad_ad^>wdi4NOGi=NSw@(u2&UmYav1qVBc2q5|{TNy1IitZ`(X4dYCWAHTR`v_H0IJob-ftfrT&DUprE zL<_n;IqS%M!QPsqq!&Kl=bKG|LXCOE0Yp9h!num%M@kJCGPuy^(7!l?1G6c07!@Wy zoI^}|e5l7PjcOpBom#KliB%46@BiYxbc&h!rmn`i*g zhuEhtFSa_r62cu}aFd$1%TDM4nNRunmMp>4SN{3&C?1=0o)yU32J?B3eM`b0y{iAI zzB%?j)eU)6<#7%Pn;w5!-CSArwtIeS-RZL1Ht)6TePW+`b<%m;bbJoi0Qw8Mc^xp~ zbow7XJLGVr*O3TVx4!rt+&uIuWHxVtC+vyaRRdfWT;ThWuevLeu_NUAx>gvTPVaty z6AZO%PvdgAQV9)|KszV>;U4vsUD)a3X?#6eME8g8h5q|7*lB(7%9b&jBT&Ziq0Pic zxp5a3NE<&z+&^V)jmB_c)zrph2#y+j)b6Zv0vsWL9xB8NM1u36%As#UE z39YuOIckx?7|FOATos`8dA@MYsNjg9h}ZVdTBRsnm*e|TD3hGGl>pGxRz&C+E%b)} ze?osM{Q0z-$Y^5CVcji|^3b148NBHTc^+x!5oZWYWOo6U!zt@u_;GB#cv_lWeiWGv z7kvCPdN7Qz(fOY6kF`6#-r4yYJo!s=b92{~4-f5`nFLgnJ{*sqVY3sZEQ>_(GTD(* zUHs%z^EmhR_uaxgQ-#|asr15#@l=sWMs;0etHfD<+xa?G-K51$k)t6&j6IpuMX60vQA6JSx$UhVK zExlYGO@gTZ)j*}YD&T$O3eHaE;Bn;K`Y&IYpA1? zY+77!mrUS50~>_}n58JrK3e4l@aFBd`xzny^$-go8XII25S&ylknd5JY}nx6 z?7=PMKxKokHVG!qpGB!-Zp&{u{p6!KCw z+)qQo+x&EvGn}3)khgo!hUX{hCt6bLRbACt<-qGuPDJr681`CG=e1FFv>0!~tC>25 zRURYQm2#+#?HcAnjvKYyLdn`;c{9Y<2~^yht(+?b?7_gzOV8vmKFECvnoE(^6I_I0 zt#$9X)#hRe{#9!Gm^`n1>AXV0XwEHBYBTdZI6pr>I6pWjC7i2rtz4p%Wun{(A`%P{2fiQX=upwM~lVJy`3#zTR-P_dC9^Ue+hA&0^HezMy!wy+}}qH z@sH20XDJ2E*VoQZ@q}|&^{G^7Ue>X2rp$16qK0HZ5B{B(AJ?1lA-TIGaaU?A9`0#l zX@@1_9v>gO1OS|ET*!9iymIntz z*~C;Oj^&L?3)JrO;aV>98`GxoA_lTTo&SGVEA}tw4eG3H*h11$}UBeDgYANbDs^Tm2@ zs8zMJhMO{ZSbhG4J+)+9gOxx?T??k_N=Ijkui`MS+#<27Z`H8!ELuoL%bwxsDr_!d ztt&X()!Qx7XrG^K!Vk9wjE zj;HCYCY_OS%@4~HA6F&3O%HvtY_s%bm%3?nqa)2O>`MC%F$uV*j;f9<*z~qThTJ5^ zI^S^H-x92xd_#9y-kQ5cJ{5FHzwX1cXDp+K7U> z;+R!#1Px5Hj|K0Q>h4ia(%Pvwm z=g#qQcCdYfSFBJG3zj0Dat@XX@8i)vNd_-%tqN%>^m3~gZp1Y)*;zF4%%`fz{v&;p zK0c>&#q?o;R(}_tp=$CXqYRa9CQ!FuRlBuf0Y$^zz%|%$(;hVaLN|}pdF$od)?iSP zKc#O8B!~o^s~i}QeoX?Y)otbS328BwM zO3T^pBLWdE1y`VAyw^*q#cuc1_=dEF66aKc-kkF?Mc*=~D!C}dy3OH8LlQo+P@kjm z{88IS3@Z8vOM-)LZ+_O3vt1jDZg=_GPSJVZ(gtG%8iq$Il)>Eu*1SP3;yKM~hJH>?o~6B++renS`A^aaq!5s@$S!jP?@65x zZFMX^Z}OMf1TkPCGkXCSKLa*ZEnjV$d0P8ieT{4`2M(b#PK=@LF7aIbnCTLG?NNyx zVwRiBjdK3HRM0AK*4#;3T8oW&__%6YH%>j4x?(q8&n=dpx{e(^=78LbBsD+dcU^@u zb)LU0l}Eo|0So|#zc@ES%+KYV+c;3(X&j?mXihr&F;R%^&|u1)P?J7ZjLRLGzFv&W_m((d zdn*Dk4Z2Wx*SkTXFutdzFy`YUCdOcW#`F!2z$1l+3;(Co*ZVHI%?A%p1{ReBUMRea zu1WIo{YMF&^! zSeDm(o5awMohv7`ud|QG%H-#N%%n#Eig7k3kS*e+zh5+MYyGcF7>?ijs&N5YeXHO_ zjBw%qLZaA-)dqb0ww)UjTV)Mwd=UFT!skkoKo^D`5`+F?*#Gf!BO=tpYTaw-iH0@# z4Hd${oRc(O0zeLo06@LyNbFBcT{Pfs+&|mFLTp3zA$dsxX-Ko*h6R#Hf}|nPjp11- zHVg>bVgJ(vUxL$mAr8O*bMxV~As+niy8t10ebEtkeMq9}hS-X{p12=KD|23-4p8o<5HR#_!UTz$5T@eQ12_rkGGUAF8-KjB@XB> z0yVtZIXQcIa;*L86i_0<=n_Vh-Xxm*qvQnf1&c9|#<4>Ik3}AuvdH{}P)^5xkULP7q4f&`Osf!XeGTdHi0xR&3?Mz5H?Q&r^t+}S0=UA60~@i) zykdY4@Q#{&;IJSYJ$B!*2GK|4FaW-;tMvgX{kMGIM(Y2Id@4AZWuhnRe4bb#cmWrX zKT)3cnBmWdPI-Kbqia1>cFDmmE%q%notwO>{}!-U|M?;Cbzh+MD>6ASc1VCy-Ld@A z>*oh=yC!aY zlFePD8OTrZs_>10QJR`X1?4yOpnt8Z_?xqPnsq*|e~NAq?c!PpOJx)rPoiAi^rNmA z9CRzkdE;bOrenidmi2y5`ge=2cF$EW#_KvaA&T2*qRozTU&4C08rZh8RnV_T?){0n zbSV9QVSrBYRgX`SuGsF%tc4 z7}~ox8CK>oH>nBUBAG~#tq2Y|mh$fPx%X%O;{P>E6aq?jM1G!`dAEJ5z0Z8?ELj!2 z+0A`nu=VbM_N^%h9_-3?t3=YP53jg;56c@MGrYq~SOTP-TZC&@qZkE2K? z8Aqu_BYW$ee%B!EkeghlgkkRFfcd9H$4aw-4K&<3&VTuCtKl4b&d>q$G*11;eA#~2 zg3gJ|_@+Mm8X&(LvoYFDt-KBeQxhg*w)8JOd>U{_6H#{h$BPRg!ui? zs}Cu0Px9}}C*g|j2A}U8Z-LqaND&~I9p5_7>T?@n#1@aeeYr&=zg@WJ>%6ChvwO*! zmFI(=tI^+yXOo~+@A6%&?n67^*Z>i|h>`Ethr=Uz&jF_6G>%<&G(yD^=xY)nNb{rZ=Rj?S;1 zGj$1FU$F<-TdBR&qgPsW6ZcB9%b~HsCt<7I7qpsgup!2cCExRC-d3N_iwcu~50^v5 zOg*6EbDp|&J9lkMlV5(b!ptL_odSNQP0x>K%j2ofx{cDjfq<9v5!+$o(8rM>FPDngcCcChFCX1PDJParniIh7N9QHjiswZqj<2b z?wn}#!r7@dteZ6dS)zO|PjIq5KFn9+`EJoO|L30H`#n6-#SfECV4hgAwjE193?i^@ z6Ao*C_6*(c3!3)=&6)vbX(Pk8mB3t$j%%K1{n_{%DeM3G7ESz+9nAq6(*4;#pau=9 zCQ0ZF@izu8XiodHk-_}J9OR-h5rrv>=;jr>7+fLv@}4N<(w}(-j?YAUFKEJeZ9Z;% zz9*sU+bgFYP}S}ULzk$mqa1)AJBDX3+VPzyq5H4Fq}rDo8D&<)V;X>Q|0PG!`Re9T zU<$zM&;E|)$N^@ewsbQ1QDuX~-gm_>9wU2uA`v6|FfM`I;zjX4ava1PDP;ivH~DRl zrZ_U_*a%cLmV>_AQ;+kiKn=G3n|Mpar|?38fn2)eQ8VIlH6F326w|z7uUtIF-(T&X zHx*r?Ht*)$J1Y8o=Y#ArKu=VHd<6Tq#e;Mi7m1j9$`VZTkUeYh7*+~!OR`EO6kkMI zmUo8tuM9G5iUoXwX@#8~bq zk-hsAg0C>x=@n6EFX&MKp)uuONuG&b%rr@(^Jpazv!sAB8iH^3uxMl}O9LJoEDZ*0 z5&}2}oaE9crD31NV@B$%(fP?Xm?UDZ9>ek-z$s3-A{0k1?Eq(!zMgy_;=~JF?R2C= zdmle>WN?!gksOvB7W~L$-x9Eb={E5g6#O~D*y|ub<8UA9wvS9wvyu+DmJfU>wWgh4aGkc{oPgy+YF?T zJU9A&yCG?CEcD%NQ{0=TN0-6)T}STef~Nmml)S|XU)?%{yoCmQ3Lv+*j!qpMdxy`U zgAaI|cc86()!T@y%j^8|H18&fZ|1}dn!2mDYY%O0+O)ooo@e1^14eEu=^_6Eh{2u9 zc7J6ZGG#>_WuI!ab-roEJSQ4k%8tubG)^D)|9Wc^1&YtdegzkcPr%8wk(0Oo{+2b= zL}QdK=!i2M1bUwZz*Ue&}zE`8JtxV+{?6e-6vr5pVF2QQz_7$%HY z?pHbSV;TKM{yQ3Ox^lU|Lotdo5J;=~()8WaiZft@>H9GB-m{1^AcW})5t{m7k*7jX zG6}Qx=<0#B^OXG9^h!+4JoVhpCs5{#)R|QJp9qWiE0JSBjRa5 z7*qcPicKqE2>kp<@Ge&`K}1HSzr#=77m%FCX}nFGK+@?Z_}w-=FS54XUm>7|_5Xlj zhQ`>*V5y-Msr=(m`Oln7aqS%=;^u#@5TH29ga3~IR(SzR0p#{vhhBShf21%T2?pTc zZ%E#Lk00Y2e6kMFyZowC;v))7;JoAjMjnAD(PK_yh~&ZdPZ2BtWrl5&dstiSGQ`3^Fvc!=jL!O=-v9sx>y8xo^Z|^+ zQa4xBOK0T&-2ZU-&MExfG4pAFNZmp3!5@gxRk|4rP_oMtm(Uc6U%(NmZe@B>gK2F1 zhLF|7g;5`mUgXJ_;Ox=Wc0+dA{dYhbNW+76x!=Vc{Y@w5so3z6LBx6AbHHwH#bF&} zu%qWo_ev%PgyjXx{9qo_&S5m3)uGx!K~2H}E$*c|)K>>*wRHa_p;FnI^Sqj?`xW=p z)56N5F9Gtl|GW4gy1;vKJz4h#IgmZPPtwke#P7!2G`Zf=W73GKLVTIE*1i_aTgRLX z7bjV675lYs$Pl&my4rn;wOpf!aj#Iw*y$|(>dhaWCH|E$`0t)oe=E`d)7V$XMb$kI z(JCx?74S7r?Depkj`^{HGz4L9?BmxaICxLW;F)(Y<_xP*5l8?%J5WvtH?=PisxA4j> zkspY%wf7H{WkTIlA1H^hG7B$v+V{5#1}EmfXfX_jG!f^APgY%lhesDL{jUSkLCNzp z2A-cG$1Sb|otW=x7_DyQ*KK1D%4H4gMZkvR(H(=a*Rs#yp8EsQ1yc5f-NOG*R|HCcgSG$a?fU%U%FUq(Jmt#rkmRAk2@^Qudb z9&vz^B$g5izQ*5KFS3m>1%c01>IkWs-D+=0pTkA?hOAQ-3Yi?9yFoRCJ}va(OOJ01 zraXrS+op&t8d_md9)rxv5$EzsceL%@&&umUA=i877_acsTPO{!E5Klszx|h*&Q#&dbeKRwB`^MDrVNfM(SZ~)?!^U@o#GW2f zRJbzTPt9)6b)>q?pZkpe)cfg%{>huZsg~ou%FUJ5w#1T(z_O<~jquo?mRd~dI}?{~ zR0%Ul8n8jSqFb#$cz%o_X&1{v{ynQ5^P$QpG~y?}0Z|NHF3(Gc!pi4ZIAAObqxj+~ zEe7eqyeVpk7b6b%>ZH{gXjBeAze z3?svUf4Io7$E~;rD8Mz^!%b)hbk3nvtr7c3|AHRw`VYhriM<&Wi~4^+fTn*N0e>Vv zcO%0t@R1(y{e$#B5ISI|s<0nG@4t}$FLIJJWU$gTbIAbw3>)T>f^Q}0+(z@sQ1hyK z{`Pd|sOMxFXz=J~*ZF8!+&mEWI$Pw4q4ZO6HxJZiHZL$QDmb}3MZgntiy@}@>GZZq zT3F@I?u+DG)RV9l?6v~BgDcNDA{Z9bzioDg!!*v+Lw}|9HpTRCQm+j@gJj=sV$Y~G z_eY#}gEh9vF^Fy3G`&gcd$T1-VPSqde&%r;3p1|(2=YV-HIQFcSt@|XQB4ZdK07i_ zO3|;j$2M!RX@joa^vnuq{rjXxQA>CTZ0*ZUyNjALG&!>JOUIhmpEQfxvCzNhEuGZa z?2W`S-c*B(?m^f%8YGuQvhA9DK)t+PRWEF(=8wylPg2Xll2tqOO0~(_HmHnfIYq$u zkyFA-Z%;~A%!g-3`=V2m{0K9&U-`LpFVUlS&E}O#ot;U)A<5|ZZTtScfYe|Gj`6WZ z8s?>*cQim41i99RrWdy)vNe1b;UjomHAVopTMO%lmfpf73reeZYR+8cq)ge#o8?4K z5^4tIDNv!tMXMW?y3zTF!Qz|t^XfJeKLC;J20prd69Oe-$`1n`F*4!DAaXLOD%5t5 z;v}Y2=pQZw&iAYX$DJf5HMN`JT1{KWW;61OVmEBOw#IgAKF<2>*#BnGVO_&#`7?ZR zwhibNz4K@PT18=^s~2!AR$hq0gm}D&de1%jnvcRk-0?Eo@G%2_;8|>F#=#D68l}i7 z>Gz%0bPU5<>}fseMd^)4kKj%>LC18KF4I)&9rAIdv+lss`98TH=^{D=8SGbE z>3N0o&n4+%=|;Lw3({ZH0n9+tS=sO(ivnsA=f~D(AFS&EYA=1xLkyfO4*rXUwIM$R z`@i_&Jg=@(l#%`cA;abNHk|;NH|c@Z0Go9FXgp6Nng}wSVi5l44=Ml<<$~0hC+q$N zlqf>Lmm*1_9ZwffVZ7;0y~)045M=m^KrL(6LKha%cU66^2*j#N3Urp{q?N}^fg~|p319_4h{~V zzQlA~&fR#i3D-iu$`3zDQynLl)_5;bloEO9QKmy#_Eo!!O?7@!69xAAXG%c||6aq6 z#qPz8VmF)yqx@>^tm_ku+Ky>+l)abe#oNaXR+!}hI$11Dz|6vjOLPA-K~ z^{7Z+N_8d71ZsMCZ_#NFko0i5OQjs+@X{^KD%>tC7LCf;u4sZ z7}X{*IIZu>mNvjd2e1rlNSf zkQ}6W+GQp3%$F*LNh=Qc7V?wJ?eg3E!S(xV;Wq(Ve2tW+TRs)t%1#q%lM=t4giS&Q zD&wC4=5I{N0sa0Ba=+-^B&P0ua8^CmF_2js?1IG}MkTRP)ZBU9?Cf~p_=9Wm%F#d{ zmb&oOLVsLpv!O2DKrh>7zVFW4p0>>{6AFz|ZD8pyEHaUkTm3qK)kvX&l2Gif1-Ba- zGixj4D#O{-Hw$DL>`qOHd*8FtE-{iECwU^e3{@CA=^4$qe8dZ+aA9)j?GBP z{n)+C?Ounl#rfPVsCi@CY<2t*IQ3Z7>tx^%zN^%Q2HYn2Zve@Y-~W_uhbqnZ?8D`X1Z>RGunWZi?XqiMr1 z}k!r~VxsbAw8DOkG_wt}hRlFONx?Lnb24b;#AttaQoMHy3#) zo>p@;I5wAUd7Rk<&uG{wGJPj3q57d%L7`02#KK)%jQOLtp!aKoOX&9&>Uj!0gINmd zd5?pQ*w=e=Dc?*H7zVGe)-SZK``9000`FNBGZRe|1F3bzlns|F(RmMaR|4A5e zN*E${yk}w4{MR(du(P45QJO=UYPG-z{e+qysFlFSI{T6-x33spxoTLeG#1r-?Nciq zuP`&9};^r9~q<2{u8y%^pV1#fLoZpoXRH#IG;FO+H6x*lPI zM@Q}B3tx>EU9ZdUA$DIp5nEdP_xS?*Hnq6TN9(zO1Gi@-fPWBcAsgGO6dX)`3&>dp zW8Z~wzLIN_#jc%Yj)kM3exjyk*S2%KUdo0q(Ks+bgP9fo6KXLUQSvV~bHSrcSoS9d zd3B7=E@orI(DM79!b190)~;>uH3OzP9pb>T8f|0m{-v!f1V;-6P83NdOaE3)fDY7D zps6jax5Hfy(~}^LyVqs&-tuIkru1;+b02pn>VB+CNt(XZOV4}pwrfPVFgR$>IlwJ8 z5#_EwqHK1yf{Z#hNu#kXaltoHZG1q{?EQ2iDqHfrQSJI}E@_p3ZiL1pgKP6pUs+^Y zLS@g&ZN_O@T6ESstIR z&r0=b_u);zhNP~eBhnVHqZM4C(X#=C#(OI_H?0rjOFx8<&UjjiYeFY-QHiyz3=w08%&vmg49sjF!mM?Cnd?O}chodv zOTJ@qG;}C$%J(9nR~0!Wk|LAo7HSZKPiO9@gzvu;9P>o?&2b&KRanzkaO#PUR9Bnv z&KHMfC&nb=Xsb*{t6=+fwO}3^uOT6x~W?QziOEJk(Ve$<^IPpY^=^JIuw6FY* z#GbJjK8YZH^c#{rdL#b5>q{@++H4=D-RskB7)=Y`JCVqP6BuOZ_)=sD!A9Id(q5>@ z;~CHX_=B>*+>|U$`DCBdDHSh!m5jO32uia7b>lOBe6)Lg-<4^OR?4pF#$uo4Y9RFs zBpD6%RGnFQ^W8)%F7afh3i8E!PhmrAvo76T%vtm}mdv7NT5;)}h^z74Gv{Z?udn12 zH5j#pbA|lOD|FXg$GS+qb0vyCRi|uPr!T;XnWVHMdimVgMT=)UQyJ49Z?2Y|sC%yw zYqo0?D~ z)k_b32E#NR%kk{O29{7wJwgjAHTRSv&7z$pQb`vXh~P3rc#_9B{C7I5uv57*HaF^V?|YOIeM$@BDPit z^$rfg5f^`4443KD$mOlX5!e3N3gb%5s(yp3mg2s4L)uo`MtWtGY5m=`j&d;yv4f`o zWch|6?T`9tvDJobyqZ{BW4wFO;vAU^s_k_{703$_q0{6g(wpa7>YFFh^f_C{VolVL zu2e&NOIoa+%aX{_@za*}2iqe!y7!ycv-NMf7_BnYQ6IPt2zd6u_S1u+ge?cNti*9$ z;hF@!?VK@IO*6buVs#cnU-gf8L$sP5IDR>ryRM$V-VwC)h{GC85X9p5?YN+haa;lt z(zB&^QWEM&_BZC`_QpAxM8HS`2mW{d%4i;Jl6{fTAvm>Vo2*{cu--)c_1g{P*! zU>TY$PEvW*paJ0rDLl)U$S;{iNLML;0119l@%FdxfbpxH7QWe@=6hi9F>E^6`KI1D zsFDLyuW6U7okpMYST(U%!GR%jWLpDXr3SAK*Tq*!(CG;G(7n z^)-2G<8rHKgDsE|2tvxnTave!C+tft2ML~-*c81q44Kscco@e5TLx7MJdjr_R3BHc{V~0J(-cUIJS6SUzaqcc2=-m+ z;r8SAA>Ka>i1qq!3uFAB#Nzme>zSmB5TFUTJZV8T4pDj%hI zq~71AY13GZYi<&Apmk`^0T=Rey`$Sl2a+{Oow4OELv7Piu#sVF==;c`ZLBdWN$Ve2 zYYik1tqzFUkM6AfBVfOBYON>h*6ki>e`|=B^zK z19j(|B&9yn-`qprMBI-$qbN^=$sV1dJ9QXz{IcPHKzAL+#C6NiYHfU=w1p0Sg>hho zY7cpS(FUAz)6=%HGGG{1%tLVak@^EJZ_vATL-b8Ae#;$>d1MPBNNogI+nsuzttOWM@~un9_5d3R*VYX)t^mLBtWSg zi)}idfM8nans31;$YEah@l-;Bz|0pFq6M=DE#hHp2ezG)eOUj>_p+ZV&(LmY;7eUx zLB0Fj^8*qGxdM>14fKidNA0V%hB`5=)g!$S=r_9=Ri)5kfw7dp9q5}w8C`*c*W>>; z=H~KSeUQ5En2*d<3hf@rk#l8*qzz@PN1R?2&tg;680bKa)j7PB+ZYp1egQg1@HzgN z3_@62#zb!~%-l2gH62DdO*y}RtBDVL*3{N_F4mJ353CY|{P^*`hNicI##2Ty@H%z* zjtm$pqF&h@qkAn}uJ}tLBU;mHYNTwSs?Ng#FDEo8-_`f^SizF?F&%PDA6t)}p#?hr zLYtm_( zV{lf98y3pm$XseyQ%vFIrcGpqpB!;jCTTvN+*gz%hQqH$OX@vqrgTJC<+ zZKrI01Szx~hhr46^CivNqVDYYZc59>g zDG6Q8U^g`nj|E}GF*FF1eY!q5$B{#6eYt0-*+;X>-5Do zjoeZJUilkH^a>LykN01th#-bxBEg9_w^RBiK?h~I8sdF=#@qdj9is53%e{<`U?lRo zTdA*jcb>DoI*vj!-KPpaKg!=vkMb(u{vYyWh0vhD4p*&-AT?>j;&xO1RoIoaOODgc z=@Q9mR&RH@I}M zv@Dtk3C4(C{u^|FWBYk4(fT2vwlj_e_Z}ZNynDLHTfXdViUnEy`KF_n7jS*jXI6)l zY{EV@+crep+_I>LvOwvB<-b8B^ zmH>7XJCp`tvL!&jVr4E zL`cTh`9+iV%Qwi68#7Q~YiRZ;faC$sHZHDm7(6VBp>!4Z(TEZhKE1vkFy9S#zk%DF zF3fPR*#lOurxwR&|H72tfMHqXVLiinDZ0`sj14gB;itv>SRJy|miBHTuk)8{nQdPl zD{<9>Ke{krK0e>MjJj{R3gBn8eH*}?{H9odSnU7g>o$3?S*G{VC}(6^!-KZd23j(lB8o*d}YL+hmc4A z;w{rd*D=9H&kICI6Z&+vi=uMoR!w=q@@0VnYFwebmYxB$f<_@bqJ|es-Z=1Lk3fEF zRwf$)QnQ;9fj7j!5~<@6-16Zus&}~7?IcmCUBp~v&X~j1kp>3KOpGq?Up2ie{57jr zqxb!Eb;s=X#4X1s_nJ-f_V9S5yDi!GcQT4ScIhbhY-(=!!xP|;H6>@!+bk=M0Cv*@ zN;2rAh6MX(j_RugzoleTj;NKg)s3Su849pY1dyhI^s z;o89pjWnKSXl)E4Vag4;D=J!OI(9eR*yKWGm&_m7e*#P{UbM=$qlhLM0Jl~0%e0K# z70o6t+#xoGiCV4Y4wTM2c}k2nTmQjB#Qt#0x=C`;o~9;T%=duh!NTC&l850;+1kJa zgU-|BgwoZp0sO8ljUR9Xq_B7yKP@5hj!JnT_DJ~x!k&IlfC=BuMaM)29|yS2U>(Tt zwh{vVgKg(LQ|xFXqPMrKiu=ufLW||kS}gB7Vw$J!_j}#S6lhQ&ir8>C{Oex)-%zBr z*V!2n9Nyx4-?b2ZiZ2RG{vT}hR?Jh2bVkOpD>%C#cXw#sX%MZ*Mpl)~h^l0gs z0@ye%@bNeC*EedCdU6~6J{x^kQ}eOA^K#G6s7m@I{ z8G~Z&ox*O$-q*{9ZICEy7(pB4p*(3g*~VQU`)~q&?PeW8whx6|`F?=O@W2VA5%Va2 zu}H`G2%Z$nV~{n4^+%Nw+cdEcc9wgibXtoeyq{C-^O3PX6kR=U!s?cZ`wh_{N2hcC zwY5D_ow;W0PHTNc6GkU4P&{vOuJil1f@?i!nuaX8CTh*iHP?Rb-3W-{{e|Op7Pmp( zt}u`En9gLInA(G2=O)Xo?n51yv}a@P&=`2@xn@kern$NK&$Z?Y79R)0C@rQ@@(GA< z%XufO9ENon`2a*Q{cwp&gwX?06RA`)J=-xtDIVWs3U7c9dS9&Ybc36&xroTu#uQ-HfczT?(Z)UX2iy_7%oI`lwn4Wg9IMW|%sUwkYAM22wc_2j1 z;**<*NEE6O+j;Sb3v%wQ>hs+$^D-2@3#hIOHBi_f3u z>zVeJ96S)jq#ntWN;cm%BsW0K&Nu>?LVCHirBult(4)Mku^|<}368eAzk+K*Iy(B2 zvnA5cl@C=j*d04bBe|9+RcSJezk-t6Wwqnq;iK;343#_0;Vm(lHKi-$sR?YJBD!MY zdsLh!c*T7A&rav{YPn)7j-T4e9~^ik5P4zbmqMSI$kGQy;9Y#FshPE5>@}Z~-QeuO z?MjgiazIm+>ArR03OmmpNl2^;`ObAQ9fB4Xsv{dN>rT!X`%ych8_)L~@RUTteed*VjVEwpp1Qia?zir*>4I)=L%()hhJ4^43p=>z z=s>f38jX07al4K)SjX2{EZ*QY41?cD|5sE)kUp_7bJ%AGt&PI%FRwu*+qKUl z@M2c4@(OL1Qk*%s(v+&w(Mi*Qm)~qK?w_hFEfujRld=wi*EzbW4~tb0a2 z8PHYpi5o`cRxtu9Q>p$(4!~AX*x_y9FG%hA9Kh~CR) z>Qv%=qdF`ZVdt>@jejqyhE#H5dE+Nd4P_o>)H%mG~$o5b@kG>+sw z4wHgUwx_^|3eq7>O+G%&^rp}!chh8@#j8`SMwEm{Nz*=J%t>fcq2PVTm#+KZom;YG z)cU%+U`T8f%?ij%AkfHQJ&&W=OR(e9WT}4lw)dr(K2|hUs$7U9{o8$cuSeMNK_5@A zush`G7?bxZ&U10$Dc8y^b%cE=G){c3NmL#bV!xl@DiSjd1XWdrkS*ze+Lw}wR*CJU zH{rGj@02BOucJc$NPZ@ryHx8B=@^{g#(8yago`qfmkQYxQVpWEq@WzrrJIJXKmVv-QIB_oLR&)kUj%Zso609-lAMYsJMo0OraBqb3 zZsSFGq~%OtIz2cO`q#7{&N(G(rdF#zAqu>;o#DD<EHvpJ`hyfmR=xw{<%AozT266v;*OF7n^rq{;G1)zurmWLu%A&B zDN-jc5(53f^`k6iV<3^SBSn&CjzFxhhIs$^kT5$t+k^B0hQt9@v5RRDmk2{Pl;`hF z%Y1xktN1$}of#*LHq8kJ#(hHTW}xM=j1T_mH8k*?F-Xuj{9d z@?WaU@*pfe>+(K+VmzbQknlJH;wmGnp`BUXCY6$z3Sv^HPn8hLmbaLQQQ^^5?UrUB zkFuHxnoYK(wH{^8ncjQ3jCb?e^DZH{H;lR~r24V2?P-p%IunrU+%wJNEfFcmmP3`X zfUy^wIL!RZ;Kpdm=?kJLO(I9tcQV1fm zBV{{=pa^9m&{f$Jnaj@;4`Q7A7mxAMbgiOhXX{)+?e{Zc|7;G^0}`{*cI<#_GXrKke=+g)jpNBmep+1r^1FbC#zA z&!Hp#3)3Vd7m!cBO2*0ITf1J#;PzPaT1y*!)L6f7pNk12AWaGcfeSaFmnv%+y-(E% zSA)W(xMeMzH~X)igv+qv)ECfat16~_>f{Am{uFj{8lqh)fxtf82}?_@q<-8Yc#bDk z_*c?%rHYuCiKHMqtbZgO*iaWknlsDrzYy_&#TAhk^toZqncs{ssma(+kiXyq@yY)x z_QR|Or4@qwSBJmgC!ivNU;hUR)VKW$0n{CY*@^3ol!N+U5dXCJ0DCBa?*C&9IjF0x zkSv1#K!N%Ph&_J1kX>@mzA+8bCfpkV^>Wjl8P=G7i`b<=bKo`l!o0_jU^w`U zCc$kky(7u6U}1ts^C-A~&e)6ad<9>8uvxYUQ6aU$+ z+8lxiZ>wb6_K$4KY<#hG?w3gV>GTtEl%ks7R37%ShMt}$`sexbZv#_&uNIC{VKzx~ zIif!s0$VoZ&!_kF2f^J0$s=CXg8Ow=6^Zy|AU<`Ly5*@O9BOQY;cWEOAN2e{R`3@k z!_nO&N3~s*+EPmx9_^BgWs5pESFhnmR$q-X-z>CA+(5%ISF1qINReedn8od5iuQLF zkS{Ht0lB?F-TDUSpQW3E;{w!_R52@Iz95uA|G^0k!M;%JD3{1;nIj`Tz0bcF`2GZ# z=1I{GPV2uEQzUfRq zZ^z6uUIrH&<=i1;zpcC$K4uvkMaPTkt#)RcrT&+-5;+OQq7{w$H}dUj8q@ZO`L8{{ zWqf`waSvyaIDdWg_VbU&w;yne>{GeIC?c?@&oNKMwq)K5^elhu=aLS;VEmq6MwqBQ z2=0%em$%36K+xL^t{PQ+I7z}P6Zl7FIJhp#XyGQTlz+$C0&CM%Ua-(rH2#96+`vn; zv4y*w>y^Rq@T#s*@@_O(1-#KKr1k%D1!Wdj{p~`1hV8p+Sf9pvM#&2jil1N zf4WF&B`Vv{;9^IxeZ}b})8D9fV$|cX@9F*DgSMJ35|?}-L(w-+E>8wMd6Yh#wH1Fq z3viOMcF3q33cAmw^E}0Y_MJqny0FdGjy0LBD^0I|9QnLY8SgR(JCqb+%_)|vPva2g z`#5e@8w(ANX<}M1n~jTfw#v+X(PWcU96*;fF2wr&9aoPc!+26dW;W?suA|%>#4tL* z)HkG-jcsTu%oD*x`7Ct7?5;@wcR`b4KK~+7th~+p|6R_&)mLn9lghynez5Ghf^%oFbUmoi_ccB{X6zvwO@!?`86n=`%2=gT;-bu9 z2=G4Y`*&t)!vJ{`#K61Y6Scs}b@Th1m4-g021Dqvuq$vP2z2hpy2J~S#|({Qr?IDl zZFQGR#_pEV?1z)fog)-!epLjs)@O#lYU+R-OG>xyytDN-3)GW#r*kL>Kc%%Hw4h=qebrAENtIRj7COIQzpZE^K4`Ns|CSb@9)x@3k6-&TMN2N9yV^HnHAmB|56QMs54t z&iLvbrW?KgRA)rDEyNY_F#@yDMN`6kpq?SZG(v-)_Q(&YI&l%wt&k@gl;!J<5gS=m zpXQy&*ds}i5z^|`u=kUzNv?10Tmu>Zt^3FaR}xq-sGeOitOY#!A>9X9C`*(Z5ykGW zmYRuUElQz1tbZ{QQ|ybtpg+GVe6~vy&ioC*&PK`8(?R`WcN|5EhC@+EM84loEfW*6 z7kQoC24S5!HNXUA7U69Y3y-GFD$Mfuql}i0Ky06@boYG-R{!`Iv^L6)PD;Mt?qZCI zPwGkSR+*j~64z6PN~ChPmAEf!p9qLZFRHfvpd?K^3lvz3(`1Lz0Y2|}XD?jQaM)=` zKV|{b<-{m)tDw1Q)k8x6nokA-j+GbZfSh!I0F-<;^(x;-J!@`XZM2V-1 zwFo-=R(E8TLya?ez_J#>&Kk@X0pe|m60xHsk3p$b0Fo$Q@h6n_g)}Ne<9-;CZT0-N zR%qu0+?jqT;Sx*Z#s2?tv8dRIyIC*@sR029XcHu|4&xY9V3eHG-jg*qrrMWTv56>^Ij8hdI?iM;)?pj^x!j+rqiw@v++@U&*Zz$Tj0SwU9>f~6&P zQ89*TP}dqQ+09fGKxI|IR+-|N2g?Nu#Zv31k3n%&Ae@<%NG;aR5B1yE@B7lA&XtyYb=ol#IIo!gCT;xCJPTIhHeLo#0(+B`MYC7q5KdciqduA}ed2t&Yu~1m7 zMcL(N@lsm`P;pIJzz4}-5kZmVDa+MArlN)CkOc*Rs}ApErOg*lK0JyuSmZS#Tgvy!oMqDZSfl9YI_Yc(AB(8#`eZGfl` zJiw{q3m*T?sm(?5)ddabzpDJi>!WwJ^YBbscdzbVU(X97r~(;G{QUvW zA{X>uC}lp5a;s5~Bm~tNLzHhkVL7VEltY|T{?0$;|J56Q@MwYGz&hEEc*83m@MBP9 zUVx(G<0*OzRtp%`Q&Q?kQa}g(D#>4c`Sn+M044dWNVL=mRSS@N%#k}??X2Ew9wgxB NowSlvndFCn{{s$?czgf= diff --git a/docs/sources/operators-guide/images/dashboards/mimir-writes.png b/docs/sources/operators-guide/images/dashboards/mimir-writes.png deleted file mode 100644 index 5ba1243a1f4afa06d99a26d3cf96c44de534ca88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 133337 zcmce-Wk6fq(gq3@TCBJiZE=cADFs@JyE~z{6;eESi#r7h6nB^48lbqlTX2^oXz?5R zzUQ9v{ks3|{*k@+TC--&^UT_l$)1%EWko4$3~~$<6clV3X>nB)l&2sR6!g!}A0u0y z!ofkv(-Vu23LjBWDxxrNjGiLzQ5{vK#8AqHU+$uyJVsHLSC=?FJA2K{evE)FZ!B#b zLN_)y_xAR@D{b%Z?~gCwY+U?u%IY^aH~d1P??gUzcK4)pMT>|@>3=q1X6NA+5aQq! zgtYt?laiaBnVnl$P*T&{-QPDdwLCdF`E&6{N?v*SU>*jC|GB>G>FaO#-R2DP=viuw zjE-&V=v-V{p4u9@ySpnc1*>W4wa(RoJiNb-tqcqfF|cwL6qUra25oQejE#@Gd4BT? z3^_hNu4`yoTVK!2$=hoXvHJ4W-pO@haw@9no2iA(^zx{!z0>eo&#&avxL--jE30J{ zRpldju(N~e+WMHdgq`EfgM-81+4Wz)!)hl=Mn=a9`qO;;0^oCTsp*-XldC!Tg*$tD zn!13%I+yi9-}&9CpwNi029L(6O87+J#z^=F2kdh%!M`dm;vV2wwWt?CCkgc)eh@xL!}!BGckjAX9u1>zFK;QZ-crK z$wt35z-vq3<6QfR-R1i2qXGM7+1SA@r+x#QEmuB-Wu z$&Is%zM`}GsG^yH?4BL}nuYVW)bsVqbAz{4qkHgztmFFX%dxtnq?qMi`_PH0i=DQf z!B|nZ%Cr$kT+8y>M7*1M!Oh9inG0+G;y__$Pp@iJZP{q7eqkqME+h7LfqJ2?Q?^cc z?bzUIY+(KI>6Uirj*DG%kW2Yej7EG9cw(YrD8+2bHlj5=U=?~W)ui6t4w}sI3@?L~ z*wyHUD1QygvHoG=mC=#x5TFC_cW%+F>b1)e?iLKXD}ycQW6{3T8L= z-#2!N^^xkm($sK`*&{uHcX3{NwK?VQNJ$L#7#0=#Ndw6~;68uy$W0dofIOjsXpwg- zPyaaue4xSoM)K(U2O1QPCy&0PKprIj75S%c1$p{0^ZmjnpYg8_NapxAt@HE5pH1F1>rs&FNa4{O(Ud(n6N6~xalRa8z%|5Rq(#Ya#~!2Y2$EMu0${G zY`%`LUC@F^T~D9v+#!aBM1Es_KmCN(ON|QjD?~juhM&8{yns_BAIZKMD^6BJVnYR? zLP`8C78Ew~R4ZhWWYfY5^^YGRZT^i37h#2r?ErF(hnH_%2B%r17NLi%|Bgv00?7o> z_ix8(l;{&UcwiyzN8$K=tqOMlKCSYI%XW0|9!m3Oe1aqh1@P^nYo(drM&Ch?i=*72 za(lVgtm$!QJKghLW3rprd-j=jGmxX$)idY^I=nwitJoVSc#{Dk4Rg~RJ36Zp(VoKS zQg!enm_|`nrx}V*shsCL;0T`>Jz&smSLY5zwZ3?$GAP!7_sr#6ZFBqVH&@0Sr4@}r z={wgzSN>O51=*1dfi*~7f~(HTdddlKDh)D-1^@xjvLV(gUPxUr!=Zfv3@)8rRZs?7 zIGNn;!t*AKE51wh3+H`g-10x{wnt$7KMKeZCPD zBtVkyj*|IJalN6Z@AS@WkgEI^7(DV$nns4FfB>S)ps1mFw3P%Hb!<=07>}mp9jAn7 zY2X1?y}`O_y;&uzV{mgsXJuNOiG@;tfPhx*N@;@@F5HE{ahXj2bJRXng_b7N_1V6G zOK9u(3QycAZZGf!aPhP3P-XfzyaeQ)LbdO9s}TUrVY2seK&h?V8v+Lh z-NKi*d&JN=-NJ>*o_M%w$6i85Z}t0>$up_;V$}tp?BNTj2?4Z-$;pOfG7SZ`_i~eZ zV+MY#wmQ_v@CKAhR^hO9=8Orh0ei?#mJD<1vAtvT@DpI_u58whipy9FIDHCX*+jF_ zpZoS&S_+gOhjmB}Q1!dmzckytx}lSetOc`Q)G9Ul3lK=1>GF(Q6@2&kBY-)cl3Du> zX@pjQtIvS{1*TqWf!%G>rQZ+ggUg;5a7jA6)Q;jRA~NV>NI%Is!Ow*_#MRHIwUt7| zgj7BdLzts>zK5#41hmY}ithRM7&NhrnfDYA`i2Z(SA(_ff*kM2gcCJa*@8@mc_b_H40T46v_e|UdO*vmoV z7_-6zSzyRYMsUaD{8aZPm9NPt5MKU60pCkf4aVb6R%~qkde7 z-N^F$R7x2kyh%uATuQ=hR4?D|SeJ~{FE)xCq#CVV>eGAuAc>6Nuii(P$(GRMo;2FL zoyLOwWPTeo158_q^(cJ-w%|>s>!bUFBV1kQQrjBi4zcTLDo=_+!*1exkUt=t!;!!*IO z_kvDIyY#IzZUmTs+!9s#gY-NL+iQd;9RJv+*j=l+sX+L)H(kT0CbfqG-za^qOZAF8 zZMCA?y*v366KB3X!UeZ~^>G9C;qW1x_8V8XL7E|2Rfmv)&?wq4wqm&%3J2pp{7T!o z(f=}=nnVHAHFj{#zG7CZC-QCJ0PAj^|BH=d!N(C+4~N_J6-p_QQs{iD87jmKJr4g~|~DPe?gJlHlIpgN65E z2q*T0$n2mMdOXLw58ZYEOajNop-yojkWL-WPl1D3OeDAzcnl`{;nG%%;Q7~{Y0;*yuscO=nX)`G0~%-kP@sLIM}f`KAM^JDS#5r&qBV5YNTt^%cP#tS-*S ztKl!Ffw8_O|pye8It7im^ zSmf|Q+|Wwf$>X2vWJIGutWQW`pNKd}z)`5_bT=|Y zp1`o4Y2`LJ({nrvXdIW$>T@Dc#u_ewgTvy$dw^+97ftY| zDkTRSXL|)DJ;%O3G#~z$t$1yu+F*l9jRKp5j-P-mJPC|Xd^}5zPvM2S)*pPeta&Jw zL%!=alR?Mf^;jI_FT0E;=^^7Sv5K(rKLRUVFf$NIr|p-s7OdyK1KJXA44IL(?&5%C z-rHW1NiP61aCPYJ!Ykrs@hScO5)jX{=E=g^_ zO&&T?pEffd$e^`T+FINeEL7rVrfzD1Om*P znyxPiK`L`R`m%w{_uhUQ=>qT5*Sh&uY^$fp22DwXK^6BZp(f>*`Gh_?TX>;>`Tp$KbbFmr8Ga9NaIeZ&j5*0Z67b9<78PyJcbV0mbyDPeJ6#wTrX}*`Ctu9t zwTK_H86c9O+U2d{0jRXQVT*wfvH0r`D1dkIR9A@&P&Y9|b6gM<^&rttcpK$luft5`XXh5&EwvQs^5}-(R7JA-|Ie z!2=fL@fIX@Pv|D_E$gETYOb9ZheIC86PhleA}?>s9P`;E&pH@ zw&Mp@8DAkmt-R{=!U3L2cF85(WJ&)583?nd%OQ>o_>IRVTp0jO1x^JJRD^G0Se@8Q z^`9Ua4XkYkrIy*{KoIOrvCZz)ulSaGReM1fJZKdd%65>8Vf~E;Q%5;8Kp=WEyK+r8&&%UnnP5NCSwR zEJ3@BF_dGZQifL&xjPu0nC2W%-RX}CAp-qqxLo){V{iM=dJ9Jkm-z7k6<^IlF9SL5 zJ}2+Ei&)mqskly159iWt^pgy7BevRi2^dzYiLI4|#J(^I#EkLa!vfBJpBvwvuWrRh zP>z%ag*W!2C0rcDlr|i?oTY)9TuF?F8k~pjB8h-%CfA3RW2$QkW!@M`3P8u~*Te+W zrmuGCCje}xbaH*-FV_w?6QUd7i>G6|{_N}N>ScwG9h`lJ1 zh2Y)i9RcZog0!qe1|@N9D{x6@^(d%3rayD^Nxmrk=^CxX_tL*h{Zo9WE}L;eO2PAf z0dqnjFw!@tX2Q%CfiJl29kBMw=hozUM*kMd!}wsisOuLY&*F z0aZ$I7c}jCJ#|#wPtV!aLNr=H;s6NY&56;@p}}Q9m{WZd$9^Nnf!?qe0aB{DB8k#= zCe@^F{V_(j;1^X3a@(sg{ndrA2HpGsF*3;zWsyTkzhDm$B(C{`Djc(cx*)piA7)+on1@4C_uC!{+)o zghGq;T>QgeW6D z7S1WEc{R<}I7{p(8v-QjRSH^3; zH4SWPQbZ-R|LOn_j6pti(}oNKc(M06uHgyNUalmVI!Yv~jX=r=B{Vap}CYf z99-$Qgvr-qv&${dlp)%4J?bR}DRr_-72$xAv=TUvC9i8V^ggWEg#0{m%>YBqKE~S4 z7oVJ#8{cIO!*zaC$>}bb+DsUGTg3gG&2Slt^kxHay;yA8Q{V&f&))YWxAn=X-uo2< zUUaeUN1rVP-;o^r>$v3=*haT>2Q8rK=GWMy^(%@ASXdPkqycSfbEqbrSAk9`q^??p znIX7El8)Mww$Yr>W~>F|su=U}b`~uxt6lW>Z}eoYHD@0 zmAXH^)qJ_cg6NMzrrQnPC7=Y}T7f1efIHBq=;LPAu?g9Les`D_B#7`#Z5|N(Cf?0r zU?Z&2$|%2j&18+QHeRVc$XLT+gu?J`Rkp|4P(HsTee z=ZKMA;|t7(oefT#dOz#FU{O~c=vC-a=#gk^rqzuDPP9S z(HlLPqDbmlNP@}NA#vD>4@Js1lVfkYhRqWem$bHc|AxXpi=6fJTNMn2?MZMa13h{Np zTa>)E%~X^5rGDp!9PAhFL-Iufcu2I6R{S^Jf^V-y9L{{oyz<6cyA}1YD36t%2v~iG zIrQXFpk0!r-luSUUVGzCCQq?W(vA;w_K1LA_QXevE7qE^_0EMCza>0b+1rY*iW`fI zimg8ULd`m99Wg#QDtfm)S-6*wb>M=6@|n54Nmu3msh2ZRJ2DjvBZ1!Jp6QS9#Dhik z65c#VCX8&lAT5qFG1r=RVs5m^|Q>OWHjYu)D3r zEyA4(va1K1jWpif1-I`fvF!JdHa|f@!6ZS-7hNIWv}@AmL0}lb2#oNWkRvjo{AMGS z>#yw;o6V$1OKIC#?{M7%z|Q-n9ERHRZp+K-LqCDqbt!JfgKs>%WL*e)*dzvNk2Ox~ zKQ}E0d>~O9E+*Vc&WdHvZIC^OO@x>Vv2C_5$Ow(Fw!q`Lho>kxib)RSEy8yD$AkFs z`N$mWr}}0C9urGW=jU5b3s83Ua#%4^-CE|Q4v=r5qkOJtw`uvPLgpTG;kDYF#TUN_ zsZXHold;Fc;cr7 z7BK^6HMU^e@E3K;87vcVxj443t+}_#<(_(HQc5z&3+NlY3s!j!c34vpbkxrHG)RE* zd)z;P6-L;;Fet)({>$o$vChdutE|=v7=>w`e(=g$!7}lluO(ffTD#?@Q*(#aFkGbO zb_rd`xn1++-f~WiUWuZC!Jf*we@&-sgVHcYlT5+|41bPj%dCID(P8Big%MsXR}i0& zSI7B)l98!b|MaYE(P9kOvD`d5&S(1P$R!g`4^b1I`WiDRB4QrPc-QxWXk@2EGL=D# ztAVdLz%`2h(u%gNc4BjHSoGtGLB;$eMP-vyuAHARR9y2AL8Z#Rt<{qM*g%kpoS$yQ z_yxGIm*e0tAo{5k_B?igmJm9!^!N>j9wO!zcT{OBod zw72@<%gaAWZuW8P1T(4{EY2e;?bjcAdb~FooSil^n0WEI$Q(gz-iJM;6vWV?9}e`8 zc^Oiq>7Hz>oBhR32^C-$2fvC?wO+d}e*r1O{YQx3(|4`{py1ClhW-w55IMm*8)sTb zrIR*@^`}s5*chy_QWrt|iWT5S>ikR<)Cx! z4=(mmmry-zAv24_814J3;*q4(#uEY4iyeJl$aroZ{2gmaIx{RicxizmVcL1~cMyL& z9fQdWn@#z25)%2|qierT)i3Lzmu=-eP;g18ZKBi? z+0mn|Tf;xoLvI3^O;oY-1-3hKz)oA&_|IbfTKuyDvnN^@dirVJDp<<@mh^TTluLk&GAnA&VHPI+ z32R8=+cA*==>zB?grOj>P#%KN-;ckM=x^^g!DB=41+_mi8plh+4ojasgfRMc=L_tI z*f>B4XxRvWBLk5pQV0B^odog_)qaN}#mm?J+hG+z!uk;H%HZc{f5To8{6+Z`axyun z^QL}2MHFxIw;NLlp*0~i5Cxcm6w;Isfz!-pfW&H&dJ zz%sXLf|oZX*d$&`QN<+`5sc%Y&?}RW9=-sBeBtcnF+kDW#uxAWa1ULzyofQP>*|Xj z)WK8{}1k^Zf_ZywN7tfQ#D}MO-M^qr}GP-te1f z_^`vL5ynGIJg5xA)*A><&W)?T>)s`IMWLwL9n0$B&|!j2s;?;iG6s6_7UM30IlAzf z*>x*E1&8OTQmJ@j=ZGJj#$2{y8+0QAVm!_4EqM*So=4*~>3tu30VB zPhSDYzDFoP;DAW%cIDQdd}Xsy`OJEDB{#H~DJKw5(S93gaUsRv&#&AOE$gC(p%)`m zjIr%{Z{3}W?>^@i*QC3Y`(B-`JM}139XefXFb#;-`92T{zNaE8BW+rIE4;KKsv#T| zW3gXUK{Kx?P`~Bq8hd9pgiY)&>{vS&=|xgQzZMg5s=bdS@^bS^Ws4t63k-@g^tLoO zFiqLIt2=Hfqn^aG1Nkws-tWW@zW$RwKmM0SS)rHNQuA5&yVRPiv?*l`5uE**xa+I{ zM|r2=$0yuu?2zk1V82}FuX@qVLZDJa92F5|(m{hEt9+f^EkN=SPovg&3YlDI`m$mq z9}hk?gZ0~Q2&*VF;k5H;9co#Rx0@RpCTLPk*H@jGstB~j!`f{(tpM9iLEcQsvebH` zXLE<>OCeX|#NiNZ?1Qfu?UrkPxQ7>i2#c_im{<|h;$_?jslx>>gEm-hg|Mc?94!2GYi^m$KUD?5=8^heIQi?N|j_!W<*~mgP z*Uhk&lbeVd8Z=~l_-8Lb>T=cSz6*cP5l1$1Efz(S@0SNuHYwilKrVBV1KU||Lp%7o ziy%FE=ZQ%2=FXbmT29 z^1^l~b9m`LmA}}Xd5+J;KoO>9q!fjujtEH|KD4~Yx}4EMJZY?%o1oAEcy+SSSHb@e zb?E;?ooUiZ@x%I?;draqMc&IXHFKVQ{IUVvH+o-4R41FOP{`h}-8Zo=^E;*D_echj z=l3QseV2LdT26f`8VQ=JfQYu&H2%*Y<%p~J`Zl9K@>fP-#`DX5PVe!9%FQDZt z#sHs;te`ZeVtHMi#R~7 zb!05B3b`gbfFFO|y&m!4X*HQG(4(wsVRW2p%pfS^JO2i$J2IeRO;}#9Sq}sPTdpIX z9_}jY?H_k#84;~-eQ!f-k&c9|GkoOn4KHK1S&M{C&ug2h8*i}!1ZTt@@3DVQfrV`W zD@=5W%_1F9{M4mHgLtxjiO<%Fcxs#F2*2}k7XOHxq3b@mZP$&3zg92$_Gr#zYNFDj zh-zTCPT%1t?6XRQP&6rUv5f*I??oYH&ir*VGHPazIy5hqYQP+~u`gig$8W9Jis#1A zr}(}INqotZ_AtDpfCoMfk$eCmW`L=&Ck>ZGK*(M9okp`qh0D(aO&=D1D9)ROdbhB{ z_DCZiBHUXnmwLhLQ^edCpi4)&O2U>_jB7ewLMi6Eu_lV0?+XQ&^ls^{5}Wa4K+BPc z3;tQ0xOILUtTbB)Z4`D=G%vt+vv}Z37x3Wo7C5#3T~^@UJgj zWEfkfP@33JLel~3lpXoxy`bb7p5(AQ0-6X9SCe~#llA_~lvjb}P$UE!w z_qRsnsfLZCa{z}*YUf!?`t9YJ;fj#f8RdmA$2l*Q)afYKguRQBXIsJsFoQ2%?PawS zL+;lj@7Dv)XS=Dsl$0HeIJ*hjo%pxeFN7f%#&zj;p7!usW}D-Z+Qz0Kv zYNE0VszhZ^QNG!TI;CT4a|K6JSA5mu(HD_<`-+njln2|-_ZDuwsipFe%VkRgTjX;x zPwJ`m3Deg!BuD<%s((46W$LA0>|_~STI%mxd=Ee}HBDN}eq)dAYH$@AL@C;pzD{{$ z7^qf99>0}zvT$l&c_?0(jv3Zt;mVLgw=QhxLT&5rv8d}rt%7lQga6UO3HVV3OcbCHQ@cBDY7Ef99@yu>&}!B`UI1U`8Z|`BM5$S8}Fa**PSnw z-L;9>-V83*&^1)JCeqPj53=N#)bt|6L|c)ib$k}~4C!;}v+9GyqNFqZ6DbhsMmHtFOo%)(Yo>a?{AIRs58!GLqtYD3|0l|Fz}ccF3#*OF2W&g?mlQg zpa1HGqbCq0uEq!817IVMzn>93=8)w{5Falu?c*e)Z5t=Z?db7c2!{9^rUtNT$yM{E#0Kc-RGefcWO0w#pBQA#-b|_ z-JkPSM`Jmm4hO~>B~!&JcTp3HOtCBtp2_4*;~zF1THlQieE4LdYlzU~gYK!c;dNU; zHfOt@@jz4bJIKI^Uz*9u$v<_9`rO}+%!ZRBx}gd@|NIU$(9}|x=2qg(qrD7 z!o)b}ArPULPwD8eevd|>HuW|{;aiYpzeZ;wMPLY0L=#-Dy#GWP_$_~~&A))17M1hG zYV;VsV8~88lU3lN^1B{%$(v8u*by?_v29s{pvRZ&D`=?ljK6JnT9gW@3Rj7FLKqGTNQvkT@%)v`mZjnq_u7VI5x__t1r%8#g?wbeeR*f)r?ycdYSj&-u zC*P(br(sK7{dby4GT_4;$aL-dDG3F~=uzlcG_!Y}ts7y{W0N;q-U{4SgUVxS`^-N8arx>J6bv=$eKi0fgA(udrbBo&A(o#MZfyPbcyXz2+ zbV4-Z|B?fmB=}3t>vbak59W|Z^nKrbW3-rNgT*&YByh7vCBU0+@QwUS$|5-dBX7mo zGCn9urlHI5Yy{4~{jdH2ty|acJ)*cW|A}Bi<8K7 zuu=2X&F>5UIogN8e=pF9?{F4vfyY0|zfZtKK#&y~wQBrYzJ_Gm^|8 zO~q9wu(=t_-DeZ6DM`Auzhey(9w{8ewDHC0R$*n)4!WD{M|gZh%&hZ3vqD7m zKsDFynLLx7J?B?7IXx59tO@blj|`=_p$^u2eq=D*r26L28EJ?)nHV+@l8wpdkBIbi zHkvXKfZAmrwps}^J|+W#P}s8Qz9*B;hJMRDos`XzeB^{T-w^pN_jNyg8@&Qn+D3-t zG#eHvC2(0(4*F^7lBfZYUK4ell^66rJHtpU@vZeQ#%&#QhxZYJb=d}qk1Zg#)70Ky z02<@&WkO24HD6OEm52Ub{$?Dgt-WP(cKDYS9mr5ppv?dNHXvk_NYN)vJ9tur2S$Okun^%_Q z$v`AZoND*;x1j;3Dih-6gW4K>NAjECYFU>x3d4h;c8!#`TX7pI2{It2(I6^ufZI=LtAK}!pkAkln39azY zS@d6(>zo9v$!g$ZSj5v$e%2C`EmSRDO<)>GguZ89$|@RQk5>u5==;`f14N{8shigG zP`?fR?Y=SD55@*V{MhmR5Dlno^eXJ=?0x2kYG0LK*`Ph{?in&Gt!>z+bZfITHI-W7_)^XmM)QF#RNCJj1vT{H z7ikz?XpBy|372sfMu=^E)crRoN9s{gqcc#$dEtokx%{vS?+0hEMGw2FM3;rH7?WmC z7}dGoy{gtZ35k(c5F@mR|ES&;i_6WYX}y6L=O~%Xxb`O8ebC5FbyXo9!G5I~edQ&- zUuxM*Rcb?jFJaGZkmGHhQITt!Ajh9@N?o4w0@z-l;!=evdAQWIIh`A3WZ7`R`bWq73dE3XsfGcYNz+T7rcIWcx0_^NWRjpEbg@+4oggKRbpMXN>TKm- zaz&Ljb`z@}f}d_>@OABr)Sh5e(&a%-Z+z^@Ikrl!DAN$DYka6I>j@)WQ|axQc}>wy zu@~y$BkZLQbHi~Fa*0y;jQT5(t1ZHMZG(gQN6utz=yBo0!LucT;xc&*w4po$G({^i z&lAZx_{K>-43pWV1=n%z*#~Vh2h6;;hL_Me!@H%TAyi$LtQqwKbh0vv6+w-Kf4)~urQ({d@tEx#n+i@{jX2; zZtS8(UKv+y;nF82`7;f(`4#vw(wbU7D#UAN-3sSd>eM4Wo9$551_^9ERSd%fTM!jm zaf^g*oLL&MKBbs;ihfTz^ua`~k3HcFdm(KEWA0zDXomv=As7cWe~8o%p|F0QE4yFk zdbN?&?6K`5+!H-KZkH~H!q)YUP2V5fT3JzjIQ|#$GqgC=2gJ`@cKmyI2C#I_AVTYx zjD;~Wkk;x+l8`FO!tM7(+u1gmZ!Fj#=b`Xt&L>yx6!Dr{u)Xx|t8UNtp)H~4uLP89 z9nIENw^a6IaLtts-+YVM>I|FZlAZ>CbjBLr(k208OhdgItOU2Lt=F9P`3|CyI zO)@V5`RmgCPya#g>3G=lLv&qCWofY*$D;U)iPd~AMeg&?fHxXBSSI4)uFsmf5PkN+=R(zWZSw$ zr=7;ms~$(Zp>NVpD#qM3@ggGq4+(*X1FjK!63gB>#aenv=#9tWEfjg!6KAvuGOHGe zyX%FM_EOJ*=^~l0vaOe=%(aS;BrN1o&_7#ik9U*eMGMTP<6JK&d{i|UtTEEWljLI> z_w$Wf(w`5a46L@wYweNh?~qUTj_&6HtGoejaiY5n-gwx$qPnD&#GU?q|6&7l?sV#5 z)f2gtebL_oot}0ECaNu`JR&K=j5CXA9Ni^r3z;i+l3X+&VwC0P!&70eV#^9m^$#wz zS6!!65wxgx^Sym3CA?KmNCLQTusi*Ep>vEGw#>$ROv5+-1!X0~|6)VRz3O`Xp~{5<7jM7b?%Nw1+e3fJge(N5$%Bks(EqJNeS4@Vp*$3d zkku$7_aMQC3m`3F6&8&>lG#Ib45|9>Y{(M+|LuA} z`?tFGe^5P4PVzrpVh^?dhx-0Mu#u&?e@FdK<8zL`6aBXv0P?h!aN*@Cuu09T&5p;%sk`J)KOEJfd*Ld_XB8A>+xJ-$G z0qn0NEgAk)^XWGdW{B&yZ1YmOc((2g4g&=8xjRRe&t_<8kSmG?LQ%CG%hZx%ZD>X9 z$?y*!%~(13@_t7cJ}bVnuWhWenDc>8ZG7{6b?yH zkIkIYbKtpxC9B0?2PRD3OpR>yc6wHQXk6@gqIleJZ-1FX3)E8`ktZ3+In;`D8}uUz z{3f7Ig(Z%70`}}=bFWC)UaM}ip?O2SWRik4?3|Q6{@i`@a>LxowN-`ed?K%OT;sU? zMzQcL*Nv*MLdltu!7;z4INP1Utr-={0&*+Rx+ ze-&VT>I^_9!98Q1Z)B4^6JG&Ur^qCio|32<$8kjKv7EoM0?)VgO=E3!xv;iTFeT7{vG{!sp5oBk- zGC7$gNY0mRxm)N=YF#1m7&Aw@_=;Az1l^kvZZh|XE8yMy0c8bzZ}T;{3}lC<_OZx6 zA{c{&fdL&6)=w5%Dw+7i)8@s7nDI5r?=XBQPS8aNd&)w@vU<@RKpNm&T&${Rzux6J zUY@oyuWUUhW|d+1p;oTXpg&(vXt7t$0rpn@X=$wqc>d&ESIL@@;8itzygx5lC>!Zd zNlakX$u!@hK-pB=cd}8iz*LviaH!wr*wVbk8%W1=DV5`|9K@A@dl1OY#8*HiH%y4# zNm?a~SFmRGg*a9&4Qbq9JrdxRPLz)!9#h5%WtmQS>2qw zvT195Yw-sMZGbu$68LLG8m7H^LuUB!)E7T7`wkzYaO{)8rc|5N-EEFQL7UkZ7JaFT z^8je(M0v@iHDkktJr1gjor|@BS4x>2bCFBEhb73Z*keM&yL#qrZXd{>7@#{RjOt_( zgR;n72zRk&T>ScVwA546^<6}q?Ucuej(z!i_u}fpfVvwu#brd%aIWrUfyqu^!Jt9< zrkE5S{oWDCHtg_2r!t1GN?$nUM6RXJ^g6-j>aQ*yXbyE(rckC+#97^+~|K4pSfd(Jm8WAjj(jY9<>kwoI&sP zY<=utm=pH0VnZ&&WG1)Yio&=ROsMlmVg7;=|A zn+T7o)>b6|u|V+6+ zp0*V*LI@dhr9}lM5QXr@UyoOv55+)MKWyaC?Zw3*;`=@AHlQ=ikDtn9K+g0`bS(P6 ze!cD_0Sy1BOB#5+a((Dsj|-$m0g<&g+4{RyRp(B|;6cv;#~Af>jXzq3d~%ofN%D<; zwA4bb;`z_c1~yMsIxTy^S{eJ4@wmse7*zTJjUrFo?6Ih2*``OeLA$2&bP2ds!+`lp^G|EYdA*I?$Lyq`KbGPRZM zZV#<-E$H0${sqL`{xY#t#RvdWEWA2;CaA<$jadx!#pVK`RkP2xsJC>x>v;&wQF^cdMrp?NB*>qTl!SQk;2gYe9ybSu5&45k5s@HEEVJ~$)_f9nq&)1N7T*Tk%Czv zn<5Bzipwq`CRms^*}PA~3`JwZR(RycR`&o>-m$WbBL4+Cjry_AcQ44;_h>SG3L0c2 zuNLfn0;K?80l8V!J3K^uXx?q-*u6u*(Q5N6-^-sy!cVHF_%K^~`WCZSH@J316!YH9 z3|=>0zt#Cfr5I9XbvLV(9JSZwH8Y>d2)O7#(|fz-d~pymv(SAWeEsogBKy))XJsVd|ANim4BE`xWX^9M+;AtGsZ6phs|EMJoLGIkuv1tkYG+xLCb;bx>hqVe=9U?W7+TG+Ccr?6-m zZ+pHadTtzl>jwxE{ZO2c54h>ConX<5lm8P91s4WF*yUn0188eDLodF5iot6pQi%rJ z$XMh8*Oc$}ty=^EdJu_**E*w+IFhQ;rA-*&!>D34>~TncQ%hl>+QpI z+5uYF%p@8s&=50PFq<2>o7OOOeMy!XcGW4wF)c*g3g+JWf9QJ4u(*D&Z4@o;Zly&_ zaVRb=v_OI4R&0RcUVQK(h2rk+R-m}e;O_1WgBPDci=XN5FVAz{^PVq5t|a?jE7>dA zBzLk_pTU6SR%HxHbyKZRiu9N5q-` zg)JH`$o?iB*EojZ=!}vgD6D8P3dYQBCLQC{3@nN8XfFC3GxE74BOSOU)Op!kf+@F; zInW#_PPb|PO+&Psmy76h6d%?%(?&@E0~X)mZV+;BMl}ExZ+s##fZ{X0Azyz`!29(; z%frt9?+lMIBi`pw_@`^C?w5dG8e6#b7l}F5u=6?K_p)b*;qo+vJWk79^d9u%Iw4Gl z3j*)U&Kr>#)8kpn_7|+>1F*)d%-Y zh4#@%_fnwV8}8Tk!P*0zqpTE#k{F`uZ#iF{?T&_Bs|nxZRvxQ`>5w-hwUxDdK2QX7 z*9?z_d8{>q#eu%C7`jW97@{m)&9j>okK~T|F?hR#;g8KIkn7CrY40>C z_;|z0#Ag25N$C95V6VQdk-Ln?*_U9`Bwdoz_Qlu~%f9r-y`@3H`3tR@43%O96^kqN zN598dABcynZ-axyM91)H!KK-hgcRVlu#VdaLqq?(DW7-So4Epyz%wz5X1b}_)7~1J zl|@&;ZPcdJBGFsH&LYJ9&@r$Y;49#c5xsAgqODl>>EuJ3&>LUygA#F;{j zMtW~?ajs(bys0&{scDVBW0`(~%X#55JB4UdJ}=Ft(t`8c7YF$UdxKUfuec6Ou}#um z+sv#mRAz`&VQ#AJ!cc+f)>PO$k@s!dZ}7kLH;K45m2v)bc=_XLM{iizfl?jRllPc7 zHg@p01yS!n4t1JnWP0Gn6-g&229i?(xFNGV#aM*w2rJ~v!C z;mIzwcB3M!9ODcPvibm#Pu}@oQ>a2agKgZPNoNIL2519_7`>QZlB~y{|_uqd_ z1w=ZMyrg_=e(U01o+2F z1V$9ML#_b&_BqYMaX%Iw1r0ChIGmAgi>U+u(O3y&RN3JPvio^TgTb0k^a3CPtgKlj zmGft^_T8_tWvPtN0;jn>8PwK&tmI|f)FR-O_@TLM`_SzAe!nMLSOCtoy0*r7gHX;+ zZ|gC`N_0weQ=0>W>8zJVb#JnST2i}Er`OxYJZX~-&z$b?y|?%ObmaTZtY%@NH3Kp7 zy&$Hmu1yk0RbGZ)!#~5W)!*zq^{sMyR$i-vgyx$Ys?Q%k``$EEbDuiwW0~Z<+40DV z`AShHAlO$_l_N3s19#i{Bwf%4UT#r_`MN%3(&nzWFU%&oXOr*jlSGcVXgn_+{9s{|?NuBr zB*hKiyL_WS#!CidTec0iA8Bn7q%G&-BL1h}UO7~WjHwf8T5;#iU4=!EBmpV(FaYtc zV=XO>i9>*s`y6oHzI;~LX0u`H8+4o8+1Jjz`OhM$-$#WT&l2XZZWEJ-5Q1?$ej2p! zIgL#3iN)T@(~Hieq_r=kxXVs(IOL)(WQ#mKTI`OdNvX=bwJdx`w)+LdYFV2vaIgtB zaIj5Ryi5rljz}BfU*}Yu3wTwvo47goIXi6;t7w<`kc5@L43_FCN`;Ll5Q1~|6Vv_> zf>Oy?`D8=VK?stx2rp>YgRIqdit%=510rZ)UibHN5w`Sh>X^VN*V>fwUps;}N*emJ zMiI95*iZq-5y7rE%YHE@58!cm91xCvx_d#jPT_P!EJa58vQS8q-}oP|a#+1Nko%2q z0pES?+sxtlQSk5W#A;sNnaZ@|Gm59^jlEWfQ&Z2degX$=t#;Qm-5Ui%02Z(LwYlbv zBy?wQ-+Z(cw`&EQv~19F5~N&iAldX?(5Ur(398g3ip2d*==d#|@iMvDc?~0L)=MpX zhWZ;tC(eL$VCTjFSC{Z4^EV1Kd=!j@04F2>5;rET0Y-lS7c%I@S3==td{-nf!6;zX=I)hg3rD2>!pOrd`4?#`KXN%X;vktTqf+OLX zV)~WmxBw#p-xhl$$VI33?IvckPXcR&td4t>SI6nyadamY@GvWl3)4X<=GM!Y5lzRO z2^K3DgARCNF`jm7Z@Q&Lf#|)jsU{Z#1um?=XIs3&H+?<(UIJgnxLe8<>e21BVsH4g~jUK;isnH;6>n++XEFIIcKMz|Q&)#>5xe2ZK3mPpj zweC(^j*5{BqnuW6>5P!;%>)Hj5S8ChYUu_D{TxH>T#2?rxiX;esW^TIn>R8fYg!Eu znmp39^A6<_LhWobWZ`~|F)oB(8uRoR2NkfaJTNz1)PWz;*nSCWV+P*}3$`tLJElrQ zF+i1u`HUjxhxP0+J#~R2v$5rooixk43qn=SA(G2cb|~`(6z&yPOw4;foMmIavmb9z zWs|@1_6ZQ`{g=3rN2sCBe#LFH1jNnPZwDi=DcZ2P%^Z|wI#}w)_bjiHruylHNGU;8 z^`6W9H;;EB8PgXetxS2Px_F^Kw;u)(@-lvn5dkgZlseN7r5!IFV=wi8o1|#R)x&#@ z`^kXsN0kQ}w_6RQiT0kUO;Q{J7u|vP7Z;8p1=G935>->{+A2D5)S@~6=RkPw(=hec zrtW)^CIV_`Qp!-A(|cU(MmQ>eQ4!tX6ww4lCWU}#)iF!^i^&ElzmxBftE`Slka_qQzsBJ9#v3rR`w;`DD0QfG9iMXD zDf1V^eqZ*MOM{a?4G5($>oaD4)8VGeRD7zyG<)s7xE7?>WF0zGF>+tI3)m(=Ik#y zPQ;0=Paet@B8v@}^d+%vcQ$-HKShp(We>rt0lh9f+hCHqF9hI>r#G*2-{vngyNn_`((8#>76XnF{FP^d@yRY8!g$!&L@4~}xm$-aJ z%?}0hg@adLofJ4+PEj2aZQQ-*qqZYWR4&J@@?2@z^-Y|5rCzXQhY_cx`%TCsV^82I zSS2h$9Pp&SmPc<`BA!4+o8KUQAHfKFmXQ^2Kjan`h_2$aNfeKIAo*~l)SHN1VJUD# zL{Ptroj$Ru&p!ZMe!%ODSg4pE!jO;?Ic z|HX)^VI+|J%Dp4PrJW;;A?Z0@7CeS}g?qS?J)$iC@;RGp@kayWXvhNb7o;cBW` zgbyjS_uH#`ajOi=hEQ+xwLJN!@B!6qYV9oN$c{Kj>I;;dB!46%HFlr_HEI#2g(vs> zs*0eJ?U|CyY@Csu$sbQsD!(poS;q2PyilDcu2x-eV-NWMEgO|ZL@A@V zz_0}+6Wfl%Es`27ckQB?+dY|{3ra?L-&GOw8z~bWTmSWzj|MvC8Euowg2Cec9QychBi3MTaV%z^Q8szaV zv!-x;)>OL)2U05NK@mJAEx`uND#-^lLU!+_{q=u-qwol}sg{taRc`T8zy>^X8)5~* zhh8opD_6|)M^2teLM04H-qL|gS=WA8!lG4W>Ehxnvnf2?n%=Cp^Rbd|B%CpIOl?) z=4vUKA=Ju_pGVnub+L$I)43tyOk zCG@(rp9nzL#cnY@LaPshYm{31fkLfghUoHoo*%IReQBMSlVZD_ZP49xCED|&X$L-7 zZKcN(n5=?&8vf!4P5==N_r#Gn;|Y;SdsoFo;t4i8Go%DY9S4UB z>~^(=9AUXsd_F1lTYWEM(QQqNBfNo5e z_jdw3JE)_F>5;w#0jN2HEjXmyF{>~{K^#_okr`+RYcvcBv$TwVuAWrY$u8d&@rB7* zLIfz*!IU{HCI~92A%KMYMndQpfH>CL)e%0w`Bsl88+pYy`;=Roya_EIDiyYWrsqAo zEBg>|*UIqGbIa5!(Z?a6sd&>-Y0SdLU33o=a4piG{4@P%lu!ZQ84)wR_hOdkDyz?4 zPP2#|rY;Su`kqZoOT8tKoX`53;^PH|>HAlv(6v*_qC*OsMHh4aW3L!q)6f5!uyA1b z+cHC*rl693?hWv5fJcU;*Sli+QXFsO99kPY%9a&QY>Bg4o>{%#$n*RUWpq z@6|7kX{8m3u>CWNU=g?5DL{4y|1{qm8A44L(N@#gRHZSH6>(F$W}kVuEi|76t;PYF zDa>`kR`}2%itHG8CDdg7sE|(Y@M6HN&F@ec^+DWC$Ssw=_^TssK!X9w>7JvnKUuH< z>^bIzE5@njN_eS)4%BHmGjf#uB3%Xr2DqOp|G-QRY-R#8$?Qn~yq zvqCWDB>Kw-70}5$Ra;Zo=ilInBVexo&KA+r;< zCu{x05^#46fX`mkQnlfC(Xo4}d>RN2y3VG03S;+kx)se{n&&3El1JCQ4c!F&x*tOU zmM#T%IN^FQwqip&70#wj{EupuLly z%S9{afXk5dJA3a_GMA7xlY5=qrY{=*QR}dy|KZQc@2lyN?+fU^eoL4^VJCM}U5!NT zD~vmr5C?xTJ%48%g<=4SqsDfZSf#w@@k7QhV9LG4nQW1|Q!=;ZK|D6U3H26S)-t^33TrZ_mk zoADm&W1sF6CB3uGn$t|9%f zIxiY{*@&7+Or*VnTT42@lUf?!X?`fy!y9~dVB85pWu5kgx1N%=o*J;O(X1qM?zx96 zk9P!Ys=HQR3mPrzJR%jq3KSxk1e)W`Z(tbeI;CSp%M&@ z`*Y?E&N;jnc2)eY1oPvU@B4Z9^eou{k&MUE5=Wj`&YO=iHSXy|1V|{B^^m?r?eoXwD|H z!&Hr_H$!yj;QJ%nP;_MLifti~BJeh*6gb!K1&-w%J@Va)$)n-U2rUA|$)8N5%+YK{ z85l;BTxHZKb#Og-gCcAVc}Jf3TCKq5!g@^YAHEhwLrX`l!qQU}CvbttKD8KdyOQ(bB)2mvLX@^t@7vAQ8dF#xbLQ4pz61f}wSic<{Gfc{la z5rM1$MN}Sd2afPJ#SMpX6Vd*~b>5uvO$Js2)cG6Z)VXzx7=-`PuD9Th15RE|T-UD! zS45Nh+lEY_YYsDlyaBTQ!{hvA1piGB{$&LJP2K#9bTnMtdYJwDS+HO4V?Vu5#&&(S#L%%`kmz^Om+rP#qV|YY337A%^UkB zv(G74wF0_x;rpE4A(LzUTeT{J+b zsIoGgsh)ME6YOTDG=uH@;cxZmmk{?y?HPwU`@M4yHuSoQnW6moSe)vL4d&_`8=MA= zfw55c6>Y(Wz?*`m@$5LR>?{Aj99BCs1Z?(rC7847B1tcDW*6~sUjIr-FB`aEKJ;iQ z@8M@wUun>I^My8aUL?6iaX*$2L7ADl2`uhjf-9JNXY1!OS{We)+QlpZz=__T#}L+* z%7*J1mudXUI<`x>CU1l{4S4j_KwHWMxWYPl)kfJvTDwglW35H@1;lg7MmW>9F^Ir? z_c7QoP}MVI%K3UC(SO?@xF9 zu24Y|p^+anc_Ssp* z$Jo~9lIYPs_mcOZS){V}AOsBwN7w8HwG7au=pHCCE>Yin^mzu3!B zsC=X3ava)r&bea%e-^R3Jq;nK16#jHigfZ(7o$@#W{@{Gf?( ze238%4S($?efQ0!wKx2RcrFuHy1xrjsu5zxAHjtcFT^I&l9pvwQKLut1bAD)A2c5l zq&&P>TvEoBo472y#wqj)TLpMI?jql$-WuZZBiilnbo}Ay$WGxdMQK<`?<1(oN2}d7 z{kC!;?bN?YGZn zHTR<^wN*PU`^q=glLxiFjNG7s}8Y;ilvk(;j$jvR+ zm9qF@aQXh^LvlT0??|Z2XcSJK!xirl*KPS1@9?ECeV{ z|4h&prrp<|vsn2p>lDecy7R93f&~jD;fAb@7{lUdeBfexvGd8Ur*jk@pG?FF^JCdw z-)}nooP5sn;QSrk=u3Hk!e`LT} zBw+gfbLueZKE}~n+GwxN!9#)13E7=+)PhRPr|46TIBCfyVs4T%N&0J&%5d9i-;qe) z{w*_!bmdP^%93U!^XIc!oz;U$!aOmno)cV%)zl%XquB=>kiU5L{cUFKnodjE_d6*V z83hAOHshnakHnvFb%PKWkWiughD*mA&ikUdiHN_cI0zKfMDHt-%|S^P(=RRb(C+6tv6TiL=p>fCx>| ziSy473B0 z7Rm~$}QeRp^hyJA$kU3 zt-!(vYJUDCne=pKe+H+1S+TS#ja5?J(J9s;GqdWGk{jgG^bGWt#b`$s+wAsRtfrUX z>#xHYSfD;13y1GaKiLbfPbJcP5^qhje(sR_``mt;S+LZ=({#*s!x9ztuFcSn5kqPevp+UxOX0_b~O$<#UWA}-qlRM(pM*Xl^s|mXF2dm=7|0VKB)Y8@2 z{+9P{mQw~@`Q}AH3Y-4N&ja1pQ@D8R_IiF}pytq-1xKhMP06_1GrG(+0q9y5hZ^jJ zytYeRLo=9KG6iw!KYUVj7QIufl^(GNZOGuG$mZ<7dD(IdT8TKHN|54q^q)Y5M8$Ok z{k#TFcD1y-o+vm}DfzTtdj&^Eb32Ob{)mXM`jaB5KY6=Jb-HR}BOsRXi;Jjz=4P*L zrMmh&H^keC<<84rtV-Z**i)4&lLrb{ue7Erc9O;#-0NKkX!McB|)dRmh>M08*qd6A6vsT`bII146?#Q z7|T}#VRw%N2>xqdf9<840{YzriF*#tYsSU>Y1_;IE<7nI=K_urc(Mwfe7z1)mj48GH7yL+c3UuH+sBL^E8?nR_w|* zg9UIXYO6RFrVtPmjXyNJkta6$_X8eK!*T(`Hg{P=6+)0#PnG6{B6jF9;Y8bsijYQy zxPPeWwvxzw-0XN_O0}4>A=VEEV6pWx`{nC}65su#94f6w`|C`^Nc(4yWY_2?Du`RE z1$*9>Y1wL}0U(F1OjKTHKhk%ceJ>dHx~=%WI+rX680uho>)7et;ZLL`GY@jY+~f7D zbTu1Ig{aBGw5$gQ=qABAl%hYaUxja={tNk0vzSHRo7ExFK&bt(F<4Itvw9_~@pV!- zI1%V?)nH7q4Vofaa%gzn$QX&zO6`&mujkmR`QCmnu!#fw{K7m(a;}`pfj^b~m!>2V zw~>xOSp)mMDxccA?Xr8_bNf6-ou2Q*P8iL`zF@Ci-Ne^+s!MNE-2Q14L>;zF)>F#f z^<`LFtAmrfo@~MXmLra~s{D=EoA>He>JZ!DaN%u`N*CK?|^l);GP$iCY)! zbJpe7!XY1T4s9Fvrfl70)P~(R4PFHn3;YpW<#v0E9}0)SeAb&7V9!&yLq^FCLbim+ zik5W0D~i6bu@M4zy<{>&UYf{g=TwmdH|d8weqM){nG0 zh$*R&8Y-7-S7`IVsk&>uJ}2!IT*MCHQd&(L=z3hBkudkX8FNomD}627qODPY@FDa% zd^Yi-naxoU?6p?KlK!Rv`+?^xv%Jmx5mPVK$aepf(l0^I?=5UAZjWd%1=(LQ*;OMf z>xNwhJzpcW)mFFK3jZM6j$C{c;HTCjt$^oxU%*^F9UWsZ{@UyHt$vC^3Xl8#>n?Vk zPa0@nmZlVy`Z7_U zpX8!8cO@6Wi$lR2FugC*Sys6j%r%!M^m_ZjZ{M~ukCK0o=S#?)vR{kTm-C&jP+_Cw zIZ#XqYAk*gG4y=P4>hf)-cm*x*HQkNFZb&!xLnYO0NdXTG%^%!GOAW`MaFg-W<3XX zL3Xy8xuIf=sx`_ShP75&x^b29b~quudUZPbGgf4wTbke9*{6I7gU0fIz7kyPE(;{4 z)hJ`4L6Pv$Ag0DXT%1%aK3X!-YSo?YWgi0`Hl#cAJ#g5bn#E4>Cj{qnpp9$(A?fmd zNoQ*<>q7S>g|(+UZEXg_O>5mTTav+pG}xK3Mz1EOSoTecy7u?pAY!a-#4tHc`j%o# zvJ=sdjd0%FIQ_MIF7lIf{iulSw<1*o4{K=-0bq4Gt7c)r?~nvL>%*>6YL9%{fG<@q zne?o^0tae44L>SR<`p=1RB5ebxM zA#%0nq9?~d-7yZnXyLq#K&Y6wYx%JYVYa15*-2Y#{@LG;Hx=}u^O5TDm2TPy+1vQ$ zW)mnKAs#O9CVlT_&K8CH)K$IG+F(BSr}cnDH;I`SpbrfpP!ajGC$tOK*xi3?DWVw( zku#$qBVT^DfDTDta^h%oPJ@DjlmEgi!z6XhtB(*N5=u5v5HqGXPHi;Rj=Lw~GzSb{ z5EyYYx{949`GP4aI|>_NM#uCp?5sWJ8yMoG1q`17D72@czqB-_5hhnI}A|N zxIcyaec0dXbiF0iwcqy#IOY(ax6T!k2Yzu}nEUYW`-5~-#1whTw(@wr?uT*u+YbpM zEttCcR|b{i)3*g}(dh46$dC+7NXO&tTkk#km0r(&r{bWdOo1s@KcJy8oqx-RZ}UGc2JCmQvp*U z)R(kVQQeJmK9%=V*WK5ykux7R&J-*2A`|}#(&{Q|Qqb%x;8RLGSg9vLAZp^gH%Lc8 zT(fUvuCroWU$@NkSB1<%#lA>H;`2gikt~9^jHh=M6fCl?A7G^evFZAyLOIV3+>|CW z6l%#Fz9)G}ILJj*>9FlmIC#uG%UxJC*h&rnuYYM=y}Tu;l1vNoq;`Dj%p z&#GU7-&YL}zrOUgzakIN8MMI>IyQ8`2H22-M%b6$+?kp7!xHcTMoH^keQ+`}bA+h-RkHVF{$_b|aw~ca6dqlx(8yB6xj-Wet!zbG z6t|8Pjwa`Yi-5LYmI?qIB?-8q?H@TiCrwPAp^H`wD0V4E1$yW*$NaRnQkb!GRN(=# z5*bf7+j8239i>Bc%7Nx^Z0#1q=+;p@S5Hoi*4I2697&=CS8O#t(TTIT=tL=dafGs7 zO$W#h^;eSd4~D0IYGq8DrNt^_N!>PCa)CzEQ zvzQ}=%c$=1zxtYzwV?8EMKHW*PDd{*XhCA@UXLr2!dP7jnQaMqgG}#O!sZiZSTqPx zrW$7&q+!YrjIN&4LBmERl>_tuAT4=4qmQN}Dk}E&Sz)0u$rl5{Vewz%d@#m{td486 zqu>3An3fOKVWp&|xtir#LAkcr8e>RD-IP(mll_$$z@@EnCbWu)0Ib*2-<$pj*j>H* zl#Vh;lRIXq`sY{B!nit2y#TS|94ff`$*JpN*AR4FWMtn5ZTKYpi#Q{!%@P|kS-7w( z($?56FgZ%0v+YHR1XQ>DAe9$&MwT(|RY+1bgnkF6OFYctg%ns-T2F8S_>NW;EMJyO z{fDFK#bZzO4-2s=d@$;_tZHdaa@4{|apt*lr>)Ls?r7m3Ww!jcnxubMEFI=at(xkL zW3#aX@eJvlpH-+(=4Y%KUgZX7OY4!luC7>iCr^qW*`rlw1g21ZNHC~6TzLo zL-K~yBe&koMPan@do_E~GV^cs5V2t*8%d<)jq(1r{t8F=s>X(QV;fumLzxD*N`AO9 zAxx&YbjkevJt!+yPC-)uE1aHe$W^Z#Tlc3ts$@xoT!|SR_NB>TffQLH}nID}MIxXkcCu zl3@AU|L;2Qq6mz9E|+xX@9$YBYdrVp{U7kvdIi9`gq(YGbG9jgP+9IxrbG_rt?}2W zY^v4@%FWG*!`KAwmcm%TC6BSHvhGi%qyqPVUn@3UpBq3Sn$-B0fh2NYTMEUfCfj8X z1Z1rUL@w(Dk3u@DAG>5UUOk(9cp%-s7|yUZAL{re{6e}LnW*O_F^~}doRKBoDddjw;0t1WdgBV@dTu9T@fJ-6%lHF_)|KrRKMj zV;10EuRs0(8?a0b#?`Qu=mz9#eE4mO0vKUJLj$d&EY=bkFARJI_Jqzo?b?m4=n>lE z_&*bn@FcNbjun#y%$vq@GK4_nXcHsN;`RvF2z_b;leDMG4-+JW>6tqd#(7jI$kX|7 zRl>34;kd*(hsZQeal{zbEa9o{<)?&j=$X1RcH(%@2XK3Cp_HNGlB4ypcpsr=PJD)EyJi~S(YrKn_6}%2$9PL>KSIB4aH$xme0aTD2xpifWd^3GN z&iWGpCpvz*IfVmnE|X{zO(p*NgN>^hAlndC?d4dBD6Yu~LA1wI>&WHMD9=`B!zbpn zL5jR4X14{=-Bl5bwHqZ|m#a5hz?nX?e5&I2)W1(%eFO2uxs+JqG6tX*t&CzjWfhBkNVXHSi=j!?mZ25u z;rW4V`;%-xW0tnm6_l+?Zk@KtBOYkpcVmhBSmIV_y+}{u)H9?5PEViE^qxkVk}u{8 z13KfZG~@-CcOA*T7J%sCfoy=4c8*>R8=p6>0!5MihDqTgk-R-p1iPMYY>ZovjZZ(| zaB1-~E%fU#sa<6jo8L3efIs1PXLTx1C%Auh3s@{d-rHV3=OsHm7VaD+EB|N6n1JPe za#{~l0xH87_^_lD(kt@A z$!i?)P{7%Yc6l9kjtJva#)nH(GRivz9HaXOWA>D*w@ z;u-g{65Y!Uz>B5Dy*6*C%le+D9-3IL;p$A@bU#>jCxj+RqCmyE!;YVdEuM zjx)?*CD;4SS{*v1AZll5ylw4RD4Pg&a!(xiL}}9uJ5Dk3y^m2gLGuH-KQX^-m7p?X z;gM&OGv~WLC7m7EYD}}iBG!5HVKUfxG~qkCI?@+f^(rrLL7%#kke?RKocsBJk1`_2 zG8flstzl&Z$bj!4fU-yR?t8EWEPE>L@U&-YgmUl!tnnti=b$WxJ5QJ9Ro`^D#H<3oNvjlmmwg z39c=r!}5xci9H6DK1tyD-qz&aA9=P%;eD3)eODc^(m!gkB=DQJ&u%lNuC`;f<5yK=d-NtBLT%)-dSt1iZ*(8j*Ytp06@16k;2)J{Ao5Uxo*aY%_ z5`(U5@LF|dB=n)jb{s16-tBdDH_)K#3VT!tpTI!%PQvPEK0;{w=cBH>S4ckMsN&RtC`QeLJ64ff=Oeh=Nl3~y!Z8Z8Z-=w1nDk-v zzsk)ft}h$+qf?lUVN0$0c>+yH#zLZ4mHJD#e+ra{rXu8JBox{VFv$sXT+YmyHsqQ)2W9Gx6)SxRbh5fPMUyBks zqGaIS>vg-%~G1$}cH4akNupN}Crg)*ds* z_Ce1LV1jKl7U%lPl2HS90znHR30s2WHt)zuUxgdSg3aQ-bwHxkNHZd&GfQzcTGU`p z97KeH2HOUPG~Z+6rfuZ8GOsF`7wD6OTyC5b@6+Lie*RfaaMO33Kefl_?BuQ0W{%8A z^Al^`W=Tde!dxY*Dc5_fg=SHka5}#lH}T}vfF{E0Y)@Zr4LLtAjX~y~dR50fyHIp! z50yeLs=(v&Q}{K(>S2W`OsFsT8W_6k2Sw!pL~Rh*hAUbqDP(E3Iu#$xqw;N0x>& zwWmr(A!XZjZmBxpO3vIf{d!7Dxr2DQz?a76&y0s(Xjj`YvEZxkp-_nz(6u#J@8w(! zDo|mjA1vpu|G@i3eAZ-sAjF@<*NI7u~^syuxA}?UaX=`QXJ-E28Bz zI`hdNxFVxPGG{+^th}Q^_Ba3sZ89rrV|ByHJpi;=FOXUmGY8XDi?un8_EfIo1c+9P zXpq<)1CUcQ9S1Ur%z3mMMK8$)iR2UMgI~TDVip8p+oC17`Oy|46^-=FW8r$1AcBfG za$&X8K49Z$_cPXX8wH9>YFQWQ?+kuC_D&-CNsRN+ERR~EAdMGz9-Z?7kTNG2xw7wx z84#LSH~Hq(nB}Y%z2hw|*0yxgfyNy=B*zFD7h?Y(J3~G_DPEa*CNT(QKHqpsr+NEG z8+bitEGhOzCscEYOuISJsPm(V-sgi`X@e+`;9K-(zN0S#O|xZ3F*3sMCY3k7m_YM5 zs&@jOzO}hmpQx0ybi|o_nIT=asru1%`KFLvww=}-TBId*$k6A0uQsFY#vbgj`D4Uh zExKlM`Y=T)nIaZ%RCzu58ZWrV&M2oRfg`;8LJ2j{ zHAZIms5+dY(SR0?j(=qL(3p z1EG+q!p?OuaZrP*$NFZ!)2jFfe?F6+Iy;gKxQ=q9!UQ%Mc0VhE5rUqskH=Hgun|Fo z43(Oi@VvI!?JT437go}$H?m4j?^m9IuMSJ#K%;wNrR%rf7Fb>*znV8u7qsNFY1tN1 z*1rkmtJj*Q)eM&cKToNn{PDsgO!I>80W2(odMMZyvNY{8-;=RWd%f+&5C$L`JmVuc zMc8FKy-^~hKooe)r8IYGzoqL_(&!1qq4Yj-JsjMwa-7ps2r4WsWy zm2)|voJkvDQk$KpmPwXf9i_YFxe1GV&S&$vTEZn=(xy2)K=1cu15{;UWrP7A}ifJvFJ@&8Ofk>2tPfCnCZr5%S6@5 zXS%h-4zD=Rgr_z~vjEJZdM-&(`2NJvc|_n>XsQOr0pA~^zq~W?W4ZOKFGj3LPg0bx zUbDqsL`DDC9OXf684iv#7f7rSNCKY5o9egzVM5(Mm<$0oy{{H!&=b5Jvx zF_p=mT21}=J9fK>gIjzo?1mN5lP@^%JIqbwBH+NCalKuQE5P^w(M>q1!-vk)%m{HF z`(5v&a{Jyvx$Q*i9xB&h09&K}EC;cP3m*Tfq)c^(M6UC^SkNyuWX6&aTZ7VA)h}vq z2f=~@E=CR(cH3p3*0`M+WW%)rz6nj|D>XnqMdoEx|GjRc4A@DTE$(VvxQ z7xXhZ5Sxyr61&rr^R=b$iDqcgGwsU4`_h5O2s)8ZCv zuFj%id={H^R5%-3v!*$!tNM~SuWnHyhefMsTovW_9u&Ocz_90AG23fvYeweMB7Thf zt*ij-^cbnR&I}Z9eb-Da-;r?@|Hl`nmj{6JuKKuBjdfk(CDEM@rVo`cm1S zuW9LZoRYqIJn&LZa!*@lo$iU@jg<4Cz9iDVR4o#8<>z%^Vf=99`$M&k`qpv`96W{k zvvTH>mC6)5yS6f*=7GNJu1oPxLD4T{NDdb8>AL#PTIlx#B}nKbEB#lt0E~KN?&PH2 z;TM@4#ZETi`DF$ch2v(tS=FlAK!kgTx;>4JfK^!St8z{Y6a1qIPjM+B_8Xogiq|U( z4F-zez|7mPxX^-=T#=Inrog<9I^)$;IkfEM57{1)$$LYQh*hEcL;+2swSkicsaWM+ zq{<{`0q{zh&^R^#UjFenZC6ZBwr&kAMrfFQZhnqkl-=JHIop3!rK1L{73 zaq&gMo+5lfv6*4Y)o={)x350L+H~}(4_mu@Nc8mG zxzSAB8+@KIo{srG)Ye>1%2kJA>{#y1iXlcQ8`x8kg@trb*m*7fy~p0lcEni21-IoJ z?&F7b-od8scbkVx=6OIM5oi~bB$@;Dei`j%!RP4** z)=P@Od_#y&s& zvpZd>H~X@gy!2bDf0nHXFyIkTQd63DAi+Lq5HB$w>&bC$6a?1{=e!yzCp^;LJfc?T zMm09$zo_NCV=5QzOev^o^Psfam8^dSZycM8!x`n?5m`GpNL3id*+SEDtI8oc4ik31 zvi{VEgWlS*el8?G*|dpu^pU(D^G7Dh_s6;5>8zVxwEu^&w+@P{X&Of%Sa1^DB}j0$ zV8NZ>F2UVxahKq(0fGl7xGe5Ya9tL6Slq*J^E~hOepjmQt^H%G&YWqRp6)p_)7|w3 z^1fMf;Lm{t+o;EX%?-EQGkga{x8zi8`Thlvo4IH)g2&e46^swA6v|AGJCCM&t-wN6L3Jpk3xPI zuw6Vfll{%Xi=fs zl2LS)O?tBoY{3;-jQH(Vnv&<0qWyGf#s?xKr4$76o2pAp;kmph7|mR_0(ab~cdLBU z`_rGk-zFQhS(&Tkl2Uo{Ck`bT^YA&%y)<76s;ieySXhZ)7m3Fgw*W>AT$qRNWTk&G z<91JH;IuTKDD=8$cHu97hov_+> zIe^uTwf&*8)3#}C#p1z_GVsGqur0yQYAG3|LhkOTi-pS#x}CE^P9)IY#BRFE*U(Hi zO&q$+mPd>`tyFQElTd}QV+?@JD0R>z3&+wkJn&9)W4&TFS6nn=;VE z9d^>aapBhWPcg%gO%eJs?Mx`%yG{omj_S4Q;7V~k{WdHt674h-wk^wy}zD?tpLc0+$f47JmcgQ z>0^Z-T=;60?|o)wi_ARHNqvV97u+N91-ba6!L)h3U~e)#>+NCLP4?yH;uJ5f7Q7PRN<$tOFkDVYeDdSAztoellyq@H$sm8Q+zjMZud+I( z6K5b%EHYDkYUAOO#i3_pl!P5=wlX29#Mlcz!^TEI=mH$Z4B+D7QAx_MDv(?gu;gzs z6_;_LHy3c9S#6Asso>O}<|G1aFmT0Wx-XTSf>ce;G1#?xBo!ER{J^F)kFPUddt520{ zXV3s%39ySAn2e>-gi>$z%{ig#-Dbq%7Q@7))k-Ol1QrMK#?++fdKSpYP${VgyVzS;B*6Ki4tp7ZUW*_VN3k!fd2QTmDRqMev2GDEaQXa?k$}a^8GhU zUwcEgT-Oj}?nB_&U+pa_kwG!OeyfnOyvi~Csk|RuVAK)~^hbOGDdVAbj7cW<*qPt)|MJlUrt}_~e#NSNkLj{;YC$u|VpJ7)e;^XX0z?GPp*Rvz!>w^SLcF zJ~DJ|e+hO}-Th7a;BE(!?hjWSdaJCIMuyMh709zigZs<9Q@cq#%SFaE|tF zO<)Z(rB?Xdl1oY{OuzJ|F*ld(4sCEQ{T3095eK_9!!>H8Cuy1)Y=fiakprcIKaD?a zUTjfOf0(FnN@AmV;SA%kVuMfD1=}m40xcCbrk`?3KvQ2X9OS;i553NF`aUtRl|TeU zQg#OibSKj$%@}bPe+DrIk!>y3Ywn>U0C$-V-TN2M0$b9Rd$P5qIq!WeQ*!9qoq7^o z;o?UDGfrgvmiJSuDo$q#qQhMt*Y?wdOh`N2{<_9w1E=H{n!}-Zl`=Hj)2f}Hb9kke z39{cH^7Ch7I|;cJpFSJo6!H2de&@XEv?aqCYe6}HV2fl<*4F!3JG@xQT5w8Et}Jdl zi6b5K)xh`{g+lM{RH($V&jz|BW+mn(t16QAk?H*kpd1F7i_bOI=m+_4W22(k#HKOY zo6+NUk9^IZT8KuFyt%vX(UX1Gw-_zC^p9*)1(l}o(N1ERK;>CQIY$@TArfoE#& z-?`jP-K$x6fT@g%`1!5^A4omixvQb>7lw~Fi)YrBLaZUShQlD^*&!X%k8+DBF%K+8 z-Zmlq#dYC28r|8<$%=Hh3#5^dE%IeqZ3Ka4Zoy2_Ug? zPpPslB+idMg0yGF#W==CHZDFNEZ;4_Bb?RkT@B863q3?~{b+67#o$r!8SiVix$n2 zYf%P1nQvC^Op`EK6756kHXifcGz-@76_#l8k%`ZhzaD75zo`zbgHL#L_*}vV3{ZRbIa7BS9Cp4RO z+V%O{F`|7wr3>1prd;HKAFucvGnG>`boU#X_+6 zpTfjufegCIH)@kGvY_QNHTgwXn!t3L_t7QK<9f2N=NP$_f8t6Ks9Ll6aRGVgfTs#c z!BT#|&4@{rAKl*#eqp|>EsX2bhX2BRL}EkC78j`099@2Q_lATc*wLehBR0cgEIUJ8 zL^(xT?bA`z+0ypDvfWX z_~6+7)_@O7Cqk?j*wQVk$Ef=Z+~@@|#xzv&O|_MQ&AD1RE#LSi079u-<|J3`Z3#cS zlm9sQy6u2Eu^xlsTPzGz-pIth27r~T?G~%IMMIw zm_?hIw<3)v3#{*5E++4;i_*u-vi24b4)k=9U%N7D`7|}<!cr^<+BYzi?dcyXP-Kf?qys9&A3 zg@QVioC05jRtC%#dq}Xruk`vCJCp(ggd5%r(w|vOl9E*Ht zNH={a?|i4upZyu1NzjL56vM*1B4jVSj&>La13$hxlu$-J)Rv2Oo);HX$PncaWX^NZ=#ZXEZ5=tXpG0`L;87kgUP)#p`CFvAXe; zCNOMZP*}#EdZJD@jLxIP*b-Hl8rv*f|z<`*L8Q&!ke@@LkEW4vtgc4Kt%cAX5kI z_-$^n#`!YmLF)n@^Fm-lr<_EoV>Q;7@!)He!S1G-Qk?TXmV7dEoftoueQ7^&ihg79 zY-FqkL#z+CG1^#f#zOKqIHke%Myo8!Gy?gt28%v8#JlMNYG1q6-*b6x7Z^R|Z)8$j zrfb&mE)Dn9<--Tr8s@##^+R=QK-Vp)yzB1aF_LC%w~l=8b6=7o;8uukU;5y}HZxv- z5Z46Koj0y?*mXR42^VHe!r{M}s7uQ;ez`6#U zM~WyBoW28IzNM`I*!M>0gcB#!o-!62aS$X;Hhq=Lp|7NkH5a~4hV-nM!J%ZebfLd6 z!KAiUiFvu$$htalKi7jle(Mb3Hk!}f{N3p1rtTG6Hu?JbmnG~ZDOw7eJB%v3XrNMO z8ZR&?LNaA()@?(N{>?Ho=I_bsd6i2wx5Mg{;hG=kKjP$w^O+7KcdJu2q!zU;BRoE6 z+=0KZ-9~48&j{otKBf0Wvg@^D+3!l4fS=(;4$**=gEe}dsuq~(#2tx+!@yOAtGCm3 zzrI>*71M;*yAhuvW3qY6FCJwK8JVaun%#=*Kfq{ZLoRuqz`i0my;|M2;e@}v`iU9> z*pWgOd;_wdkAL863-vh@!JkJpnrV1=v)3aJ3J24QuZqdFa%)LIww4>v*K!R%Sm`_9 z7dihLWtx1eeVG%o-bk)4JDT6zMQfs(w4L_V-?Da8hc;HOEQDKe{ zQ|zFZ&+Rbsc_@aj5-xqE0o#o1bGNOpp0^+Q`PH(!A|PTG;e`Jk^Ik<0gqfYsQn?K- zMq|{pc|TYp){=7w5#*WYzegSb19&N&0yw|bfN+r=-`x2g(>OB86;$DffCQoj{OL>>%uGqh6rS+Ujp zq3>ndj6?WtG2AKIwuQpFRAOhYI#5iQPuL@%0?XR83%mQfX90VfU#OC?_hGmcX#)|rP?|VaN)6W6{a`TRF@l=G6&7iv zphH7l#84wPMN$6l%ZnGonI(L(CZYMbuI?US1@8|&enzIZ*2CpHajJ->K{V+f0{B8K z5aGK*PqL?h>>pm2j+PtGiVr{j8U$H5$1cGfKdX^O>CRC$j&xe#6wB)#vD&UGxDGfi zmwvZgb1x(;4!jmZ{AfcKuc~?t@7JWn-o}}0G$+cRKd|x@+)EyUNvDo_WX}dQSheho zM|o;hX;Xz*+%I*51I*9U*AD(5miyf7M;_7Wa#IV8{0>eC0pbM8`oC{MQAhGZF=Tf1 zs$J0bN`Lh4>lRfsGMJ0LS)3D#cCzSIUie*MPay<1h84)0@*Qc~U9>$hhU_$A)#3zI z?Lt$GQYdnnhD+Q8iDc;B!Eu;1rE-9T)G_$oPuaZNm*Bf`H5icqbdXn8nw&ZY13&|k z%LQq28wp5>EqwnCS@ zK}+dqapANL5(o&*YDvMiVya2TwRl_m7VwJ+6ShX6iQPV@99pD359UvevgOLsPej&g zU*lnXzNzhTvYqeT4pXXwxurKWr4Lo**Jg@95-}{j)(($rmYX(GTV_Czbj>aCe87Mi z?N~1JlT{4Oh0;KN#SKm&#TjsV)Ru$ zR`{>kc-oPj%Xj%9E%o4LYl5#us;?iZq&T;+Q;PCY z3$d|g23ZOPW8q;~!YOv_tq&JO&pbykzK3ZAEy8AhQGWx>h*U4C;UKH$5?~C{|B*}c z*1Z&uuLz&X;_W(l_QK|(k!_Hx6%lm-W;UyUCyyCp3 zq(>@E1jDgvHTIY~3RVwdE1?!nQP5w%LmV7iT~ zmaR{Q`zs`TspBh5Mn>;l85x>5OLIAs@CGly2=F|_+EW7!W!T!bObtOX#0Ao!0|zOW zPX$xK0~})-#c8eGIl^3I+7WkKe7QxMqu<_6X7mUwtgXbfj^4oB+B~JOxnE6+>nqlD zW=!GZLJB-c<(Y%++f0~niUmW-1FJg->AkRMx@^N zF-Tf(nGaguXKTbs`t1khLr){YrTPz2lDWlwc7w#h{wEn_7;wj2-hOa>T;R^Q7ac1` z|FUBKkZsi)19e9|M^JRqZ(5*UQsGFNWpSZ)yx8?U&iQh)Kl)T>xT;nKi8|C23t5Bh z9g=1dzRN*wOZU^!7|hfQmj5L+wkF zKV23NC42KTn}09=xxYG}8up}XSATB$q1$RmW2~&mF5Dx` zbG^KLoN?w(x?}K`AuDmcv#LA_e#~gSeqKr18Ue{ZG%impsX=bGucO<6ZUv`+n9N0z zfIh|%0a(LCKfK&bsFPmhLU&{sH+f;s# z4yI{uO1vJ^^0XPHQh8+IEU>hheF>N``DTlrE}lSy+*(4Om@QR8#E`aI{ZaY=vbD?T zLG1t!KmgRE0l6DPKgVv!LRN?v8B=jsiJk~jdvpq$J8;}T1NqiSl>(WR88+Nsa)tEz zU|m)hc~h{|?S;|gqMxasxj~BWhn)S<--I38+S@rZ!zXZUC}&UzFcjasr*!e)%QI9Gw* zR=3~VJWAV>jajGIXN!_LXxb)M#lS^0ut7rt*A$sIRd>6^@zsX(T6M94!ezsfiaqYy zVU|pwLX_wBBO*5r3Ovv#K4)j)3xa_RI_TCx^{&{vxBtExqkjvl4(&RWIhWGbmd+Z( zdRRJn>{m#6c~A(u2tKggrh+>@tk1al*2`1r5Bnd1>gpmncRW3$Q~FGAr)zDe(5NpG zH$5l0uL=}AwkJ_25EN{%;#57JA>cXDwgm2c^z?xM2&^uS89%j3{9v+g_Qni3I;KT? z&PxF9ZZNBreSX~@!PA-@oaNl9+uOBxZUOZ;hFhP2uyG>;@eE2&^D=W@Q zSj9(RRYYXWaXt%$1AOx-vBWlgE{&fMBG#62i+(&AYH+R2+N1(ob9!dqkKi~jwmvoB z1$vqo{TVqLR(CupxDt$C#tI8TL@J949dz&$x8X`rMHvZ(2ZSL*O7>;py&gU+Dxetp zEvohaw^=I#_KLsf*-7k5&9&L{~D<7BjPy|uM002j;gdqZZZku2;@R(1=_z*QAr7+bmui}){X%on#z2!W&;2@{C-O3pLQeG0LN zj$Lnne}A%ebl-a*($$$b|Hy%cU?}>X?j6}mB3Bs}#sAy|@DaQjTYHxQ2NYkibI^-^ zF`}C)fu7YioN~AzPZL_2J_3s2nyrS|kjy#{tqFnO>NbzsYiNwP8g))bU)FCbk7bHh z5O-}8-%&evGr|H0TRCA3jo$zdy_1Nj{tR>1O99)eX<*Lfr%WLZgUwwdFNdh~)zq|lj6XqOkPCUhj+hGoyLd`AFh}LP_lyD%{SA0mheKrP=s|(eB zboRR|=L}-$q&Dh5ino~jG5_j6{L$b7?D-EOzBuN8AMW-~c-9k`uy+8J3 z#v5v_=EjS54LZtBUcW~+7{9`No;R@uw|rGEKP z+IDHle&|Omuj`b-kK76JRtr_gQG424S$LIv+AGtLGDNPJ`R9W-iWZiq+vkeV`ERO$ zp7CoU`9^Ll(komHCZoQ0AATW81>qm|prRAMPf3!zPBl?KQpn+Z2garC&aU3~pH|(B z*Z0{HSd4*X#S!)8OF;p8OnahX+Ww^zqkfb-fS)4$;s`&-CDD9gKsf*yRlstKDc-%h z>Z)@5=|J3nM)2KcFn;SMbH6qAKR{deRj?$WK%vF}8yM6|ZTyq*<9dqNVpasKV`8!< z&(C91%;9;nN6A8oa#%lXwY~Pm2?96}s$Z#hrSoDz5Nc$M9Bqz^(=gsnAijwwtv~+1 zv|1t$_d*pII*rglDb)^0b!ov$aM{`kd|-R3Fm#}#^v{|5--Om5LAAdY*dPVbes#y6 zZ87`1_||AXp(h-pUlx7*{+_t&KicBTjK%=|hsbz(3`ZNSY`7%>_Ueg)PgS~AgSLuA z5y9jaN!edCuGT9o&IsRtqD!Z{y_Rq0B;9sVe#WZ2To3~>u`_N$$6u`;dL`cg z<1s*P`pzxKO(9H$w1um?QuRy#5$hi|!0(dc*Kn^-PF3Y5wRLg}Q5@QjU!m^L=zE z6oi}G;p%-P3YbA~Y9tSQ3eSBD_@-7Q_CG|~9wq++=si&L3#u6|7vcJuiqshlU$ZQW zjZE85^1XJwZE%P6u>Y5`?p5)gXno4^01WW1hCR50^S?kU1pcK43y49C$htSzf&m;K z=C;fJ$+N5vHb^Dl1WqhFq5)V7JST^%Exk7@(Pf22aCe=<5~ik*&H)QScdGtpvyLv@ znFz=eu%M2sS{=1f>ugeBG@jgu6m&F+kPSWc1fX$aztJ&|d*o?cl2{q|H)H}m@5X;n zKApA)M(LU_YBIvIVz`!}v0``{2>vz#deVyIpo5tKxBL9ZT2B9gJzp`BFT=oZKO54# zkY=}&1yd6QZiE9w^ko%tDc_k$S5wYSyD<(FaHhY%T4%Hfk9otI)MINe`JUhE3SE`Z zaD&1{=K*YfIlBx4(!k{#pV+tJK!s!>0FQaQ^G1u+Dy%DZ8Wb@>qeo^R7U2Q0@HIoL z$dWMiCn`jUtO73RA@~-`0dTMfye*>(Y~ZOQgRI|Ois(F zFSplJeClvoksh*P;!dHX5UB#F^S#JMOr{;dfTXc*+d#$gXXA9%tw{8Nb)y&oDjRwI zvYm#!(QZS(qr}tsp}kBkljSY}`MY+CSb59$kfvs1NLzb@v~@jpmQK2ijg4HRm7Tju z=aXniH|q3hJ~%9dTZR`blU^>WB>f`H0vF>%282_R~3n>I`5a$ws@C(z0)cYImlrry}XEgqlwogm3F$&P@?(<_-tI zl1ksIj1y>U8slQ2z6~osj zWAMY+`*`1b#xB*s7n|*~VlAru7++-&jS8~amiQ1Nnw!j{i=SiLE3v=Q-2M}$W`P?k z@LiSx8Tw!S)=57MzBBc{yG05=NiV{Cd<#H*dJBkV1C)LQNK?HCLXHaD|MA4oTsTOE zm~P89HUv`bLhJEwK=&EOe-buh?p7-T7sVVVfpDz`<*~EmJHhyhhUObw|Eyb3AQt$5 zjvNlaIuRt!0s|Dm?v@;^6$Q15uXUcnzZA_ZVKCpfYCH#FBDus!CM4{d=nr-8<9O+?=L}H{ooZXKZ{TZgKbB6C_CyDRB_WTfz;AP(G4;%kFOABD+!aU7hd z4aW?hgGeBkR%Xx?E{qXDcbf*kzA`_~L8(nq+mHJXxriWb#{{c*qZU5`s;irjyZeGv z3vE5$S)5q>t#h$!*Gu})U1lN)*Y2^xlvZ;tq4@vwLj(QRW?dKY*GDka8f{EPdrU+J zs~plnJo%`8aLmYV4;6)>F2MO7arw0be-q}1R=qgcw zs_Us_xUXa!f4m*W(4;rli*G#UTWW9fxp%Nu^iOE%AmGQhhVV60-2yP+9FHfqos#`y zGB>py;i>cL8=q4B3ZG8zWf%MD(KZb>UfMO!bMKIJi8*E4{~|mkd^`IhHi-_h)@rH4 zMJIYlggl@1B|c5Svbt^}K;9cPtAn3-0FELzx#2_?NdFy-9uS+}Nvi7;o5KDPQVm{f z|5dwfSCsE;%0n-Qv5Y`Iy8(Vo=L)Y1EXb0(J6jX(3k5(03;5PBASnHM@Zd~z1s&wm zigbh7cK=I;^Z8;cXD_I^`-MKAc2@|IUipWmtNj<1NU&!E3NW4+hE+$9?y{X+$A$_Z zPWY7K!zU5;gGV zrhc8Uib}3tAOmE--~#qPq#u*J9X1S~`?tx0cag(&R*)n683jq0Ad?c7x`@C~H)V)_ zC!s1$6kISq6o!ExG!^%LX0h>g6?K0B9++$ho+o;9UQzf4D4h)l`nuM1?XrmIU&{p&P&qdzn&scH z0U|B;oxekZKhGK#frEuVpF#!>iP${3TMqyB(Dpy5A`K;JQ5w#?O>D~hJXI3X%pQ9; zk4e?#6RV$oGnxLx2?OXEq>y8ZO>ZCpvun8~{E9;j&T#oTdy)b&dA?74GeWW$Ya zzU^#4&so=|GKnAErW14A2FBo}r z*{*{}MZJoUbf$4~gD57JKMxh>Hr(7%qWMF*s!Zw8yKfdv$YRNyf4M zu_lhBJRsWWjc$2!i!;pEdxvTZH5BEG(ed{dGFagl9>bp)Y6eeH6FlAoC%?0mMF_@6 z_*dnJ`Np&A-nN&wQq&YQeAMywT0pky3rW_Pm-^Q>z6CXNo1;{fHe&N3n@kTYkna zc5$wPV*H-?9J-$WZ};31@NWt|Y^EuMq4vsy@6l1TK9u-Bd0;>MYkc6(SF<@PZR)s1 zVXKJyNr2<6`3cS4wp9OVbre$Uv0>E1p2O@ntfH-G#sL=FeO3wn*T%92dxj|nWk)4d z{OnTiNHuKI8T|S|K3f~i{6E0|cBdC*Kh`X(bsp+aXknXvEFpvJaQ%;fSXfsxc{58Y z39G&JXqgkSl-i30ckMr4u!%zo?y-R*Wo0{a)VSUXv^CV`tw{>h*x&NkUtV5DM%4Ly znI%O~2<6b6ohQL50Y5rs$aG2@^faMK)IOONV<)T0{uJcSl>6b>>Tq ziXAe!zSFhy{Z2Nh_KRS(7w#7bq-~e<+lm7hHDZ9Ln?@n*3<=Q+RzE0NJL+AUL)n}} zj0VBm+0H|4G>Zl;OX=3$ahqt~4dG2w#xu`8Em9(NS9AA#FJaMkar95O%Y#{i66q!jY*Bvf z-@x_?&=b2++wh777gumP8}VHPDOcYsjO{N2c(N>KaA;U^)NC1{7C~Wa~oypz^PY@cpzfn z+v3kmuWziTpRMnN)nT|iNlQHX#Cp1rI=b-=h%T$FZAD`n>@!e%`N-t3ID)f)3&1=- zT5%@pS&agxlINuBlaMsF_8|@>2bI4e{p=hz z$`stp{%(w%+BVpBpw>j8HlKvfSuy6w@L(YcjP4Of^0WgV+>FpuA^3@PS;ibt$lPZ~ zyoa<{9NS07%R>Q-NPc!(+MdzN;^jJ!vYa-j-DP>tJLN%FRb!mlbeYa&XAtKx89kghdYrI9Yi7zy3>lIB~LCNC*QE@M&1{ z*I^dgO3}k@4LTr1@$1)ob(HFyLB^Q&B<}nbH|4sV3A^TcG-lM6QC&iyUQJzSDJ8t) zanPcd+d8q72iZzp&1rpMQH||uGyWtcV381j`nf`kCvR%$wa`}Tm$nCIv9jBOJE7#d za+v`b#gwPU2P_kB8MSP}pIs^vzDVuXL7@6sb0)fRfg{5r*1aQ3MuWbUR^5j_@FM@~ zkvET{D8H#0b8LD@I>^6ut_>{YA5?xt97hSz!-O(rn%Umuf#m}J#6K%MLz_*61w4j+ zKir>xa>SGAsWp_x