yk8s.k8s-service-layer.prometheus

The used prometheus-based monitoring setup will be explained in more detail soon :)

Note

To enable prometheus, k8s-service-layer.prometheus.install and kubernetes.monitoring.enabled need to be set to true.

Tweak Thanos Configuration

index-cache-size / in-memory-max-size

Thanos is unaware of its Kubernetes limits which can lead to OOM kills of the storegateway if a lot of metrics are requested.

We therefore added an option to configure the index-cache-size (see Tweak Thanos configuration (!1116) · Merge requests · YAOOK / k8s · GitLab and (see Thanos - Highly available Prometheus setup with long term storage capabilities) which should prevent that and is available as of release/v3.0 · YAOOK / k8s · GitLab.

It can be configured by setting the following configuration options:

k8s-service-layer.prometheus.thanos_store_in_memory_max_size = "XGB";
k8s-service-layer.prometheus.thanos_store_memory_request = "XGi";
k8s-service-layer.prometheus.thanos_store_memory_limit = "XGi";

Note that the value must be a decimal unit! Please also note that you should set a meaningful value based on the configured thanos_store_memory_limit. If this variable is not explicitly configured, the helm chart default is used which is not optimal. You should configure both variables and in the best case you additionally set thanos_store_memory_request to the same value as thanos_store_memory_limit.

Persistence

With release/v3.0 · YAOOK / k8s · GitLab, persistence for Thanos components has been reworked. By default, Thanos components use emptyDirs. Depending on the size of the cluster and the metrics flying around, Thanos components may need more disk than the host node can provide them and in that cases it makes sense to configure persistence.

If you want to enable persistence for Thanos components, you can do so by configuring a storage class to use and you can specify the persistent volume size for each component like in the following.

k8s-service-layer.prometheus.thanos_storage_class = "SOME_STORAGE_CLASS";
k8s-service-layer.prometheus.thanos_storegateway_size = "XGi";
k8s-service-layer.prometheus.thanos_compactor_size = "YGi";

Updating immutable options

Some options are immutable when deployed. If you want to change them nonetheless, follow these manual steps: 1. Increase the size of the corresponding PVC 2. Delete the stateful set: kubectl delete -n monitoring sts --cascade=false thanos-<storegateway|compactor> 3. Re-deploy it with the LCM: AFLAGS="--diff --tags thanos" bash managed-k8s/actions/apply-k8s-supplements.sh

yk8s.k8s-service-layer.prometheus.alertmanager_replicas

How many replicas of the alertmanager should be deployed inside the cluster

Type::

positive integer, meaning >0

Default::

1

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.alertmanager_resources

Type::

submodule

Default::

{ }

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.alertmanager_resources.limits.cpu

CPU limits should never be set.

Thus, this option is deprecated.

Type::

null or string matching the pattern [1-9][0-9]*m?

Default::

null

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.alertmanager_resources.limits.memory

PROMETHEUS POD RESOURCE LIMITS The following limits are applied to the respective pods. Note that the Prometheus limits are chosen fairly conservatively and may need tuning for larger and smaller clusters. By default, we prefer to set limits in such a way that the Pods end up in the Guaranteed QoS class (i.e. both CPU and Memory limits and requests set to the same value).

Type::

null or string matching the pattern [1-9][0-9]*(\.[0-9]+)?([KMGT]i)?

Default::

"256Mi"

Example::

null

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.alertmanager_resources.requests.cpu

PROMETHEUS POD RESOURCE LIMITS The following limits are applied to the respective pods. Note that the Prometheus limits are chosen fairly conservatively and may need tuning for larger and smaller clusters. By default, we prefer to set limits in such a way that the Pods end up in the Guaranteed QoS class (i.e. both CPU and Memory limits and requests set to the same value).

Type::

null or string matching the pattern [1-9][0-9]*m?

Default::

"100m"

Example::

null

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.alertmanager_resources.requests.memory

Memory requests should always be equal to the limits.

Thus, this option is deprecated.

Type::

null or string matching the pattern [1-9][0-9]*(\.[0-9]+)?([KMGT]i)?

Default::

"\${config.yk8s.k8s-service-layer.prometheus.alertmanager_resources.limits.memory}"

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.allow_external_rules

Whether to enable external rules. By default, prometheus and alertmanager only consider global rules from the monitoring namespace while other rules can only alert on their own namespace. If this variable is set, cluster wide rules are considered from all namespaces. .

Type::

boolean

Default::

false

Example::

true

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.blackbox_version

Deploy a specific blackbox exporter version https://github.com/prometheus-community/helm-charts/tree/main/charts/prometheus-blackbox-exporter

Type::

non-empty string

Default::

"9.1.0"

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.common_labels

If at least one common_label is defined, Prometheus will be created with selectors matching these labels and only ServiceMonitors that meet the criteria of the selector, i.e. are labeled accordingly, are included by Prometheus. The LCM takes care that all ServiceMonitors created by itself are labeled accordingly. The key can not be “release” as that one is already used by the Prometheus helm chart.

Type::

attribute set of non-empty string

Default::

{
  managed-by = "yaook-k8s";
}

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.grafana_admin_secret_name

Type::

non-empty string

Default::

"cah-grafana-admin"

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.grafana_dashboard_enable_multicluster_support

Enable referencing multiple K8s clusters by a single Grafana datasource.

Type::

boolean

Default::

false

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.grafana_persistent_storage_class

If this variable is defined, Grafana will store its data in a PersistentVolume in the defined StorageClass. Otherwise, persistence is disabled for Grafana. The value has to be a valid StorageClass available in your cluster.

Type::

null or non-empty string

Default::

null

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.grafana_resources

Type::

submodule

Default::

{ }

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.grafana_resources.limits.cpu

CPU limits should never be set.

Thus, this option is deprecated.

Type::

null or string matching the pattern [1-9][0-9]*m?

Default::

null

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.grafana_resources.limits.memory

PROMETHEUS POD RESOURCE LIMITS The following limits are applied to the respective pods. Note that the Prometheus limits are chosen fairly conservatively and may need tuning for larger and smaller clusters. By default, we prefer to set limits in such a way that the Pods end up in the Guaranteed QoS class (i.e. both CPU and Memory limits and requests set to the same value).

Type::

null or string matching the pattern [1-9][0-9]*(\.[0-9]+)?([KMGT]i)?

Default::

"512Mi"

Example::

null

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.grafana_resources.requests.cpu

PROMETHEUS POD RESOURCE LIMITS The following limits are applied to the respective pods. Note that the Prometheus limits are chosen fairly conservatively and may need tuning for larger and smaller clusters. By default, we prefer to set limits in such a way that the Pods end up in the Guaranteed QoS class (i.e. both CPU and Memory limits and requests set to the same value).

Type::

null or string matching the pattern [1-9][0-9]*m?

Default::

"100m"

Example::

"500m"

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.grafana_resources.requests.memory

Memory requests should always be equal to the limits.

Thus, this option is deprecated.

Type::

null or string matching the pattern [1-9][0-9]*(\.[0-9]+)?([KMGT]i)?

Default::

"\${config.yk8s.k8s-service-layer.prometheus.grafana_resources.limits.memory}"

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.grafana_root_url

The full public facing url you use in browser, used for redirects and emails

Type::

null or non-empty string

Default::

null

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.install

If kubernetes.monitoring.enabled is true, choose whether to install or uninstall Prometheus. IF SET TO FALSE, PROMETHEUS WILL BE DELETED WITHOUT CHECKING FOR DISRUPTION (sic!).

Type::

boolean

Default::

true

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.internet_probe

Whether to enable scraping external targets via blackbox exporter https://github.com/prometheus-community/helm-charts/tree/main/charts/prometheus-blackbox-exporter .

Type::

boolean

Default::

false

Example::

true

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.internet_probe_targets

Type::

list of (submodule)

Default::

[ ]

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.internet_probe_targets.*.interval

Scraping interval. Overrides value set in defaults

Type::

non-empty string

Default::

"60s"

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.internet_probe_targets.*.module

module to be used. Can be “http_2xx” (default), “http_api” (allow status codes 200, 300, 401), “http_api_insecure”, “icmp” or “tcp_connect”.

Type::

string matching the pattern http_2xx|http_api(_insecure)?|icmp|tcp_connect

Default::

"http_2xx"

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.internet_probe_targets.*.name

Human readable URL that will appear in Prometheus / AlertManager

Type::

non-empty string

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.internet_probe_targets.*.scrapeTimeout

Scrape timeout. Overrides value set in defaults

Type::

non-empty string

Default::

"60s"

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.internet_probe_targets.*.url

The URL that blackbox will scrape

Type::

non-empty string

Example::

"http://example.com/healthz"

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.kube_state_metrics_resources

Type::

submodule

Default::

{ }

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.kube_state_metrics_resources.limits.cpu

CPU limits should never be set.

Thus, this option is deprecated.

Type::

null or string matching the pattern [1-9][0-9]*m?

Default::

null

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.kube_state_metrics_resources.limits.memory

PROMETHEUS POD RESOURCE LIMITS The following limits are applied to the respective pods. Note that the Prometheus limits are chosen fairly conservatively and may need tuning for larger and smaller clusters. By default, we prefer to set limits in such a way that the Pods end up in the Guaranteed QoS class (i.e. both CPU and Memory limits and requests set to the same value).

Type::

null or string matching the pattern [1-9][0-9]*(\.[0-9]+)?([KMGT]i)?

Default::

"128Mi"

Example::

null

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.kube_state_metrics_resources.requests.cpu

PROMETHEUS POD RESOURCE LIMITS The following limits are applied to the respective pods. Note that the Prometheus limits are chosen fairly conservatively and may need tuning for larger and smaller clusters. By default, we prefer to set limits in such a way that the Pods end up in the Guaranteed QoS class (i.e. both CPU and Memory limits and requests set to the same value).

Type::

null or string matching the pattern [1-9][0-9]*m?

Default::

"50m"

Example::

null

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.kube_state_metrics_resources.requests.memory

Memory requests should always be equal to the limits.

Thus, this option is deprecated.

Type::

null or string matching the pattern [1-9][0-9]*(\.[0-9]+)?([KMGT]i)?

Default::

"\${config.yk8s.k8s-service-layer.prometheus.kube_state_metrics_resources.limits.memory}"

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.manage_thanos_bucket

Let terraform create an object storage container / bucket for you if true. If set to false one must provide a valid configuration via Vault See: https://yaook.gitlab.io/k8s/release/v3.0/managed-services/prometheus/prometheus-stack.html#custom-bucket-management

Type::

boolean

Default::

true

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.monitoring_internet_probe

Whether to enable adding blackbox-exporter to test basic internet connectivity .

Type::

boolean

Default::

false

Example::

true

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.namespace

Namespace to deploy the monitoring in (will be created if it does not exist, but never deleted).

Type::

non-empty string

Default::

"monitoring"

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.node_exporter_textfile_collector_path

Type::

non-empty string

Default::

"/var/lib/node_exporter/textfile_collector"

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.nvidia_dcgm_exporter_helm_repo_url

Type::

non-empty string

Default::

"https://nvidia.github.io/dcgm-exporter/helm-charts"

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.nvidia_dcgm_exporter_helm_version

if not specified, latest

Type::

string

Default::

""

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.operator_resources

Type::

submodule

Default::

{ }

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.operator_resources.limits.cpu

CPU limits should never be set.

Thus, this option is deprecated.

Type::

null or string matching the pattern [1-9][0-9]*m?

Default::

null

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.operator_resources.limits.memory

PROMETHEUS POD RESOURCE LIMITS The following limits are applied to the respective pods. Note that the Prometheus limits are chosen fairly conservatively and may need tuning for larger and smaller clusters. By default, we prefer to set limits in such a way that the Pods end up in the Guaranteed QoS class (i.e. both CPU and Memory limits and requests set to the same value).

Type::

null or string matching the pattern [1-9][0-9]*(\.[0-9]+)?([KMGT]i)?

Default::

"400Mi"

Example::

null

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.operator_resources.requests.cpu

PROMETHEUS POD RESOURCE LIMITS The following limits are applied to the respective pods. Note that the Prometheus limits are chosen fairly conservatively and may need tuning for larger and smaller clusters. By default, we prefer to set limits in such a way that the Pods end up in the Guaranteed QoS class (i.e. both CPU and Memory limits and requests set to the same value).

Type::

null or string matching the pattern [1-9][0-9]*m?

Default::

"100m"

Example::

null

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.operator_resources.requests.memory

Memory requests should always be equal to the limits.

Thus, this option is deprecated.

Type::

null or string matching the pattern [1-9][0-9]*(\.[0-9]+)?([KMGT]i)?

Default::

"\${config.yk8s.k8s-service-layer.prometheus.operator_resources.limits.memory}"

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.prometheus_adapter_release_name

Type::

non-empty string

Default::

"prometheus-adapter"

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.prometheus_adapter_version

Type::

non-empty string

Default::

"4.11.0"

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.prometheus_helm_repo_url

Type::

non-empty string

Default::

"https://prometheus-community.github.io/helm-charts"

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.prometheus_persistent_storage_class

Configure persistent storage for Prometheus By default an empty-dir is used. https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/user-guides/storage.md

Type::

null or non-empty string

Default::

null

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.prometheus_persistent_storage_resource_request

Configure persistent storage for Prometheus https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/user-guides/storage.md

Type::

string matching the pattern [1-9][0-9]*(\.[0-9]+)?([KMGT]i)?

Default::

"50Gi"

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.prometheus_resources

Type::

submodule

Default::

{ }

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.prometheus_resources.limits.cpu

CPU limits should never be set.

Thus, this option is deprecated.

Type::

null or string matching the pattern [1-9][0-9]*m?

Default::

null

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.prometheus_resources.limits.memory

PROMETHEUS POD RESOURCE LIMITS The following limits are applied to the respective pods. Note that the Prometheus limits are chosen fairly conservatively and may need tuning for larger and smaller clusters. By default, we prefer to set limits in such a way that the Pods end up in the Guaranteed QoS class (i.e. both CPU and Memory limits and requests set to the same value).

Type::

null or string matching the pattern [1-9][0-9]*(\.[0-9]+)?([KMGT]i)?

Default::

"3Gi"

Example::

null

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.prometheus_resources.requests.cpu

PROMETHEUS POD RESOURCE LIMITS The following limits are applied to the respective pods. Note that the Prometheus limits are chosen fairly conservatively and may need tuning for larger and smaller clusters. By default, we prefer to set limits in such a way that the Pods end up in the Guaranteed QoS class (i.e. both CPU and Memory limits and requests set to the same value).

Type::

null or string matching the pattern [1-9][0-9]*m?

Default::

"1"

Example::

null

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.prometheus_resources.requests.memory

Memory requests should always be equal to the limits.

Thus, this option is deprecated.

Type::

null or string matching the pattern [1-9][0-9]*(\.[0-9]+)?([KMGT]i)?

Default::

"\${config.yk8s.k8s-service-layer.prometheus.prometheus_resources.limits.memory}"

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.prometheus_service_name

Type::

non-empty string

Default::

"prometheus-operated"

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.prometheus_stack_chart_name

Type::

non-empty string

Default::

"prometheus-community/kube-prometheus-stack"

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.prometheus_stack_release_name

Type::

non-empty string

Default::

"prometheus-stack"

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.prometheus_stack_version

helm chart version of the prometheus stack https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack If you set this empty (not unset), the latest version is used Note that upgrades require additional steps and maybe even LCM changes are needed: https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack#upgrading-chart

Type::

non-empty string

Default::

"66.2.2"

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.remote_writes

Type::

list of (submodule)

Default::

[ ]

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.remote_writes.*.url

Type::

string

Example::

"http://remote-write-receiver:9090/api/v1/write"

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.remote_writes.*.write_relabel_configs

A list of RelabelConfigs, see https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#monitoring.coreos.com/v1.RelabelConfig

Type::

list of (attribute set)

Example::

[
  {
    replacement = "my-cluster";
    targetLabel = "prometheus";
  }
  {
    replacement = "my-cluster";
    targetLabel = "cluster";
  }
]

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.scheduling_key

Scheduling keys control where services may run. A scheduling key corresponds to both a node label and to a taint. In order for a service to run on a node, it needs to have that label key. If no scheduling key is defined for service, it will run on any untainted node.

Type::

null or non-empty string

Default::

null

Example::

"\${config.yk8s.node-scheduling.scheduling_key_prefix}/monitoring"

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.thanos_chart_version

Set custom Bitnami/Thanos chart version

Type::

string

Default::

"15.8.2"

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.thanos_compact_resources

Type::

submodule

Default::

{ }

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.thanos_compact_resources.limits.cpu

CPU limits should never be set.

Thus, this option is deprecated.

Type::

null or string matching the pattern [1-9][0-9]*m?

Default::

null

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.thanos_compact_resources.limits.memory

PROMETHEUS POD RESOURCE LIMITS The following limits are applied to the respective pods. Note that the Prometheus limits are chosen fairly conservatively and may need tuning for larger and smaller clusters. By default, we prefer to set limits in such a way that the Pods end up in the Guaranteed QoS class (i.e. both CPU and Memory limits and requests set to the same value).

Type::

null or string matching the pattern [1-9][0-9]*(\.[0-9]+)?([KMGT]i)?

Default::

"200Mi"

Example::

null

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.thanos_compact_resources.requests.cpu

PROMETHEUS POD RESOURCE LIMITS The following limits are applied to the respective pods. Note that the Prometheus limits are chosen fairly conservatively and may need tuning for larger and smaller clusters. By default, we prefer to set limits in such a way that the Pods end up in the Guaranteed QoS class (i.e. both CPU and Memory limits and requests set to the same value).

Type::

null or string matching the pattern [1-9][0-9]*m?

Default::

"100m"

Example::

null

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.thanos_compact_resources.requests.memory

Memory requests should always be equal to the limits.

Thus, this option is deprecated.

Type::

null or string matching the pattern [1-9][0-9]*(\.[0-9]+)?([KMGT]i)?

Default::

"\${config.yk8s.k8s-service-layer.prometheus.thanos_compact_resources.limits.memory}"

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.thanos_compactor_size

You can explicitly set the PV size for each component. If left undefined, the helm chart defaults will be used

Immutable when deployed. (See also Updating immutable options)

Type::

null or string matching the pattern [1-9][0-9]*(\.[0-9]+)?([KMGT]i)?

Default::

null

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.thanos_objectstorage_config_file

Type::

null or non-empty string

Default::

null

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.thanos_objectstorage_config_path

Type::

non-empty string

Default::

"{{ playbook_dir }}/../../../config"

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.thanos_objectstorage_container_name

Type::

non-empty string

Default::

"\${config.yk8s.terraform.cluster_name}-monitoring-thanos-data"

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.thanos_query_additional_store_endpoints

Provide a list of DNS endpoints for additional thanos store endpoints. The endpoint will be extended to dnssrv+_grpc._tcp.{{ endpoint }}.monitoring.svc.cluster.local.

Type::

list of non-empty string

Default::

[ ]

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.thanos_query_resources

Type::

submodule

Default::

{ }

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.thanos_query_resources.limits.cpu

CPU limits should never be set.

Thus, this option is deprecated.

Type::

null or string matching the pattern [1-9][0-9]*m?

Default::

null

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.thanos_query_resources.limits.memory

PROMETHEUS POD RESOURCE LIMITS The following limits are applied to the respective pods. Note that the Prometheus limits are chosen fairly conservatively and may need tuning for larger and smaller clusters. By default, we prefer to set limits in such a way that the Pods end up in the Guaranteed QoS class (i.e. both CPU and Memory limits and requests set to the same value).

Type::

null or string matching the pattern [1-9][0-9]*(\.[0-9]+)?([KMGT]i)?

Default::

"786Mi"

Example::

null

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.thanos_query_resources.requests.cpu

PROMETHEUS POD RESOURCE LIMITS The following limits are applied to the respective pods. Note that the Prometheus limits are chosen fairly conservatively and may need tuning for larger and smaller clusters. By default, we prefer to set limits in such a way that the Pods end up in the Guaranteed QoS class (i.e. both CPU and Memory limits and requests set to the same value).

Type::

null or string matching the pattern [1-9][0-9]*m?

Default::

"100m"

Example::

"1"

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.thanos_query_resources.requests.memory

Memory requests should always be equal to the limits.

Thus, this option is deprecated.

Type::

null or string matching the pattern [1-9][0-9]*(\.[0-9]+)?([KMGT]i)?

Default::

"\${config.yk8s.k8s-service-layer.prometheus.thanos_query_resources.limits.memory}"

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.thanos_sidecar_resources

Type::

submodule

Default::

{ }

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.thanos_sidecar_resources.limits.cpu

CPU limits should never be set.

Thus, this option is deprecated.

Type::

null or string matching the pattern [1-9][0-9]*m?

Default::

null

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.thanos_sidecar_resources.limits.memory

PROMETHEUS POD RESOURCE LIMITS The following limits are applied to the respective pods. Note that the Prometheus limits are chosen fairly conservatively and may need tuning for larger and smaller clusters. By default, we prefer to set limits in such a way that the Pods end up in the Guaranteed QoS class (i.e. both CPU and Memory limits and requests set to the same value).

Type::

null or string matching the pattern [1-9][0-9]*(\.[0-9]+)?([KMGT]i)?

Default::

"256Mi"

Example::

null

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.thanos_sidecar_resources.requests.cpu

PROMETHEUS POD RESOURCE LIMITS The following limits are applied to the respective pods. Note that the Prometheus limits are chosen fairly conservatively and may need tuning for larger and smaller clusters. By default, we prefer to set limits in such a way that the Pods end up in the Guaranteed QoS class (i.e. both CPU and Memory limits and requests set to the same value).

Type::

null or string matching the pattern [1-9][0-9]*m?

Default::

"500m"

Example::

null

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.thanos_sidecar_resources.requests.memory

Memory requests should always be equal to the limits.

Thus, this option is deprecated.

Type::

null or string matching the pattern [1-9][0-9]*(\.[0-9]+)?([KMGT]i)?

Default::

"\${config.yk8s.k8s-service-layer.prometheus.thanos_sidecar_resources.limits.memory}"

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.thanos_storage_class

Thanos uses emptyDirs by default for its components for faster access. If that’s not feasible, a storage class can be set to enable persistence and the size for each component volume can be configured. Note that switching between persistence requires manual intervention and it may be necessary to reinstall the helm chart completely.

Type::

null or non-empty string

Default::

null

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.thanos_store_in_memory_max_size

https://thanos.io/tip/components/store.md/#in-memory-index-cache Note: Unit must be specified as decimal! (MB,GB) This value should be chosen in a sane matter based on thanos_store_memory_request and thanos_store_memory_limit

Type::

null or string matching the pattern ([0-9]+[MG]B)

Default::

null

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.thanos_store_resources

Type::

submodule

Default::

{ }

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.thanos_store_resources.limits.cpu

CPU limits should never be set.

Thus, this option is deprecated.

Type::

null or string matching the pattern [1-9][0-9]*m?

Default::

null

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.thanos_store_resources.limits.memory

PROMETHEUS POD RESOURCE LIMITS The following limits are applied to the respective pods. Note that the Prometheus limits are chosen fairly conservatively and may need tuning for larger and smaller clusters. By default, we prefer to set limits in such a way that the Pods end up in the Guaranteed QoS class (i.e. both CPU and Memory limits and requests set to the same value).

Type::

null or string matching the pattern [1-9][0-9]*(\.[0-9]+)?([KMGT]i)?

Default::

"2Gi"

Example::

null

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.thanos_store_resources.requests.cpu

PROMETHEUS POD RESOURCE LIMITS The following limits are applied to the respective pods. Note that the Prometheus limits are chosen fairly conservatively and may need tuning for larger and smaller clusters. By default, we prefer to set limits in such a way that the Pods end up in the Guaranteed QoS class (i.e. both CPU and Memory limits and requests set to the same value).

Type::

null or string matching the pattern [1-9][0-9]*m?

Default::

"100m"

Example::

"500m"

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.thanos_store_resources.requests.memory

Memory requests should always be equal to the limits.

Thus, this option is deprecated.

Type::

null or string matching the pattern [1-9][0-9]*(\.[0-9]+)?([KMGT]i)?

Default::

"\${config.yk8s.k8s-service-layer.prometheus.thanos_store_resources.limits.memory}"

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.thanos_storegateway_size

You can explicitly set the PV size for each component. If left undefined, the helm chart defaults will be used

Immutable when deployed. (See also Updating immutable options)

Type::

null or string matching the pattern [1-9][0-9]*(\.[0-9]+)?([KMGT]i)?

Default::

null

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.use_grafana

Enable grafana

Type::

boolean

Default::

true

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix

yk8s.k8s-service-layer.prometheus.use_thanos

Whether to enable use of Thanos.

Type::

boolean

Default::

false

Example::

true

Declared by https://gitlab.com/yaook/k8s/-/tree/devel/nix/yk8s/k8s-supplements/monitoring.nix