From 94e78fa7e9bfdaef29c89024e6d72229fd16ad66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Huss?= Date: Fri, 26 Jan 2024 10:19:34 +0100 Subject: [PATCH] fix --- apps/code-server/deploy.tf | 4 +- apps/code-server/index.yaml | 156 ++--- apps/code-server/presentation.tf | 8 +- apps/dbgate/index.yaml | 282 ++++----- apps/dbgate/presentation.tf | 6 +- apps/dolibarr/application.tf | 6 +- apps/dolibarr/configmap.tf | 2 +- apps/dolibarr/index.yaml | 566 ++++++++++-------- apps/dolibarr/ingress.tf | 4 +- apps/dolibarr/ldap.tf | 2 +- apps/dolibarr/postgresql.tf | 3 +- apps/dolibarr/redis.tf | 2 +- apps/dolibarr/saml.tf | 2 +- apps/gitea/index.yaml | 482 +++++++-------- apps/gitea/inline-config.tf | 8 +- apps/gitea/presentation.tf | 6 +- apps/gramo/index.yaml | 54 +- apps/gramo/presentation.tf | 8 +- apps/k8s-api/index.yaml | 22 +- apps/k8s-api/ingress.tf | 2 +- apps/nextcloud/index.yaml | 358 +++++------ apps/nextcloud/presentation.tf | 10 +- apps/okd/index.yaml | 46 +- apps/okd/presentation.tf | 8 +- apps/sonar/index.yaml | 6 +- apps/traefik-ui/index.yaml | 26 +- apps/traefik-ui/presentation.tf | 8 +- apps/woodpecker/datas.tf | 4 +- apps/woodpecker/gitea_token.tf | 2 +- apps/woodpecker/index.yaml | 86 +-- apps/woodpecker/presentation.tf | 6 +- meta/domain-apps/apps.tf | 8 +- meta/domain-apps/index.yaml | 80 +-- meta/domain-auth/apps.tf | 8 +- meta/domain-auth/index.yaml | 280 ++++----- meta/domain-ci/apps.tf | 8 +- meta/domain-ci/index.yaml | 108 ++-- meta/domain-devspaces/apps.tf | 14 +- meta/domain-devspaces/index.yaml | 442 +++++++------- meta/domain-devspaces/stations.tf | 2 +- meta/domain-erp/apps.tf | 11 +- meta/domain-erp/index.yaml | 120 ++-- meta/domain-infra/apps.tf | 10 +- meta/domain-infra/index.yaml | 248 ++++---- meta/domain-mail/apps.tf | 8 +- meta/domain-mail/index.yaml | 108 ++-- meta/domain-monitor/apps.tf | 10 +- meta/domain-monitor/index.yaml | 264 ++++---- meta/domain/index.yaml | 322 +++++----- meta/domain/installs.tf | 8 +- modules/application/application.tf | 2 +- modules/application/variables.tf | 2 +- modules/forward/forward.tf | 2 +- modules/forward/variables.tf | 2 +- modules/ingress/ingress.tf | 2 +- modules/ingress/variables.tf | 2 +- monitor/alertmanager/index.yaml | 82 +-- ...ertmanager-kube-promethe-alertmanager.yaml | 4 +- ...ager-kube-promethe-alertmanager.rules.yaml | 4 +- ...ertmanager-kube-promethe-alertmanager.yaml | 4 +- monitor/alertmanager/presentation.tf | 8 +- ...r-kube-promethe-alertmanager-overview.yaml | 4 +- ...ertmanager-kube-promethe-alertmanager.yaml | 4 +- ...ertmanager-kube-promethe-alertmanager.yaml | 4 +- ...k8s.rules.container-cpu-usage-seconds.yaml | 4 +- ...kube-k8s.rules.container-memory-cache.yaml | 4 +- ...y-kube-k8s.rules.container-memory-rss.yaml | 4 +- ...-kube-k8s.rules.container-memory-swap.yaml | 4 +- ...k8s.rules.container-memory-working-se.yaml | 4 +- ...ity-kube-k8s.rules.container-resource.yaml | 4 +- ...theus-community-kube-config-reloaders.yaml | 4 +- ...ometheus-community-kube-general.rules.yaml | 4 +- ...us-community-kube-k8s.rules.pod-owner.yaml | 4 +- ...ty-kube-kube-prometheus-general.rules.yaml | 4 +- ...-kube-prometheus-node-recording.rules.yaml | 4 +- ...etheus-community-kube-kubernetes-apps.yaml | 4 +- ...s-community-kube-kubernetes-resources.yaml | 4 +- ...eus-community-kube-kubernetes-storage.yaml | 4 +- ...nity-kube-kubernetes-system-apiserver.yaml | 4 +- ...munity-kube-kubernetes-system-kubelet.yaml | 4 +- ...heus-community-kube-kubernetes-system.yaml | 4 +- ...-community-kube-k8s-resources-cluster.yaml | 4 +- ...unity-kube-k8s-resources-multicluster.yaml | 4 +- ...ometheus-community-kube-cluster-total.yaml | 4 +- ...theus-community-kube-grafana-overview.yaml | 4 +- ...theus-community-kube-namespace-by-pod.yaml | 4 +- ...-community-kube-namespace-by-workload.yaml | 4 +- ...community-kube-persistentvolumesusage.yaml | 4 +- ...p_prometheus-community-kube-pod-total.yaml | 4 +- ...metheus-community-kube-workload-total.yaml | 4 +- ...ommunity-kube-k8s-resources-namespace.yaml | 4 +- ...ube-k8s-resources-workloads-namespace.yaml | 4 +- ...eus-community-kube-k8s-resources-node.yaml | 4 +- ...heus-community-kube-k8s-resources-pod.yaml | 4 +- ...community-kube-k8s-resources-workload.yaml | 4 +- monitor/grafana/index.yaml | 100 ++-- monitor/grafana/presentation.tf | 6 +- ...te-metrics-kube-pr-kube-state-metrics.yaml | 4 +- monitor/loki-dashboard/index.yaml | 82 +++ .../v1_ConfigMap_loki-dashboards-1.yaml | 24 + .../v1_ConfigMap_loki-dashboards-2.yaml | 24 + monitor/loki/index.yaml | 66 +- ...usRule_prometheus-community-kube-etcd.yaml | 4 +- ...ube-kube-apiserver-availability.rules.yaml | 4 +- ...ty-kube-kube-apiserver-burnrate.rules.yaml | 4 +- ...y-kube-kube-apiserver-histogram.rules.yaml | 4 +- ...us-community-kube-kube-apiserver-slos.yaml | 4 +- ...s-community-kube-kube-scheduler.rules.yaml | 4 +- ...-kubernetes-system-controller-manager.yaml | 4 +- ...nity-kube-kubernetes-system-scheduler.yaml | 4 +- ...r_prometheus-community-kube-apiserver.yaml | 4 +- ...ommunity-kube-kube-controller-manager.yaml | 4 +- ...r_prometheus-community-kube-kube-etcd.yaml | 4 +- ...metheus-community-kube-kube-scheduler.yaml | 4 +- ...p_prometheus-community-kube-apiserver.yaml | 4 +- ...eus-community-kube-controller-manager.yaml | 4 +- ...figMap_prometheus-community-kube-etcd.yaml | 4 +- ...p_prometheus-community-kube-scheduler.yaml | 4 +- ...ommunity-kube-kube-controller-manager.yaml | 4 +- ...e_prometheus-community-kube-kube-etcd.yaml | 4 +- ...metheus-community-kube-kube-scheduler.yaml | 4 +- ...ode-exporter-prometheus-node-exporter.yaml | 4 +- ...rter-kube-prometh-node-exporter.rules.yaml | 4 +- ...e-exporter-kube-prometh-node-exporter.yaml | 4 +- ...de-exporter-kube-prometh-node-network.yaml | 4 +- ...node-exporter-kube-prometh-node.rules.yaml | 4 +- ...ode-exporter-prometheus-node-exporter.yaml | 2 +- ...er-kube-prometh-node-cluster-rsrc-use.yaml | 4 +- ...e-exporter-kube-prometh-node-rsrc-use.yaml | 4 +- ...de-exporter-kube-prometh-nodes-darwin.yaml | 4 +- ...gMap_node-exporter-kube-prometh-nodes.yaml | 4 +- ...ode-exporter-prometheus-node-exporter.yaml | 2 +- ...ode-exporter-prometheus-node-exporter.yaml | 2 +- monitor/prometheus/index.yaml | 96 +-- ...metheus-kube-prometheus-kubelet.rules.yaml | 4 +- ...ometheus-kubernetes-system-kube-proxy.yaml | 4 +- ...prometheus-kube-prometheus-prometheus.yaml | 4 +- ...or_prometheus-kube-prometheus-coredns.yaml | 4 +- ...prometheus-kube-prometheus-kube-proxy.yaml | 4 +- ...or_prometheus-kube-prometheus-kubelet.yaml | 4 +- ...prometheus-kube-prometheus-prometheus.yaml | 4 +- monitor/prometheus/presentation.tf | 8 +- ...prometheus-kube-prometheus-prometheus.yaml | 4 +- ...prometheus-kube-prometheus-prometheus.yaml | 4 +- ...us-kube-prometheus-grafana-datasource.yaml | 4 +- ...rometheus-kube-prometheus-k8s-coredns.yaml | 4 +- ...ap_prometheus-kube-prometheus-kubelet.yaml | 4 +- ...prometheus-kube-prometheus-prometheus.yaml | 6 +- ...gMap_prometheus-kube-prometheus-proxy.yaml | 4 +- ...prometheus-kube-prometheus-prometheus.yaml | 4 +- ...prometheus-kube-prometheus-prometheus.yaml | 4 +- ...ce_prometheus-kube-prometheus-coredns.yaml | 4 +- ...prometheus-kube-prometheus-kube-proxy.yaml | 4 +- monitor/thanos-ruler/index.yaml | 82 +++ ...or_kube-prometheus-stack-thanos-ruler.yaml | 29 + ...er_kube-prometheus-stack-thanos-ruler.yaml | 39 ++ ...et_kube-prometheus-stack-thanos-ruler.yaml | 17 + ...nt_kube-prometheus-stack-thanos-ruler.yaml | 18 + ...ce_kube-prometheus-stack-thanos-ruler.yaml | 26 + share/accounts-management/index.yaml | 34 +- share/authentik-forward/index.yaml | 26 +- share/authentik/datas.tf | 2 +- share/authentik/index.yaml | 136 ++--- share/authentik/ingress.tf | 4 +- share/dataset-maria/mariadb.tf | 2 + share/dataset-mongo/index.yaml | 40 +- share/dataset-pg/directus.tf | 16 +- share/dataset-pg/index.yaml | 100 ++-- share/dataset-pg/postgresql.tf | 2 +- share/dataset-pg/postgrest.tf | 4 +- share/dataset-rabbit/index.yaml | 95 +-- share/dataset-redis/index.yaml | 76 +-- share/dataset-redis/redis.tf | 2 +- share/division/index.yaml | 10 +- share/dns/config.tf | 4 +- share/dns/index.yaml | 28 +- share/organisation/gitea-user.tf | 2 +- share/organisation/index.yaml | 112 ++-- share/organisation/stages.tf | 12 +- share/wildduck/application.tf | 6 +- share/wildduck/haraka.tf | 8 +- share/wildduck/index.yaml | 152 ++--- share/wildduck/ingress.tf | 6 +- share/wildduck/scimgateway.tf | 2 +- share/wildduck/webmail.tf | 12 +- share/wildduck/wildduck.tf | 6 +- share/wildduck/zonemta.tf | 6 +- 187 files changed, 3355 insertions(+), 2857 deletions(-) create mode 100644 monitor/loki-dashboard/index.yaml create mode 100644 monitor/loki-dashboard/v1_ConfigMap_loki-dashboards-1.yaml create mode 100644 monitor/loki-dashboard/v1_ConfigMap_loki-dashboards-2.yaml create mode 100644 monitor/thanos-ruler/index.yaml create mode 100644 monitor/thanos-ruler/monitoring.coreos.com_v1_ServiceMonitor_kube-prometheus-stack-thanos-ruler.yaml create mode 100644 monitor/thanos-ruler/monitoring.coreos.com_v1_ThanosRuler_kube-prometheus-stack-thanos-ruler.yaml create mode 100644 monitor/thanos-ruler/v1_Secret_kube-prometheus-stack-thanos-ruler.yaml create mode 100644 monitor/thanos-ruler/v1_ServiceAccount_kube-prometheus-stack-thanos-ruler.yaml create mode 100644 monitor/thanos-ruler/v1_Service_kube-prometheus-stack-thanos-ruler.yaml diff --git a/apps/code-server/deploy.tf b/apps/code-server/deploy.tf index 6eb4a4e..2ffbe44 100644 --- a/apps/code-server/deploy.tf +++ b/apps/code-server/deploy.tf @@ -9,7 +9,7 @@ resource "kubectl_manifest" "deploy" { spec: replicas: 1 hostname: "${var.component}-${var.instance}" - subdomain: "${var.domain_name}" + subdomain: "${var.domain-name}" selector: matchLabels: ${jsonencode(local.common-labels)} template: @@ -46,7 +46,7 @@ resource "kubectl_manifest" "deploy" { - name: DOCKER_USER value: coder - name: IS_CONSOLE - value: "${var.no_editor?"shellinabox":"code-server"}" + value: "${var.no-editor?"shellinabox":"code-server"}" - name: TZ value: "${var.timezone}" - name: ENTRYPOINTD diff --git a/apps/code-server/index.yaml b/apps/code-server/index.yaml index d2a6286..b3c6d83 100644 --- a/apps/code-server/index.yaml +++ b/apps/code-server/index.yaml @@ -6,11 +6,83 @@ metadata: name: code-server description: null options: - app_group: + sub-domain: + default: code + examples: + - code + type: string + domain: + default: your-company + examples: + - your-company + type: string + timezone: + default: Europe/Paris + examples: + - Europe/Paris + type: string + admin: + default: + cluster: false + namespace: false + examples: + - cluster: false + namespace: false + properties: + cluster: + default: false + type: boolean + namespace: + default: false + type: boolean + type: object + storage: + default: + volume: + accessMode: ReadWriteOnce + size: 20Gi + type: Filesystem + description: Configure this app storage + examples: + - volume: + accessMode: ReadWriteOnce + size: 20Gi + type: Filesystem + properties: + volume: + default: + accessMode: ReadWriteOnce + size: 20Gi + type: Filesystem + properties: + accessMode: + default: ReadWriteOnce + enum: + - ReadWriteOnce + - ReadOnlyMany + - ReadWriteMany + type: string + size: + default: 20Gi + type: string + type: + default: Filesystem + enum: + - Filesystem + - Block + type: string + type: object + type: object + app-group: default: dev examples: - dev type: string + no-editor: + default: false + examples: + - false + type: boolean images: default: codeserver: @@ -50,93 +122,21 @@ options: type: number type: object type: object - domain: - default: your-company - examples: - - your-company - type: string - domain_name: - default: your-company.com - examples: - - your-company.com - type: string - ingress_class: + ingress-class: default: traefik examples: - traefik type: string - storage: - default: - volume: - accessMode: ReadWriteOnce - size: 20Gi - type: Filesystem - description: Configure this app storage + domain-name: + default: your-company.com examples: - - volume: - accessMode: ReadWriteOnce - size: 20Gi - type: Filesystem - properties: - volume: - default: - accessMode: ReadWriteOnce - size: 20Gi - type: Filesystem - properties: - accessMode: - default: ReadWriteOnce - enum: - - ReadWriteOnce - - ReadOnlyMany - - ReadWriteMany - type: string - size: - default: 20Gi - type: string - type: - default: Filesystem - enum: - - Filesystem - - Block - type: string - type: object - type: object + - your-company.com + type: string issuer: default: letsencrypt-prod examples: - letsencrypt-prod type: string - sub_domain: - default: code - examples: - - code - type: string - timezone: - default: Europe/Paris - examples: - - Europe/Paris - type: string - admin: - default: - cluster: false - namespace: false - examples: - - cluster: false - namespace: false - properties: - cluster: - default: false - type: boolean - namespace: - default: false - type: boolean - type: object - no_editor: - default: false - examples: - - false - type: boolean dependencies: - dist: null category: share diff --git a/apps/code-server/presentation.tf b/apps/code-server/presentation.tf index 902dea2..97d5df6 100644 --- a/apps/code-server/presentation.tf +++ b/apps/code-server/presentation.tf @@ -1,5 +1,5 @@ locals { - dns_name = "${var.instance}.${var.sub_domain}.${var.domain_name}" + dns_name = "${var.instance}.${var.sub-domain}.${var.domain-name}" dns_names = [local.dns_name] app_name = var.component == var.instance ? var.instance : format("%s-%s", var.component, var.instance) icon = "_static/src/browser/media/favicon-dark-support.svg" @@ -34,7 +34,7 @@ module "ingress" { instance = var.instance namespace = var.namespace issuer = var.issuer - ingress_class = var.ingress_class + ingress-class = var.ingress-class labels = local.common-labels dns_names = local.dns_names middlewares = ["forward-${local.app_name}"] @@ -48,7 +48,7 @@ module "application" { source = "/dist/modules/application" component = var.component instance = var.instance - app_group = var.app_group + app-group = var.app-group dns_name = local.dns_name icon = local.icon protocol_provider = module.forward.provider-id @@ -73,7 +73,7 @@ module "forward" { instance = var.instance domain = var.domain namespace = var.namespace - ingress_class = var.ingress_class + ingress-class = var.ingress-class labels = local.common-labels dns_names = local.dns_names service = local.service diff --git a/apps/dbgate/index.yaml b/apps/dbgate/index.yaml index b0b7101..d59901f 100644 --- a/apps/dbgate/index.yaml +++ b/apps/dbgate/index.yaml @@ -6,94 +6,6 @@ metadata: name: dbgate description: null options: - sub_domain: - default: dbgate - examples: - - dbgate - type: string - domain: - default: your-company - examples: - - your-company - type: string - ingress_class: - default: traefik - examples: - - traefik - type: string - app_group: - default: dev - examples: - - dev - type: string - domain_name: - default: your_company.com - examples: - - your_company.com - type: string - issuer: - default: letsencrypt-prod - examples: - - letsencrypt-prod - type: string - pg: - default: [] - examples: - - [] - items: - properties: - dbname: - default: '' - type: string - name: - default: '' - type: string - namespace: - default: '' - type: string - secret: - properties: - key: - default: '' - type: string - name: - default: '' - type: string - type: object - username: - default: '' - type: string - type: object - type: array - maria: - default: [] - examples: - - [] - items: - properties: - dbname: - default: '' - type: string - name: - default: '' - type: string - namespace: - default: '' - type: string - secret: - properties: - key: - default: '' - type: string - name: - default: '' - type: string - type: object - username: - default: '' - type: string - type: object - type: array mongo: default: [] examples: @@ -123,59 +35,6 @@ options: type: string type: object type: array - images: - default: - dbgate: - pullPolicy: IfNotPresent - registry: docker.io - repository: dbgate/dbgate - tag: 5.2.7-alpine - examples: - - dbgate: - pullPolicy: IfNotPresent - registry: docker.io - repository: dbgate/dbgate - tag: 5.2.7-alpine - properties: - dbgate: - default: - pullPolicy: IfNotPresent - registry: docker.io - repository: dbgate/dbgate - tag: 5.2.7-alpine - properties: - pullPolicy: - default: IfNotPresent - enum: - - Always - - Never - - IfNotPresent - type: string - registry: - default: docker.io - type: string - repository: - default: dbgate/dbgate - type: string - tag: - default: 5.2.7-alpine - type: string - type: object - type: object - redis: - default: [] - examples: - - [] - items: - properties: - name: - default: '' - type: string - namespace: - default: '' - type: string - type: object - type: array storage: default: volume: @@ -213,6 +72,147 @@ options: type: string type: object type: object + images: + default: + dbgate: + pullPolicy: IfNotPresent + registry: docker.io + repository: dbgate/dbgate + tag: 5.2.7-alpine + examples: + - dbgate: + pullPolicy: IfNotPresent + registry: docker.io + repository: dbgate/dbgate + tag: 5.2.7-alpine + properties: + dbgate: + default: + pullPolicy: IfNotPresent + registry: docker.io + repository: dbgate/dbgate + tag: 5.2.7-alpine + properties: + pullPolicy: + default: IfNotPresent + enum: + - Always + - Never + - IfNotPresent + type: string + registry: + default: docker.io + type: string + repository: + default: dbgate/dbgate + type: string + tag: + default: 5.2.7-alpine + type: string + type: object + type: object + app-group: + default: dev + examples: + - dev + type: string + sub-domain: + default: dbgate + examples: + - dbgate + type: string + pg: + default: [] + examples: + - [] + items: + properties: + dbname: + default: '' + type: string + name: + default: '' + type: string + namespace: + default: '' + type: string + secret: + properties: + key: + default: '' + type: string + name: + default: '' + type: string + type: object + username: + default: '' + type: string + type: object + type: array + domain-name: + default: your_company.com + examples: + - your_company.com + type: string + maria: + default: [] + examples: + - [] + items: + properties: + dbname: + default: '' + type: string + name: + default: '' + type: string + namespace: + default: '' + type: string + secret: + properties: + key: + default: '' + type: string + name: + default: '' + type: string + type: object + username: + default: '' + type: string + type: object + type: array + domain: + default: your-company + examples: + - your-company + type: string + ingress-class: + default: traefik + examples: + - traefik + type: string + issuer: + default: letsencrypt-prod + examples: + - letsencrypt-prod + type: string + redis: + default: [] + examples: + - [] + items: + properties: + name: + default: '' + type: string + namespace: + default: '' + type: string + type: object + type: array dependencies: - dist: null category: core diff --git a/apps/dbgate/presentation.tf b/apps/dbgate/presentation.tf index 55178f5..d429a72 100644 --- a/apps/dbgate/presentation.tf +++ b/apps/dbgate/presentation.tf @@ -1,5 +1,5 @@ locals { - dns_name = "${var.sub_domain}.${var.domain_name}" + dns_name = "${var.sub-domain}.${var.domain-name}" dns_names = [local.dns_name] app_name = var.component == var.instance ? var.instance : format("%s-%s", var.component, var.instance) icon = "logo192.png" @@ -34,7 +34,7 @@ module "ingress" { instance = var.instance namespace = var.namespace issuer = var.issuer - ingress_class = var.ingress_class + ingress-class = var.ingress-class labels = local.common-labels dns_names = local.dns_names middlewares = [] @@ -48,7 +48,7 @@ module "application" { source = "/dist/modules/application" component = var.component instance = var.instance - app_group = var.app_group + app-group = var.app-group dns_name = local.dns_name icon = local.icon protocol_provider = module.oauth2.provider-id diff --git a/apps/dolibarr/application.tf b/apps/dolibarr/application.tf index 671911e..3f3eddd 100644 --- a/apps/dolibarr/application.tf +++ b/apps/dolibarr/application.tf @@ -61,10 +61,10 @@ resource "authentik_policy_binding" "dolibarr_ldap_access_vynil" { resource "authentik_application" "dolibarr_application_saml" { name = "${var.instance}" slug = "${var.component}-${var.instance}" - group = var.app_group + group = var.app-group protocol_provider = authentik_provider_saml.dolibarr.id - meta_launch_url = format("https://%s.%s", var.sub_domain, var.domain_name) - meta_icon = format("https://%s.%s/%s", var.sub_domain, var.domain_name, "theme/dolibarr_256x256_color.png") + meta_launch_url = format("https://%s.%s", var.sub-domain, var.domain-name) + meta_icon = format("https://%s.%s/%s", var.sub-domain, var.domain-name, "theme/dolibarr_256x256_color.png") } resource "authentik_policy_binding" "dolibarr_saml_access_users" { diff --git a/apps/dolibarr/configmap.tf b/apps/dolibarr/configmap.tf index e5867ed..5ce606c 100644 --- a/apps/dolibarr/configmap.tf +++ b/apps/dolibarr/configmap.tf @@ -167,7 +167,7 @@ resource "kubectl_manifest" "config" { DOLI_ADMIN_LOGIN: "admin_${var.instance}" DOLI_MODULES: "modSociete,modBlockedLog,modSamlConnector,modLdap" DOLI_AUTH: "dolibarr" - DOLI_URL_ROOT: "https://${var.sub_domain}.${var.domain_name}" + DOLI_URL_ROOT: "https://${var.sub-domain}.${var.domain-name}" DOLI_LDAP_PORT: "389" DOLI_LDAP_VERSION: "3" DOLI_LDAP_SERVERTYPE: "openldap" diff --git a/apps/dolibarr/index.yaml b/apps/dolibarr/index.yaml index 887e964..11e275a 100644 --- a/apps/dolibarr/index.yaml +++ b/apps/dolibarr/index.yaml @@ -6,203 +6,23 @@ metadata: name: dolibarr description: null options: - parameters: - default: - MAIN_LANG_DEFAULT: auto - examples: - - MAIN_LANG_DEFAULT: auto - properties: - MAIN_LANG_DEFAULT: - default: auto - type: string - type: object - modules: - default: - - societe - examples: - - - societe - items: - type: string - type: array - images: - default: - dolibarr: - pullPolicy: IfNotPresent - registry: docker.io - repository: sebt3/dolibarr - tag: 18.0.2 - nginx: - pullPolicy: IfNotPresent - registry: docker.io - repository: nginx - tag: alpine - examples: - - dolibarr: - pullPolicy: IfNotPresent - registry: docker.io - repository: sebt3/dolibarr - tag: 18.0.2 - nginx: - pullPolicy: IfNotPresent - registry: docker.io - repository: nginx - tag: alpine - properties: - dolibarr: - default: - pullPolicy: IfNotPresent - registry: docker.io - repository: sebt3/dolibarr - tag: 18.0.2 - properties: - pullPolicy: - default: IfNotPresent - type: string - registry: - default: docker.io - type: string - repository: - default: sebt3/dolibarr - type: string - tag: - default: 18.0.2 - type: string - type: object - nginx: - default: - pullPolicy: IfNotPresent - registry: docker.io - repository: nginx - tag: alpine - properties: - pullPolicy: - default: IfNotPresent - type: string - registry: - default: docker.io - type: string - repository: - default: nginx - type: string - tag: - default: alpine - type: string - type: object - type: object - sub_domain: - default: erp - examples: - - erp - type: string - resources: - default: - limits: - cpu: 200m - memory: 256Mi - requests: - cpu: 50m - memory: 100Mi - examples: - - limits: - cpu: 200m - memory: 256Mi - requests: - cpu: 50m - memory: 100Mi - properties: - limits: - default: - cpu: 200m - memory: 256Mi - properties: - cpu: - default: 200m - type: string - memory: - default: 256Mi - type: string - type: object - requests: - default: - cpu: 50m - memory: 100Mi - properties: - cpu: - default: 50m - type: string - memory: - default: 100Mi - type: string - type: object - type: object - postgres: - default: - replicas: 1 - storage: 5Gi - version: '14' - examples: - - replicas: 1 - storage: 5Gi - version: '14' - properties: - replicas: - default: 1 - type: integer - storage: - default: 5Gi - type: string - version: - default: '14' - type: string - type: object - domain_name: - default: your_company.com - examples: - - your_company.com - type: string - issuer: - default: letsencrypt-prod - examples: - - letsencrypt-prod - type: string redis: default: exporter: enabled: true - image: quay.io/opstree/redis-exporter:v1.44.0 - image: quay.io/opstree/redis:v7.0.12 - storage: 2Gi examples: - exporter: enabled: true - image: quay.io/opstree/redis-exporter:v1.44.0 - image: quay.io/opstree/redis:v7.0.12 - storage: 2Gi properties: exporter: default: enabled: true - image: quay.io/opstree/redis-exporter:v1.44.0 properties: enabled: default: true type: boolean - image: - default: quay.io/opstree/redis-exporter:v1.44.0 - type: string type: object - image: - default: quay.io/opstree/redis:v7.0.12 - type: string - storage: - default: 2Gi - type: string type: object - app_group: - default: '' - examples: - - '' - type: string backups: default: enable: false @@ -309,63 +129,6 @@ options: default: false type: boolean type: object - domain: - default: your-company - examples: - - your-company - type: string - storage: - default: - accessMode: ReadWriteOnce - size: 10Gi - type: Filesystem - examples: - - accessMode: ReadWriteOnce - size: 10Gi - type: Filesystem - properties: - accessMode: - default: ReadWriteOnce - enum: - - ReadWriteOnce - - ReadOnlyMany - - ReadWriteMany - type: string - size: - default: 10Gi - type: string - type: - default: Filesystem - enum: - - Filesystem - - block - type: string - type: object - ingress_class: - default: traefik - examples: - - traefik - type: string - log-level: - default: 5 - examples: - - 5 - type: integer - user-groups: - default: - - admin: true - name: dolibarr-admin - examples: - - - admin: true - name: dolibarr-admin - items: - properties: - admin: - type: boolean - name: - type: string - type: object - type: array hpa: default: avg-cpu: 50 @@ -386,6 +149,335 @@ options: default: 1 type: integer type: object + resources: + default: + limits: + cpu: 200m + memory: 256Mi + requests: + cpu: 50m + memory: 100Mi + examples: + - limits: + cpu: 200m + memory: 256Mi + requests: + cpu: 50m + memory: 100Mi + properties: + limits: + default: + cpu: 200m + memory: 256Mi + properties: + cpu: + default: 200m + type: string + memory: + default: 256Mi + type: string + type: object + requests: + default: + cpu: 50m + memory: 100Mi + properties: + cpu: + default: 50m + type: string + memory: + default: 100Mi + type: string + type: object + type: object + app-group: + default: '' + examples: + - '' + type: string + storage: + default: + postgres: + size: 5Gi + redis: + size: 2Gi + volume: + accessMode: ReadWriteOnce + size: 1Gi + type: Filesystem + description: Configure this app storage + examples: + - postgres: + size: 5Gi + redis: + size: 2Gi + volume: + accessMode: ReadWriteOnce + size: 1Gi + type: Filesystem + properties: + postgres: + default: + size: 5Gi + properties: + size: + default: 5Gi + type: string + type: object + redis: + default: + size: 2Gi + properties: + size: + default: 2Gi + type: string + type: object + volume: + default: + accessMode: ReadWriteOnce + size: 1Gi + type: Filesystem + properties: + accessMode: + default: ReadWriteOnce + enum: + - ReadWriteOnce + - ReadOnlyMany + - ReadWriteMany + type: string + size: + default: 1Gi + type: string + type: + default: Filesystem + enum: + - Filesystem + - Block + type: string + type: object + type: object + ingress-class: + default: traefik + examples: + - traefik + type: string + postgres: + default: + replicas: 1 + examples: + - replicas: 1 + properties: + replicas: + default: 1 + type: integer + type: object + log-level: + default: 5 + examples: + - 5 + type: integer + user-groups: + default: + - admin: true + name: dolibarr-admin + examples: + - - admin: true + name: dolibarr-admin + items: + properties: + admin: + type: boolean + name: + type: string + type: object + type: array + parameters: + default: + MAIN_LANG_DEFAULT: auto + examples: + - MAIN_LANG_DEFAULT: auto + properties: + MAIN_LANG_DEFAULT: + default: auto + type: string + type: object + images: + default: + dolibarr: + pullPolicy: IfNotPresent + registry: docker.io + repository: sebt3/dolibarr + tag: 18.0.2 + nginx: + pullPolicy: IfNotPresent + registry: docker.io + repository: nginx + tag: alpine + postgresql: + registry: ghcr.io + repository: cloudnative-pg/postgresql + tag: 15.3 + redis: + pullPolicy: IfNotPresent + registry: quay.io + repository: opstree/redis + tag: v7.0.12 + redis_exporter: + pullPolicy: IfNotPresent + registry: quay.io + repository: opstree/redis-exporter + tag: v1.44.0 + examples: + - dolibarr: + pullPolicy: IfNotPresent + registry: docker.io + repository: sebt3/dolibarr + tag: 18.0.2 + nginx: + pullPolicy: IfNotPresent + registry: docker.io + repository: nginx + tag: alpine + postgresql: + registry: ghcr.io + repository: cloudnative-pg/postgresql + tag: 15.3 + redis: + pullPolicy: IfNotPresent + registry: quay.io + repository: opstree/redis + tag: v7.0.12 + redis_exporter: + pullPolicy: IfNotPresent + registry: quay.io + repository: opstree/redis-exporter + tag: v1.44.0 + properties: + dolibarr: + default: + pullPolicy: IfNotPresent + registry: docker.io + repository: sebt3/dolibarr + tag: 18.0.2 + properties: + pullPolicy: + default: IfNotPresent + type: string + registry: + default: docker.io + type: string + repository: + default: sebt3/dolibarr + type: string + tag: + default: 18.0.2 + type: string + type: object + nginx: + default: + pullPolicy: IfNotPresent + registry: docker.io + repository: nginx + tag: alpine + properties: + pullPolicy: + default: IfNotPresent + type: string + registry: + default: docker.io + type: string + repository: + default: nginx + type: string + tag: + default: alpine + type: string + type: object + postgresql: + default: + registry: ghcr.io + repository: cloudnative-pg/postgresql + tag: 15.3 + properties: + registry: + default: ghcr.io + type: string + repository: + default: cloudnative-pg/postgresql + type: string + tag: + default: 15.3 + type: number + type: object + redis: + default: + pullPolicy: IfNotPresent + registry: quay.io + repository: opstree/redis + tag: v7.0.12 + properties: + pullPolicy: + default: IfNotPresent + type: string + registry: + default: quay.io + type: string + repository: + default: opstree/redis + type: string + tag: + default: v7.0.12 + type: string + type: object + redis_exporter: + default: + pullPolicy: IfNotPresent + registry: quay.io + repository: opstree/redis-exporter + tag: v1.44.0 + properties: + pullPolicy: + default: IfNotPresent + type: string + registry: + default: quay.io + type: string + repository: + default: opstree/redis-exporter + type: string + tag: + default: v1.44.0 + type: string + type: object + type: object + domain: + default: your-company + examples: + - your-company + type: string + issuer: + default: letsencrypt-prod + examples: + - letsencrypt-prod + type: string + sub-domain: + default: erp + examples: + - erp + type: string + domain-name: + default: your_company.com + examples: + - your_company.com + type: string + modules: + default: + - societe + examples: + - - societe + items: + type: string + type: array dependencies: - dist: null category: share diff --git a/apps/dolibarr/ingress.tf b/apps/dolibarr/ingress.tf index 8dc29b4..902e01d 100644 --- a/apps/dolibarr/ingress.tf +++ b/apps/dolibarr/ingress.tf @@ -1,5 +1,5 @@ locals { - dns_names = ["${var.sub_domain}.${var.domain_name}"] + dns_names = ["${var.sub-domain}.${var.domain-name}"] middlewares = ["${var.instance}-https"] service = { "name" = "${var.instance}" @@ -66,7 +66,7 @@ resource "kubectl_manifest" "prj_ingress" { annotations: "traefik.ingress.kubernetes.io/router.middlewares": "${join(",", [for m in local.middlewares : format("%s-%s@kubernetescrd", var.namespace, m)])}" spec: - ingressClassName: "${var.ingress_class}" + ingressClassName: "${var.ingress-class}" rules: ${jsonencode(local.rules)} tls: - hosts: ${jsonencode(local.dns_names)} diff --git a/apps/dolibarr/ldap.tf b/apps/dolibarr/ldap.tf index a2b13fe..79bb5c0 100644 --- a/apps/dolibarr/ldap.tf +++ b/apps/dolibarr/ldap.tf @@ -5,7 +5,7 @@ data "kubernetes_secret_v1" "authentik" { } } locals { - base-dn = format("dc=%s", join(",dc=", split(".", format("%s.%s", var.sub_domain, var.domain_name)))) + base-dn = format("dc=%s", join(",dc=", split(".", format("%s.%s", var.sub-domain, var.domain-name)))) base-group-dn = format("ou=groups,%s", local.base-dn) base-user-dn = format("ou=users,%s", local.base-dn) authentik_url = "http://authentik.${var.domain}-auth.svc" diff --git a/apps/dolibarr/postgresql.tf b/apps/dolibarr/postgresql.tf index 07376bd..0ca58b2 100644 --- a/apps/dolibarr/postgresql.tf +++ b/apps/dolibarr/postgresql.tf @@ -17,8 +17,9 @@ resource "kubectl_manifest" "prj_pg" { "k8up.io/file-extension": ".sql" spec: instances: ${var.postgres.replicas} + imageName: "${var.images.postgresql.registry}/${var.images.postgresql.repository}:${var.images.postgresql.tag}" storage: - size: "${var.postgres.storage}" + size: "${var.storage.postgres.size}" bootstrap: initdb: database: "${var.component}" diff --git a/apps/dolibarr/redis.tf b/apps/dolibarr/redis.tf index eb4ce4b..e0959b7 100644 --- a/apps/dolibarr/redis.tf +++ b/apps/dolibarr/redis.tf @@ -14,7 +14,7 @@ resource "kubectl_manifest" "dolibarr_redis" { spec: kubernetesConfig: image: "${var.images.redis.registry}/${var.images.redis.repository}:${var.images.redis.tag}" - imagePullPolicy: "IfNotPresent" + imagePullPolicy: "${var.images.redis.pullPolicy}" storage: volumeClaimTemplate: spec: diff --git a/apps/dolibarr/saml.tf b/apps/dolibarr/saml.tf index 7503c26..fbd8a10 100644 --- a/apps/dolibarr/saml.tf +++ b/apps/dolibarr/saml.tf @@ -47,7 +47,7 @@ resource "authentik_provider_saml" "dolibarr" { name = "dolibarr-${var.instance}-saml" authentication_flow = data.authentik_flow.default-authentication-flow.id authorization_flow = data.authentik_flow.default-authorization-flow.id - acs_url = "https://${var.sub_domain}.${var.domain_name}/custom/samlconnector/acs.php?entity=1&fk_idp=0" + acs_url = "https://${var.sub-domain}.${var.domain-name}/custom/samlconnector/acs.php?entity=1&fk_idp=0" property_mappings = data.authentik_property_mapping_saml.saml_maps.ids name_id_mapping = data.authentik_property_mapping_saml.saml_name.id signing_kp = data.authentik_certificate_key_pair.generated.id diff --git a/apps/gitea/index.yaml b/apps/gitea/index.yaml index 1cee935..0513a5d 100644 --- a/apps/gitea/index.yaml +++ b/apps/gitea/index.yaml @@ -9,31 +9,16 @@ metadata: A painless self-hosted Git service. Gitea is a community managed lightweight code hosting solution written in Go. It is published under the MIT license. options: - disable-registration: - default: true + postgres: + default: + replicas: 1 examples: - - true - type: boolean - theme: - default: gitea-modern - examples: - - gitea-modern - type: string - replicas: - default: 1 - examples: - - 1 - type: integer - timezone: - default: Europe/Paris - examples: - - Europe/Paris - type: string - ssh-port: - default: 2222 - examples: - - 2222 - type: integer + - replicas: 1 + properties: + replicas: + default: 1 + type: integer + type: object storage: default: postgres: @@ -95,222 +80,6 @@ options: type: string type: object type: object - domain: - default: your-company - examples: - - your-company - type: string - domain_name: - default: your_company.com - examples: - - your_company.com - type: string - ingress_class: - default: traefik - examples: - - traefik - type: string - load-balancer: - default: - ip: '' - examples: - - ip: '' - properties: - ip: - default: '' - type: string - type: object - backups: - default: - enable: false - endpoint: '' - key-id-key: s3-id - restic-key: bck-password - retention: - db: 30d - keepDaily: 14 - keepMonthly: 12 - keepWeekly: 6 - keepYearly: 12 - schedule: - backup: 10 3 * * * - check: 10 5 * * 1 - db: 10 3 * * * - prune: 10 1 * * 0 - secret-key: s3-secret - secret-name: backup-settings - use-barman: false - examples: - - enable: false - endpoint: '' - key-id-key: s3-id - restic-key: bck-password - retention: - db: 30d - keepDaily: 14 - keepMonthly: 12 - keepWeekly: 6 - keepYearly: 12 - schedule: - backup: 10 3 * * * - check: 10 5 * * 1 - db: 10 3 * * * - prune: 10 1 * * 0 - secret-key: s3-secret - secret-name: backup-settings - use-barman: false - properties: - enable: - default: false - type: boolean - endpoint: - default: '' - type: string - key-id-key: - default: s3-id - type: string - restic-key: - default: bck-password - type: string - retention: - default: - db: 30d - keepDaily: 14 - keepMonthly: 12 - keepWeekly: 6 - keepYearly: 12 - properties: - db: - default: 30d - type: string - keepDaily: - default: 14 - type: integer - keepMonthly: - default: 12 - type: integer - keepWeekly: - default: 6 - type: integer - keepYearly: - default: 12 - type: integer - type: object - schedule: - default: - backup: 10 3 * * * - check: 10 5 * * 1 - db: 10 3 * * * - prune: 10 1 * * 0 - properties: - backup: - default: 10 3 * * * - type: string - check: - default: 10 5 * * 1 - type: string - db: - default: 10 3 * * * - type: string - prune: - default: 10 1 * * 0 - type: string - type: object - secret-key: - default: s3-secret - type: string - secret-name: - default: backup-settings - type: string - use-barman: - default: false - type: boolean - type: object - sub_domain: - default: git - examples: - - git - type: string - default-branch: - default: main - examples: - - main - type: string - app_group: - default: dev - examples: - - dev - type: string - issuer: - default: letsencrypt-prod - examples: - - letsencrypt-prod - type: string - release: - default: 8.3.0 - examples: - - 8.3.0 - type: string - push-create: - default: - org: 'true' - private: 'false' - user: 'true' - examples: - - org: 'true' - private: 'false' - user: 'true' - properties: - org: - default: 'true' - type: string - private: - default: 'false' - type: string - user: - default: 'true' - type: string - type: object - admin: - default: - email: git-admin@git.your_company.com - name: gitea_admin - examples: - - email: git-admin@git.your_company.com - name: gitea_admin - properties: - email: - default: git-admin@git.your_company.com - type: string - name: - default: gitea_admin - type: string - type: object - postgres: - default: - replicas: 1 - examples: - - replicas: 1 - properties: - replicas: - default: 1 - type: integer - type: object - webhook: - default: - allowed-hosts: private - skip-tls-verify: false - examples: - - allowed-hosts: private - skip-tls-verify: false - properties: - allowed-hosts: - default: private - type: string - skip-tls-verify: - default: false - type: boolean - type: object redis: default: exporter: @@ -328,6 +97,16 @@ options: type: boolean type: object type: object + replicas: + default: 1 + examples: + - 1 + type: integer + theme: + default: gitea-modern + examples: + - gitea-modern + type: string images: default: gitea: @@ -459,11 +238,232 @@ options: type: string type: object type: object - ssh-sub_domain: + ssh-sub-domain: default: git examples: - git type: string + app-group: + default: dev + examples: + - dev + type: string + load-balancer: + default: + ip: '' + examples: + - ip: '' + properties: + ip: + default: '' + type: string + type: object + disable-registration: + default: true + examples: + - true + type: boolean + ssh-port: + default: 2222 + examples: + - 2222 + type: integer + sub-domain: + default: git + examples: + - git + type: string + domain-name: + default: your_company.com + examples: + - your_company.com + type: string + release: + default: 8.3.0 + examples: + - 8.3.0 + type: string + default-branch: + default: main + examples: + - main + type: string + push-create: + default: + org: 'true' + private: 'false' + user: 'true' + examples: + - org: 'true' + private: 'false' + user: 'true' + properties: + org: + default: 'true' + type: string + private: + default: 'false' + type: string + user: + default: 'true' + type: string + type: object + admin: + default: + email: git-admin@git.your_company.com + name: gitea_admin + examples: + - email: git-admin@git.your_company.com + name: gitea_admin + properties: + email: + default: git-admin@git.your_company.com + type: string + name: + default: gitea_admin + type: string + type: object + webhook: + default: + allowed-hosts: private + skip-tls-verify: false + examples: + - allowed-hosts: private + skip-tls-verify: false + properties: + allowed-hosts: + default: private + type: string + skip-tls-verify: + default: false + type: boolean + type: object + timezone: + default: Europe/Paris + examples: + - Europe/Paris + type: string + backups: + default: + enable: false + endpoint: '' + key-id-key: s3-id + restic-key: bck-password + retention: + db: 30d + keepDaily: 14 + keepMonthly: 12 + keepWeekly: 6 + keepYearly: 12 + schedule: + backup: 10 3 * * * + check: 10 5 * * 1 + db: 10 3 * * * + prune: 10 1 * * 0 + secret-key: s3-secret + secret-name: backup-settings + use-barman: false + examples: + - enable: false + endpoint: '' + key-id-key: s3-id + restic-key: bck-password + retention: + db: 30d + keepDaily: 14 + keepMonthly: 12 + keepWeekly: 6 + keepYearly: 12 + schedule: + backup: 10 3 * * * + check: 10 5 * * 1 + db: 10 3 * * * + prune: 10 1 * * 0 + secret-key: s3-secret + secret-name: backup-settings + use-barman: false + properties: + enable: + default: false + type: boolean + endpoint: + default: '' + type: string + key-id-key: + default: s3-id + type: string + restic-key: + default: bck-password + type: string + retention: + default: + db: 30d + keepDaily: 14 + keepMonthly: 12 + keepWeekly: 6 + keepYearly: 12 + properties: + db: + default: 30d + type: string + keepDaily: + default: 14 + type: integer + keepMonthly: + default: 12 + type: integer + keepWeekly: + default: 6 + type: integer + keepYearly: + default: 12 + type: integer + type: object + schedule: + default: + backup: 10 3 * * * + check: 10 5 * * 1 + db: 10 3 * * * + prune: 10 1 * * 0 + properties: + backup: + default: 10 3 * * * + type: string + check: + default: 10 5 * * 1 + type: string + db: + default: 10 3 * * * + type: string + prune: + default: 10 1 * * 0 + type: string + type: object + secret-key: + default: s3-secret + type: string + secret-name: + default: backup-settings + type: string + use-barman: + default: false + type: boolean + type: object + ingress-class: + default: traefik + examples: + - traefik + type: string + issuer: + default: letsencrypt-prod + examples: + - letsencrypt-prod + type: string + domain: + default: your-company + examples: + - your-company + type: string dependencies: - dist: null category: share diff --git a/apps/gitea/inline-config.tf b/apps/gitea/inline-config.tf index 16af33a..67a5922 100644 --- a/apps/gitea/inline-config.tf +++ b/apps/gitea/inline-config.tf @@ -43,15 +43,15 @@ ROOT=/data/git/gitea-repositories EOF server = <<-EOF APP_DATA_PATH=/data -DOMAIN=${var.sub_domain}.${var.domain_name} +DOMAIN=${var.sub-domain}.${var.domain-name} ENABLE_PPROF=false HTTP_PORT=3000 PROTOCOL=http -ROOT_URL=https://${var.sub_domain}.${var.domain_name} -SSH_DOMAIN=${var.sub_domain}.${var.domain_name} +ROOT_URL=https://${var.sub-domain}.${var.domain-name} +SSH_DOMAIN=${var.sub-domain}.${var.domain-name} SSH_LISTEN_PORT=2222 SSH_PORT=${var.ssh-port} -SSH_DOMAIN=${var.ssh-sub_domain}.${var.domain_name} +SSH_DOMAIN=${var.ssh-sub-domain}.${var.domain-name} START_SSH_SERVER=true EOF ui = <<-EOF diff --git a/apps/gitea/presentation.tf b/apps/gitea/presentation.tf index 8238ca5..de740da 100644 --- a/apps/gitea/presentation.tf +++ b/apps/gitea/presentation.tf @@ -1,5 +1,5 @@ locals { - dns_name = "${var.sub_domain}.${var.domain_name}" + dns_name = "${var.sub-domain}.${var.domain-name}" dns_names = [local.dns_name] app_name = var.component == var.instance ? var.instance : format("%s-%s", var.component, var.instance) icon = "assets/img/logo.svg" @@ -34,7 +34,7 @@ module "ingress" { instance = var.instance namespace = var.namespace issuer = var.issuer - ingress_class = var.ingress_class + ingress-class = var.ingress-class labels = local.common-labels dns_names = local.dns_names middlewares = [] @@ -48,7 +48,7 @@ module "application" { source = "/dist/modules/application" component = var.component instance = var.instance - app_group = var.app_group + app-group = var.app-group dns_name = local.dns_name icon = local.icon protocol_provider = module.oauth2.provider-id diff --git a/apps/gramo/index.yaml b/apps/gramo/index.yaml index c3c9c33..7269176 100644 --- a/apps/gramo/index.yaml +++ b/apps/gramo/index.yaml @@ -6,26 +6,31 @@ metadata: name: gramo description: null options: - domain: - default: your-company + issuer: + default: letsencrypt-prod examples: - - your-company + - letsencrypt-prod type: string - ingress_class: - default: traefik - examples: - - traefik - type: string - sub_domain: + sub-domain: default: gramo examples: - gramo type: string - cluster-admin: + managed: default: false examples: - false type: boolean + domain-name: + default: your_company.com + examples: + - your_company.com + type: string + namespaces: + default: [] + items: + type: string + type: array images: default: gramo: @@ -65,31 +70,26 @@ options: type: string type: object type: object - managed: + cluster-admin: default: false examples: - false type: boolean - domain_name: - default: your_company.com - examples: - - your_company.com - type: string - namespaces: - default: [] - items: - type: string - type: array - issuer: - default: letsencrypt-prod - examples: - - letsencrypt-prod - type: string - app_group: + app-group: default: infra examples: - infra type: string + ingress-class: + default: traefik + examples: + - traefik + type: string + domain: + default: your-company + examples: + - your-company + type: string dependencies: - dist: null category: share diff --git a/apps/gramo/presentation.tf b/apps/gramo/presentation.tf index 5478068..59baf2f 100644 --- a/apps/gramo/presentation.tf +++ b/apps/gramo/presentation.tf @@ -1,5 +1,5 @@ locals { - dns_name = "${var.sub_domain}.${var.domain_name}" + dns_name = "${var.sub-domain}.${var.domain-name}" dns_names = [local.dns_name] app_name = var.component == var.instance ? var.instance : format("%s-%s", var.component, var.instance) icon = "icon.svg" @@ -34,7 +34,7 @@ module "ingress" { instance = var.instance namespace = var.namespace issuer = var.issuer - ingress_class = var.ingress_class + ingress-class = var.ingress-class labels = local.common-labels dns_names = local.dns_names middlewares = ["forward-${local.app_name}"] @@ -48,7 +48,7 @@ module "application" { source = "git::https://git.solidite.fr/vynil/kydah-modules.git//application" component = var.component instance = var.instance - app_group = var.app_group + app-group = var.app-group dns_name = local.dns_name icon = local.icon protocol_provider = module.forward.provider-id @@ -73,7 +73,7 @@ module "forward" { instance = var.instance domain = var.domain namespace = var.namespace - ingress_class = var.ingress_class + ingress-class = var.ingress-class labels = local.common-labels dns_names = local.dns_names service = local.service diff --git a/apps/k8s-api/index.yaml b/apps/k8s-api/index.yaml index f1b4712..5775147 100644 --- a/apps/k8s-api/index.yaml +++ b/apps/k8s-api/index.yaml @@ -6,30 +6,30 @@ metadata: name: k8s-api description: Access to the kubernetes api options: - ingress_class: - default: traefik + domain-name: + default: your_company.com examples: - - traefik + - your_company.com type: string domain: default: your-company examples: - your-company type: string + sub-domain: + default: api + examples: + - api + type: string issuer: default: letsencrypt-prod examples: - letsencrypt-prod type: string - domain_name: - default: your_company.com + ingress-class: + default: traefik examples: - - your_company.com - type: string - sub_domain: - default: api - examples: - - api + - traefik type: string dependencies: - dist: null diff --git a/apps/k8s-api/ingress.tf b/apps/k8s-api/ingress.tf index 1dc44e5..63e1433 100644 --- a/apps/k8s-api/ingress.tf +++ b/apps/k8s-api/ingress.tf @@ -1,5 +1,5 @@ locals { - dns_names = ["${var.sub_domain}.${var.domain_name}"] + dns_names = ["${var.sub-domain}.${var.domain-name}"] middlewares = [] services = [{ "kind" = "Service" diff --git a/apps/nextcloud/index.yaml b/apps/nextcloud/index.yaml index 2999a8d..0a78fe6 100644 --- a/apps/nextcloud/index.yaml +++ b/apps/nextcloud/index.yaml @@ -6,6 +6,36 @@ metadata: name: nextcloud description: null options: + hpa: + default: + avg-cpu: 50 + max-replicas: 5 + min-replicas: 1 + examples: + - avg-cpu: 50 + max-replicas: 5 + min-replicas: 1 + properties: + avg-cpu: + default: 50 + type: integer + max-replicas: + default: 5 + type: integer + min-replicas: + default: 1 + type: integer + type: object + sub-domain: + default: files + examples: + - files + type: string + ingress-class: + default: traefik + examples: + - traefik + type: string postgres: default: replicas: 1 @@ -16,22 +46,25 @@ options: default: 1 type: integer type: object - redis: - default: - exporter: - enabled: true + openid-name: + default: vynil examples: - - exporter: - enabled: true + - vynil + type: string + domain: + default: your-company + examples: + - your-company + type: string + admin: + default: + name: nextcloud_admin + examples: + - name: nextcloud_admin properties: - exporter: - default: - enabled: true - properties: - enabled: - default: true - type: boolean - type: object + name: + default: nextcloud_admin + type: string type: object apps: default: @@ -123,167 +156,6 @@ options: default: true type: boolean type: object - backups: - default: - enable: false - endpoint: '' - key-id-key: s3-id - restic-key: bck-password - retention: - db: 30d - keepDaily: 14 - keepMonthly: 12 - keepWeekly: 6 - keepYearly: 12 - schedule: - backup: 30 3 * * * - check: 30 5 * * 1 - db: 30 3 * * * - prune: 30 1 * * 0 - secret-key: s3-secret - secret-name: backup-settings - use-barman: false - examples: - - enable: false - endpoint: '' - key-id-key: s3-id - restic-key: bck-password - retention: - db: 30d - keepDaily: 14 - keepMonthly: 12 - keepWeekly: 6 - keepYearly: 12 - schedule: - backup: 30 3 * * * - check: 30 5 * * 1 - db: 30 3 * * * - prune: 30 1 * * 0 - secret-key: s3-secret - secret-name: backup-settings - use-barman: false - properties: - enable: - default: false - type: boolean - endpoint: - default: '' - type: string - key-id-key: - default: s3-id - type: string - restic-key: - default: bck-password - type: string - retention: - default: - db: 30d - keepDaily: 14 - keepMonthly: 12 - keepWeekly: 6 - keepYearly: 12 - properties: - db: - default: 30d - type: string - keepDaily: - default: 14 - type: integer - keepMonthly: - default: 12 - type: integer - keepWeekly: - default: 6 - type: integer - keepYearly: - default: 12 - type: integer - type: object - schedule: - default: - backup: 30 3 * * * - check: 30 5 * * 1 - db: 30 3 * * * - prune: 30 1 * * 0 - properties: - backup: - default: 30 3 * * * - type: string - check: - default: 30 5 * * 1 - type: string - db: - default: 30 3 * * * - type: string - prune: - default: 30 1 * * 0 - type: string - type: object - secret-key: - default: s3-secret - type: string - secret-name: - default: backup-settings - type: string - use-barman: - default: false - type: boolean - type: object - openid-name: - default: vynil - examples: - - vynil - type: string - hpa: - default: - avg-cpu: 50 - max-replicas: 5 - min-replicas: 1 - examples: - - avg-cpu: 50 - max-replicas: 5 - min-replicas: 1 - properties: - avg-cpu: - default: 50 - type: integer - max-replicas: - default: 5 - type: integer - min-replicas: - default: 1 - type: integer - type: object - domain_name: - default: your_company.com - examples: - - your_company.com - type: string - admin: - default: - name: nextcloud_admin - examples: - - name: nextcloud_admin - properties: - name: - default: nextcloud_admin - type: string - type: object - issuer: - default: letsencrypt-prod - examples: - - letsencrypt-prod - type: string - sub_domain: - default: files - examples: - - files - type: string - domain: - default: your-company - examples: - - your-company - type: string images: default: collabora: @@ -539,11 +411,139 @@ options: type: string type: object type: object - ingress_class: - default: traefik + backups: + default: + enable: false + endpoint: '' + key-id-key: s3-id + restic-key: bck-password + retention: + db: 30d + keepDaily: 14 + keepMonthly: 12 + keepWeekly: 6 + keepYearly: 12 + schedule: + backup: 30 3 * * * + check: 30 5 * * 1 + db: 30 3 * * * + prune: 30 1 * * 0 + secret-key: s3-secret + secret-name: backup-settings + use-barman: false examples: - - traefik + - enable: false + endpoint: '' + key-id-key: s3-id + restic-key: bck-password + retention: + db: 30d + keepDaily: 14 + keepMonthly: 12 + keepWeekly: 6 + keepYearly: 12 + schedule: + backup: 30 3 * * * + check: 30 5 * * 1 + db: 30 3 * * * + prune: 30 1 * * 0 + secret-key: s3-secret + secret-name: backup-settings + use-barman: false + properties: + enable: + default: false + type: boolean + endpoint: + default: '' + type: string + key-id-key: + default: s3-id + type: string + restic-key: + default: bck-password + type: string + retention: + default: + db: 30d + keepDaily: 14 + keepMonthly: 12 + keepWeekly: 6 + keepYearly: 12 + properties: + db: + default: 30d + type: string + keepDaily: + default: 14 + type: integer + keepMonthly: + default: 12 + type: integer + keepWeekly: + default: 6 + type: integer + keepYearly: + default: 12 + type: integer + type: object + schedule: + default: + backup: 30 3 * * * + check: 30 5 * * 1 + db: 30 3 * * * + prune: 30 1 * * 0 + properties: + backup: + default: 30 3 * * * + type: string + check: + default: 30 5 * * 1 + type: string + db: + default: 30 3 * * * + type: string + prune: + default: 30 1 * * 0 + type: string + type: object + secret-key: + default: s3-secret + type: string + secret-name: + default: backup-settings + type: string + use-barman: + default: false + type: boolean + type: object + issuer: + default: letsencrypt-prod + examples: + - letsencrypt-prod type: string + domain-name: + default: your_company.com + examples: + - your_company.com + type: string + redis: + default: + exporter: + enabled: true + examples: + - exporter: + enabled: true + properties: + exporter: + default: + enabled: true + properties: + enabled: + default: true + type: boolean + type: object + type: object storage: default: postgres: @@ -605,7 +605,7 @@ options: type: string type: object type: object - app_group: + app-group: default: '' examples: - '' diff --git a/apps/nextcloud/presentation.tf b/apps/nextcloud/presentation.tf index 83b45e0..230e7b7 100644 --- a/apps/nextcloud/presentation.tf +++ b/apps/nextcloud/presentation.tf @@ -1,5 +1,5 @@ locals { - dns_name = "${var.sub_domain}.${var.domain_name}" + dns_name = "${var.sub-domain}.${var.domain-name}" dns-collabora = "collabora.${local.dns_name}" dns-onlyoffice = "onlyoffice.${local.dns_name}" dns_names = [local.dns_name] @@ -31,7 +31,7 @@ module "ingress" { instance = var.instance namespace = var.namespace issuer = var.issuer - ingress_class = var.ingress_class + ingress-class = var.ingress-class labels = local.common-labels dns_names = local.dns_names middlewares = ["${var.instance}-sslenforce", "${var.instance}-redirectdav", "${var.instance}-redirectindex"] @@ -45,7 +45,7 @@ module "application" { source = "/dist/modules/application" component = var.component instance = var.instance - app_group = var.app_group + app-group = var.app-group dns_name = local.dns_name icon = local.icon protocol_provider = module.oauth2.provider-id @@ -90,7 +90,7 @@ module "collabora-ingress" { instance = var.instance namespace = var.namespace issuer = var.issuer - ingress_class = var.ingress_class + ingress-class = var.ingress-class labels = local.collabora-labels dns_names = [local.dns-collabora] middlewares = [] @@ -121,7 +121,7 @@ module "onlyoffice-ingress" { instance = var.instance namespace = var.namespace issuer = var.issuer - ingress_class = var.ingress_class + ingress-class = var.ingress-class labels = local.onlyoffice-labels dns_names = [local.dns-onlyoffice] middlewares = [] diff --git a/apps/okd/index.yaml b/apps/okd/index.yaml index c078a63..c6dbae9 100644 --- a/apps/okd/index.yaml +++ b/apps/okd/index.yaml @@ -6,21 +6,16 @@ metadata: name: okd description: null options: - domain_name: + namespaces: + default: [] + items: + type: string + type: array + domain-name: default: your_company.com examples: - your_company.com type: string - sub_domain: - default: okd - examples: - - okd - type: string - domain: - default: your-company - examples: - - your-company - type: string images: default: okd: @@ -60,36 +55,41 @@ options: type: string type: object type: object - issuer: - default: letsencrypt-prod + ingress-class: + default: traefik examples: - - letsencrypt-prod + - traefik type: string - app_group: + app-group: default: infra examples: - infra type: string + sub-domain: + default: okd + examples: + - okd + type: string + domain: + default: your-company + examples: + - your-company + type: string managed: default: false examples: - false type: boolean - ingress_class: - default: traefik + issuer: + default: letsencrypt-prod examples: - - traefik + - letsencrypt-prod type: string cluster-admin: default: false examples: - false type: boolean - namespaces: - default: [] - items: - type: string - type: array dependencies: - dist: null category: share diff --git a/apps/okd/presentation.tf b/apps/okd/presentation.tf index 0938ed4..af5596a 100644 --- a/apps/okd/presentation.tf +++ b/apps/okd/presentation.tf @@ -1,5 +1,5 @@ locals { - dns_name = "${var.sub_domain}.${var.domain_name}" + dns_name = "${var.sub-domain}.${var.domain-name}" dns_names = [local.dns_name] app_name = var.component == var.instance ? var.instance : format("%s-%s", var.component, var.instance) icon = "static/assets/okd-logo.svg" @@ -34,7 +34,7 @@ module "ingress" { instance = var.instance namespace = var.namespace issuer = var.issuer - ingress_class = var.ingress_class + ingress-class = var.ingress-class labels = local.common-labels dns_names = local.dns_names middlewares = ["forward-${local.app_name}"] @@ -48,7 +48,7 @@ module "application" { source = "/dist/modules/application" component = var.component instance = var.instance - app_group = var.app_group + app-group = var.app-group dns_name = local.dns_name icon = local.icon protocol_provider = module.forward.provider-id @@ -73,7 +73,7 @@ module "forward" { instance = var.instance domain = var.domain namespace = var.namespace - ingress_class = var.ingress_class + ingress-class = var.ingress-class labels = local.common-labels dns_names = local.dns_names service = local.service diff --git a/apps/sonar/index.yaml b/apps/sonar/index.yaml index b0a4ade..3509f62 100644 --- a/apps/sonar/index.yaml +++ b/apps/sonar/index.yaml @@ -6,12 +6,12 @@ metadata: name: sonar description: null options: - ingress_class: + ingress-class: default: traefik examples: - traefik type: string - sub_domain: + sub-domain: default: sonar examples: - sonar @@ -78,7 +78,7 @@ options: examples: - your-company type: string - domain_name: + domain-name: default: your_company.com examples: - your_company.com diff --git a/apps/traefik-ui/index.yaml b/apps/traefik-ui/index.yaml index 0c6fb9c..7196b02 100644 --- a/apps/traefik-ui/index.yaml +++ b/apps/traefik-ui/index.yaml @@ -6,35 +6,35 @@ metadata: name: traefik-ui description: Access to the Traefik UI options: - issuer: - default: letsencrypt-prod + domain-name: + default: your_company.com examples: - - letsencrypt-prod - type: string - app_group: - default: infra - examples: - - infra + - your_company.com type: string domain: default: your-company examples: - your-company type: string - ingress_class: + sub-domain: default: traefik examples: - traefik type: string - sub_domain: + app-group: + default: infra + examples: + - infra + type: string + ingress-class: default: traefik examples: - traefik type: string - domain_name: - default: your_company.com + issuer: + default: letsencrypt-prod examples: - - your_company.com + - letsencrypt-prod type: string dependencies: - dist: null diff --git a/apps/traefik-ui/presentation.tf b/apps/traefik-ui/presentation.tf index 263d114..8dc0eb7 100644 --- a/apps/traefik-ui/presentation.tf +++ b/apps/traefik-ui/presentation.tf @@ -1,5 +1,5 @@ locals { - dns_name = "${var.sub_domain}.${var.domain_name}" + dns_name = "${var.sub-domain}.${var.domain-name}" dns_names = [local.dns_name] app_name = var.component == var.instance ? var.instance : format("%s-%s", var.component, var.instance) icon = "dashboard/statics/icons/favicon-96x96.png" @@ -21,7 +21,7 @@ module "ingress" { instance = var.instance namespace = var.namespace issuer = var.issuer - ingress_class = var.ingress_class + ingress-class = var.ingress-class labels = local.common-labels dns_names = local.dns_names middlewares = ["forward-${local.app_name}"] @@ -35,7 +35,7 @@ module "application" { source = "/dist/modules/application" component = var.component instance = var.instance - app_group = var.app_group + app-group = var.app-group dns_name = local.dns_name icon = local.icon protocol_provider = module.forward.provider-id @@ -60,7 +60,7 @@ module "forward" { instance = var.instance domain = var.domain namespace = var.namespace - ingress_class = var.ingress_class + ingress-class = var.ingress-class labels = local.common-labels dns_names = local.dns_names service = local.service diff --git a/apps/woodpecker/datas.tf b/apps/woodpecker/datas.tf index 663e3cf..acf3c3f 100644 --- a/apps/woodpecker/datas.tf +++ b/apps/woodpecker/datas.tf @@ -150,9 +150,9 @@ data "kustomization_overlay" "data" { - name: WOODPECKER_ADMIN value: "${var.admin-users}" - name: WOODPECKER_HOST - value: "https://${var.sub_domain}.${var.domain_name}" + value: "https://${var.sub-domain}.${var.domain-name}" - name: WOODPECKER_HOST - value: "https://${var.sub_domain}.${var.domain_name}" + value: "https://${var.sub-domain}.${var.domain-name}" envFrom: - secretRef: name: woodpecker-secret diff --git a/apps/woodpecker/gitea_token.tf b/apps/woodpecker/gitea_token.tf index 03654db..9fddbe3 100644 --- a/apps/woodpecker/gitea_token.tf +++ b/apps/woodpecker/gitea_token.tf @@ -22,7 +22,7 @@ resource "gitea_oauth2_app" "prj" { name = var.component confidential_client = true redirect_uris = [ - "https://${var.sub_domain}.${var.domain_name}/authorize" + "https://${var.sub-domain}.${var.domain-name}/authorize" ] } diff --git a/apps/woodpecker/index.yaml b/apps/woodpecker/index.yaml index 8170acb..d1fd7f8 100644 --- a/apps/woodpecker/index.yaml +++ b/apps/woodpecker/index.yaml @@ -6,6 +6,11 @@ metadata: name: woodpecker description: null options: + issuer: + default: letsencrypt-prod + examples: + - letsencrypt-prod + type: string storage-agent: default: size: 10Gi @@ -26,26 +31,21 @@ options: default: 'false' type: string type: object - admin-users: - default: woodpecker,admin + timeouts: + default: + default: '60' + max: '120' examples: - - woodpecker,admin - type: string - domain: - default: your-company - examples: - - your-company - type: string - domain_name: - default: your_company.com - examples: - - your_company.com - type: string - app_group: - default: dev - examples: - - dev - type: string + - default: '60' + max: '120' + properties: + default: + default: '60' + type: string + max: + default: '120' + type: string + type: object images: default: agent: @@ -143,6 +143,26 @@ options: type: string type: object type: object + sub-domain: + default: ci + examples: + - ci + type: string + domain: + default: your-company + examples: + - your-company + type: string + admin-users: + default: woodpecker,admin + examples: + - woodpecker,admin + type: string + app-group: + default: dev + examples: + - dev + type: string storage-server: default: accessMode: ReadWriteOnce @@ -162,35 +182,15 @@ options: default: 10Gi type: string type: object - ingress_class: + ingress-class: default: traefik examples: - traefik type: string - issuer: - default: letsencrypt-prod + domain-name: + default: your_company.com examples: - - letsencrypt-prod - type: string - timeouts: - default: - default: '60' - max: '120' - examples: - - default: '60' - max: '120' - properties: - default: - default: '60' - type: string - max: - default: '120' - type: string - type: object - sub_domain: - default: ci - examples: - - ci + - your_company.com type: string dependencies: - dist: null diff --git a/apps/woodpecker/presentation.tf b/apps/woodpecker/presentation.tf index d097e38..098486e 100644 --- a/apps/woodpecker/presentation.tf +++ b/apps/woodpecker/presentation.tf @@ -1,5 +1,5 @@ locals { - dns_name = "${var.sub_domain}.${var.domain_name}" + dns_name = "${var.sub-domain}.${var.domain-name}" dns_names = [local.dns_name] icon = "favicons/favicon-light-default.png" service = { @@ -16,7 +16,7 @@ module "ingress" { instance = var.instance namespace = var.namespace issuer = var.issuer - ingress_class = var.ingress_class + ingress-class = var.ingress-class labels = local.common-labels dns_names = local.dns_names middlewares = [] @@ -30,7 +30,7 @@ module "application" { source = "/dist/modules/application" component = var.component instance = var.instance - app_group = var.app_group + app-group = var.app-group dns_name = local.dns_name icon = local.icon providers = { diff --git a/meta/domain-apps/apps.tf b/meta/domain-apps/apps.tf index f7f35ce..3422c0a 100644 --- a/meta/domain-apps/apps.tf +++ b/meta/domain-apps/apps.tf @@ -2,15 +2,15 @@ locals { annotations = { "vynil.solidite.fr/meta" = var.component "vynil.solidite.fr/name" = "${var.namespace}-auth" - "vynil.solidite.fr/domain" = var.domain_name + "vynil.solidite.fr/domain" = var.domain-name "vynil.solidite.fr/issuer" = var.issuer - "vynil.solidite.fr/ingress" = var.ingress_class + "vynil.solidite.fr/ingress" = var.ingress-class } global = { "domain" = var.namespace - "domain_name" = var.domain_name + "domain-name" = var.domain-name "issuer" = var.issuer - "ingress_class" = var.ingress_class + "ingress-class" = var.ingress-class "backups" = var.backups } default-mode = var.storage-classes.FilesystemReadWriteMany!=""?"ReadWriteMany":"ReadWriteOnce" diff --git a/meta/domain-apps/index.yaml b/meta/domain-apps/index.yaml index 54fcccc..6ef9696 100644 --- a/meta/domain-apps/index.yaml +++ b/meta/domain-apps/index.yaml @@ -6,6 +6,38 @@ metadata: name: domain-apps description: null options: + domain-name: + default: your_company.com + examples: + - your_company.com + type: string + nextcloud: + default: + enable: false + examples: + - enable: false + properties: + enable: + default: false + type: boolean + type: object + x-vynil-category: apps + x-vynil-package: nextcloud + distributions: + default: + core: core + domain: domain + examples: + - core: core + domain: domain + properties: + core: + default: core + type: string + domain: + default: domain + type: string + type: object backups: default: enable: false @@ -36,48 +68,16 @@ options: default: backup-settings type: string type: object + ingress-class: + default: traefik + examples: + - traefik + type: string domain: default: your-company examples: - your-company type: string - nextcloud: - default: - enable: false - examples: - - enable: false - properties: - enable: - default: false - type: boolean - type: object - x-vynil-category: apps - x-vynil-package: nextcloud - distributions: - default: - core: core - domain: domain - examples: - - core: core - domain: domain - properties: - core: - default: core - type: string - domain: - default: domain - type: string - type: object - issuer: - default: letsencrypt-prod - examples: - - letsencrypt-prod - type: string - domain_name: - default: your_company.com - examples: - - your_company.com - type: string storage-classes: default: BlockReadWriteMany: '' @@ -103,10 +103,10 @@ options: default: '' type: string type: object - ingress_class: - default: traefik + issuer: + default: letsencrypt-prod examples: - - traefik + - letsencrypt-prod type: string dependencies: [] providers: diff --git a/meta/domain-auth/apps.tf b/meta/domain-auth/apps.tf index 945291d..a6dc7e7 100644 --- a/meta/domain-auth/apps.tf +++ b/meta/domain-auth/apps.tf @@ -2,15 +2,15 @@ locals { annotations = { "vynil.solidite.fr/meta" = var.component "vynil.solidite.fr/name" = "${var.namespace}-auth" - "vynil.solidite.fr/domain" = var.domain_name + "vynil.solidite.fr/domain" = var.domain-name "vynil.solidite.fr/issuer" = var.issuer - "vynil.solidite.fr/ingress" = var.ingress_class + "vynil.solidite.fr/ingress" = var.ingress-class } global = { "domain" = var.namespace - "domain_name" = var.domain_name + "domain-name" = var.domain-name "issuer" = var.issuer - "ingress_class" = var.ingress_class + "ingress-class" = var.ingress-class "backups" = var.backups } authentik = { for k, v in var.authentik : k => v if k!="enable" } diff --git a/meta/domain-auth/index.yaml b/meta/domain-auth/index.yaml index 9fca3e5..f996ae3 100644 --- a/meta/domain-auth/index.yaml +++ b/meta/domain-auth/index.yaml @@ -6,121 +6,6 @@ metadata: name: domain-auth description: null options: - employes: - default: - apps: [] - divisions: [] - enable: true - examples: - - apps: [] - divisions: [] - enable: true - properties: - apps: - default: [] - items: - type: string - type: array - divisions: - default: [] - items: - properties: - apps: - items: - type: string - type: array - name: - type: string - teams: - items: - type: object - type: array - type: object - type: array - enable: - default: true - type: boolean - type: object - domain_name: - default: your_company.com - examples: - - your_company.com - type: string - issuer: - default: letsencrypt-prod - examples: - - letsencrypt-prod - type: string - backups: - default: - enable: false - endpoint: '' - key-id-key: s3-id - secret-key: s3-secret - secret-name: backup-settings - examples: - - enable: false - endpoint: '' - key-id-key: s3-id - secret-key: s3-secret - secret-name: backup-settings - properties: - enable: - default: false - type: boolean - endpoint: - default: '' - type: string - key-id-key: - default: s3-id - type: string - secret-key: - default: s3-secret - type: string - secret-name: - default: backup-settings - type: string - type: object - ingress_class: - default: traefik - examples: - - traefik - type: string - authentik-ldap: - default: - enable: false - examples: - - enable: false - properties: - enable: - default: false - type: boolean - type: object - storage-classes: - default: - BlockReadWriteMany: '' - BlockReadWriteOnce: '' - FilesystemReadWriteMany: '' - FilesystemReadWriteOnce: '' - examples: - - BlockReadWriteMany: '' - BlockReadWriteOnce: '' - FilesystemReadWriteMany: '' - FilesystemReadWriteOnce: '' - properties: - BlockReadWriteMany: - default: '' - type: string - BlockReadWriteOnce: - default: '' - type: string - FilesystemReadWriteMany: - default: '' - type: string - FilesystemReadWriteOnce: - default: '' - type: string - type: object fournisseurs: default: apps: [] @@ -156,6 +41,36 @@ options: default: false type: boolean type: object + storage-classes: + default: + BlockReadWriteMany: '' + BlockReadWriteOnce: '' + FilesystemReadWriteMany: '' + FilesystemReadWriteOnce: '' + examples: + - BlockReadWriteMany: '' + BlockReadWriteOnce: '' + FilesystemReadWriteMany: '' + FilesystemReadWriteOnce: '' + properties: + BlockReadWriteMany: + default: '' + type: string + BlockReadWriteOnce: + default: '' + type: string + FilesystemReadWriteMany: + default: '' + type: string + FilesystemReadWriteOnce: + default: '' + type: string + type: object + ingress-class: + default: traefik + examples: + - traefik + type: string authentik: default: enable: true @@ -166,36 +81,11 @@ options: default: true type: boolean type: object - distributions: - default: - core: core - domain: domain - examples: - - core: core - domain: domain - properties: - core: - default: core - type: string - domain: - default: domain - type: string - type: object domain: default: your-company examples: - your-company type: string - authentik-forward: - default: - enable: false - examples: - - enable: false - properties: - enable: - default: false - type: boolean - type: object clients: default: apps: [] @@ -231,6 +121,116 @@ options: default: false type: boolean type: object + domain-name: + default: your_company.com + examples: + - your_company.com + type: string + distributions: + default: + core: core + domain: domain + examples: + - core: core + domain: domain + properties: + core: + default: core + type: string + domain: + default: domain + type: string + type: object + issuer: + default: letsencrypt-prod + examples: + - letsencrypt-prod + type: string + backups: + default: + enable: false + endpoint: '' + key-id-key: s3-id + secret-key: s3-secret + secret-name: backup-settings + examples: + - enable: false + endpoint: '' + key-id-key: s3-id + secret-key: s3-secret + secret-name: backup-settings + properties: + enable: + default: false + type: boolean + endpoint: + default: '' + type: string + key-id-key: + default: s3-id + type: string + secret-key: + default: s3-secret + type: string + secret-name: + default: backup-settings + type: string + type: object + authentik-forward: + default: + enable: false + examples: + - enable: false + properties: + enable: + default: false + type: boolean + type: object + authentik-ldap: + default: + enable: false + examples: + - enable: false + properties: + enable: + default: false + type: boolean + type: object + employes: + default: + apps: [] + divisions: [] + enable: true + examples: + - apps: [] + divisions: [] + enable: true + properties: + apps: + default: [] + items: + type: string + type: array + divisions: + default: [] + items: + properties: + apps: + items: + type: string + type: array + name: + type: string + teams: + items: + type: object + type: array + type: object + type: array + enable: + default: true + type: boolean + type: object dependencies: [] providers: kubernetes: true diff --git a/meta/domain-ci/apps.tf b/meta/domain-ci/apps.tf index a5b61b5..0cac560 100644 --- a/meta/domain-ci/apps.tf +++ b/meta/domain-ci/apps.tf @@ -2,15 +2,15 @@ locals { annotations = { "vynil.solidite.fr/meta" = var.component "vynil.solidite.fr/name" = var.namespace - "vynil.solidite.fr/domain" = var.domain_name + "vynil.solidite.fr/domain" = var.domain-name "vynil.solidite.fr/issuer" = var.issuer - "vynil.solidite.fr/ingress" = var.ingress_class + "vynil.solidite.fr/ingress" = var.ingress-class } global = { "domain" = var.namespace - "domain_name" = var.domain_name + "domain-name" = var.domain-name "issuer" = var.issuer - "ingress_class" = var.ingress_class + "ingress-class" = var.ingress-class "backups" = var.backups } default-mode = var.storage-classes.FilesystemReadWriteMany!=""?"ReadWriteMany":"ReadWriteOnce" diff --git a/meta/domain-ci/index.yaml b/meta/domain-ci/index.yaml index e9ee3be..cf05d52 100644 --- a/meta/domain-ci/index.yaml +++ b/meta/domain-ci/index.yaml @@ -6,6 +6,32 @@ metadata: name: domain-ci description: null options: + domain: + default: your-company + examples: + - your-company + type: string + issuer: + default: letsencrypt-prod + examples: + - letsencrypt-prod + type: string + x-vynil-enum-source: issuer + distributions: + default: + core: core + domain: domain + examples: + - core: core + domain: domain + properties: + core: + default: core + type: string + domain: + default: domain + type: string + type: object backups: default: enable: false @@ -36,21 +62,40 @@ options: default: backup-settings type: string type: object - domain: - default: your-company + gitea: + default: + enable: true examples: - - your-company - type: string - ingress_class: - default: traefik + - enable: true + properties: + enable: + default: true + type: boolean + type: object + x-vynil-category: apps + x-vynil-package: gitea + woodpecker: + default: + enable: false examples: - - traefik - type: string - domain_name: + - enable: false + properties: + enable: + default: false + type: boolean + type: object + x-vynil-category: apps + x-vynil-package: woodpecker + domain-name: default: your_company.com examples: - your_company.com type: string + ingress-class: + default: traefik + examples: + - traefik + type: string storage-classes: default: BlockReadWriteMany: '' @@ -76,51 +121,6 @@ options: default: '' type: string type: object - gitea: - default: - enable: true - examples: - - enable: true - properties: - enable: - default: true - type: boolean - type: object - x-vynil-category: apps - x-vynil-package: gitea - woodpecker: - default: - enable: false - examples: - - enable: false - properties: - enable: - default: false - type: boolean - type: object - x-vynil-category: apps - x-vynil-package: woodpecker - issuer: - default: letsencrypt-prod - examples: - - letsencrypt-prod - type: string - x-vynil-enum-source: issuer - distributions: - default: - core: core - domain: domain - examples: - - core: core - domain: domain - properties: - core: - default: core - type: string - domain: - default: domain - type: string - type: object dependencies: [] providers: kubernetes: true diff --git a/meta/domain-devspaces/apps.tf b/meta/domain-devspaces/apps.tf index e12c350..a5226ad 100644 --- a/meta/domain-devspaces/apps.tf +++ b/meta/domain-devspaces/apps.tf @@ -2,21 +2,21 @@ locals { annotations = { "vynil.solidite.fr/meta" = var.component "vynil.solidite.fr/name" = "${var.domain}-devspaces" - "vynil.solidite.fr/domain" = var.domain_name + "vynil.solidite.fr/domain" = var.domain-name "vynil.solidite.fr/issuer" = var.issuer - "vynil.solidite.fr/ingress" = var.ingress_class + "vynil.solidite.fr/ingress" = var.ingress-class } global = { "domain" = var.domain - "domain_name" = var.domain_name + "domain-name" = var.domain-name "issuer" = var.issuer - "ingress_class" = var.ingress_class + "ingress-class" = var.ingress-class "backups" = var.backups - "app_group" = var.app_group + "app-group" = var.app-group } global-apps = merge(local.global, { - "domain_name" = "devtools.${var.domain_name}" - "app_group" = "dev" + "domain-name" = "devtools.${var.domain-name}" + "app-group" = "dev" }) okd = merge({ "namespaces" = concat([ diff --git a/meta/domain-devspaces/index.yaml b/meta/domain-devspaces/index.yaml index a941f65..22850c1 100644 --- a/meta/domain-devspaces/index.yaml +++ b/meta/domain-devspaces/index.yaml @@ -6,21 +6,57 @@ metadata: name: domain-devspaces description: null options: - distributions: - default: - core: core - domain: domain + domain: + default: your-company examples: - - core: core - domain: domain - properties: - core: - default: core - type: string - domain: - default: domain - type: string - type: object + - your-company + type: string + issuer: + default: letsencrypt-prod + examples: + - letsencrypt-prod + type: string + organisations: + default: [] + examples: + - [] + items: + properties: + datasets: + default: [] + items: + properties: + databases: + default: [] + items: + properties: + name: + default: db + type: string + type: object + type: array + engine: + default: pg + type: string + name: + default: '' + type: string + type: object + type: array + name: + default: '' + type: string + stages: + default: [] + items: + properties: + name: + default: prod + type: string + type: object + type: array + type: object + type: array backups: default: enable: false @@ -51,7 +87,17 @@ options: default: backup-settings type: string type: object - external-redis: + ingress-class: + default: traefik + examples: + - traefik + type: string + stations-sub-domain: + default: code + examples: + - code + type: string + external-marias: default: [] examples: - [] @@ -63,24 +109,45 @@ options: namespace: default: '' type: string - type: object - type: array - stations: - default: [] - examples: - - [] - items: - properties: - name: + secret: + properties: + key: + default: '' + type: string + name: + default: '' + type: string + type: object + username: default: '' type: string - organisations: - default: [] - items: - type: string - type: array type: object type: array + distributions: + default: + core: core + domain: domain + examples: + - core: core + domain: domain + properties: + core: + default: core + type: string + domain: + default: domain + type: string + type: object + app-group: + default: dev + examples: + - dev + type: string + domain-name: + default: your_company.com + examples: + - your_company.com + type: string external-pgs: default: [] examples: @@ -110,16 +177,129 @@ options: type: string type: object type: array - app_group: - default: dev + external-redis: + default: [] examples: - - dev - type: string - haveGitea: - default: false + - [] + items: + properties: + name: + default: '' + type: string + namespace: + default: '' + type: string + type: object + type: array + external-mongos: + default: [] examples: - - false - type: boolean + - [] + items: + properties: + dbname: + default: '' + type: string + name: + default: '' + type: string + namespace: + default: '' + type: string + secret: + properties: + key: + default: '' + type: string + name: + default: '' + type: string + type: object + username: + default: '' + type: string + type: object + type: array + storage-classes: + default: + BlockReadWriteMany: '' + BlockReadWriteOnce: '' + FilesystemReadWriteMany: '' + FilesystemReadWriteOnce: '' + examples: + - BlockReadWriteMany: '' + BlockReadWriteOnce: '' + FilesystemReadWriteMany: '' + FilesystemReadWriteOnce: '' + properties: + BlockReadWriteMany: + default: '' + type: string + BlockReadWriteOnce: + default: '' + type: string + FilesystemReadWriteMany: + default: '' + type: string + FilesystemReadWriteOnce: + default: '' + type: string + type: object + images: + default: + codeserver: + pullPolicy: IfNotPresent + registry: docker.io + repository: sebt3/code-server + tag: 4.18 + examples: + - codeserver: + pullPolicy: IfNotPresent + registry: docker.io + repository: sebt3/code-server + tag: 4.18 + properties: + codeserver: + default: + pullPolicy: IfNotPresent + registry: docker.io + repository: sebt3/code-server + tag: 4.18 + properties: + pullPolicy: + default: IfNotPresent + enum: + - Always + - Never + - IfNotPresent + type: string + registry: + default: docker.io + type: string + repository: + default: sebt3/code-server + type: string + tag: + default: 4.18 + type: number + type: object + type: object + stations: + default: [] + examples: + - [] + items: + properties: + name: + default: '' + type: string + organisations: + default: [] + items: + type: string + type: array + type: object + type: array apps: default: dbgate: @@ -191,191 +371,11 @@ options: type: boolean type: object type: object - external-mongos: - default: [] + haveGitea: + default: false examples: - - [] - items: - properties: - dbname: - default: '' - type: string - name: - default: '' - type: string - namespace: - default: '' - type: string - secret: - properties: - key: - default: '' - type: string - name: - default: '' - type: string - type: object - username: - default: '' - type: string - type: object - type: array - stations-sub_domain: - default: code - examples: - - code - type: string - issuer: - default: letsencrypt-prod - examples: - - letsencrypt-prod - type: string - domain_name: - default: your_company.com - examples: - - your_company.com - type: string - ingress_class: - default: traefik - examples: - - traefik - type: string - organisations: - default: [] - examples: - - [] - items: - properties: - datasets: - default: [] - items: - properties: - databases: - default: [] - items: - properties: - name: - default: db - type: string - type: object - type: array - engine: - default: pg - type: string - name: - default: '' - type: string - type: object - type: array - name: - default: '' - type: string - stages: - default: [] - items: - properties: - name: - default: prod - type: string - type: object - type: array - type: object - type: array - images: - default: - codeserver: - pullPolicy: IfNotPresent - registry: docker.io - repository: sebt3/code-server - tag: 4.18 - examples: - - codeserver: - pullPolicy: IfNotPresent - registry: docker.io - repository: sebt3/code-server - tag: 4.18 - properties: - codeserver: - default: - pullPolicy: IfNotPresent - registry: docker.io - repository: sebt3/code-server - tag: 4.18 - properties: - pullPolicy: - default: IfNotPresent - enum: - - Always - - Never - - IfNotPresent - type: string - registry: - default: docker.io - type: string - repository: - default: sebt3/code-server - type: string - tag: - default: 4.18 - type: number - type: object - type: object - storage-classes: - default: - BlockReadWriteMany: '' - BlockReadWriteOnce: '' - FilesystemReadWriteMany: '' - FilesystemReadWriteOnce: '' - examples: - - BlockReadWriteMany: '' - BlockReadWriteOnce: '' - FilesystemReadWriteMany: '' - FilesystemReadWriteOnce: '' - properties: - BlockReadWriteMany: - default: '' - type: string - BlockReadWriteOnce: - default: '' - type: string - FilesystemReadWriteMany: - default: '' - type: string - FilesystemReadWriteOnce: - default: '' - type: string - type: object - external-marias: - default: [] - examples: - - [] - items: - properties: - name: - default: '' - type: string - namespace: - default: '' - type: string - secret: - properties: - key: - default: '' - type: string - name: - default: '' - type: string - type: object - username: - default: '' - type: string - type: object - type: array - domain: - default: your-company - examples: - - your-company - type: string + - false + type: boolean dependencies: [] providers: kubernetes: true diff --git a/meta/domain-devspaces/stations.tf b/meta/domain-devspaces/stations.tf index e7f6626..44af039 100644 --- a/meta/domain-devspaces/stations.tf +++ b/meta/domain-devspaces/stations.tf @@ -21,7 +21,7 @@ locals { "organisation" = org "usage" = "station" "station" = station - "sub_domain" = "${station.name}.stations" + "sub-domain" = "${station.name}.stations" }) if ds.name == dsname ] ]) if org.name == name diff --git a/meta/domain-erp/apps.tf b/meta/domain-erp/apps.tf index 3c97ee9..381f1fc 100644 --- a/meta/domain-erp/apps.tf +++ b/meta/domain-erp/apps.tf @@ -2,19 +2,18 @@ locals { annotations = { "vynil.solidite.fr/meta" = var.component "vynil.solidite.fr/name" = var.namespace - "vynil.solidite.fr/domain" = var.domain_name + "vynil.solidite.fr/domain" = var.domain-name "vynil.solidite.fr/issuer" = var.issuer - "vynil.solidite.fr/ingress" = var.ingress_class + "vynil.solidite.fr/ingress" = var.ingress-class } annotations_default = { - "vynil.solidite.fr/default/domain_name" = var.domain_name - "vynil.solidite.fr/default/*" = var.domain_name + "vynil.solidite.fr/default/domain-name" = var.domain-name } global = { "domain" = var.namespace - "domain_name" = var.domain_name + "domain-name" = var.domain-name "issuer" = var.issuer - "ingress_class" = var.ingress_class + "ingress-class" = var.ingress-class "backups" = var.backups } default-mode = var.storage-classes.FilesystemReadWriteMany!=""?"ReadWriteMany":"ReadWriteOnce" diff --git a/meta/domain-erp/index.yaml b/meta/domain-erp/index.yaml index fb4e8b1..287f511 100644 --- a/meta/domain-erp/index.yaml +++ b/meta/domain-erp/index.yaml @@ -6,6 +6,63 @@ metadata: name: domain-erp description: null options: + storage-classes: + default: + BlockReadWriteMany: '' + BlockReadWriteOnce: '' + FilesystemReadWriteMany: '' + FilesystemReadWriteOnce: '' + examples: + - BlockReadWriteMany: '' + BlockReadWriteOnce: '' + FilesystemReadWriteMany: '' + FilesystemReadWriteOnce: '' + properties: + BlockReadWriteMany: + default: '' + type: string + BlockReadWriteOnce: + default: '' + type: string + FilesystemReadWriteMany: + default: '' + type: string + FilesystemReadWriteOnce: + default: '' + type: string + type: object + distributions: + default: + core: core + domain: domain + examples: + - core: core + domain: domain + properties: + core: + default: core + type: string + domain: + default: domain + type: string + type: object + dolibarr: + default: + enable: true + examples: + - enable: true + properties: + enable: + default: true + type: boolean + type: object + x-vynil-category: apps + x-vynil-package: dolibarr + ingress-class: + default: traefik + examples: + - traefik + type: string backups: default: enable: false @@ -36,78 +93,21 @@ options: default: backup-settings type: string type: object - ingress_class: - default: traefik + domain-name: + default: your_company.com examples: - - traefik + - your_company.com type: string issuer: default: letsencrypt-prod examples: - letsencrypt-prod type: string - domain_name: - default: your_company.com - examples: - - your_company.com - type: string - distributions: - default: - core: core - domain: domain - examples: - - core: core - domain: domain - properties: - core: - default: core - type: string - domain: - default: domain - type: string - type: object domain: default: your-company examples: - your-company type: string - dolibarr: - default: - enable: true - examples: - - enable: true - properties: - enable: - default: true - type: boolean - type: object - x-vynil-category: apps - x-vynil-package: dolibarr - storage-classes: - default: - BlockReadWriteMany: '' - BlockReadWriteOnce: '' - FilesystemReadWriteMany: '' - FilesystemReadWriteOnce: '' - examples: - - BlockReadWriteMany: '' - BlockReadWriteOnce: '' - FilesystemReadWriteMany: '' - FilesystemReadWriteOnce: '' - properties: - BlockReadWriteMany: - default: '' - type: string - BlockReadWriteOnce: - default: '' - type: string - FilesystemReadWriteMany: - default: '' - type: string - FilesystemReadWriteOnce: - default: '' - type: string - type: object dependencies: [] providers: kubernetes: true diff --git a/meta/domain-infra/apps.tf b/meta/domain-infra/apps.tf index 19ba4fd..72ef934 100644 --- a/meta/domain-infra/apps.tf +++ b/meta/domain-infra/apps.tf @@ -2,17 +2,17 @@ locals { annotations = { "vynil.solidite.fr/meta" = "domain-ci" "vynil.solidite.fr/name" = var.namespace - "vynil.solidite.fr/domain" = var.domain_name + "vynil.solidite.fr/domain" = var.domain-name "vynil.solidite.fr/issuer" = var.issuer - "vynil.solidite.fr/ingress" = var.ingress_class + "vynil.solidite.fr/ingress" = var.ingress-class } global = { "domain" = var.namespace - "domain_name" = "admin.${var.domain_name}" + "domain-name" = "admin.${var.domain-name}" "issuer" = var.issuer - "ingress_class" = var.ingress_class + "ingress-class" = var.ingress-class "backups" = var.backups - "app_group" = var.app_group + "app-group" = var.app-group } traefik = { for k, v in var.traefik : k => v if k!="enable" } dns = { for k, v in var.dns : k => v if k!="enable" } diff --git a/meta/domain-infra/index.yaml b/meta/domain-infra/index.yaml index d8d86c7..01c9756 100644 --- a/meta/domain-infra/index.yaml +++ b/meta/domain-infra/index.yaml @@ -6,6 +6,129 @@ metadata: name: domain-infra description: null options: + dns: + default: + enable: false + examples: + - enable: false + properties: + enable: + default: false + type: boolean + type: object + x-vynil-category: share + x-vynil-package: dns + api: + default: + enable: false + examples: + - enable: false + properties: + enable: + default: false + type: boolean + type: object + traefik: + default: + enable: false + namespace: traefik + examples: + - enable: false + namespace: traefik + properties: + enable: + default: false + type: boolean + namespace: + default: traefik + type: string + type: object + x-vynil-category: apps + x-vynil-package: traefix-ui + app-group: + default: infra + examples: + - infra + type: string + distributions: + default: + core: core + domain: domain + examples: + - core: core + domain: domain + properties: + core: + default: core + type: string + domain: + default: domain + type: string + type: object + storage-classes: + default: + BlockReadWriteMany: '' + BlockReadWriteOnce: '' + FilesystemReadWriteMany: '' + FilesystemReadWriteOnce: '' + examples: + - BlockReadWriteMany: '' + BlockReadWriteOnce: '' + FilesystemReadWriteMany: '' + FilesystemReadWriteOnce: '' + properties: + BlockReadWriteMany: + default: '' + type: string + BlockReadWriteOnce: + default: '' + type: string + FilesystemReadWriteMany: + default: '' + type: string + FilesystemReadWriteOnce: + default: '' + type: string + type: object + issuer: + default: letsencrypt-prod + examples: + - letsencrypt-prod + type: string + okd: + default: + enable: false + examples: + - enable: false + properties: + enable: + default: false + type: boolean + type: object + x-vynil-category: apps + x-vynil-package: okd + gramo: + default: + enable: false + examples: + - enable: false + properties: + enable: + default: false + type: boolean + type: object + x-vynil-category: apps + x-vynil-package: gramo + domain: + default: your-company + examples: + - your-company + type: string + domain-name: + default: your_company.com + examples: + - your_company.com + type: string backups: default: enable: false @@ -36,134 +159,11 @@ options: default: backup-settings type: string type: object - api: - default: - enable: false - examples: - - enable: false - properties: - enable: - default: false - type: boolean - type: object - app_group: - default: infra - examples: - - infra - type: string - gramo: - default: - enable: false - examples: - - enable: false - properties: - enable: - default: false - type: boolean - type: object - x-vynil-category: apps - x-vynil-package: gramo - domain_name: - default: your_company.com - examples: - - your_company.com - type: string - domain: - default: your-company - examples: - - your-company - type: string - okd: - default: - enable: false - examples: - - enable: false - properties: - enable: - default: false - type: boolean - type: object - x-vynil-category: apps - x-vynil-package: okd - issuer: - default: letsencrypt-prod - examples: - - letsencrypt-prod - type: string - distributions: - default: - core: core - domain: domain - examples: - - core: core - domain: domain - properties: - core: - default: core - type: string - domain: - default: domain - type: string - type: object - ingress_class: + ingress-class: default: traefik examples: - traefik type: string - traefik: - default: - enable: false - namespace: traefik - examples: - - enable: false - namespace: traefik - properties: - enable: - default: false - type: boolean - namespace: - default: traefik - type: string - type: object - x-vynil-category: apps - x-vynil-package: traefix-ui - dns: - default: - enable: false - examples: - - enable: false - properties: - enable: - default: false - type: boolean - type: object - x-vynil-category: share - x-vynil-package: dns - storage-classes: - default: - BlockReadWriteMany: '' - BlockReadWriteOnce: '' - FilesystemReadWriteMany: '' - FilesystemReadWriteOnce: '' - examples: - - BlockReadWriteMany: '' - BlockReadWriteOnce: '' - FilesystemReadWriteMany: '' - FilesystemReadWriteOnce: '' - properties: - BlockReadWriteMany: - default: '' - type: string - BlockReadWriteOnce: - default: '' - type: string - FilesystemReadWriteMany: - default: '' - type: string - FilesystemReadWriteOnce: - default: '' - type: string - type: object dependencies: [] providers: kubernetes: true diff --git a/meta/domain-mail/apps.tf b/meta/domain-mail/apps.tf index dcaa429..f47104c 100644 --- a/meta/domain-mail/apps.tf +++ b/meta/domain-mail/apps.tf @@ -2,15 +2,15 @@ locals { annotations = { "vynil.solidite.fr/meta" = var.component "vynil.solidite.fr/name" = var.namespace - "vynil.solidite.fr/domain" = var.domain_name + "vynil.solidite.fr/domain" = var.domain-name "vynil.solidite.fr/issuer" = var.issuer - "vynil.solidite.fr/ingress" = var.ingress_class + "vynil.solidite.fr/ingress" = var.ingress-class } global = { "domain" = var.namespace - "domain_name" = var.domain_name + "domain-name" = var.domain-name "issuer" = var.issuer - "ingress_class" = var.ingress_class + "ingress-class" = var.ingress-class "backups" = var.backups } wildduck = { for k, v in var.wildduck : k => v if k!="enable" } diff --git a/meta/domain-mail/index.yaml b/meta/domain-mail/index.yaml index eb4dbbe..aa12487 100644 --- a/meta/domain-mail/index.yaml +++ b/meta/domain-mail/index.yaml @@ -6,11 +6,76 @@ metadata: name: domain-mail description: null options: - ingress_class: + storage-classes: + default: + BlockReadWriteMany: '' + BlockReadWriteOnce: '' + FilesystemReadWriteMany: '' + FilesystemReadWriteOnce: '' + examples: + - BlockReadWriteMany: '' + BlockReadWriteOnce: '' + FilesystemReadWriteMany: '' + FilesystemReadWriteOnce: '' + properties: + BlockReadWriteMany: + default: '' + type: string + BlockReadWriteOnce: + default: '' + type: string + FilesystemReadWriteMany: + default: '' + type: string + FilesystemReadWriteOnce: + default: '' + type: string + type: object + wildduck: + default: + enable: true + examples: + - enable: true + properties: + enable: + default: true + type: boolean + type: object + distributions: + default: + core: core + domain: domain + examples: + - core: core + domain: domain + properties: + core: + default: core + type: string + domain: + default: domain + type: string + type: object + ingress-class: default: traefik examples: - traefik type: string + domain: + default: your-company + examples: + - your-company + type: string + issuer: + default: letsencrypt-prod + examples: + - letsencrypt-prod + type: string + domain-name: + default: your_company.com + examples: + - your_company.com + type: string backups: default: enable: false @@ -41,46 +106,6 @@ options: default: backup-settings type: string type: object - wildduck: - default: - enable: true - examples: - - enable: true - properties: - enable: - default: true - type: boolean - type: object - domain: - default: your-company - examples: - - your-company - type: string - distributions: - default: - core: core - domain: domain - examples: - - core: core - domain: domain - properties: - core: - default: core - type: string - domain: - default: domain - type: string - type: object - domain_name: - default: your_company.com - examples: - - your_company.com - type: string - issuer: - default: letsencrypt-prod - examples: - - letsencrypt-prod - type: string dependencies: [] providers: kubernetes: true @@ -89,4 +114,5 @@ providers: postgresql: null restapi: null http: null + gitea: null tfaddtype: null diff --git a/meta/domain-monitor/apps.tf b/meta/domain-monitor/apps.tf index 1ba6c7e..9f54eee 100644 --- a/meta/domain-monitor/apps.tf +++ b/meta/domain-monitor/apps.tf @@ -2,17 +2,17 @@ locals { annotations = { "vynil.solidite.fr/meta" = "domain-monitor" "vynil.solidite.fr/name" = var.namespace - "vynil.solidite.fr/domain" = var.domain_name + "vynil.solidite.fr/domain" = var.domain-name "vynil.solidite.fr/issuer" = var.issuer - "vynil.solidite.fr/ingress" = var.ingress_class + "vynil.solidite.fr/ingress" = var.ingress-class } global = { "domain" = var.namespace - "domain_name" = "monitor.${var.domain_name}" + "domain-name" = "monitor.${var.domain-name}" "issuer" = var.issuer - "ingress_class" = var.ingress_class + "ingress-class" = var.ingress-class "backups" = var.backups - "app_group" = var.app_group + "app-group" = var.app-group } grafana = { for k, v in var.grafana : k => v if k!="enable" } prometheus = { for k, v in var.prometheus : k => v if k!="enable" } diff --git a/meta/domain-monitor/index.yaml b/meta/domain-monitor/index.yaml index c0cd100..134f307 100644 --- a/meta/domain-monitor/index.yaml +++ b/meta/domain-monitor/index.yaml @@ -6,6 +6,83 @@ metadata: name: domain-monitor description: null options: + dashboards-workload: + default: + enable: true + examples: + - enable: true + properties: + enable: + default: true + type: boolean + type: object + x-vynil-category: monitor + x-vynil-package: dashboards-workload + loki: + default: + enable: true + examples: + - enable: true + properties: + enable: + default: true + type: boolean + type: object + x-vynil-category: monitor + x-vynil-package: loki + dashboards-minimal: + default: + enable: true + examples: + - enable: true + properties: + enable: + default: true + type: boolean + type: object + x-vynil-category: monitor + x-vynil-package: dashboards-minimal + app-group: + default: monitor + examples: + - monitor + type: string + node-exporter: + default: + enable: true + examples: + - enable: true + properties: + enable: + default: true + type: boolean + type: object + x-vynil-category: monitor + x-vynil-package: node-exporter + grafana: + default: + enable: true + examples: + - enable: true + properties: + enable: + default: true + type: boolean + type: object + x-vynil-category: monitor + x-vynil-package: grafana + dashboards-cluster: + default: + enable: true + examples: + - enable: true + properties: + enable: + default: true + type: boolean + type: object + x-vynil-category: monitor + x-vynil-package: dashboards-cluster domain: default: your-company examples: @@ -23,7 +100,7 @@ options: type: object x-vynil-category: monitor x-vynil-package: alerts-containers - loki: + prometheus: default: enable: true examples: @@ -34,7 +111,19 @@ options: type: boolean type: object x-vynil-category: monitor - x-vynil-package: loki + x-vynil-package: prometheus + alertmanager: + default: + enable: true + examples: + - enable: true + properties: + enable: + default: true + type: boolean + type: object + x-vynil-category: monitor + x-vynil-package: alertmanager promtail: default: enable: true @@ -47,7 +136,32 @@ options: type: object x-vynil-category: monitor x-vynil-package: promtail - kube-state-metrics: + storage-classes: + default: + BlockReadWriteMany: '' + BlockReadWriteOnce: '' + FilesystemReadWriteMany: '' + FilesystemReadWriteOnce: '' + examples: + - BlockReadWriteMany: '' + BlockReadWriteOnce: '' + FilesystemReadWriteMany: '' + FilesystemReadWriteOnce: '' + properties: + BlockReadWriteMany: + default: '' + type: string + BlockReadWriteOnce: + default: '' + type: string + FilesystemReadWriteMany: + default: '' + type: string + FilesystemReadWriteOnce: + default: '' + type: string + type: object + alerts-core: default: enable: true examples: @@ -58,46 +172,7 @@ options: type: boolean type: object x-vynil-category: monitor - x-vynil-package: kube-state-metrics - dashboards-cluster: - default: - enable: true - examples: - - enable: true - properties: - enable: - default: true - type: boolean - type: object - x-vynil-category: monitor - x-vynil-package: dashboards-cluster - ingress_class: - default: traefik - examples: - - traefik - type: string - app_group: - default: monitor - examples: - - monitor - type: string - issuer: - default: letsencrypt-prod - examples: - - letsencrypt-prod - type: string - grafana: - default: - enable: true - examples: - - enable: true - properties: - enable: - default: true - type: boolean - type: object - x-vynil-category: monitor - x-vynil-package: grafana + x-vynil-package: alerts-core monitor-control-plan: default: enable: false @@ -110,18 +185,6 @@ options: type: object x-vynil-category: monitor x-vynil-package: monitor-control-plan - dashboards-workload: - default: - enable: true - examples: - - enable: true - properties: - enable: - default: true - type: boolean - type: object - x-vynil-category: monitor - x-vynil-package: dashboards-workload backups: default: enable: false @@ -152,18 +215,11 @@ options: default: backup-settings type: string type: object - alerts-core: - default: - enable: true + issuer: + default: letsencrypt-prod examples: - - enable: true - properties: - enable: - default: true - type: boolean - type: object - x-vynil-category: monitor - x-vynil-package: alerts-core + - letsencrypt-prod + type: string dashboards-namespace: default: enable: true @@ -176,23 +232,6 @@ options: type: object x-vynil-category: monitor x-vynil-package: dashboards-namespace - domain_name: - default: your_company.com - examples: - - your_company.com - type: string - dashboards-minimal: - default: - enable: true - examples: - - enable: true - properties: - enable: - default: true - type: boolean - type: object - x-vynil-category: monitor - x-vynil-package: dashboards-minimal distributions: default: core: core @@ -208,32 +247,12 @@ options: default: domain type: string type: object - storage-classes: - default: - BlockReadWriteMany: '' - BlockReadWriteOnce: '' - FilesystemReadWriteMany: '' - FilesystemReadWriteOnce: '' + ingress-class: + default: traefik examples: - - BlockReadWriteMany: '' - BlockReadWriteOnce: '' - FilesystemReadWriteMany: '' - FilesystemReadWriteOnce: '' - properties: - BlockReadWriteMany: - default: '' - type: string - BlockReadWriteOnce: - default: '' - type: string - FilesystemReadWriteMany: - default: '' - type: string - FilesystemReadWriteOnce: - default: '' - type: string - type: object - prometheus: + - traefik + type: string + kube-state-metrics: default: enable: true examples: @@ -244,31 +263,12 @@ options: type: boolean type: object x-vynil-category: monitor - x-vynil-package: prometheus - alertmanager: - default: - enable: true + x-vynil-package: kube-state-metrics + domain-name: + default: your_company.com examples: - - enable: true - properties: - enable: - default: true - type: boolean - type: object - x-vynil-category: monitor - x-vynil-package: alertmanager - node-exporter: - default: - enable: true - examples: - - enable: true - properties: - enable: - default: true - type: boolean - type: object - x-vynil-category: monitor - x-vynil-package: node-exporter + - your_company.com + type: string dependencies: [] providers: kubernetes: true diff --git a/meta/domain/index.yaml b/meta/domain/index.yaml index b813ed7..d85a530 100644 --- a/meta/domain/index.yaml +++ b/meta/domain/index.yaml @@ -6,140 +6,11 @@ metadata: name: domain description: null options: - storage-classes: - default: - BlockReadWriteMany: '' - BlockReadWriteOnce: '' - FilesystemReadWriteMany: '' - FilesystemReadWriteOnce: '' + domain-name: + default: your_company.com examples: - - BlockReadWriteMany: '' - BlockReadWriteOnce: '' - FilesystemReadWriteMany: '' - FilesystemReadWriteOnce: '' - properties: - BlockReadWriteMany: - default: '' - type: string - BlockReadWriteOnce: - default: '' - type: string - FilesystemReadWriteMany: - default: '' - type: string - FilesystemReadWriteOnce: - default: '' - type: string - type: object - ci: - default: - enable: false - gitea: - enable: true - examples: - - enable: false - gitea: - enable: true - properties: - enable: - default: false - type: boolean - gitea: - default: - enable: true - properties: - enable: - default: true - type: boolean - type: object - type: object - x-vynil-category: meta - x-vynil-package: domain-ci - monitor: - default: - enable: false - examples: - - enable: false - properties: - enable: - default: false - type: boolean - type: object - x-vynil-category: meta - x-vynil-package: domain-monitor - distributions: - default: - core: core - domain: domain - examples: - - core: core - domain: domain - properties: - core: - default: core - type: string - domain: - default: domain - type: string - type: object - infra: - default: - enable: false - traefik: - enable: false - examples: - - enable: false - traefik: - enable: false - properties: - enable: - default: false - type: boolean - traefik: - default: - enable: false - properties: - enable: - default: false - type: boolean - type: object - type: object - x-vynil-category: meta - x-vynil-package: domain-infra - issuer: - default: letsencrypt-prod - examples: - - letsencrypt-prod + - your_company.com type: string - ingress_class: - default: traefik - examples: - - traefik - type: string - erp: - default: - dolibarr: - enable: true - enable: false - examples: - - dolibarr: - enable: true - enable: false - properties: - dolibarr: - default: - enable: true - properties: - enable: - default: true - type: boolean - type: object - enable: - default: false - type: boolean - type: object - x-vynil-category: meta - x-vynil-package: domain-erp apps: default: enable: false @@ -186,6 +57,104 @@ options: type: boolean type: object type: object + storage-classes: + default: + BlockReadWriteMany: '' + BlockReadWriteOnce: '' + FilesystemReadWriteMany: '' + FilesystemReadWriteOnce: '' + examples: + - BlockReadWriteMany: '' + BlockReadWriteOnce: '' + FilesystemReadWriteMany: '' + FilesystemReadWriteOnce: '' + properties: + BlockReadWriteMany: + default: '' + type: string + BlockReadWriteOnce: + default: '' + type: string + FilesystemReadWriteMany: + default: '' + type: string + FilesystemReadWriteOnce: + default: '' + type: string + type: object + auth: + default: + authentik: + enable: true + enable: true + examples: + - authentik: + enable: true + enable: true + properties: + authentik: + default: + enable: true + properties: + enable: + default: true + type: boolean + type: object + enable: + default: true + type: boolean + type: object + x-vynil-category: meta + x-vynil-package: domain-auth + distributions: + default: + core: core + domain: domain + examples: + - core: core + domain: domain + properties: + core: + default: core + type: string + domain: + default: domain + type: string + type: object + issuer: + default: letsencrypt-prod + examples: + - letsencrypt-prod + type: string + infra: + default: + enable: false + traefik: + enable: false + examples: + - enable: false + traefik: + enable: false + properties: + enable: + default: false + type: boolean + traefik: + default: + enable: false + properties: + enable: + default: false + type: boolean + type: object + type: object + x-vynil-category: meta + x-vynil-package: domain-infra + ingress-class: + default: traefik + examples: + - traefik + type: string devspaces: default: enable: false @@ -198,6 +167,66 @@ options: type: object x-vynil-category: meta x-vynil-package: domain-devspaces + ci: + default: + enable: false + gitea: + enable: true + examples: + - enable: false + gitea: + enable: true + properties: + enable: + default: false + type: boolean + gitea: + default: + enable: true + properties: + enable: + default: true + type: boolean + type: object + type: object + x-vynil-category: meta + x-vynil-package: domain-ci + erp: + default: + dolibarr: + enable: true + enable: false + examples: + - dolibarr: + enable: true + enable: false + properties: + dolibarr: + default: + enable: true + properties: + enable: + default: true + type: boolean + type: object + enable: + default: false + type: boolean + type: object + x-vynil-category: meta + x-vynil-package: domain-erp + monitor: + default: + enable: false + examples: + - enable: false + properties: + enable: + default: false + type: boolean + type: object + x-vynil-category: meta + x-vynil-package: domain-monitor backups: default: enable: false @@ -228,35 +257,6 @@ options: default: backup-settings type: string type: object - domain_name: - default: your_company.com - examples: - - your_company.com - type: string - auth: - default: - authentik: - enable: true - enable: true - examples: - - authentik: - enable: true - enable: true - properties: - authentik: - default: - enable: true - properties: - enable: - default: true - type: boolean - type: object - enable: - default: true - type: boolean - type: object - x-vynil-category: meta - x-vynil-package: domain-auth dependencies: [] providers: kubernetes: null diff --git a/meta/domain/installs.tf b/meta/domain/installs.tf index 2c4aa1e..7861d15 100644 --- a/meta/domain/installs.tf +++ b/meta/domain/installs.tf @@ -1,9 +1,9 @@ locals { global = { "domain" = var.namespace - "domain_name" = var.domain_name + "domain-name" = var.domain-name "issuer" = var.issuer - "ingress_class" = var.ingress_class + "ingress-class" = var.ingress-class "distributions" = var.distributions "backups" = var.backups "storage-classes"= var.storage-classes @@ -11,9 +11,9 @@ locals { annotations = { "vynil.solidite.fr/meta" = var.component "vynil.solidite.fr/name" = var.namespace - "vynil.solidite.fr/domain" = var.domain_name + "vynil.solidite.fr/domain" = var.domain-name "vynil.solidite.fr/issuer" = var.issuer - "vynil.solidite.fr/ingress" = var.ingress_class + "vynil.solidite.fr/ingress" = var.ingress-class } auth = { for k, v in var.auth : k => v if k!="enable" } infra = { for k, v in var.infra : k => v if k!="enable" } diff --git a/modules/application/application.tf b/modules/application/application.tf index 6b9d03d..d66b910 100644 --- a/modules/application/application.tf +++ b/modules/application/application.tf @@ -19,7 +19,7 @@ resource "authentik_group" "subgroup" { resource "authentik_application" "prj_app" { name = "${var.instance}" slug = "${var.component}-${var.instance}" - group = var.app_group + group = var.app-group protocol_provider = var.protocol_provider backchannel_providers = var.backchannel_providers meta_launch_url = format("https://%s", var.dns_name) diff --git a/modules/application/variables.tf b/modules/application/variables.tf index b2398ee..6834e6a 100644 --- a/modules/application/variables.tf +++ b/modules/application/variables.tf @@ -7,7 +7,7 @@ variable "instance" { variable "icon" { type = string } -variable "app_group" { +variable "app-group" { type = string } variable "protocol_provider" { diff --git a/modules/forward/forward.tf b/modules/forward/forward.tf index c854473..cb68717 100644 --- a/modules/forward/forward.tf +++ b/modules/forward/forward.tf @@ -28,7 +28,7 @@ resource "kubectl_manifest" "prj_ingress_icon" { namespace: "${var.namespace}" labels: ${jsonencode(var.labels)} spec: - ingressClassName: "${var.ingress_class}" + ingressClassName: "${var.ingress-class}" rules: ${jsonencode(local.rules-icons)} tls: - hosts: ${jsonencode(var.dns_names)} diff --git a/modules/forward/variables.tf b/modules/forward/variables.tf index b612b8a..d11bb51 100644 --- a/modules/forward/variables.tf +++ b/modules/forward/variables.tf @@ -13,7 +13,7 @@ variable "domain" { variable "namespace" { type = string } -variable "ingress_class" { +variable "ingress-class" { type = string } variable "labels" { diff --git a/modules/ingress/ingress.tf b/modules/ingress/ingress.tf index 76d5ae4..d392032 100644 --- a/modules/ingress/ingress.tf +++ b/modules/ingress/ingress.tf @@ -61,7 +61,7 @@ resource "kubectl_manifest" "prj_ingress" { annotations: "traefik.ingress.kubernetes.io/router.middlewares": "${join(",", [for m in concat(["${var.instance}-https"],var.middlewares) : format("%s-%s@kubernetescrd", var.namespace, m)])}" spec: - ingressClassName: "${var.ingress_class}" + ingressClassName: "${var.ingress-class}" rules: ${jsonencode(local.rules)} tls: - hosts: ${jsonencode(var.dns_names)} diff --git a/modules/ingress/variables.tf b/modules/ingress/variables.tf index ee55242..b54db32 100644 --- a/modules/ingress/variables.tf +++ b/modules/ingress/variables.tf @@ -10,7 +10,7 @@ variable "namespace" { variable "issuer" { type = string } -variable "ingress_class" { +variable "ingress-class" { type = string } diff --git a/monitor/alertmanager/index.yaml b/monitor/alertmanager/index.yaml index 5a4e333..cc25619 100644 --- a/monitor/alertmanager/index.yaml +++ b/monitor/alertmanager/index.yaml @@ -6,21 +6,56 @@ metadata: name: alertmanager description: null options: - sub_domain: - default: alertmanager - examples: - - alertmanager - type: string issuer: default: letsencrypt-prod examples: - letsencrypt-prod type: string - app_group: + logLevel: + default: info + examples: + - info + type: string + ingress-class: + default: traefik + examples: + - traefik + type: string + retention: + default: 120h + examples: + - 120h + type: string + app-group: default: monitor examples: - monitor type: string + domain-name: + default: your_company.com + examples: + - your_company.com + type: string + domain: + default: your-company + examples: + - your-company + type: string + replicas: + default: 1 + examples: + - 1 + type: integer + listenLocal: + default: false + examples: + - false + type: boolean + sub-domain: + default: alertmanager + examples: + - alertmanager + type: string images: default: alertmanager: @@ -60,41 +95,6 @@ options: type: string type: object type: object - logLevel: - default: info - examples: - - info - type: string - domain_name: - default: your_company.com - examples: - - your_company.com - type: string - retention: - default: 120h - examples: - - 120h - type: string - ingress_class: - default: traefik - examples: - - traefik - type: string - listenLocal: - default: false - examples: - - false - type: boolean - domain: - default: your-company - examples: - - your-company - type: string - replicas: - default: 1 - examples: - - 1 - type: integer dependencies: - dist: null category: share diff --git a/monitor/alertmanager/monitoring.coreos.com_v1_Alertmanager_alertmanager-kube-promethe-alertmanager.yaml b/monitor/alertmanager/monitoring.coreos.com_v1_Alertmanager_alertmanager-kube-promethe-alertmanager.yaml index 46ce7ef..57e40c6 100644 --- a/monitor/alertmanager/monitoring.coreos.com_v1_Alertmanager_alertmanager-kube-promethe-alertmanager.yaml +++ b/monitor/alertmanager/monitoring.coreos.com_v1_Alertmanager_alertmanager-kube-promethe-alertmanager.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: alertmanager - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "alertmanager" heritage: "Helm" spec: diff --git a/monitor/alertmanager/monitoring.coreos.com_v1_PrometheusRule_alertmanager-kube-promethe-alertmanager.rules.yaml b/monitor/alertmanager/monitoring.coreos.com_v1_PrometheusRule_alertmanager-kube-promethe-alertmanager.rules.yaml index 58dffb6..6d8850a 100644 --- a/monitor/alertmanager/monitoring.coreos.com_v1_PrometheusRule_alertmanager-kube-promethe-alertmanager.rules.yaml +++ b/monitor/alertmanager/monitoring.coreos.com_v1_PrometheusRule_alertmanager-kube-promethe-alertmanager.rules.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: alertmanager - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "alertmanager" heritage: "Helm" spec: diff --git a/monitor/alertmanager/monitoring.coreos.com_v1_ServiceMonitor_alertmanager-kube-promethe-alertmanager.yaml b/monitor/alertmanager/monitoring.coreos.com_v1_ServiceMonitor_alertmanager-kube-promethe-alertmanager.yaml index aaf094e..6954e15 100644 --- a/monitor/alertmanager/monitoring.coreos.com_v1_ServiceMonitor_alertmanager-kube-promethe-alertmanager.yaml +++ b/monitor/alertmanager/monitoring.coreos.com_v1_ServiceMonitor_alertmanager-kube-promethe-alertmanager.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: alertmanager - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "alertmanager" heritage: "Helm" spec: diff --git a/monitor/alertmanager/presentation.tf b/monitor/alertmanager/presentation.tf index c7751af..7564066 100644 --- a/monitor/alertmanager/presentation.tf +++ b/monitor/alertmanager/presentation.tf @@ -1,5 +1,5 @@ locals { - dns_name = "${var.sub_domain}.${var.domain_name}" + dns_name = "${var.sub-domain}.${var.domain-name}" dns_names = [local.dns_name] app_name = var.component == var.instance ? var.instance : format("%s-%s", var.component, var.instance) icon = "favicon.ico" @@ -21,7 +21,7 @@ module "ingress" { instance = var.instance namespace = var.namespace issuer = var.issuer - ingress_class = var.ingress_class + ingress-class = var.ingress-class labels = local.common-labels dns_names = local.dns_names middlewares = ["forward-${local.app_name}"] @@ -35,7 +35,7 @@ module "application" { source = "git::https://git.solidite.fr/vynil/kydah-modules.git//application" component = var.component instance = var.instance - app_group = var.app_group + app-group = var.app-group dns_name = local.dns_name icon = local.icon protocol_provider = module.forward.provider-id @@ -60,7 +60,7 @@ module "forward" { instance = var.instance domain = var.domain namespace = var.namespace - ingress_class = var.ingress_class + ingress-class = var.ingress-class labels = local.common-labels dns_names = local.dns_names service = local.service diff --git a/monitor/alertmanager/v1_ConfigMap_alertmanager-kube-promethe-alertmanager-overview.yaml b/monitor/alertmanager/v1_ConfigMap_alertmanager-kube-promethe-alertmanager-overview.yaml index ddd41c4..bd706b9 100644 --- a/monitor/alertmanager/v1_ConfigMap_alertmanager-kube-promethe-alertmanager-overview.yaml +++ b/monitor/alertmanager/v1_ConfigMap_alertmanager-kube-promethe-alertmanager-overview.yaml @@ -12,9 +12,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: alertmanager - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "alertmanager" heritage: "Helm" data: diff --git a/monitor/alertmanager/v1_Secret_alertmanager-alertmanager-kube-promethe-alertmanager.yaml b/monitor/alertmanager/v1_Secret_alertmanager-alertmanager-kube-promethe-alertmanager.yaml index eda6028..86c3471 100644 --- a/monitor/alertmanager/v1_Secret_alertmanager-alertmanager-kube-promethe-alertmanager.yaml +++ b/monitor/alertmanager/v1_Secret_alertmanager-alertmanager-kube-promethe-alertmanager.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: alertmanager - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "alertmanager" heritage: "Helm" data: diff --git a/monitor/alertmanager/v1_ServiceAccount_alertmanager-kube-promethe-alertmanager.yaml b/monitor/alertmanager/v1_ServiceAccount_alertmanager-kube-promethe-alertmanager.yaml index d10ced8..5c9a310 100644 --- a/monitor/alertmanager/v1_ServiceAccount_alertmanager-kube-promethe-alertmanager.yaml +++ b/monitor/alertmanager/v1_ServiceAccount_alertmanager-kube-promethe-alertmanager.yaml @@ -12,9 +12,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: alertmanager - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "alertmanager" heritage: "Helm" automountServiceAccountToken: true \ No newline at end of file diff --git a/monitor/alerts-containers/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-k8s.rules.container-cpu-usage-seconds.yaml b/monitor/alerts-containers/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-k8s.rules.container-cpu-usage-seconds.yaml index 47d0997..930463c 100644 --- a/monitor/alerts-containers/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-k8s.rules.container-cpu-usage-seconds.yaml +++ b/monitor/alerts-containers/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-k8s.rules.container-cpu-usage-seconds.yaml @@ -10,9 +10,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.3" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.3 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" spec: diff --git a/monitor/alerts-containers/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-k8s.rules.container-memory-cache.yaml b/monitor/alerts-containers/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-k8s.rules.container-memory-cache.yaml index f22fefc..6ee5179 100644 --- a/monitor/alerts-containers/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-k8s.rules.container-memory-cache.yaml +++ b/monitor/alerts-containers/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-k8s.rules.container-memory-cache.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.3" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.3 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" spec: diff --git a/monitor/alerts-containers/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-k8s.rules.container-memory-rss.yaml b/monitor/alerts-containers/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-k8s.rules.container-memory-rss.yaml index ba66872..f513eea 100644 --- a/monitor/alerts-containers/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-k8s.rules.container-memory-rss.yaml +++ b/monitor/alerts-containers/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-k8s.rules.container-memory-rss.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.3" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.3 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" spec: diff --git a/monitor/alerts-containers/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-k8s.rules.container-memory-swap.yaml b/monitor/alerts-containers/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-k8s.rules.container-memory-swap.yaml index 598a7d5..b204e46 100644 --- a/monitor/alerts-containers/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-k8s.rules.container-memory-swap.yaml +++ b/monitor/alerts-containers/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-k8s.rules.container-memory-swap.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.3" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.3 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" spec: diff --git a/monitor/alerts-containers/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-k8s.rules.container-memory-working-se.yaml b/monitor/alerts-containers/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-k8s.rules.container-memory-working-se.yaml index aa82c3f..038cc75 100644 --- a/monitor/alerts-containers/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-k8s.rules.container-memory-working-se.yaml +++ b/monitor/alerts-containers/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-k8s.rules.container-memory-working-se.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.3" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.3 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" spec: diff --git a/monitor/alerts-containers/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-k8s.rules.container-resource.yaml b/monitor/alerts-containers/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-k8s.rules.container-resource.yaml index 0a0db83..e493c25 100644 --- a/monitor/alerts-containers/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-k8s.rules.container-resource.yaml +++ b/monitor/alerts-containers/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-k8s.rules.container-resource.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.3" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.3 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" spec: diff --git a/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-config-reloaders.yaml b/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-config-reloaders.yaml index a54626f..989f4a9 100644 --- a/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-config-reloaders.yaml +++ b/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-config-reloaders.yaml @@ -10,9 +10,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.3" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.3 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" spec: diff --git a/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-general.rules.yaml b/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-general.rules.yaml index d964a80..65fc0e0 100644 --- a/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-general.rules.yaml +++ b/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-general.rules.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.3" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.3 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" spec: diff --git a/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-k8s.rules.pod-owner.yaml b/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-k8s.rules.pod-owner.yaml index 7a7d842..3dd118b 100644 --- a/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-k8s.rules.pod-owner.yaml +++ b/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-k8s.rules.pod-owner.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.3" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.3 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" spec: diff --git a/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kube-prometheus-general.rules.yaml b/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kube-prometheus-general.rules.yaml index c0a2700..2d1e4fd 100644 --- a/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kube-prometheus-general.rules.yaml +++ b/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kube-prometheus-general.rules.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.3" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.3 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" spec: diff --git a/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kube-prometheus-node-recording.rules.yaml b/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kube-prometheus-node-recording.rules.yaml index 0fdc70a..4c24bf0 100644 --- a/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kube-prometheus-node-recording.rules.yaml +++ b/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kube-prometheus-node-recording.rules.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.3" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.3 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" spec: diff --git a/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kubernetes-apps.yaml b/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kubernetes-apps.yaml index ec64109..84cc680 100644 --- a/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kubernetes-apps.yaml +++ b/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kubernetes-apps.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.3" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.3 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" spec: diff --git a/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kubernetes-resources.yaml b/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kubernetes-resources.yaml index 43d15e8..25c5258 100644 --- a/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kubernetes-resources.yaml +++ b/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kubernetes-resources.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.3" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.3 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" spec: diff --git a/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kubernetes-storage.yaml b/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kubernetes-storage.yaml index 29594c6..c9da142 100644 --- a/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kubernetes-storage.yaml +++ b/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kubernetes-storage.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.3" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.3 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" spec: diff --git a/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kubernetes-system-apiserver.yaml b/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kubernetes-system-apiserver.yaml index bd29e1f..9c46a59 100644 --- a/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kubernetes-system-apiserver.yaml +++ b/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kubernetes-system-apiserver.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.3" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.3 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" spec: diff --git a/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kubernetes-system-kubelet.yaml b/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kubernetes-system-kubelet.yaml index 66d526f..56174cd 100644 --- a/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kubernetes-system-kubelet.yaml +++ b/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kubernetes-system-kubelet.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.3" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.3 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" spec: diff --git a/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kubernetes-system.yaml b/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kubernetes-system.yaml index 3f43196..3ee7bd3 100644 --- a/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kubernetes-system.yaml +++ b/monitor/alerts-core/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kubernetes-system.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.3" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.3 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" spec: diff --git a/monitor/dashboards-cluster/v1_ConfigMap_prometheus-community-kube-k8s-resources-cluster.yaml b/monitor/dashboards-cluster/v1_ConfigMap_prometheus-community-kube-k8s-resources-cluster.yaml index f5711b6..44f86a8 100644 --- a/monitor/dashboards-cluster/v1_ConfigMap_prometheus-community-kube-k8s-resources-cluster.yaml +++ b/monitor/dashboards-cluster/v1_ConfigMap_prometheus-community-kube-k8s-resources-cluster.yaml @@ -12,9 +12,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.3" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.3 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" data: diff --git a/monitor/dashboards-cluster/v1_ConfigMap_prometheus-community-kube-k8s-resources-multicluster.yaml b/monitor/dashboards-cluster/v1_ConfigMap_prometheus-community-kube-k8s-resources-multicluster.yaml index 238b8d4..6c41d99 100644 --- a/monitor/dashboards-cluster/v1_ConfigMap_prometheus-community-kube-k8s-resources-multicluster.yaml +++ b/monitor/dashboards-cluster/v1_ConfigMap_prometheus-community-kube-k8s-resources-multicluster.yaml @@ -12,9 +12,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.3" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.3 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" data: diff --git a/monitor/dashboards-minimal/v1_ConfigMap_prometheus-community-kube-cluster-total.yaml b/monitor/dashboards-minimal/v1_ConfigMap_prometheus-community-kube-cluster-total.yaml index 1c41d6c..e812711 100644 --- a/monitor/dashboards-minimal/v1_ConfigMap_prometheus-community-kube-cluster-total.yaml +++ b/monitor/dashboards-minimal/v1_ConfigMap_prometheus-community-kube-cluster-total.yaml @@ -12,9 +12,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.3" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.3 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" data: diff --git a/monitor/dashboards-minimal/v1_ConfigMap_prometheus-community-kube-grafana-overview.yaml b/monitor/dashboards-minimal/v1_ConfigMap_prometheus-community-kube-grafana-overview.yaml index 15c8e5b..8695870 100644 --- a/monitor/dashboards-minimal/v1_ConfigMap_prometheus-community-kube-grafana-overview.yaml +++ b/monitor/dashboards-minimal/v1_ConfigMap_prometheus-community-kube-grafana-overview.yaml @@ -12,9 +12,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.3" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.3 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" data: diff --git a/monitor/dashboards-minimal/v1_ConfigMap_prometheus-community-kube-namespace-by-pod.yaml b/monitor/dashboards-minimal/v1_ConfigMap_prometheus-community-kube-namespace-by-pod.yaml index 9a5bd9e..457daff 100644 --- a/monitor/dashboards-minimal/v1_ConfigMap_prometheus-community-kube-namespace-by-pod.yaml +++ b/monitor/dashboards-minimal/v1_ConfigMap_prometheus-community-kube-namespace-by-pod.yaml @@ -12,9 +12,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.3" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.3 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" data: diff --git a/monitor/dashboards-minimal/v1_ConfigMap_prometheus-community-kube-namespace-by-workload.yaml b/monitor/dashboards-minimal/v1_ConfigMap_prometheus-community-kube-namespace-by-workload.yaml index 1fa5f2f..f75d072 100644 --- a/monitor/dashboards-minimal/v1_ConfigMap_prometheus-community-kube-namespace-by-workload.yaml +++ b/monitor/dashboards-minimal/v1_ConfigMap_prometheus-community-kube-namespace-by-workload.yaml @@ -12,9 +12,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.3" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.3 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" data: diff --git a/monitor/dashboards-minimal/v1_ConfigMap_prometheus-community-kube-persistentvolumesusage.yaml b/monitor/dashboards-minimal/v1_ConfigMap_prometheus-community-kube-persistentvolumesusage.yaml index c43be83..f09f66d 100644 --- a/monitor/dashboards-minimal/v1_ConfigMap_prometheus-community-kube-persistentvolumesusage.yaml +++ b/monitor/dashboards-minimal/v1_ConfigMap_prometheus-community-kube-persistentvolumesusage.yaml @@ -12,9 +12,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.3" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.3 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" data: diff --git a/monitor/dashboards-minimal/v1_ConfigMap_prometheus-community-kube-pod-total.yaml b/monitor/dashboards-minimal/v1_ConfigMap_prometheus-community-kube-pod-total.yaml index e31452c..1fbc367 100644 --- a/monitor/dashboards-minimal/v1_ConfigMap_prometheus-community-kube-pod-total.yaml +++ b/monitor/dashboards-minimal/v1_ConfigMap_prometheus-community-kube-pod-total.yaml @@ -12,9 +12,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.3" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.3 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" data: diff --git a/monitor/dashboards-minimal/v1_ConfigMap_prometheus-community-kube-workload-total.yaml b/monitor/dashboards-minimal/v1_ConfigMap_prometheus-community-kube-workload-total.yaml index 9963421..7704520 100644 --- a/monitor/dashboards-minimal/v1_ConfigMap_prometheus-community-kube-workload-total.yaml +++ b/monitor/dashboards-minimal/v1_ConfigMap_prometheus-community-kube-workload-total.yaml @@ -12,9 +12,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.3" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.3 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" data: diff --git a/monitor/dashboards-namespace/v1_ConfigMap_prometheus-community-kube-k8s-resources-namespace.yaml b/monitor/dashboards-namespace/v1_ConfigMap_prometheus-community-kube-k8s-resources-namespace.yaml index 18fe128..fa7d3df 100644 --- a/monitor/dashboards-namespace/v1_ConfigMap_prometheus-community-kube-k8s-resources-namespace.yaml +++ b/monitor/dashboards-namespace/v1_ConfigMap_prometheus-community-kube-k8s-resources-namespace.yaml @@ -12,9 +12,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.3" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.3 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" data: diff --git a/monitor/dashboards-namespace/v1_ConfigMap_prometheus-community-kube-k8s-resources-workloads-namespace.yaml b/monitor/dashboards-namespace/v1_ConfigMap_prometheus-community-kube-k8s-resources-workloads-namespace.yaml index 901f07a..943f5ce 100644 --- a/monitor/dashboards-namespace/v1_ConfigMap_prometheus-community-kube-k8s-resources-workloads-namespace.yaml +++ b/monitor/dashboards-namespace/v1_ConfigMap_prometheus-community-kube-k8s-resources-workloads-namespace.yaml @@ -12,9 +12,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.3" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.3 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" data: diff --git a/monitor/dashboards-workload/v1_ConfigMap_prometheus-community-kube-k8s-resources-node.yaml b/monitor/dashboards-workload/v1_ConfigMap_prometheus-community-kube-k8s-resources-node.yaml index 080fb4d..2496ae8 100644 --- a/monitor/dashboards-workload/v1_ConfigMap_prometheus-community-kube-k8s-resources-node.yaml +++ b/monitor/dashboards-workload/v1_ConfigMap_prometheus-community-kube-k8s-resources-node.yaml @@ -12,9 +12,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.3" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.3 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" data: diff --git a/monitor/dashboards-workload/v1_ConfigMap_prometheus-community-kube-k8s-resources-pod.yaml b/monitor/dashboards-workload/v1_ConfigMap_prometheus-community-kube-k8s-resources-pod.yaml index eaf0772..d72fc05 100644 --- a/monitor/dashboards-workload/v1_ConfigMap_prometheus-community-kube-k8s-resources-pod.yaml +++ b/monitor/dashboards-workload/v1_ConfigMap_prometheus-community-kube-k8s-resources-pod.yaml @@ -12,9 +12,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.3" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.3 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" data: diff --git a/monitor/dashboards-workload/v1_ConfigMap_prometheus-community-kube-k8s-resources-workload.yaml b/monitor/dashboards-workload/v1_ConfigMap_prometheus-community-kube-k8s-resources-workload.yaml index 549edc2..284f30a 100644 --- a/monitor/dashboards-workload/v1_ConfigMap_prometheus-community-kube-k8s-resources-workload.yaml +++ b/monitor/dashboards-workload/v1_ConfigMap_prometheus-community-kube-k8s-resources-workload.yaml @@ -12,9 +12,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.3" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.3 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" data: diff --git a/monitor/grafana/index.yaml b/monitor/grafana/index.yaml index 263de99..b6f1484 100644 --- a/monitor/grafana/index.yaml +++ b/monitor/grafana/index.yaml @@ -6,21 +6,6 @@ metadata: name: grafana description: null options: - domain: - default: your-company - examples: - - your-company - type: string - domain_name: - default: your_company.com - examples: - - your_company.com - type: string - app_group: - default: monitor - examples: - - monitor - type: string images: default: busybox: @@ -118,45 +103,78 @@ options: type: string type: object type: object - sub_domain: + sub-domain: default: grafana examples: - grafana type: string - volume: - default: - accessMode: ReadWriteOnce - size: 10Gi + domain-name: + default: your_company.com examples: - - accessMode: ReadWriteOnce - size: 10Gi - properties: - accessMode: - default: ReadWriteOnce - enum: - - ReadWriteOnce - - ReadOnlyMany - - ReadWriteMany - type: string - size: - default: 10Gi - type: string - type: object - admin_name: - default: grafana_admin - examples: - - grafana_admin + - your_company.com type: string - ingress_class: - default: traefik + app-group: + default: monitor examples: - - traefik + - monitor + type: string + domain: + default: your-company + examples: + - your-company type: string issuer: default: letsencrypt-prod examples: - letsencrypt-prod type: string + admin_name: + default: grafana_admin + examples: + - grafana_admin + type: string + ingress-class: + default: traefik + examples: + - traefik + type: string + storage: + default: + volume: + accessMode: ReadWriteOnce + size: 1Gi + type: Filesystem + description: Configure this app storage + examples: + - volume: + accessMode: ReadWriteOnce + size: 1Gi + type: Filesystem + properties: + volume: + default: + accessMode: ReadWriteOnce + size: 1Gi + type: Filesystem + properties: + accessMode: + default: ReadWriteOnce + enum: + - ReadWriteOnce + - ReadOnlyMany + - ReadWriteMany + type: string + size: + default: 1Gi + type: string + type: + default: Filesystem + enum: + - Filesystem + - Block + type: string + type: object + type: object dependencies: [] providers: kubernetes: true diff --git a/monitor/grafana/presentation.tf b/monitor/grafana/presentation.tf index b38289f..f4d70ba 100644 --- a/monitor/grafana/presentation.tf +++ b/monitor/grafana/presentation.tf @@ -1,5 +1,5 @@ locals { - dns_name = "${var.sub_domain}.${var.domain_name}" + dns_name = "${var.sub-domain}.${var.domain-name}" dns_names = [local.dns_name] app_name = var.component == var.instance ? var.instance : format("%s-%s", var.component, var.instance) icon = "public/img/grafana_icon.svg" @@ -21,7 +21,7 @@ module "ingress" { instance = var.instance namespace = var.namespace issuer = var.issuer - ingress_class = var.ingress_class + ingress-class = var.ingress-class labels = local.common-labels dns_names = local.dns_names middlewares = [] @@ -35,7 +35,7 @@ module "ingress" { source = "git::https://git.solidite.fr/vynil/kydah-modules.git//application" component = var.component instance = var.instance - app_group = var.app_group + app-group = var.app-group dns_name = local.dns_name icon = local.icon sub_groups = ["admin"] diff --git a/monitor/kube-state-metrics/monitoring.coreos.com_v1_PrometheusRule_kube-state-metrics-kube-pr-kube-state-metrics.yaml b/monitor/kube-state-metrics/monitoring.coreos.com_v1_PrometheusRule_kube-state-metrics-kube-pr-kube-state-metrics.yaml index e3a2a62..663750b 100644 --- a/monitor/kube-state-metrics/monitoring.coreos.com_v1_PrometheusRule_kube-state-metrics-kube-pr-kube-state-metrics.yaml +++ b/monitor/kube-state-metrics/monitoring.coreos.com_v1_PrometheusRule_kube-state-metrics-kube-pr-kube-state-metrics.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: kube-state-metrics - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "kube-state-metrics" heritage: "Helm" spec: diff --git a/monitor/loki-dashboard/index.yaml b/monitor/loki-dashboard/index.yaml new file mode 100644 index 0000000..e890502 --- /dev/null +++ b/monitor/loki-dashboard/index.yaml @@ -0,0 +1,82 @@ +--- +apiVersion: vinyl.solidite.fr/v1beta1 +kind: Component +category: monitor +metadata: + name: loki-dashboard + description: null +options: + ingress-class: + default: traefik + examples: + - traefik + type: string + issuer: + default: letsencrypt-prod + examples: + - letsencrypt-prod + type: string + domain: + default: your-company + examples: + - your-company + type: string + images: + default: + operator: + pullPolicy: IfNotPresent + registry: docker.io + repository: to-be/defined + tag: v1.0.0 + examples: + - operator: + pullPolicy: IfNotPresent + registry: docker.io + repository: to-be/defined + tag: v1.0.0 + properties: + operator: + default: + pullPolicy: IfNotPresent + registry: docker.io + repository: to-be/defined + tag: v1.0.0 + properties: + pullPolicy: + default: IfNotPresent + enum: + - Always + - Never + - IfNotPresent + type: string + registry: + default: docker.io + type: string + repository: + default: to-be/defined + type: string + tag: + default: v1.0.0 + type: string + type: object + type: object + sub-domain: + default: to-be-set + examples: + - to-be-set + type: string + domain-name: + default: your_company.com + examples: + - your_company.com + type: string +dependencies: [] +providers: + kubernetes: true + authentik: true + kubectl: true + postgresql: null + restapi: null + http: null + gitea: null +tfaddtype: null diff --git a/monitor/loki-dashboard/v1_ConfigMap_loki-dashboards-1.yaml b/monitor/loki-dashboard/v1_ConfigMap_loki-dashboards-1.yaml new file mode 100644 index 0000000..5d9de03 --- /dev/null +++ b/monitor/loki-dashboard/v1_ConfigMap_loki-dashboards-1.yaml @@ -0,0 +1,24 @@ +# Source: loki/templates/monitoring/dashboards/configmap-1.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: loki-dashboards-1 + namespace: vynil-monitor + labels: + helm.sh/chart: loki-5.41.8 + app.kubernetes.io/name: loki + app.kubernetes.io/instance: loki + app.kubernetes.io/version: "2.9.3" + app.kubernetes.io/managed-by: Helm + grafana_dashboard: "1" +data: + "loki-chunks.json": | + {"annotations":{"list":[]},"editable":true,"gnetId":null,"graphTooltip":0,"hideControls":false,"links":[{"asDropdown":true,"icon":"external link","includeVars":true,"keepTime":true,"tags":["loki"],"targetBlank":false,"title":"Loki Dashboards","type":"dashboards"}],"refresh":"10s","rows":[{"collapse":false,"height":"250px","panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"id":1,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(loki_ingester_memory_chunks{cluster=\"$cluster\", job=~\"$namespace/(loki|enterprise-logs)-write\"})","format":"time_series","intervalFactor":2,"legendFormat":"series","legendLink":null,"step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Series","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"id":2,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(loki_ingester_memory_chunks{cluster=\"$cluster\", job=~\"$namespace/(loki|enterprise-logs)-write\"}) / sum(loki_ingester_memory_streams{cluster=\"$cluster\", job=~\"$namespace/(loki|enterprise-logs)-write\"})","format":"time_series","intervalFactor":2,"legendFormat":"chunks","legendLink":null,"step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Chunks per series","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]}],"repeat":null,"repeatIteration":null,"repeatRowId":null,"showTitle":true,"title":"Active Series / Chunks","titleSize":"h6"},{"collapse":false,"height":"250px","panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"id":3,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":false,"steppedLine":false,"targets":[{"expr":"histogram_quantile(0.99, sum(rate(loki_ingester_chunk_utilization_bucket{cluster=\"$cluster\", job=~\"$namespace/(loki|enterprise-logs)-write\"}[$__rate_interval])) by (le)) * 1","format":"time_series","intervalFactor":2,"legendFormat":"99th Percentile","refId":"A","step":10},{"expr":"histogram_quantile(0.50, sum(rate(loki_ingester_chunk_utilization_bucket{cluster=\"$cluster\", job=~\"$namespace/(loki|enterprise-logs)-write\"}[$__rate_interval])) by (le)) * 1","format":"time_series","intervalFactor":2,"legendFormat":"50th Percentile","refId":"B","step":10},{"expr":"sum(rate(loki_ingester_chunk_utilization_sum{cluster=\"$cluster\", job=~\"$namespace/(loki|enterprise-logs)-write\"}[$__rate_interval])) * 1 / sum(rate(loki_ingester_chunk_utilization_count{cluster=\"$cluster\", job=~\"$namespace/(loki|enterprise-logs)-write\"}[$__rate_interval]))","format":"time_series","intervalFactor":2,"legendFormat":"Average","refId":"C","step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Utilization","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"percentunit","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"id":4,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":false,"steppedLine":false,"targets":[{"expr":"histogram_quantile(0.99, sum(rate(loki_ingester_chunk_age_seconds_bucket{cluster=\"$cluster\", job=~\"$namespace/(loki|enterprise-logs)-write\"}[$__rate_interval])) by (le)) * 1e3","format":"time_series","intervalFactor":2,"legendFormat":"99th Percentile","refId":"A","step":10},{"expr":"histogram_quantile(0.50, sum(rate(loki_ingester_chunk_age_seconds_bucket{cluster=\"$cluster\", job=~\"$namespace/(loki|enterprise-logs)-write\"}[$__rate_interval])) by (le)) * 1e3","format":"time_series","intervalFactor":2,"legendFormat":"50th Percentile","refId":"B","step":10},{"expr":"sum(rate(loki_ingester_chunk_age_seconds_sum{cluster=\"$cluster\", job=~\"$namespace/(loki|enterprise-logs)-write\"}[$__rate_interval])) * 1e3 / sum(rate(loki_ingester_chunk_age_seconds_count{cluster=\"$cluster\", job=~\"$namespace/(loki|enterprise-logs)-write\"}[$__rate_interval]))","format":"time_series","intervalFactor":2,"legendFormat":"Average","refId":"C","step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Age","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"ms","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]}],"repeat":null,"repeatIteration":null,"repeatRowId":null,"showTitle":true,"title":"Flush Stats","titleSize":"h6"},{"collapse":false,"height":"250px","panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"id":5,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":false,"steppedLine":false,"targets":[{"expr":"histogram_quantile(0.99, sum(rate(loki_ingester_chunk_entries_bucket{cluster=\"$cluster\", job=~\"$namespace/(loki|enterprise-logs)-write\"}[$__rate_interval])) by (le)) * 1","format":"time_series","intervalFactor":2,"legendFormat":"99th Percentile","refId":"A","step":10},{"expr":"histogram_quantile(0.50, sum(rate(loki_ingester_chunk_entries_bucket{cluster=\"$cluster\", job=~\"$namespace/(loki|enterprise-logs)-write\"}[$__rate_interval])) by (le)) * 1","format":"time_series","intervalFactor":2,"legendFormat":"50th Percentile","refId":"B","step":10},{"expr":"sum(rate(loki_ingester_chunk_entries_sum{cluster=\"$cluster\", job=~\"$namespace/(loki|enterprise-logs)-write\"}[$__rate_interval])) * 1 / sum(rate(loki_ingester_chunk_entries_count{cluster=\"$cluster\", job=~\"$namespace/(loki|enterprise-logs)-write\"}[$__rate_interval]))","format":"time_series","intervalFactor":2,"legendFormat":"Average","refId":"C","step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Log Entries Per Chunk","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"id":6,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(rate(loki_chunk_store_index_entries_per_chunk_sum{cluster=\"$cluster\", job=~\"$namespace/(loki|enterprise-logs)-write\"}[5m])) / sum(rate(loki_chunk_store_index_entries_per_chunk_count{cluster=\"$cluster\", job=~\"$namespace/(loki|enterprise-logs)-write\"}[5m]))","format":"time_series","intervalFactor":2,"legendFormat":"Index Entries","legendLink":null,"step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Index Entries Per Chunk","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]}],"repeat":null,"repeatIteration":null,"repeatRowId":null,"showTitle":true,"title":"Flush Stats","titleSize":"h6"},{"collapse":false,"height":"250px","panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"id":7,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":false,"steppedLine":false,"targets":[{"expr":"loki_ingester_flush_queue_length{cluster=\"$cluster\", job=~\"$namespace/(loki|enterprise-logs)-write\"} or cortex_ingester_flush_queue_length{cluster=\"$cluster\", job=~\"$namespace/(loki|enterprise-logs)-write\"}","format":"time_series","intervalFactor":2,"legendFormat":"{{pod}}","legendLink":null,"step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Queue Length","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{"1xx":"#EAB839","2xx":"#7EB26D","3xx":"#6ED0E0","4xx":"#EF843C","5xx":"#E24D42","error":"#E24D42","success":"#7EB26D"},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":10,"id":8,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":0,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":true,"steppedLine":false,"targets":[{"expr":"sum by (status) (\n label_replace(label_replace(rate(loki_ingester_chunk_age_seconds_count{cluster=\"$cluster\", job=~\"$namespace/(loki|enterprise-logs)-write\"}[$__rate_interval]),\n \"status\", \"${1}xx\", \"status_code\", \"([0-9])..\"),\n \"status\", \"${1}\", \"status_code\", \"([a-z]+)\"))\n","format":"time_series","intervalFactor":2,"legendFormat":"{{status}}","refId":"A","step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Flush Rate","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]}],"repeat":null,"repeatIteration":null,"repeatRowId":null,"showTitle":true,"title":"Flush Stats","titleSize":"h6"},{"collapse":false,"height":"250px","panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"id":9,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(rate(loki_ingester_chunks_flushed_total{cluster=\"$cluster\", job=~\"$namespace/(loki|enterprise-logs)-write\"}[$__rate_interval]))","format":"time_series","intervalFactor":2,"legendFormat":"{{pod}}","legendLink":null,"step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Chunks Flushed/Second","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"id":10,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":true,"steppedLine":false,"targets":[{"expr":"sum by (reason) (rate(loki_ingester_chunks_flushed_total{cluster=\"$cluster\", job=~\"$namespace/(loki|enterprise-logs)-write\"}[$__rate_interval])) / ignoring(reason) group_left sum(rate(loki_ingester_chunks_flushed_total{cluster=\"$cluster\", job=~\"$namespace/(loki|enterprise-logs)-write\"}[$__rate_interval]))","format":"time_series","intervalFactor":2,"legendFormat":"{{reason}}","legendLink":null,"step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Chunk Flush Reason","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":1,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":1,"min":null,"show":false}]}],"repeat":null,"repeatIteration":null,"repeatRowId":null,"showTitle":true,"title":"Flush Stats","titleSize":"h6"},{"collapse":false,"height":"250px","panels":[{"cards":{"cardPadding":null,"cardRound":null},"color":{"cardColor":"#b4ff00","colorScale":"sqrt","colorScheme":"interpolateSpectral","exponent":0.5,"mode":"spectrum"},"dataFormat":"tsbuckets","datasource":"$datasource","heatmap":{},"hideZeroBuckets":false,"highlightCards":true,"id":11,"legend":{"show":true},"span":12,"targets":[{"expr":"sum by (le) (rate(loki_ingester_chunk_utilization_bucket{cluster=\"$cluster\", job=~\"$namespace/(loki|enterprise-logs)-write\"}[$__rate_interval]))","format":"heatmap","intervalFactor":2,"legendFormat":"{{le}}","refId":"A"}],"title":"Chunk Utilization","tooltip":{"show":true,"showHistogram":true},"type":"heatmap","xAxis":{"show":true},"xBucketNumber":null,"xBucketSize":null,"yAxis":{"decimals":0,"format":"percentunit","show":true,"splitFactor":null},"yBucketBound":"auto"}],"repeat":null,"repeatIteration":null,"repeatRowId":null,"showTitle":true,"title":"Utilization","titleSize":"h6"},{"collapse":false,"height":"250px","panels":[{"cards":{"cardPadding":null,"cardRound":null},"color":{"cardColor":"#b4ff00","colorScale":"sqrt","colorScheme":"interpolateSpectral","exponent":0.5,"mode":"spectrum"},"dataFormat":"tsbuckets","datasource":"$datasource","heatmap":{},"hideZeroBuckets":false,"highlightCards":true,"id":12,"legend":{"show":true},"span":12,"targets":[{"expr":"sum(rate(loki_ingester_chunk_size_bytes_bucket{cluster=\"$cluster\", job=~\"$namespace/(loki|enterprise-logs)-write\"}[$__rate_interval])) by (le)","format":"heatmap","intervalFactor":2,"legendFormat":"{{le}}","refId":"A"}],"title":"Chunk Size Bytes","tooltip":{"show":true,"showHistogram":true},"type":"heatmap","xAxis":{"show":true},"xBucketNumber":null,"xBucketSize":null,"yAxis":{"decimals":0,"format":"bytes","show":true,"splitFactor":null},"yBucketBound":"auto"}],"repeat":null,"repeatIteration":null,"repeatRowId":null,"showTitle":true,"title":"Utilization","titleSize":"h6"},{"collapse":false,"height":"250px","panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"id":13,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":12,"stack":false,"steppedLine":false,"targets":[{"expr":"histogram_quantile(0.99, sum(rate(loki_ingester_chunk_size_bytes_bucket{cluster=\"$cluster\", job=~\"$namespace/(loki|enterprise-logs)-write\"}[1m])) by (le))","format":"time_series","intervalFactor":2,"legendFormat":"p99","legendLink":null,"step":10},{"expr":"histogram_quantile(0.90, sum(rate(loki_ingester_chunk_size_bytes_bucket{cluster=\"$cluster\", job=~\"$namespace/(loki|enterprise-logs)-write\"}[1m])) by (le))","format":"time_series","intervalFactor":2,"legendFormat":"p90","legendLink":null,"step":10},{"expr":"histogram_quantile(0.50, sum(rate(loki_ingester_chunk_size_bytes_bucket{cluster=\"$cluster\", job=~\"$namespace/(loki|enterprise-logs)-write\"}[1m])) by (le))","format":"time_series","intervalFactor":2,"legendFormat":"p50","legendLink":null,"step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Chunk Size Quantiles","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"bytes","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]}],"repeat":null,"repeatIteration":null,"repeatRowId":null,"showTitle":true,"title":"Utilization","titleSize":"h6"},{"collapse":false,"height":"250px","panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"id":14,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":12,"stack":false,"steppedLine":false,"targets":[{"expr":"histogram_quantile(0.5, sum(rate(loki_ingester_chunk_bounds_hours_bucket{cluster=\"$cluster\", job=~\"$namespace/(loki|enterprise-logs)-write\"}[5m])) by (le))","format":"time_series","intervalFactor":2,"legendFormat":"p50","legendLink":null,"step":10},{"expr":"histogram_quantile(0.99, sum(rate(loki_ingester_chunk_bounds_hours_bucket{cluster=\"$cluster\", job=~\"$namespace/(loki|enterprise-logs)-write\"}[5m])) by (le))","format":"time_series","intervalFactor":2,"legendFormat":"p99","legendLink":null,"step":10},{"expr":"sum(rate(loki_ingester_chunk_bounds_hours_sum{cluster=\"$cluster\", job=~\"$namespace/(loki|enterprise-logs)-write\"}[5m])) / sum(rate(loki_ingester_chunk_bounds_hours_count{cluster=\"$cluster\", job=~\"$namespace/(loki|enterprise-logs)-write\"}[5m]))","format":"time_series","intervalFactor":2,"legendFormat":"avg","legendLink":null,"step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Chunk Duration hours (end-start)","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]}],"repeat":null,"repeatIteration":null,"repeatRowId":null,"showTitle":true,"title":"Duration","titleSize":"h6"}],"schemaVersion":14,"style":"dark","tags":["loki"],"templating":{"list":[{"current":{"text":"default","value":"default"},"hide":0,"label":"Data Source","name":"datasource","options":[],"query":"prometheus","refresh":1,"regex":"","type":"datasource"},{"allValue":null,"current":{"text":"prod","value":"prod"},"datasource":"$datasource","hide":0,"includeAll":false,"label":"cluster","multi":false,"name":"cluster","options":[],"query":"label_values(loki_build_info, cluster)","refresh":1,"regex":"","sort":2,"tagValuesQuery":"","tags":[],"tagsQuery":"","type":"query","useTags":false},{"allValue":null,"current":{"text":"prod","value":"prod"},"datasource":"$datasource","hide":0,"includeAll":false,"label":"namespace","multi":false,"name":"namespace","options":[],"query":"label_values(loki_build_info{cluster=~\"$cluster\"}, namespace)","refresh":1,"regex":"","sort":2,"tagValuesQuery":"","tags":[],"tagsQuery":"","type":"query","useTags":false}]},"time":{"from":"now-1h","to":"now"},"timepicker":{"refresh_intervals":["5s","10s","30s","1m","5m","15m","30m","1h","2h","1d"],"time_options":["5m","15m","1h","6h","12h","24h","2d","7d","30d"]},"timezone":"utc","title":"Loki / Chunks","uid":"chunks","version":0} + "loki-deletion.json": | + {"annotations":{"list":[]},"editable":true,"gnetId":null,"graphTooltip":0,"hideControls":false,"links":[{"asDropdown":true,"icon":"external link","includeVars":true,"keepTime":true,"tags":["loki"],"targetBlank":false,"title":"Loki Dashboards","type":"dashboards"}],"refresh":"10s","rows":[{"collapse":false,"height":"100px","panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"format":"none","id":1,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(loki_compactor_pending_delete_requests_count{cluster=~\"$cluster\", namespace=~\"$namespace\"})","format":"time_series","instant":true,"intervalFactor":2,"refId":"A"}],"thresholds":"70,80","timeFrom":null,"timeShift":null,"title":"Number of Pending Requests","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"singlestat","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"format":"dtdurations","id":2,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":false,"steppedLine":false,"targets":[{"expr":"max(loki_compactor_oldest_pending_delete_request_age_seconds{cluster=~\"$cluster\", namespace=~\"$namespace\"})","format":"time_series","instant":true,"intervalFactor":2,"refId":"A"}],"thresholds":"70,80","timeFrom":null,"timeShift":null,"title":"Oldest Pending Request Age","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"singlestat","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]}],"repeat":null,"repeatIteration":null,"repeatRowId":null,"showTitle":false,"title":"Headlines","titleSize":"h6"},{"collapse":false,"height":"250px","panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"id":3,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(increase(loki_compactor_delete_requests_received_total{cluster=~\"$cluster\", namespace=~\"$namespace\"}[1d]))","format":"time_series","intervalFactor":2,"legendFormat":"received","legendLink":null,"step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Delete Requests Received / Day","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"id":4,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(increase(loki_compactor_delete_requests_processed_total{cluster=~\"$cluster\", namespace=~\"$namespace\"}[1d]))","format":"time_series","intervalFactor":2,"legendFormat":"processed","legendLink":null,"step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Delete Requests Processed / Day","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]}],"repeat":null,"repeatIteration":null,"repeatRowId":null,"showTitle":true,"title":"Churn","titleSize":"h6"},{"collapse":false,"height":"250px","panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"id":5,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":12,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(increase(loki_compactor_load_pending_requests_attempts_total{status=\"fail\", cluster=~\"$cluster\", namespace=~\"$namespace\"}[1h]))","format":"time_series","intervalFactor":2,"legendFormat":"failures","legendLink":null,"step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Failures in Loading Delete Requests / Hour","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]}],"repeat":null,"repeatIteration":null,"repeatRowId":null,"showTitle":true,"title":"Failures","titleSize":"h6"},{"collapse":false,"height":"250px","panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"id":6,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":12,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(rate(loki_compactor_deleted_lines{cluster=~\"$cluster\",job=~\"$namespace/(loki|enterprise-logs)-read\"}[$__rate_interval])) by (user)","format":"time_series","intervalFactor":2,"legendFormat":"{{user}}","legendLink":null,"step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Lines Deleted / Sec","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]}],"repeat":null,"repeatIteration":null,"repeatRowId":null,"showTitle":true,"title":"Deleted lines","titleSize":"h6"}],"schemaVersion":14,"style":"dark","tags":["loki"],"templating":{"list":[{"current":{"text":"default","value":"default"},"hide":0,"label":"Data Source","name":"datasource","options":[],"query":"prometheus","refresh":1,"regex":"","type":"datasource"},{"allValue":null,"current":{"text":"prod","value":"prod"},"datasource":"$datasource","hide":0,"includeAll":false,"label":"cluster","multi":false,"name":"cluster","options":[],"query":"label_values(loki_build_info, cluster)","refresh":1,"regex":"","sort":2,"tagValuesQuery":"","tags":[],"tagsQuery":"","type":"query","useTags":false},{"allValue":null,"current":{"text":"prod","value":"prod"},"datasource":"$datasource","hide":0,"includeAll":false,"label":"namespace","multi":false,"name":"namespace","options":[],"query":"label_values(loki_build_info{cluster=~\"$cluster\"}, namespace)","refresh":1,"regex":"","sort":2,"tagValuesQuery":"","tags":[],"tagsQuery":"","type":"query","useTags":false}]},"time":{"from":"now-1h","to":"now"},"timepicker":{"refresh_intervals":["5s","10s","30s","1m","5m","15m","30m","1h","2h","1d"],"time_options":["5m","15m","1h","6h","12h","24h","2d","7d","30d"]},"timezone":"utc","title":"Loki / Deletion","uid":"deletion","version":0} + "loki-logs.json": | + {"annotations":{"list":[]},"editable":true,"gnetId":null,"graphTooltip":0,"hideControls":false,"id":8,"iteration":1583185057230,"links":[{"asDropdown":true,"icon":"external link","includeVars":true,"keepTime":true,"tags":["loki"],"targetBlank":false,"title":"Loki Dashboards","type":"dashboards"}],"panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"fillGradient":0,"gridPos":{"h":4,"w":3,"x":0,"y":0},"hiddenSeries":false,"id":35,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":false,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(go_goroutines{cluster=\"$cluster\", namespace=\"$namespace\", pod=~\"$deployment.*\", pod=~\"$pod\"})","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"goroutines","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"type":"timeseries","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"fillGradient":0,"gridPos":{"h":4,"w":3,"x":3,"y":0},"hiddenSeries":false,"id":41,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":false,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(go_gc_duration_seconds{cluster=\"$cluster\", namespace=\"$namespace\", pod=~\"$deployment.*\", pod=~\"$pod\"}) by (quantile)","legendFormat":"{{quantile}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"gc duration","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"type":"timeseries","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"fillGradient":0,"gridPos":{"h":4,"w":3,"x":6,"y":0},"hiddenSeries":false,"id":36,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":false,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(rate(container_cpu_usage_seconds_total{cluster=\"$cluster\", namespace=\"$namespace\", pod=~\"$deployment.*\", pod=~\"$pod\", container=~\"$container\"}[5m]))","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"cpu","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"type":"timeseries","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"fillGradient":0,"gridPos":{"h":4,"w":3,"x":9,"y":0},"hiddenSeries":false,"id":40,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":false,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(container_memory_working_set_bytes{cluster=\"$cluster\", namespace=\"$namespace\", pod=~\"$deployment.*\", pod=~\"$pod\", container=~\"$container\"})","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"working set","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"type":"timeseries","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"bytes","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"fillGradient":0,"gridPos":{"h":4,"w":3,"x":12,"y":0},"hiddenSeries":false,"id":38,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":false,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(rate(container_network_transmit_bytes_total{cluster=\"$cluster\", namespace=\"$namespace\", pod=~\"$deployment.*\", pod=~\"$pod\"}[5m]))","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"tx","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"type":"timeseries","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"bytes","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"fillGradient":0,"gridPos":{"h":4,"w":3,"x":15,"y":0},"hiddenSeries":false,"id":39,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":false,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(rate(container_network_receive_bytes_total{cluster=\"$cluster\", namespace=\"$namespace\", pod=~\"$deployment.*\", pod=~\"$pod\"}[5m]))","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"rx","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"type":"timeseries","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"decbytes","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"fillGradient":0,"gridPos":{"h":4,"w":3,"x":18,"y":0},"hiddenSeries":false,"id":37,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":false,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"increase(kube_pod_container_status_last_terminated_reason{cluster=\"$cluster\", namespace=\"$namespace\", pod=~\"$deployment.*\", pod=~\"$pod\", container=~\"$container\"}[30m]) \u003e 0","legendFormat":"{{reason}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"restarts","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"type":"timeseries","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"bytes","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"fillGradient":0,"gridPos":{"h":4,"w":3,"x":21,"y":0},"hiddenSeries":false,"id":42,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":false,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(rate(promtail_custom_bad_words_total{cluster=\"$cluster\", exported_namespace=\"$namespace\", exported_pod=~\"$deployment.*\", exported_pod=~\"$pod\", container=~\"$container\"}[5m])) by (level)","legendFormat":"{{level}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"bad words","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"type":"timeseries","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"bytes","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$logs","fill":1,"fillGradient":0,"gridPos":{"h":7,"w":24,"x":0,"y":4},"hiddenSeries":false,"id":31,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":false,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[{"alias":"warn","color":"#FF780A"},{"alias":"error","color":"#E02F44"},{"alias":"info","color":"#56A64B"},{"alias":"debug","color":"#3274D9"}],"spaceLength":10,"stack":true,"steppedLine":false,"targets":[{"expr":"sum(rate({cluster=\"$cluster\", namespace=\"$namespace\", pod=~\"$deployment.*\", pod=~\"$pod\", container=~\"$container\" } |logfmt| level=~\"$level\" |= \"$filter\" [5m])) by (level)","intervalFactor":3,"legendFormat":"{{level}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Log Rate","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"timeseries","xaxis":{"buckets":null,"mode":"time","name":null,"show":false,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"datasource":"$logs","gridPos":{"h":19,"w":24,"x":0,"y":6},"id":29,"maxDataPoints":"","options":{"showLabels":false,"showTime":true,"sortOrder":"Descending","wrapLogMessage":true},"targets":[{"expr":"{cluster=\"$cluster\", namespace=\"$namespace\", pod=~\"$deployment.*\", pod=~\"$pod\", container=~\"$container\"} | logfmt | level=~\"$level\" |= \"$filter\"","refId":"A"}],"timeFrom":null,"timeShift":null,"title":"Logs","type":"logs"}],"refresh":"10s","rows":[],"schemaVersion":14,"style":"dark","tags":["loki"],"templating":{"list":[{"current":{"text":"default","value":"default"},"hide":0,"label":"Data Source","name":"datasource","options":[],"query":"prometheus","refresh":1,"regex":"","type":"datasource"},{"allValue":null,"current":{"text":"prod","value":"prod"},"datasource":"$datasource","hide":0,"includeAll":false,"label":"cluster","multi":false,"name":"cluster","options":[],"query":"label_values(loki_build_info, cluster)","refresh":1,"regex":"","sort":2,"tagValuesQuery":"","tags":[],"tagsQuery":"","type":"query","useTags":false},{"allValue":null,"current":{"text":"prod","value":"prod"},"datasource":"$datasource","hide":0,"includeAll":false,"label":"namespace","multi":false,"name":"namespace","options":[],"query":"label_values(loki_build_info{cluster=~\"$cluster\"}, namespace)","refresh":1,"regex":"","sort":2,"tagValuesQuery":"","tags":[],"tagsQuery":"","type":"query","useTags":false},{"hide":0,"label":null,"name":"logs","options":[],"query":"loki","refresh":1,"regex":"","type":"datasource"},{"allValue":null,"current":{},"datasource":"$datasource","hide":0,"includeAll":false,"label":null,"multi":false,"name":"deployment","options":[],"query":"label_values(kube_deployment_created{cluster=\"$cluster\", namespace=\"$namespace\"}, deployment)","refresh":0,"regex":"","sort":1,"tagValuesQuery":"","tags":[],"tagsQuery":"","type":"query","useTags":false},{"allValue":null,"current":{},"datasource":"$datasource","hide":0,"includeAll":false,"label":null,"multi":false,"name":"pod","options":[],"query":"label_values(kube_pod_container_info{cluster=\"$cluster\", namespace=\"$namespace\", pod=~\"$deployment.*\"}, pod)","refresh":0,"regex":"","sort":1,"tagValuesQuery":"","tags":[],"tagsQuery":"","type":"query","useTags":false},{"allValue":null,"current":{},"datasource":"$datasource","hide":0,"includeAll":false,"label":null,"multi":false,"name":"container","options":[],"query":"label_values(kube_pod_container_info{cluster=\"$cluster\", namespace=\"$namespace\", pod=~\"$pod\", pod=~\"$deployment.*\"}, container)","refresh":0,"regex":"","sort":1,"tagValuesQuery":"","tags":[],"tagsQuery":"","type":"query","useTags":false},{"allValue":null,"current":{"selected":true,"text":"","value":""},"hide":0,"includeAll":false,"label":"","multi":true,"name":"level","options":[{"selected":false,"text":"debug","value":"debug"},{"selected":false,"text":"info","value":"info"},{"selected":false,"text":"warn","value":"warn"},{"selected":false,"text":"error","value":"error"}],"query":"debug,info,warn,error","refresh":0,"type":"custom"},{"current":{"selected":false,"text":"","value":""},"label":"LogQL Filter","name":"filter","query":"","type":"textbox"}]},"time":{"from":"now-1h","to":"now"},"timepicker":{"refresh_intervals":["5s","10s","30s","1m","5m","15m","30m","1h","2h","1d"],"time_options":["5m","15m","1h","6h","12h","24h","2d","7d","30d"]},"timezone":"utc","title":"Loki / Logs","uid":"logs","version":0} + "loki-mixin-recording-rules.json": | + {"annotations":{"list":[{"builtIn":1,"datasource":"-- Grafana --","enable":true,"hide":true,"iconColor":"rgba(0, 211, 255, 1)","name":"Annotations \u0026 Alerts","target":{"limit":100,"matchAny":false,"tags":[],"type":"dashboard"},"type":"dashboard"},{"datasource":"${datasource}","enable":false,"expr":"sum by (tenant) (changes(loki_ruler_wal_prometheus_tsdb_wal_truncations_total{tenant=~\"${tenant}\"}[$__rate_interval]))","iconColor":"red","name":"WAL Truncations","target":{"queryType":"Azure Monitor","refId":"Anno"},"titleFormat":"{{tenant}}"}]},"editable":true,"fiscalYearStartMonth":0,"gnetId":null,"graphTooltip":0,"iteration":1635347545534,"links":[],"liveNow":false,"panels":[{"datasource":"${datasource}","fieldConfig":{"defaults":{"color":{"mode":"thresholds"},"mappings":[],"noValue":"0","thresholds":{"mode":"absolute","steps":[{"color":"green","value":null},{"color":"red","value":1}]}},"overrides":[]},"gridPos":{"h":10,"w":2,"x":0,"y":0},"id":2,"options":{"colorMode":"value","graphMode":"area","justifyMode":"auto","orientation":"auto","reduceOptions":{"calcs":["lastNotNull"],"fields":"","values":false},"textMode":"auto"},"pluginVersion":"8.3.0-38205pre","targets":[{"datasource":"${datasource}","exemplar":false,"expr":"sum(loki_ruler_wal_appender_ready) by (pod, tenant) == 0","instant":true,"interval":"","legendFormat":"","refId":"A"}],"title":"Appenders Not Ready","type":"stat"},{"datasource":"${datasource}","description":"","fieldConfig":{"defaults":{"color":{"mode":"palette-classic"},"custom":{"axisLabel":"","axisPlacement":"auto","barAlignment":0,"drawStyle":"line","fillOpacity":0,"gradientMode":"none","hideFrom":{"legend":false,"tooltip":false,"viz":false},"lineInterpolation":"linear","lineWidth":1,"pointSize":5,"scaleDistribution":{"type":"linear"},"showPoints":"auto","spanNulls":false,"stacking":{"group":"A","mode":"none"},"thresholdsStyle":{"mode":"off"}},"mappings":[],"thresholds":{"mode":"absolute","steps":[{"color":"green","value":null},{"color":"red","value":80}]}},"overrides":[]},"gridPos":{"h":10,"w":11,"x":2,"y":0},"id":4,"options":{"legend":{"calcs":[],"displayMode":"list","placement":"bottom"},"tooltip":{"mode":"single"}},"targets":[{"datasource":"${datasource}","exemplar":true,"expr":"sum(rate(loki_ruler_wal_samples_appended_total{tenant=~\"${tenant}\"}[$__rate_interval])) by (tenant) \u003e 0","interval":"","legendFormat":"{{tenant}}","refId":"A"}],"title":"Samples Appended to WAL per Second","type":"timeseries"},{"datasource":"${datasource}","description":"Series are unique combinations of labels","fieldConfig":{"defaults":{"color":{"mode":"palette-classic"},"custom":{"axisLabel":"","axisPlacement":"auto","barAlignment":0,"drawStyle":"line","fillOpacity":0,"gradientMode":"none","hideFrom":{"legend":false,"tooltip":false,"viz":false},"lineInterpolation":"linear","lineWidth":1,"pointSize":5,"scaleDistribution":{"type":"linear"},"showPoints":"auto","spanNulls":false,"stacking":{"group":"A","mode":"none"},"thresholdsStyle":{"mode":"off"}},"mappings":[],"thresholds":{"mode":"absolute","steps":[{"color":"green","value":null},{"color":"red","value":80}]}},"overrides":[]},"gridPos":{"h":10,"w":11,"x":13,"y":0},"id":5,"options":{"legend":{"calcs":[],"displayMode":"list","placement":"bottom"},"tooltip":{"mode":"single"}},"targets":[{"datasource":"${datasource}","exemplar":true,"expr":"sum(rate(loki_ruler_wal_storage_created_series_total{tenant=~\"${tenant}\"}[$__rate_interval])) by (tenant) \u003e 0","interval":"","legendFormat":"{{tenant}}","refId":"A"}],"title":"Series Created per Second","type":"timeseries"},{"datasource":"${datasource}","description":"Difference between highest timestamp appended to WAL and highest timestamp successfully written to remote storage","fieldConfig":{"defaults":{"color":{"mode":"palette-classic"},"custom":{"axisLabel":"","axisPlacement":"auto","barAlignment":0,"drawStyle":"line","fillOpacity":0,"gradientMode":"none","hideFrom":{"legend":false,"tooltip":false,"viz":false},"lineInterpolation":"linear","lineWidth":1,"pointSize":5,"scaleDistribution":{"type":"linear"},"showPoints":"auto","spanNulls":false,"stacking":{"group":"A","mode":"none"},"thresholdsStyle":{"mode":"off"}},"mappings":[],"thresholds":{"mode":"absolute","steps":[{"color":"green","value":null},{"color":"red","value":80}]}},"overrides":[]},"gridPos":{"h":10,"w":12,"x":0,"y":10},"id":6,"options":{"legend":{"calcs":[],"displayMode":"list","placement":"bottom"},"tooltip":{"mode":"single"}},"targets":[{"datasource":"${datasource}","exemplar":true,"expr":"loki_ruler_wal_prometheus_remote_storage_highest_timestamp_in_seconds{tenant=~\"${tenant}\"}\n- on (tenant)\n (\n loki_ruler_wal_prometheus_remote_storage_queue_highest_sent_timestamp_seconds{tenant=~\"${tenant}\"}\n or vector(0)\n )","interval":"","legendFormat":"{{tenant}}","refId":"A"}],"title":"Write Behind","type":"timeseries"},{"datasource":"${datasource}","description":"","fieldConfig":{"defaults":{"color":{"mode":"palette-classic"},"custom":{"axisLabel":"","axisPlacement":"auto","barAlignment":0,"drawStyle":"line","fillOpacity":0,"gradientMode":"none","hideFrom":{"legend":false,"tooltip":false,"viz":false},"lineInterpolation":"linear","lineWidth":1,"pointSize":5,"scaleDistribution":{"type":"linear"},"showPoints":"auto","spanNulls":false,"stacking":{"group":"A","mode":"none"},"thresholdsStyle":{"mode":"off"}},"mappings":[],"thresholds":{"mode":"absolute","steps":[{"color":"green","value":null},{"color":"red","value":80}]}},"overrides":[]},"gridPos":{"h":10,"w":12,"x":12,"y":10},"id":7,"options":{"legend":{"calcs":[],"displayMode":"list","placement":"bottom"},"tooltip":{"mode":"single"}},"targets":[{"datasource":"${datasource}","exemplar":true,"expr":"sum(rate(loki_ruler_wal_prometheus_remote_storage_samples_total{tenant=~\"${tenant}\"}[$__rate_interval])) by (tenant) \u003e 0","interval":"","legendFormat":"{{tenant}}","refId":"A"}],"title":"Samples Sent per Second","type":"timeseries"},{"datasource":"${datasource}","description":"\n","fieldConfig":{"defaults":{"color":{"mode":"palette-classic"},"custom":{"axisLabel":"","axisPlacement":"auto","barAlignment":0,"drawStyle":"line","fillOpacity":0,"gradientMode":"none","hideFrom":{"legend":false,"tooltip":false,"viz":false},"lineInterpolation":"linear","lineWidth":1,"pointSize":5,"scaleDistribution":{"type":"linear"},"showPoints":"auto","spanNulls":false,"stacking":{"group":"A","mode":"none"},"thresholdsStyle":{"mode":"off"}},"mappings":[],"thresholds":{"mode":"absolute","steps":[{"color":"green","value":null},{"color":"red","value":80}]},"unit":"bytes"},"overrides":[]},"gridPos":{"h":10,"w":12,"x":0,"y":20},"id":8,"options":{"legend":{"calcs":[],"displayMode":"list","placement":"bottom"},"tooltip":{"mode":"single"}},"targets":[{"datasource":"${datasource}","exemplar":true,"expr":"sum by (tenant) (loki_ruler_wal_disk_size{tenant=~\"${tenant}\"})","interval":"","legendFormat":"{{tenant}}","refId":"A"}],"title":"WAL Disk Size","type":"timeseries"},{"datasource":"${datasource}","description":"Some number of pending samples is expected, but if remote-write is failing this value will remain high","fieldConfig":{"defaults":{"color":{"mode":"palette-classic"},"custom":{"axisLabel":"","axisPlacement":"auto","barAlignment":0,"drawStyle":"line","fillOpacity":0,"gradientMode":"none","hideFrom":{"legend":false,"tooltip":false,"viz":false},"lineInterpolation":"linear","lineWidth":1,"pointSize":5,"scaleDistribution":{"type":"linear"},"showPoints":"auto","spanNulls":false,"stacking":{"group":"A","mode":"none"},"thresholdsStyle":{"mode":"off"}},"mappings":[],"thresholds":{"mode":"absolute","steps":[{"color":"green","value":null},{"color":"red","value":80}]}},"overrides":[]},"gridPos":{"h":10,"w":12,"x":12,"y":20},"id":9,"options":{"legend":{"calcs":[],"displayMode":"list","placement":"bottom"},"tooltip":{"mode":"single"}},"targets":[{"datasource":"${datasource}","exemplar":true,"expr":"max(loki_ruler_wal_prometheus_remote_storage_samples_pending{tenant=~\"${tenant}\"}) by (tenant,pod) \u003e 0","interval":"","legendFormat":"{{tenant}}","refId":"A"}],"title":"Pending Samples","type":"timeseries"}],"schemaVersion":31,"style":"dark","tags":[],"templating":{"list":[{"description":null,"error":null,"hide":0,"includeAll":false,"label":"Datasource","multi":false,"name":"datasource","options":[],"query":"prometheus","queryValue":"","refresh":1,"regex":"","skipUrlSync":false,"type":"datasource"},{"allValue":null,"datasource":"${datasource}","definition":"label_values(loki_ruler_wal_samples_appended_total, tenant)","description":null,"error":null,"hide":0,"includeAll":true,"label":"Tenant","multi":true,"name":"tenant","options":[],"query":{"query":"label_values(loki_ruler_wal_samples_appended_total, tenant)","refId":"StandardVariableQuery"},"refresh":2,"regex":"","skipUrlSync":false,"sort":0,"type":"query"}]},"time":{"from":"now-6h","to":"now"},"timepicker":{},"timezone":"","title":"Recording Rules","uid":"2xKA_ZK7k","version":9,"weekStart":""} + "loki-operational.json": | + {"annotations":{"list":[]},"editable":true,"gnetId":null,"graphTooltip":0,"hideControls":false,"id":68,"iteration":1588704280892,"links":[{"asDropdown":true,"icon":"external link","includeVars":true,"keepTime":true,"tags":["loki"],"targetBlank":false,"title":"Loki Dashboards","type":"dashboards"}],"panels":[{"collapsed":false,"datasource":null,"gridPos":{"h":1,"w":24,"x":0,"y":0},"id":17,"panels":[],"targets":[],"title":"Main","type":"row"},{"aliasColors":{"5xx":"red"},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":1,"fillGradient":0,"gridPos":{"h":5,"w":4,"x":0,"y":1},"hiddenSeries":false,"id":6,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum by (status) (\nlabel_replace(\n label_replace(\n rate(loki_request_duration_seconds_count{cluster=\"$cluster\", job=~\"($namespace)/(loki|enterprise-logs)-read\", route=~\"api_prom_query|api_prom_label|api_prom_label_name_values|loki_api_v1_query|loki_api_v1_query_range|loki_api_v1_label|loki_api_v1_label_name_values\"}[5m]),\n \"status\", \"${1}xx\", \"status_code\", \"([0-9])..\"),\n\"status\", \"${1}\", \"status_code\", \"([a-z]+)\")\n)","legendFormat":"{{status}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Queries/Second","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":10,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{"5xx":"red"},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":1,"fillGradient":0,"gridPos":{"h":5,"w":4,"x":4,"y":1},"hiddenSeries":false,"id":7,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum by (status) (\nlabel_replace(\n label_replace(\n rate(loki_request_duration_seconds_count{cluster=\"$cluster\", job=~\"($namespace)/(loki|enterprise-logs)-write\", route=~\"api_prom_push|loki_api_v1_push\"}[5m]),\n \"status\", \"${1}xx\", \"status_code\", \"([0-9])..\"),\n\"status\", \"${1}\", \"status_code\", \"([a-z]+)\"))","legendFormat":"{{status}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Pushes/Second","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":10,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":1,"fillGradient":0,"gridPos":{"h":5,"w":4,"x":12,"y":1},"hiddenSeries":false,"id":2,"interval":"","legend":{"avg":false,"current":false,"max":false,"min":false,"show":false,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"topk(10, sum(rate(loki_distributor_lines_received_total{cluster=\"$cluster\", namespace=\"$namespace\"}[5m])) by (tenant))","legendFormat":"{{tenant}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Lines Per Tenant (top 10)","tooltip":{"shared":false,"sort":0,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":1,"fillGradient":0,"gridPos":{"h":5,"w":4,"x":16,"y":1},"hiddenSeries":false,"id":4,"legend":{"avg":false,"current":false,"hideEmpty":true,"hideZero":true,"max":false,"min":false,"show":false,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"topk(10, sum(rate(loki_distributor_bytes_received_total{cluster=\"$cluster\", namespace=\"$namespace\"}[5m])) by (tenant)) / 1024 / 1024","legendFormat":"{{tenant}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"MBs Per Tenant (Top 10)","tooltip":{"shared":false,"sort":0,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":1,"fillGradient":0,"gridPos":{"h":5,"w":4,"x":20,"y":1},"hiddenSeries":false,"id":24,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":false,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"increase(kube_pod_container_status_restarts_total{cluster=\"$cluster\", namespace=\"$namespace\"}[10m]) \u003e 0","hide":false,"interval":"","legendFormat":"{{container}}-{{pod}}","refId":"B"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Container Restarts","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":1,"fillGradient":0,"gridPos":{"h":10,"w":12,"x":0,"y":6},"hiddenSeries":false,"id":9,"legend":{"alignAsTable":true,"avg":false,"current":false,"max":false,"min":false,"rightSide":true,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"histogram_quantile(0.99, sum by (le) (job_route:loki_request_duration_seconds_bucket:sum_rate{job=~\"($namespace)/(loki|enterprise-logs)-write\", route=~\"api_prom_push|loki_api_v1_push\", cluster=~\"$cluster\"})) * 1e3","legendFormat":".99","refId":"A"},{"expr":"histogram_quantile(0.75, sum by (le) (job_route:loki_request_duration_seconds_bucket:sum_rate{job=~\"($namespace)/(loki|enterprise-logs)-write\", route=~\"api_prom_push|loki_api_v1_push\", cluster=~\"$cluster\"})) * 1e3","legendFormat":".9","refId":"B"},{"expr":"histogram_quantile(0.5, sum by (le) (job_route:loki_request_duration_seconds_bucket:sum_rate{job=~\"($namespace)/(loki|enterprise-logs)-write\", route=~\"api_prom_push|loki_api_v1_push\", cluster=~\"$cluster\"})) * 1e3","legendFormat":".5","refId":"C"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Push Latency","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":1,"fillGradient":0,"gridPos":{"h":5,"w":6,"x":12,"y":6},"hiddenSeries":false,"id":12,"legend":{"alignAsTable":true,"avg":false,"current":false,"max":false,"min":false,"rightSide":true,"show":false,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"histogram_quantile(0.99, sum by (le) (job:loki_request_duration_seconds_bucket:sum_rate{job=~\"($namespace)/(loki|enterprise-logs)-write\", cluster=~\"$cluster\"})) * 1e3","legendFormat":".99","refId":"A"},{"expr":"histogram_quantile(0.9, sum by (le) (job:loki_request_duration_seconds_bucket:sum_rate{job=~\"($namespace)/(loki|enterprise-logs)-write\", cluster=~\"$cluster\"})) * 1e3","legendFormat":".9","refId":"B"},{"expr":"histogram_quantile(0.5, sum by (le) (job:loki_request_duration_seconds_bucket:sum_rate{job=~\"($namespace)/(loki|enterprise-logs)-write\", cluster=~\"$cluster\"})) * 1e3","legendFormat":".5","refId":"C"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Distributor Latency","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":5,"w":6,"x":18,"y":6},"hiddenSeries":false,"id":71,"legend":{"alignAsTable":true,"avg":false,"current":false,"max":false,"min":false,"rightSide":true,"show":false,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(rate(loki_request_duration_seconds_count{cluster=\"$cluster\", namespace=\"$namespace\", job=~\"($namespace)/(loki|enterprise-logs)-write\", status_code!~\"5[0-9]{2}\"}[5m])) by (route)\n/\nsum(rate(loki_request_duration_seconds_count{cluster=\"$cluster\", namespace=\"$namespace\", job=~\"($namespace)/(loki|enterprise-logs)-write\"}[5m])) by (route)","interval":"","legendFormat":"{{route}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Distributor Success Rate","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"decimals":null,"format":"percentunit","label":"","logBase":1,"max":"1","min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":1,"fillGradient":0,"gridPos":{"h":5,"w":6,"x":12,"y":11},"hiddenSeries":false,"id":13,"legend":{"alignAsTable":true,"avg":false,"current":false,"max":false,"min":false,"rightSide":true,"show":false,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"histogram_quantile(0.99, sum by (le) (job_route:loki_request_duration_seconds_bucket:sum_rate{job=~\"($namespace)/(loki|enterprise-logs)-write\", route=\"/logproto.Pusher/Push\", cluster=~\"$cluster\"})) * 1e3","legendFormat":".99","refId":"A"},{"expr":"histogram_quantile(0.9, sum by (le) (job_route:loki_request_duration_seconds_bucket:sum_rate{job=~\"($namespace)/(loki|enterprise-logs)-write\", route=\"/logproto.Pusher/Push\", cluster=~\"$cluster\"})) * 1e3","hide":false,"legendFormat":".9","refId":"B"},{"expr":"histogram_quantile(0.5, sum by (le) (job_route:loki_request_duration_seconds_bucket:sum_rate{job=~\"($namespace)/(loki|enterprise-logs)-write\", route=\"/logproto.Pusher/Push\", cluster=~\"$cluster\"})) * 1e3","hide":false,"legendFormat":".5","refId":"C"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Ingester Latency Write","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":5,"w":6,"x":18,"y":11},"hiddenSeries":false,"id":72,"legend":{"alignAsTable":true,"avg":false,"current":false,"max":false,"min":false,"rightSide":true,"show":false,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(rate(loki_request_duration_seconds_count{cluster=\"$cluster\", namespace=\"$namespace\", job=~\"($namespace)/(loki|enterprise-logs)-write\", status_code!~\"5[0-9]{2}\", route=\"/logproto.Pusher/Push\"}[5m])) by (route)\n/\nsum(rate(loki_request_duration_seconds_count{cluster=\"$cluster\", namespace=\"$namespace\", job=~\"($namespace)/(loki|enterprise-logs)-write\", route=\"/logproto.Pusher/Push\"}[5m])) by (route)","interval":"","legendFormat":"{{route}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Ingester Success Rate Write","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"decimals":null,"format":"percentunit","label":"","logBase":1,"max":"1","min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":1,"fillGradient":0,"gridPos":{"h":10,"w":12,"x":0,"y":16},"hiddenSeries":false,"id":10,"legend":{"alignAsTable":true,"avg":false,"current":false,"hideEmpty":true,"hideZero":false,"max":false,"min":false,"rightSide":true,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"histogram_quantile(0.99, sum by (le,route) (job_route:loki_request_duration_seconds_bucket:sum_rate{job=~\"($namespace)/(loki|enterprise-logs)-read\", route=~\"api_prom_query|api_prom_labels|api_prom_label_name_values|loki_api_v1_query|loki_api_v1_query_range|loki_api_v1_label|loki_api_v1_label_name_values\", cluster=\"$cluster\"}))","legendFormat":"{{route}}-.99","refId":"A"},{"expr":"histogram_quantile(0.9, sum by (le,route) (job_route:loki_request_duration_seconds_bucket:sum_rate{job=~\"($namespace)/(loki|enterprise-logs)-read\", route=~\"api_prom_query|api_prom_labels|api_prom_label_name_values|loki_api_v1_query|loki_api_v1_query_range|loki_api_v1_label|loki_api_v1_label_name_values\", cluster=\"$cluster\"}))","legendFormat":"{{route}}-.9","refId":"B"},{"expr":"histogram_quantile(0.5, sum by (le,route) (job_route:loki_request_duration_seconds_bucket:sum_rate{job=~\"($namespace)/(loki|enterprise-logs)-read\", route=~\"api_prom_query|api_prom_labels|api_prom_label_name_values|loki_api_v1_query|loki_api_v1_query_range|loki_api_v1_label|loki_api_v1_label_name_values\", cluster=\"$cluster\"}))","legendFormat":"{{route}}-.5","refId":"C"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Query Latency","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":1,"fillGradient":0,"gridPos":{"h":5,"w":6,"x":12,"y":16},"hiddenSeries":false,"id":14,"legend":{"alignAsTable":true,"avg":false,"current":false,"max":false,"min":false,"rightSide":true,"show":false,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"histogram_quantile(0.99, sum by (le,route) (job_route:loki_request_duration_seconds_bucket:sum_rate{job=~\"($namespace)/(loki|enterprise-logs)-read\", route=~\"api_prom_query|api_prom_labels|api_prom_label_name_values|loki_api_v1_query|loki_api_v1_query_range|loki_api_v1_label|loki_api_v1_label_name_values\", cluster=\"$cluster\"})) * 1e3","legendFormat":".99-{{route}}","refId":"A"},{"expr":"histogram_quantile(0.9, sum by (le,route) (job_route:loki_request_duration_seconds_bucket:sum_rate{job=~\"($namespace)/(loki|enterprise-logs)-read\", route=~\"api_prom_query|api_prom_labels|api_prom_label_name_values|loki_api_v1_query|loki_api_v1_query_range|loki_api_v1_label|loki_api_v1_label_name_values\", cluster=\"$cluster\"})) * 1e3","legendFormat":".9-{{route}}","refId":"B"},{"expr":"histogram_quantile(0.5, sum by (le,route) (job_route:loki_request_duration_seconds_bucket:sum_rate{job=~\"($namespace)/(loki|enterprise-logs)-read\", route=~\"api_prom_query|api_prom_labels|api_prom_label_name_values|loki_api_v1_query|loki_api_v1_query_range|loki_api_v1_label|loki_api_v1_label_name_values\", cluster=\"$cluster\"})) * 1e3","legendFormat":".5-{{route}}","refId":"C"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Querier Latency","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":5,"w":6,"x":18,"y":16},"hiddenSeries":false,"id":73,"legend":{"alignAsTable":true,"avg":false,"current":false,"max":false,"min":false,"rightSide":true,"show":false,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(rate(loki_request_duration_seconds_count{cluster=\"$cluster\", namespace=\"$namespace\", job=~\"($namespace)/(loki|enterprise-logs)-read\", status_code!~\"5[0-9]{2}\"}[5m])) by (route)\n/\nsum(rate(loki_request_duration_seconds_count{cluster=\"$cluster\", namespace=\"$namespace\", job=~\"($namespace)/(loki|enterprise-logs)-read\"}[5m])) by (route)","interval":"","legendFormat":"{{route}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Querier Success Rate","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"decimals":null,"format":"percentunit","label":"","logBase":1,"max":"1","min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","description":"","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":1,"fillGradient":0,"gridPos":{"h":5,"w":6,"x":12,"y":21},"hiddenSeries":false,"id":15,"legend":{"alignAsTable":true,"avg":false,"current":false,"max":false,"min":false,"rightSide":true,"show":false,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"histogram_quantile(0.99, sum by (le,route) (job_route:loki_request_duration_seconds_bucket:sum_rate{job=~\"($namespace)/(loki|enterprise-logs)-write\", route=~\"/logproto.Querier/Query|/logproto.Querier/Label|/logproto.Querier/Series|/logproto.Querier/QuerySample|/logproto.Querier/GetChunkIDs\", cluster=\"$cluster\"})) * 1e3","legendFormat":".99-{{route}}","refId":"A"},{"expr":"histogram_quantile(0.9, sum by (le,route) (job_route:loki_request_duration_seconds_bucket:sum_rate{job=~\"($namespace)/(loki|enterprise-logs)-write\", route=~\"/logproto.Querier/Query|/logproto.Querier/Label|/logproto.Querier/Series|/logproto.Querier/QuerySample|/logproto.Querier/GetChunkIDs\", cluster=\"$cluster\"})) * 1e3","legendFormat":".9-{{route}}","refId":"B"},{"expr":"histogram_quantile(0.5, sum by (le,route) (job_route:loki_request_duration_seconds_bucket:sum_rate{job=~\"($namespace)/(loki|enterprise-logs)-write\", route=~\"/logproto.Querier/Query|/logproto.Querier/Label|/logproto.Querier/Series|/logproto.Querier/QuerySample|/logproto.Querier/GetChunkIDs\", cluster=\"$cluster\"})) * 1e3","legendFormat":".5-{{route}}","refId":"C"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Ingester Latency Read","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fieldConfig":{"defaults":{"custom":{}},"overrides":[]},"fill":0,"fillGradient":0,"gridPos":{"h":5,"w":6,"x":18,"y":21},"hiddenSeries":false,"id":74,"legend":{"alignAsTable":true,"avg":false,"current":false,"max":false,"min":false,"rightSide":true,"show":false,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(rate(loki_request_duration_seconds_count{cluster=\"$cluster\", namespace=\"$namespace\", job=~\"($namespace)/(loki|enterprise-logs)-write\", status_code!~\"5[0-9]{2}\", route=~\"/logproto.Querier/Query|/logproto.Querier/Label|/logproto.Querier/Series|/logproto.Querier/QuerySample|/logproto.Querier/GetChunkIDs\"}[5m])) by (route)\n/\nsum(rate(loki_request_duration_seconds_count{cluster=\"$cluster\", namespace=\"$namespace\", job=~\"($namespace)/(loki|enterprise-logs)-write\", route=~\"/logproto.Querier/Query|/logproto.Querier/Label|/logproto.Querier/Series|/logproto.Querier/QuerySample|/logproto.Querier/GetChunkIDs\"}[5m])) by (route)","interval":"","legendFormat":"{{route}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Ingester Success Rate Read","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"decimals":null,"format":"percentunit","label":"","logBase":1,"max":"1","min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"collapsed":true,"datasource":null,"gridPos":{"h":1,"w":24,"x":0,"y":26},"id":110,"panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":27},"hiddenSeries":false,"id":112,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":false,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"topk(10,sum by (tenant, reason) (rate(loki_discarded_samples_total{cluster=\"$cluster\",namespace=\"$namespace\"}[1m])))","interval":"","legendFormat":"{{ tenant }} - {{ reason }}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Discarded Lines","tooltip":{"shared":false,"sort":0,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"columns":[],"datasource":"$datasource","fontSize":"100%","gridPos":{"h":8,"w":12,"x":12,"y":27},"id":113,"pageSize":null,"panels":[],"showHeader":true,"sort":{"col":3,"desc":true},"styles":[{"alias":"Time","align":"auto","dateFormat":"YYYY-MM-DD HH:mm:ss","pattern":"Time","type":"hidden"},{"alias":"","align":"auto","colorMode":null,"colors":["rgba(245, 54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":2,"mappingType":1,"pattern":"tenant","thresholds":[],"type":"string","unit":"short"},{"alias":"","align":"auto","colorMode":null,"colors":["rgba(245, 54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":2,"mappingType":1,"pattern":"reason","thresholds":[],"type":"number","unit":"short"},{"alias":"","align":"right","colorMode":null,"colors":["rgba(245, 54, 54, 0.9)","rgba(237, 129, 40, 0.89)","rgba(50, 172, 45, 0.97)"],"decimals":2,"pattern":"/.*/","thresholds":[],"type":"number","unit":"short"}],"targets":[{"expr":"topk(10, sum by (tenant, reason) (sum_over_time(increase(loki_discarded_samples_total{cluster=\"$cluster\",namespace=\"$namespace\"}[1m])[$__range:1m])))","format":"table","instant":true,"interval":"","legendFormat":"{{ tenant }} - {{ reason }}","refId":"A"}],"timeFrom":null,"timeShift":null,"title":"Discarded Lines Per Interval","transform":"table","type":"table-old"}],"targets":[],"title":"Limits","type":"row"},{"collapsed":true,"datasource":null,"gridPos":{"h":1,"w":24,"x":0,"y":27},"id":23,"panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"fillGradient":0,"gridPos":{"h":7,"w":6,"x":0,"y":28},"hiddenSeries":false,"id":26,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":false,"total":false,"values":false},"lines":false,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":1,"points":true,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{cluster=\"$cluster\", namespace=\"$namespace\", pod=~\"(loki|enterprise-logs)-write.*\"}","intervalFactor":3,"legendFormat":"{{pod}}-{{container}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"CPU Usage","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"fillGradient":0,"gridPos":{"h":7,"w":6,"x":6,"y":28},"hiddenSeries":false,"id":27,"legend":{"avg":false,"current":false,"hideEmpty":false,"hideZero":false,"max":false,"min":false,"show":false,"total":false,"values":false},"lines":false,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":1,"points":true,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"go_memstats_heap_inuse_bytes{cluster=\"$cluster\", namespace=\"$namespace\", pod=~\"(loki|enterprise-logs)-write.*\"}","instant":false,"intervalFactor":3,"legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Memory Usage","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"bytes","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":true,"dashLength":10,"dashes":false,"datasource":"$logs","fill":1,"fillGradient":0,"gridPos":{"h":4,"w":12,"x":12,"y":28},"hiddenSeries":false,"id":31,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":false,"total":false,"values":false},"lines":false,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[{"alias":"{}","color":"#C4162A"}],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(rate({cluster=\"$cluster\", namespace=\"$namespace\", job=~\"($namespace)/(loki|enterprise-logs)-write\"} | logfmt | level=\"error\"[1m]))","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Error Log Rate","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":false,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"datasource":"$logs","gridPos":{"h":18,"w":12,"x":12,"y":32},"id":29,"options":{"showLabels":false,"showTime":false,"sortOrder":"Descending","wrapLogMessage":true},"panels":[],"targets":[{"expr":"{cluster=\"$cluster\", namespace=\"$namespace\", job=~\"($namespace)/(loki|enterprise-logs)-write\"} | logfmt | level=\"error\"","refId":"A"}],"timeFrom":null,"timeShift":null,"title":"Logs","type":"logs"},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":0,"fillGradient":0,"gridPos":{"h":7,"w":6,"x":0,"y":35},"hiddenSeries":false,"id":33,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":false,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":1,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(rate(loki_request_duration_seconds_count{cluster=\"$cluster\", namespace=\"$namespace\", job=~\"($namespace)/(loki|enterprise-logs)-write\", status_code!~\"5[0-9]{2}\"}[5m])) by (route)\n/\nsum(rate(loki_request_duration_seconds_count{cluster=\"$cluster\", namespace=\"$namespace\", job=~\"($namespace)/(loki|enterprise-logs)-write\"}[5m])) by (route)","interval":"","intervalFactor":1,"legendFormat":"{{route}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Success Rate","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"fillGradient":0,"gridPos":{"h":7,"w":6,"x":6,"y":35},"hiddenSeries":false,"id":32,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":false,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":1,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(rate(loki_distributor_ingester_append_failures_total{cluster=\"$cluster\", namespace=\"$namespace\"}[5m])) by (ingester)","intervalFactor":1,"legendFormat":"{{ingester}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Append Failures By Ingester","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"fillGradient":0,"gridPos":{"h":7,"w":6,"x":0,"y":42},"hiddenSeries":false,"id":34,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":false,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":1,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(rate(loki_distributor_bytes_received_total{cluster=\"$cluster\", namespace=\"$namespace\"}[5m])) by (pod)","intervalFactor":1,"legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Bytes Received/Second","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"fillGradient":0,"gridPos":{"h":7,"w":6,"x":6,"y":42},"hiddenSeries":false,"id":35,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":false,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":1,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(rate(loki_distributor_lines_received_total{cluster=\"$cluster\", namespace=\"$namespace\"}[5m])) by (pod)","intervalFactor":1,"legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Lines Received/Second","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}}],"targets":[],"title":"Write Path","type":"row"},{"collapsed":true,"datasource":null,"gridPos":{"h":1,"w":24,"x":0,"y":29},"id":104,"panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":30},"hiddenSeries":false,"id":106,"legend":{"avg":false,"current":false,"hideEmpty":true,"hideZero":true,"max":false,"min":false,"show":false,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"topk(10,sum by (tenant) (loki_ingester_memory_streams{cluster=\"$cluster\",job=~\"($namespace)/(loki|enterprise-logs)-write\"}))","interval":"","legendFormat":"{{ tenant }}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Active Streams","tooltip":{"shared":false,"sort":0,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":12,"y":30},"hiddenSeries":false,"id":108,"legend":{"avg":false,"current":false,"hideEmpty":true,"hideZero":true,"max":false,"min":false,"show":false,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"topk(10, sum by (tenant) (rate(loki_ingester_streams_created_total{cluster=\"$cluster\",job=~\"($namespace)/(loki|enterprise-logs)-write\"}[1m]) \u003e 0))","interval":"","legendFormat":"{{ tenant }}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Streams Created/Sec","tooltip":{"shared":false,"sort":0,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}}],"targets":[],"title":"Streams","type":"row"},{"collapsed":true,"datasource":null,"gridPos":{"h":1,"w":24,"x":0,"y":30},"id":94,"panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"fillGradient":0,"gridPos":{"h":8,"w":12,"x":0,"y":31},"hiddenSeries":false,"id":102,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[{"alias":"De-Dupe Ratio","yaxis":2}],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(rate(loki_ingester_chunks_flushed_total{cluster=\"$cluster\",job=~\"($namespace)/(loki|enterprise-logs)-write\"}[1m]))","interval":"","legendFormat":"Chunks","refId":"A"},{"expr":"sum(increase(loki_chunk_store_deduped_chunks_total{cluster=\"$cluster\", job=~\"($namespace)/(loki|enterprise-logs)-write\"}[1m]))/sum(increase(loki_ingester_chunks_flushed_total{cluster=\"$cluster\", job=~\"($namespace)/(loki|enterprise-logs)-write\"}[1m])) \u003c 1","interval":"","legendFormat":"De-Dupe Ratio","refId":"B"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Chunks Flushed/Sec","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"cards":{"cardPadding":null,"cardRound":null},"color":{"cardColor":"#b4ff00","colorScale":"sqrt","colorScheme":"interpolateSpectral","exponent":0.5,"mode":"spectrum"},"dataFormat":"tsbuckets","datasource":"$datasource","gridPos":{"h":8,"w":12,"x":12,"y":31},"heatmap":{},"hideZeroBuckets":false,"highlightCards":true,"id":100,"legend":{"show":true},"panels":[],"reverseYBuckets":false,"targets":[{"expr":"sum(rate(loki_ingester_chunk_size_bytes_bucket{cluster=\"$cluster\",job=~\"($namespace)/(loki|enterprise-logs)-write\"}[1m])) by (le)","format":"heatmap","instant":false,"interval":"","legendFormat":"{{ le }}","refId":"A"}],"timeFrom":null,"timeShift":null,"title":"Chunk Size Bytes","tooltip":{"show":true,"showHistogram":false},"type":"heatmap","xAxis":{"show":true},"xBucketNumber":null,"xBucketSize":null,"yAxis":{"decimals":0,"format":"bytes","logBase":1,"max":null,"min":null,"show":true,"splitFactor":null},"yBucketBound":"auto","yBucketNumber":null,"yBucketSize":null},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":7,"fillGradient":0,"gridPos":{"h":9,"w":12,"x":0,"y":39},"hiddenSeries":false,"id":96,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":true,"steppedLine":false,"targets":[{"expr":"sum by(reason) (rate(loki_ingester_chunks_flushed_total{cluster=~\"$cluster\",job=~\"$namespace/ingester\", namespace=~\"$namespace\"}[$__rate_interval])) / ignoring(reason) group_left sum(rate(loki_ingester_chunks_flushed_total{cluster=~\"$cluster\",job=~\"$namespace/ingester\", namespace=~\"$namespace\"}[$__rate_interval]))","interval":"","legendFormat":"{{ reason }}"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Chunk Flush Reason %","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"percentunit","label":null,"logBase":1,"max":"1","min":"0","show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"cards":{"cardPadding":null,"cardRound":null},"color":{"cardColor":"#b4ff00","colorScale":"sqrt","colorScheme":"interpolateSpectral","exponent":0.5,"max":null,"min":null,"mode":"spectrum"},"dataFormat":"tsbuckets","datasource":"$datasource","gridPos":{"h":9,"w":12,"x":12,"y":39},"heatmap":{},"hideZeroBuckets":true,"highlightCards":true,"id":98,"legend":{"show":true},"panels":[],"reverseYBuckets":false,"targets":[{"expr":"sum by (le) (rate(loki_ingester_chunk_utilization_bucket{cluster=\"$cluster\", job=~\"($namespace)/(loki|enterprise-logs)-write\"}[1m]))","format":"heatmap","instant":false,"interval":"","legendFormat":"{{ le }}","refId":"A"}],"timeFrom":null,"timeShift":null,"title":"Chunk Utilization","tooltip":{"show":true,"showHistogram":false},"type":"heatmap","xAxis":{"show":true},"xBucketNumber":null,"xBucketSize":null,"yAxis":{"decimals":0,"format":"percentunit","logBase":1,"max":null,"min":null,"show":true,"splitFactor":null},"yBucketBound":"auto","yBucketNumber":null,"yBucketSize":null}],"targets":[],"title":"Chunks","type":"row"},{"collapsed":true,"datasource":null,"gridPos":{"h":1,"w":24,"x":0,"y":31},"id":64,"panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"fillGradient":0,"gridPos":{"h":7,"w":6,"x":0,"y":32},"hiddenSeries":false,"id":68,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":false,"total":false,"values":false},"lines":false,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":1,"points":true,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{cluster=\"$cluster\", namespace=\"$namespace\", pod=~\"(loki|enterprise-logs)-read.*\"}","intervalFactor":3,"legendFormat":"{{pod}}-{{container}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"CPU Usage","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"fillGradient":0,"gridPos":{"h":7,"w":6,"x":0,"y":39},"hiddenSeries":false,"id":69,"legend":{"avg":false,"current":false,"hideEmpty":false,"hideZero":false,"max":false,"min":false,"show":false,"total":false,"values":false},"lines":false,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":1,"points":true,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"go_memstats_heap_inuse_bytes{cluster=\"$cluster\", namespace=\"$namespace\", pod=~\"(loki|enterprise-logs)-read.*\"}","instant":false,"intervalFactor":3,"legendFormat":"{{pod}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Memory Usage","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"bytes","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":true,"dashLength":10,"dashes":false,"datasource":"$logs","fill":1,"fillGradient":0,"gridPos":{"h":3,"w":18,"x":12,"y":32},"hiddenSeries":false,"id":65,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":false,"total":false,"values":false},"lines":false,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[{"alias":"{}","color":"#F2495C"}],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(rate({cluster=\"$cluster\", namespace=\"$namespace\", job=~\"($namespace)/(loki|enterprise-logs)-read\"} | logfmt | level=\"error\"[1m]))","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Error Log Rate","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":false,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}],"yaxis":{"align":false,"alignLevel":null}},{"datasource":"$logs","gridPos":{"h":18,"w":18,"x":12,"y":35},"id":66,"options":{"showLabels":false,"showTime":false,"sortOrder":"Descending","wrapLogMessage":true},"panels":[],"targets":[{"expr":"{cluster=\"$cluster\", namespace=\"$namespace\", job=~\"($namespace)/(loki|enterprise-logs)-read\"} | logfmt | level=\"error\"","refId":"A"}],"timeFrom":null,"timeShift":null,"title":"Logs","type":"logs"},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":0,"fillGradient":0,"gridPos":{"h":7,"w":6,"x":0,"y":46},"hiddenSeries":false,"id":70,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":false,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":1,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(rate(loki_request_duration_seconds_count{cluster=\"$cluster\", namespace=\"$namespace\", job=~\"($namespace)/(loki|enterprise-logs)-read\", status_code!~\"5[0-9]{2}\"}[1m])) by (route)\n/\nsum(rate(loki_request_duration_seconds_count{cluster=\"$cluster\", namespace=\"$namespace\", job=~\"($namespace)/(loki|enterprise-logs)-read\"}[1m])) by (route)","interval":"","intervalFactor":1,"legendFormat":"{{route}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Success Rate","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}}],"targets":[],"title":"Read Path","type":"row"},{"collapsed":true,"datasource":null,"gridPos":{"h":1,"w":24,"x":0,"y":32},"id":52,"panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"fillGradient":0,"gridPos":{"h":8,"w":24,"x":0,"y":30},"hiddenSeries":false,"id":53,"interval":"","legend":{"alignAsTable":true,"avg":false,"current":false,"max":false,"min":false,"rightSide":true,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":1,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"histogram_quantile(.99, sum(rate(loki_memcache_request_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"$namespace\"}[5m])) by (method, name, le, container))","intervalFactor":1,"legendFormat":"{{container}}: .99-{{method}}-{{name}}","refId":"A"},{"expr":"histogram_quantile(.9, sum(rate(loki_memcache_request_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"$namespace\"}[5m])) by (method, name, le, container))","hide":false,"legendFormat":"{{container}}: .9-{{method}}-{{name}}","refId":"B"},{"expr":"histogram_quantile(.5, sum(rate(loki_memcache_request_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"$namespace\"}[5m])) by (method, name, le, container))","hide":false,"legendFormat":"{{container}}: .5-{{method}}-{{name}}","refId":"C"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Latency By Method","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"fillGradient":0,"gridPos":{"h":8,"w":24,"x":0,"y":38},"hiddenSeries":false,"id":54,"interval":"","legend":{"alignAsTable":true,"avg":false,"current":false,"max":false,"min":false,"rightSide":true,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":1,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(rate(loki_memcache_request_duration_seconds_count{cluster=\"$cluster\", namespace=\"$namespace\"}[5m])) by (status_code, method, name, container)","intervalFactor":1,"legendFormat":"{{container}}: {{status_code}}-{{method}}-{{name}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Status By Method","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}}],"targets":[],"title":"Memcached","type":"row"},{"collapsed":true,"datasource":null,"gridPos":{"h":1,"w":24,"x":0,"y":33},"id":57,"panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"fillGradient":0,"gridPos":{"h":8,"w":24,"x":0,"y":31},"hiddenSeries":false,"id":55,"interval":"","legend":{"alignAsTable":true,"avg":false,"current":false,"max":false,"min":false,"rightSide":true,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":1,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"histogram_quantile(.99, sum(rate(loki_consul_request_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"$namespace\"}[5m])) by (operation, le))","intervalFactor":1,"legendFormat":".99-{{operation}}","refId":"A"},{"expr":"histogram_quantile(.9, sum(rate(loki_consul_request_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"$namespace\"}[5m])) by (operation, le))","hide":false,"legendFormat":".9-{{operation}}","refId":"B"},{"expr":"histogram_quantile(.5, sum(rate(loki_consul_request_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"$namespace\"}[5m])) by (operation, le))","hide":false,"legendFormat":".5-{{operation}}","refId":"C"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Latency By Operation","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"fillGradient":0,"gridPos":{"h":8,"w":24,"x":0,"y":39},"hiddenSeries":false,"id":58,"interval":"","legend":{"alignAsTable":true,"avg":false,"current":false,"max":false,"min":false,"rightSide":true,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":1,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(rate(loki_consul_request_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"$namespace\"}[5m])) by (operation, status_code, method)","intervalFactor":1,"legendFormat":"{{status_code}}-{{operation}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Status By Operation","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}}],"targets":[],"title":"Consul","type":"row"},{"collapsed":true,"datasource":null,"gridPos":{"h":1,"w":24,"x":0,"y":34},"id":43,"panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"fillGradient":0,"gridPos":{"h":7,"w":6,"x":0,"y":9},"hiddenSeries":false,"id":41,"interval":"","legend":{"avg":false,"current":false,"max":false,"min":false,"show":false,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":1,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"histogram_quantile(.99, sum(rate(loki_bigtable_request_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"$namespace\", operation=\"/google.bigtable.v2.Bigtable/MutateRows\"}[5m])) by (operation, le))","intervalFactor":1,"legendFormat":".9","refId":"A"},{"expr":"histogram_quantile(.9, sum(rate(loki_bigtable_request_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"$namespace\", operation=\"/google.bigtable.v2.Bigtable/MutateRows\"}[5m])) by (operation, le))","refId":"B"},{"expr":"histogram_quantile(.5, sum(rate(loki_bigtable_request_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"$namespace\", operation=\"/google.bigtable.v2.Bigtable/MutateRows\"}[5m])) by (operation, le))","refId":"C"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"MutateRows Latency","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"fillGradient":0,"gridPos":{"h":7,"w":6,"x":6,"y":9},"hiddenSeries":false,"id":46,"interval":"","legend":{"avg":false,"current":false,"max":false,"min":false,"show":false,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":1,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"histogram_quantile(.99, sum(rate(loki_bigtable_request_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"$namespace\", operation=\"/google.bigtable.v2.Bigtable/ReadRows\"}[5m])) by (operation, le))","interval":"","intervalFactor":1,"legendFormat":"99%","refId":"A"},{"expr":"histogram_quantile(.9, sum(rate(loki_bigtable_request_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"$namespace\", operation=\"/google.bigtable.v2.Bigtable/ReadRows\"}[5m])) by (operation, le))","interval":"","legendFormat":"90%","refId":"B"},{"expr":"histogram_quantile(.5, sum(rate(loki_bigtable_request_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"$namespace\", operation=\"/google.bigtable.v2.Bigtable/ReadRows\"}[5m])) by (operation, le))","interval":"","legendFormat":"50%","refId":"C"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"ReadRows Latency","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"fillGradient":0,"gridPos":{"h":7,"w":6,"x":12,"y":9},"hiddenSeries":false,"id":44,"interval":"","legend":{"avg":false,"current":false,"max":false,"min":false,"show":false,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":1,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"histogram_quantile(.99, sum(rate(loki_bigtable_request_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"$namespace\", operation=\"/google.bigtable.admin.v2.BigtableTableAdmin/GetTable\"}[5m])) by (operation, le))","interval":"","intervalFactor":1,"legendFormat":"99%","refId":"A"},{"expr":"histogram_quantile(.9, sum(rate(loki_bigtable_request_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"$namespace\", operation=\"/google.bigtable.admin.v2.BigtableTableAdmin/GetTable\"}[5m])) by (operation, le))","interval":"","legendFormat":"90%","refId":"B"},{"expr":"histogram_quantile(.5, sum(rate(loki_bigtable_request_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"$namespace\", operation=\"/google.bigtable.admin.v2.BigtableTableAdmin/GetTable\"}[5m])) by (operation, le))","interval":"","legendFormat":"50%","refId":"C"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"GetTable Latency","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"fillGradient":0,"gridPos":{"h":7,"w":6,"x":18,"y":9},"hiddenSeries":false,"id":45,"interval":"","legend":{"avg":false,"current":false,"max":false,"min":false,"show":false,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":1,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"histogram_quantile(.99, sum(rate(loki_bigtable_request_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"$namespace\", operation=\"/google.bigtable.admin.v2.BigtableTableAdmin/ListTables\"}[5m])) by (operation, le))","intervalFactor":1,"legendFormat":".9","refId":"A"},{"expr":"histogram_quantile(.9, sum(rate(loki_bigtable_request_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"$namespace\", operation=\"/google.bigtable.admin.v2.BigtableTableAdmin/ListTables\"}[5m])) by (operation, le))","refId":"B"},{"expr":"histogram_quantile(.5, sum(rate(loki_bigtable_request_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"$namespace\", operation=\"/google.bigtable.admin.v2.BigtableTableAdmin/ListTables\"}[5m])) by (operation, le))","refId":"C"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"ListTables Latency","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"fillGradient":0,"gridPos":{"h":7,"w":6,"x":0,"y":16},"hiddenSeries":false,"id":47,"interval":"","legend":{"avg":false,"current":false,"max":false,"min":false,"show":false,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":1,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(rate(loki_bigtable_request_duration_seconds_count{cluster=\"$cluster\", namespace=\"$namespace\", operation=\"/google.bigtable.v2.Bigtable/MutateRows\"}[5m])) by (status_code)","intervalFactor":1,"legendFormat":"{{status_code}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"MutateRows Status","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"fillGradient":0,"gridPos":{"h":7,"w":6,"x":6,"y":16},"hiddenSeries":false,"id":50,"interval":"","legend":{"avg":false,"current":false,"max":false,"min":false,"show":false,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":1,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(rate(loki_bigtable_request_duration_seconds_count{cluster=\"$cluster\", namespace=\"$namespace\", operation=\"/google.bigtable.v2.Bigtable/ReadRows\"}[5m])) by (status_code)","intervalFactor":1,"legendFormat":"{{status_code}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"ReadRows Status","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"fillGradient":0,"gridPos":{"h":7,"w":6,"x":12,"y":16},"hiddenSeries":false,"id":48,"interval":"","legend":{"avg":false,"current":false,"max":false,"min":false,"show":false,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":1,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(rate(loki_bigtable_request_duration_seconds_count{cluster=\"$cluster\", namespace=\"$namespace\", operation=\"/google.bigtable.admin.v2.BigtableTableAdmin/GetTable\"}[5m])) by (status_code)","intervalFactor":1,"legendFormat":"{{status_code}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"GetTable Status","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"fillGradient":0,"gridPos":{"h":7,"w":6,"x":18,"y":16},"hiddenSeries":false,"id":49,"interval":"","legend":{"avg":false,"current":false,"max":false,"min":false,"show":false,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":1,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(rate(loki_bigtable_request_duration_seconds_count{cluster=\"$cluster\", namespace=\"$namespace\", operation=\"/google.bigtable.admin.v2.BigtableTableAdmin/ListTables\"}[5m])) by (status_code)","intervalFactor":1,"legendFormat":"{{status_code}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"ListTables Status","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}}],"targets":[],"title":"Big Table","type":"row"},{"collapsed":true,"datasource":null,"gridPos":{"h":1,"w":24,"x":0,"y":35},"id":60,"panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"fillGradient":0,"gridPos":{"h":8,"w":24,"x":0,"y":33},"hiddenSeries":false,"id":61,"interval":"","legend":{"alignAsTable":true,"avg":false,"current":false,"max":false,"min":false,"rightSide":true,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":1,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"histogram_quantile(.99, sum(rate(loki_gcs_request_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"$namespace\"}[5m])) by (operation, le))","intervalFactor":1,"legendFormat":".99-{{operation}}","refId":"A"},{"expr":"histogram_quantile(.9, sum(rate(loki_gcs_request_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"$namespace\"}[5m])) by (operation, le))","hide":false,"legendFormat":".9-{{operation}}","refId":"B"},{"expr":"histogram_quantile(.5, sum(rate(loki_gcs_request_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"$namespace\"}[5m])) by (operation, le))","hide":false,"legendFormat":".5-{{operation}}","refId":"C"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Latency By Operation","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"fillGradient":0,"gridPos":{"h":8,"w":24,"x":0,"y":41},"hiddenSeries":false,"id":62,"interval":"","legend":{"alignAsTable":true,"avg":false,"current":false,"max":false,"min":false,"rightSide":true,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":1,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(rate(loki_gcs_request_duration_seconds_count{cluster=\"$cluster\", namespace=\"$namespace\"}[5m])) by (status_code, operation)","intervalFactor":1,"legendFormat":"{{status_code}}-{{operation}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Status By Method","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}}],"targets":[],"title":"GCS","type":"row"},{"collapsed":true,"datasource":null,"gridPos":{"h":1,"w":24,"x":0,"y":36},"id":76,"panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":null,"fill":1,"fillGradient":0,"gridPos":{"h":6,"w":6,"x":0,"y":9},"id":82,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(rate(cortex_dynamo_failures_total{cluster=\"$cluster\", namespace=\"$namespace\"}[5m]))","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Failure Rate","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":null,"fill":1,"fillGradient":0,"gridPos":{"h":6,"w":6,"x":6,"y":9},"id":83,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(rate(cortex_dynamo_consumed_capacity_total{cluster=\"$cluster\", namespace=\"$namespace\"}[5m]))","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Consumed Capacity Rate","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":null,"fill":1,"fillGradient":0,"gridPos":{"h":6,"w":6,"x":12,"y":9},"id":84,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(rate(cortex_dynamo_throttled_total{cluster=\"$cluster\", namespace=\"$namespace\"}[5m]))","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Throttled Rate","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":null,"fill":1,"fillGradient":0,"gridPos":{"h":6,"w":6,"x":18,"y":9},"id":85,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(rate(cortex_dynamo_dropped_requests_total{cluster=\"$cluster\", namespace=\"$namespace\"}[5m]))","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Dropped Rate","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":null,"fill":1,"fillGradient":0,"gridPos":{"h":6,"w":6,"x":0,"y":15},"id":86,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":2,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"histogram_quantile(.99, sum(rate(cortex_dynamo_query_pages_count{cluster=\"$cluster\", namespace=\"$namespace\"}[5m])))","legendFormat":".99","refId":"A"},{"expr":"histogram_quantile(.9, sum(rate(cortex_dynamo_query_pages_count{cluster=\"$cluster\", namespace=\"$namespace\"}[5m])))","legendFormat":".9","refId":"B"},{"expr":"histogram_quantile(.5, sum(rate(cortex_dynamo_query_pages_count{cluster=\"$cluster\", namespace=\"$namespace\"}[5m])))","legendFormat":".5","refId":"C"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Query Pages","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"fillGradient":0,"gridPos":{"h":6,"w":9,"x":6,"y":15},"id":87,"interval":"","legend":{"alignAsTable":true,"avg":false,"current":false,"max":false,"min":false,"rightSide":true,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":1,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"histogram_quantile(.99, sum(rate(cortex_dynamo_request_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"$namespace\"}[5m])) by (operation, le))","intervalFactor":1,"legendFormat":".99-{{operation}}","refId":"A"},{"expr":"histogram_quantile(.9, sum(rate(cortex_dynamo_request_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"$namespace\"}[5m])) by (operation, le))","hide":false,"legendFormat":".9-{{operation}}","refId":"B"},{"expr":"histogram_quantile(.5, sum(rate(cortex_dynamo_request_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"$namespace\"}[5m])) by (operation, le))","hide":false,"legendFormat":".5-{{operation}}","refId":"C"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Latency By Operation","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"fillGradient":0,"gridPos":{"h":6,"w":9,"x":15,"y":15},"id":88,"interval":"","legend":{"alignAsTable":true,"avg":false,"current":false,"max":false,"min":false,"rightSide":true,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":1,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(rate(cortex_dynamo_request_duration_seconds_count{cluster=\"$cluster\", namespace=\"$namespace\"}[5m])) by (status_code, operation)","intervalFactor":1,"legendFormat":"{{status_code}}-{{operation}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Status By Method","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}}],"targets":[],"title":"Dynamo","type":"row"},{"collapsed":true,"datasource":null,"gridPos":{"h":1,"w":24,"x":0,"y":37},"id":78,"panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"fillGradient":0,"gridPos":{"h":8,"w":24,"x":0,"y":10},"id":79,"interval":"","legend":{"alignAsTable":true,"avg":false,"current":false,"max":false,"min":false,"rightSide":true,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":1,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"histogram_quantile(.99, sum(rate(loki_s3_request_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"$namespace\"}[5m])) by (operation, le))","intervalFactor":1,"legendFormat":".99-{{operation}}","refId":"A"},{"expr":"histogram_quantile(.9, sum(rate(loki_s3_request_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"$namespace\"}[5m])) by (operation, le))","hide":false,"legendFormat":".9-{{operation}}","refId":"B"},{"expr":"histogram_quantile(.5, sum(rate(loki_s3_request_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"$namespace\"}[5m])) by (operation, le))","hide":false,"legendFormat":".5-{{operation}}","refId":"C"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Latency By Operation","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"fillGradient":0,"gridPos":{"h":8,"w":24,"x":0,"y":18},"id":80,"interval":"","legend":{"alignAsTable":true,"avg":false,"current":false,"max":false,"min":false,"rightSide":true,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":1,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(rate(loki_s3_request_duration_seconds_count{cluster=\"$cluster\", namespace=\"$namespace\"}[5m])) by (status_code, operation)","intervalFactor":1,"legendFormat":"{{status_code}}-{{operation}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Status By Method","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}}],"targets":[],"title":"S3","type":"row"},{"collapsed":true,"datasource":null,"gridPos":{"h":1,"w":24,"x":0,"y":37},"id":78,"panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"fillGradient":0,"gridPos":{"h":8,"w":24,"x":0,"y":10},"id":79,"interval":"","legend":{"alignAsTable":true,"avg":false,"current":false,"max":false,"min":false,"rightSide":true,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":1,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"histogram_quantile(.99, sum(rate(loki_azure_blob_request_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"$namespace\"}[5m])) by (operation, le))","intervalFactor":1,"legendFormat":".99-{{operation}}","refId":"A"},{"expr":"histogram_quantile(.9, sum(rate(loki_azure_blob_request_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"$namespace\"}[5m])) by (operation, le))","hide":false,"legendFormat":".9-{{operation}}","refId":"B"},{"expr":"histogram_quantile(.5, sum(rate(loki_azure_blob_request_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"$namespace\"}[5m])) by (operation, le))","hide":false,"legendFormat":".5-{{operation}}","refId":"C"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Latency By Operation","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"fillGradient":0,"gridPos":{"h":8,"w":24,"x":0,"y":18},"id":80,"interval":"","legend":{"alignAsTable":true,"avg":false,"current":false,"max":false,"min":false,"rightSide":true,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":1,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(rate(loki_azure_blob_request_duration_seconds_count{cluster=\"$cluster\", namespace=\"$namespace\"}[5m])) by (status_code, operation)","intervalFactor":1,"legendFormat":"{{status_code}}-{{operation}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Status By Method","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}}],"targets":[],"title":"Azure Blob","type":"row"},{"collapsed":true,"datasource":null,"gridPos":{"h":1,"w":24,"x":0,"y":37},"id":114,"panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"fillGradient":0,"gridPos":{"h":8,"w":24,"x":0,"y":10},"id":115,"interval":"","legend":{"alignAsTable":true,"avg":false,"current":false,"max":false,"min":false,"rightSide":true,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":1,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"histogram_quantile(.99, sum(rate(loki_boltdb_shipper_request_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"$namespace\"}[5m])) by (operation, le))","intervalFactor":1,"legendFormat":".99-{{operation}}","refId":"A"},{"expr":"histogram_quantile(.9, sum(rate(loki_boltdb_shipper_request_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"$namespace\"}[5m])) by (operation, le))","hide":false,"legendFormat":".9-{{operation}}","refId":"B"},{"expr":"histogram_quantile(.5, sum(rate(loki_boltdb_shipper_request_duration_seconds_bucket{cluster=\"$cluster\", namespace=\"$namespace\"}[5m])) by (operation, le))","hide":false,"legendFormat":".5-{{operation}}","refId":"C"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Latency By Operation","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"fillGradient":0,"gridPos":{"h":8,"w":24,"x":0,"y":18},"id":116,"interval":"","legend":{"alignAsTable":true,"avg":false,"current":false,"max":false,"min":false,"rightSide":true,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"nullPointMode":"null","options":{"dataLinks":[]},"panels":[],"percentage":false,"pointradius":1,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(rate(loki_boltdb_shipper_request_duration_seconds_count{cluster=\"$cluster\", namespace=\"$namespace\"}[5m])) by (status_code, operation)","intervalFactor":1,"legendFormat":"{{status_code}}-{{operation}}","refId":"A"}],"thresholds":[],"timeFrom":null,"timeRegions":[],"timeShift":null,"title":"Status By Method","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":true}],"yaxis":{"align":false,"alignLevel":null}}],"targets":[],"title":"BoltDB Shipper","type":"row"}],"refresh":"10s","rows":[],"schemaVersion":14,"style":"dark","tags":["loki"],"templating":{"list":[{"current":{"text":"default","value":"default"},"hide":0,"label":"Data Source","name":"datasource","options":[],"query":"prometheus","refresh":1,"regex":"","type":"datasource"},{"hide":0,"label":null,"name":"logs","options":[],"query":"loki","refresh":1,"regex":"","type":"datasource"},{"allValue":null,"current":{"text":"prod","value":"prod"},"datasource":"$datasource","hide":0,"includeAll":false,"label":"cluster","multi":false,"name":"cluster","options":[],"query":"label_values(loki_build_info, cluster)","refresh":1,"regex":"","sort":2,"tagValuesQuery":"","tags":[],"tagsQuery":"","type":"query","useTags":false},{"allValue":null,"current":{"text":"prod","value":"prod"},"datasource":"$datasource","hide":0,"includeAll":false,"label":"namespace","multi":false,"name":"namespace","options":[],"query":"label_values(loki_build_info{cluster=~\"$cluster\"}, namespace)","refresh":1,"regex":"","sort":2,"tagValuesQuery":"","tags":[],"tagsQuery":"","type":"query","useTags":false}]},"time":{"from":"now-1h","to":"now"},"timepicker":{"refresh_intervals":["5s","10s","30s","1m","5m","15m","30m","1h","2h","1d"],"time_options":["5m","15m","1h","6h","12h","24h","2d","7d","30d"]},"timezone":"utc","title":"Loki / Operational","uid":"operational","version":0} \ No newline at end of file diff --git a/monitor/loki-dashboard/v1_ConfigMap_loki-dashboards-2.yaml b/monitor/loki-dashboard/v1_ConfigMap_loki-dashboards-2.yaml new file mode 100644 index 0000000..1fd43eb --- /dev/null +++ b/monitor/loki-dashboard/v1_ConfigMap_loki-dashboards-2.yaml @@ -0,0 +1,24 @@ +# Source: loki/templates/monitoring/dashboards/configmap-2.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: loki-dashboards-2 + namespace: vynil-monitor + labels: + helm.sh/chart: loki-5.41.8 + app.kubernetes.io/name: loki + app.kubernetes.io/instance: loki + app.kubernetes.io/version: "2.9.3" + app.kubernetes.io/managed-by: Helm + grafana_dashboard: "1" +data: + "loki-reads-resources.json": | + {"annotations":{"list":[]},"editable":true,"gnetId":null,"graphTooltip":0,"hideControls":false,"links":[{"asDropdown":true,"icon":"external link","includeVars":true,"keepTime":true,"tags":["loki"],"targetBlank":false,"title":"Loki Dashboards","type":"dashboards"}],"refresh":"10s","rows":[{"collapse":false,"collapsed":false,"panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"gridPos":{},"id":1,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[{"alias":"limit","color":"#E02F44","fill":0}],"spaceLength":10,"span":6,"stack":false,"steppedLine":false,"targets":[{"expr":"sum by(pod) (rate(container_cpu_usage_seconds_total{cluster=~\"$cluster\", namespace=~\"$namespace\", container=\"loki\", pod=~\"(loki|enterprise-logs)-read.*\"}[$__rate_interval]))","format":"time_series","intervalFactor":2,"legendFormat":"{{pod}}","legendLink":null,"step":10},{"expr":"min(container_spec_cpu_quota{cluster=~\"$cluster\", namespace=~\"$namespace\", container=\"loki\", pod=~\"(loki|enterprise-logs)-read.*\"} / container_spec_cpu_period{cluster=~\"$cluster\", namespace=~\"$namespace\", container=\"loki\", pod=~\"(loki|enterprise-logs)-read.*\"})","format":"time_series","intervalFactor":2,"legendFormat":"limit","legendLink":null,"step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"CPU","tooltip":{"sort":2},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"gridPos":{},"id":2,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[{"alias":"limit","color":"#E02F44","fill":0}],"spaceLength":10,"span":6,"stack":false,"steppedLine":false,"targets":[{"expr":"max by(pod) (container_memory_working_set_bytes{cluster=~\"$cluster\", namespace=~\"$namespace\", container=\"loki\", pod=~\"(loki|enterprise-logs)-read.*\"})","format":"time_series","intervalFactor":2,"legendFormat":"{{pod}}","legendLink":null,"step":10},{"expr":"min(container_spec_memory_limit_bytes{cluster=~\"$cluster\", namespace=~\"$namespace\", container=\"loki\", pod=~\"(loki|enterprise-logs)-read.*\"} \u003e 0)","format":"time_series","intervalFactor":2,"legendFormat":"limit","legendLink":null,"step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Memory (workingset)","tooltip":{"sort":2},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"bytes","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"gridPos":{},"id":3,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":false,"steppedLine":false,"targets":[{"expr":"sum by(pod) (go_memstats_heap_inuse_bytes{cluster=~\"$cluster\", job=~\"($namespace)/(loki|enterprise-logs)-read\"})","format":"time_series","intervalFactor":2,"legendFormat":"{{pod}}","legendLink":null,"step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Memory (go heap inuse)","tooltip":{"sort":2},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"bytes","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":10,"gridPos":{},"id":4,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":0,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":true,"steppedLine":false,"targets":[{"expr":"sum by(instance, pod, device) (rate(node_disk_written_bytes_total[$__rate_interval])) + ignoring(pod) group_right() (label_replace(count by(instance, pod, device) (container_fs_writes_bytes_total{cluster=~\"$cluster\", namespace=~\"$namespace\", container=\"loki\", pod=~\"(loki|enterprise-logs)-read.*\", device!~\".*sda.*\"}), \"device\", \"$1\", \"device\", \"/dev/(.*)\") * 0)\n","format":"time_series","intervalFactor":2,"legendFormat":"{{pod}} - {{device}}","legendLink":null,"step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Disk Writes","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"Bps","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":10,"gridPos":{},"id":5,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":0,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":true,"steppedLine":false,"targets":[{"expr":"sum by(instance, pod, device) (rate(node_disk_read_bytes_total[$__rate_interval])) + ignoring(pod) group_right() (label_replace(count by(instance, pod, device) (container_fs_writes_bytes_total{cluster=~\"$cluster\", namespace=~\"$namespace\", container=\"loki\", pod=~\"(loki|enterprise-logs)-read.*\", device!~\".*sda.*\"}), \"device\", \"$1\", \"device\", \"/dev/(.*)\") * 0)\n","format":"time_series","intervalFactor":2,"legendFormat":"{{pod}} - {{device}}","legendLink":null,"step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Disk Reads","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"Bps","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"gridPos":{},"id":6,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":false,"steppedLine":false,"targets":[{"expr":"max by(persistentvolumeclaim) (kubelet_volume_stats_used_bytes{cluster=~\"$cluster\", namespace=~\"$namespace\"} / kubelet_volume_stats_capacity_bytes{cluster=~\"$cluster\", namespace=~\"$namespace\"}) and count by(persistentvolumeclaim) (kube_persistentvolumeclaim_labels{cluster=~\"$cluster\", namespace=~\"$namespace\",label_name=~\"(loki|enterprise-logs)-read.*\"})","format":"time_series","intervalFactor":2,"legendFormat":"{{persistentvolumeclaim}}","legendLink":null,"step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Disk Space Utilization","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"percentunit","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"gridPos":{},"id":7,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":false,"steppedLine":false,"targets":[{"expr":"loki_boltdb_shipper_query_readiness_duration_seconds{cluster=~\"$cluster\", namespace=~\"$namespace\"}","format":"time_series","intervalFactor":2,"legendFormat":"duration","legendLink":null,"step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Query Readiness Duration","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"s","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]}],"repeat":null,"repeatIteration":null,"repeatRowId":null,"showTitle":true,"title":"Read path","titleSize":"h6","type":"row"},{"collapse":false,"height":"250px","panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"id":8,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[{"alias":"limit","color":"#E02F44","fill":0}],"spaceLength":10,"span":4,"stack":false,"steppedLine":false,"targets":[{"expr":"sum by(pod) (rate(container_cpu_usage_seconds_total{cluster=~\"$cluster\", namespace=~\"$namespace\", container=\"loki\", pod=~\"(loki|enterprise-logs)-write.*\"}[$__rate_interval]))","format":"time_series","intervalFactor":2,"legendFormat":"{{pod}}","legendLink":null,"step":10},{"expr":"min(container_spec_cpu_quota{cluster=~\"$cluster\", namespace=~\"$namespace\", container=\"loki\", pod=~\"(loki|enterprise-logs)-write.*\"} / container_spec_cpu_period{cluster=~\"$cluster\", namespace=~\"$namespace\", container=\"loki\", pod=~\"(loki|enterprise-logs)-write.*\"})","format":"time_series","intervalFactor":2,"legendFormat":"limit","legendLink":null,"step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"CPU","tooltip":{"sort":2},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"id":9,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[{"alias":"limit","color":"#E02F44","fill":0}],"spaceLength":10,"span":4,"stack":false,"steppedLine":false,"targets":[{"expr":"max by(pod) (container_memory_working_set_bytes{cluster=~\"$cluster\", namespace=~\"$namespace\", container=\"loki\", pod=~\"(loki|enterprise-logs)-write.*\"})","format":"time_series","intervalFactor":2,"legendFormat":"{{pod}}","legendLink":null,"step":10},{"expr":"min(container_spec_memory_limit_bytes{cluster=~\"$cluster\", namespace=~\"$namespace\", container=\"loki\", pod=~\"(loki|enterprise-logs)-write.*\"} \u003e 0)","format":"time_series","intervalFactor":2,"legendFormat":"limit","legendLink":null,"step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Memory (workingset)","tooltip":{"sort":2},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"bytes","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"id":10,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":4,"stack":false,"steppedLine":false,"targets":[{"expr":"sum by(pod) (go_memstats_heap_inuse_bytes{cluster=~\"$cluster\", job=~\"($namespace)/(loki|enterprise-logs)-write\"})","format":"time_series","intervalFactor":2,"legendFormat":"{{pod}}","legendLink":null,"step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Memory (go heap inuse)","tooltip":{"sort":2},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"bytes","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]}],"repeat":null,"repeatIteration":null,"repeatRowId":null,"showTitle":true,"title":"Ingester","titleSize":"h6"}],"schemaVersion":14,"style":"dark","tags":["loki"],"templating":{"list":[{"current":{"text":"default","value":"default"},"hide":0,"label":"Data Source","name":"datasource","options":[],"query":"prometheus","refresh":1,"regex":"","type":"datasource"},{"allValue":null,"current":{"text":"prod","value":"prod"},"datasource":"$datasource","hide":0,"includeAll":false,"label":"cluster","multi":false,"name":"cluster","options":[],"query":"label_values(loki_build_info, cluster)","refresh":1,"regex":"","sort":2,"tagValuesQuery":"","tags":[],"tagsQuery":"","type":"query","useTags":false},{"allValue":null,"current":{"text":"prod","value":"prod"},"datasource":"$datasource","hide":0,"includeAll":false,"label":"namespace","multi":false,"name":"namespace","options":[],"query":"label_values(loki_build_info{cluster=~\"$cluster\"}, namespace)","refresh":1,"regex":"","sort":2,"tagValuesQuery":"","tags":[],"tagsQuery":"","type":"query","useTags":false}]},"time":{"from":"now-1h","to":"now"},"timepicker":{"refresh_intervals":["5s","10s","30s","1m","5m","15m","30m","1h","2h","1d"],"time_options":["5m","15m","1h","6h","12h","24h","2d","7d","30d"]},"timezone":"utc","title":"Loki / Reads Resources","uid":"reads-resources","version":0} + "loki-reads.json": | + {"annotations":{"list":[]},"editable":true,"gnetId":null,"graphTooltip":0,"hideControls":false,"links":[{"asDropdown":true,"icon":"external link","includeVars":true,"keepTime":true,"tags":["loki"],"targetBlank":false,"title":"Loki Dashboards","type":"dashboards"}],"refresh":"10s","rows":[{"collapse":false,"height":"250px","panels":[{"aliasColors":{"1xx":"#EAB839","2xx":"#7EB26D","3xx":"#6ED0E0","4xx":"#EF843C","5xx":"#E24D42","error":"#E24D42","success":"#7EB26D"},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":10,"id":1,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":0,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":true,"steppedLine":false,"targets":[{"expr":"sum by (status) (\n label_replace(label_replace(rate(loki_request_duration_seconds_count{cluster=~\"$cluster\",job=~\"($namespace)/(loki|enterprise-logs)-read\", route=~\"loki_api_v1_series|api_prom_series|api_prom_query|api_prom_label|api_prom_label_name_values|loki_api_v1_query|loki_api_v1_query_range|loki_api_v1_labels|loki_api_v1_label_name_values\"}[$__rate_interval]),\n \"status\", \"${1}xx\", \"status_code\", \"([0-9])..\"),\n \"status\", \"${1}\", \"status_code\", \"([a-z]+)\"))\n","format":"time_series","intervalFactor":2,"legendFormat":"{{status}}","refId":"A","step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"QPS","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"id":2,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":false,"steppedLine":false,"targets":[{"expr":"histogram_quantile(0.99, sum by (le,route) (job_route:loki_request_duration_seconds_bucket:sum_rate{job=~\"($namespace)/(loki|enterprise-logs)-read\", route=~\"loki_api_v1_series|api_prom_series|api_prom_query|api_prom_label|api_prom_label_name_values|loki_api_v1_query|loki_api_v1_query_range|loki_api_v1_labels|loki_api_v1_label_name_values\", cluster=~\"$cluster\"})) * 1e3","format":"time_series","intervalFactor":2,"legendFormat":"{{ route }} 99th Percentile","refId":"A","step":10},{"expr":"histogram_quantile(0.50, sum by (le,route) (job_route:loki_request_duration_seconds_bucket:sum_rate{job=~\"($namespace)/(loki|enterprise-logs)-read\", route=~\"loki_api_v1_series|api_prom_series|api_prom_query|api_prom_label|api_prom_label_name_values|loki_api_v1_query|loki_api_v1_query_range|loki_api_v1_labels|loki_api_v1_label_name_values\", cluster=~\"$cluster\"})) * 1e3","format":"time_series","intervalFactor":2,"legendFormat":"{{ route }} 50th Percentile","refId":"B","step":10},{"expr":"1e3 * sum(job_route:loki_request_duration_seconds_sum:sum_rate{job=~\"($namespace)/(loki|enterprise-logs)-read\", route=~\"loki_api_v1_series|api_prom_series|api_prom_query|api_prom_label|api_prom_label_name_values|loki_api_v1_query|loki_api_v1_query_range|loki_api_v1_labels|loki_api_v1_label_name_values\", cluster=~\"$cluster\"}) by (route) / sum(job_route:loki_request_duration_seconds_count:sum_rate{job=~\"($namespace)/(loki|enterprise-logs)-read\", route=~\"loki_api_v1_series|api_prom_series|api_prom_query|api_prom_label|api_prom_label_name_values|loki_api_v1_query|loki_api_v1_query_range|loki_api_v1_labels|loki_api_v1_label_name_values\", cluster=~\"$cluster\"}) by (route) ","format":"time_series","intervalFactor":2,"legendFormat":"{{ route }} Average","refId":"C","step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Latency","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"ms","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]}],"repeat":null,"repeatIteration":null,"repeatRowId":null,"showTitle":true,"title":"Read Path","titleSize":"h6"},{"collapse":false,"height":"250px","panels":[{"aliasColors":{"1xx":"#EAB839","2xx":"#7EB26D","3xx":"#6ED0E0","4xx":"#EF843C","5xx":"#E24D42","error":"#E24D42","success":"#7EB26D"},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":10,"id":3,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":0,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":true,"steppedLine":false,"targets":[{"expr":"sum by (status) (\n label_replace(label_replace(rate(loki_boltdb_shipper_request_duration_seconds_count{cluster=~\"$cluster\",job=~\"($namespace)/(loki|enterprise-logs)-read\", operation=\"Shipper.Query\"}[$__rate_interval]),\n \"status\", \"${1}xx\", \"status_code\", \"([0-9])..\"),\n \"status\", \"${1}\", \"status_code\", \"([a-z]+)\"))\n","format":"time_series","intervalFactor":2,"legendFormat":"{{status}}","refId":"A","step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"QPS","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"id":4,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":false,"steppedLine":false,"targets":[{"expr":"histogram_quantile(0.99, sum(rate(loki_boltdb_shipper_request_duration_seconds_bucket{cluster=~\"$cluster\",job=~\"($namespace)/(loki|enterprise-logs)-read\", operation=\"Shipper.Query\"}[$__rate_interval])) by (le)) * 1e3","format":"time_series","intervalFactor":2,"legendFormat":"99th Percentile","refId":"A","step":10},{"expr":"histogram_quantile(0.50, sum(rate(loki_boltdb_shipper_request_duration_seconds_bucket{cluster=~\"$cluster\",job=~\"($namespace)/(loki|enterprise-logs)-read\", operation=\"Shipper.Query\"}[$__rate_interval])) by (le)) * 1e3","format":"time_series","intervalFactor":2,"legendFormat":"50th Percentile","refId":"B","step":10},{"expr":"sum(rate(loki_boltdb_shipper_request_duration_seconds_sum{cluster=~\"$cluster\",job=~\"($namespace)/(loki|enterprise-logs)-read\", operation=\"Shipper.Query\"}[$__rate_interval])) * 1e3 / sum(rate(loki_boltdb_shipper_request_duration_seconds_count{cluster=~\"$cluster\",job=~\"($namespace)/(loki|enterprise-logs)-read\", operation=\"Shipper.Query\"}[$__rate_interval]))","format":"time_series","intervalFactor":2,"legendFormat":"Average","refId":"C","step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Latency","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"ms","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]}],"repeat":null,"repeatIteration":null,"repeatRowId":null,"showTitle":true,"title":"BoltDB Shipper","titleSize":"h6"}],"schemaVersion":14,"style":"dark","tags":["loki"],"templating":{"list":[{"current":{"text":"default","value":"default"},"hide":0,"label":"Data Source","name":"datasource","options":[],"query":"prometheus","refresh":1,"regex":"","type":"datasource"},{"allValue":null,"current":{"text":"prod","value":"prod"},"datasource":"$datasource","hide":0,"includeAll":false,"label":"cluster","multi":false,"name":"cluster","options":[],"query":"label_values(loki_build_info, cluster)","refresh":1,"regex":"","sort":2,"tagValuesQuery":"","tags":[],"tagsQuery":"","type":"query","useTags":false},{"allValue":null,"current":{"text":"prod","value":"prod"},"datasource":"$datasource","hide":0,"includeAll":false,"label":"namespace","multi":false,"name":"namespace","options":[],"query":"label_values(loki_build_info{cluster=~\"$cluster\"}, namespace)","refresh":1,"regex":"","sort":2,"tagValuesQuery":"","tags":[],"tagsQuery":"","type":"query","useTags":false}]},"time":{"from":"now-1h","to":"now"},"timepicker":{"refresh_intervals":["5s","10s","30s","1m","5m","15m","30m","1h","2h","1d"],"time_options":["5m","15m","1h","6h","12h","24h","2d","7d","30d"]},"timezone":"utc","title":"Loki / Reads","uid":"reads","version":0} + "loki-retention.json": | + {"annotations":{"list":[]},"editable":true,"gnetId":null,"graphTooltip":0,"hideControls":false,"links":[{"asDropdown":true,"icon":"external link","includeVars":true,"keepTime":true,"tags":["loki"],"targetBlank":false,"title":"Loki Dashboards","type":"dashboards"}],"refresh":"10s","rows":[{"collapse":false,"height":"250px","panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"id":1,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[{"alias":"limit","color":"#E02F44","fill":0}],"spaceLength":10,"span":4,"stack":false,"steppedLine":false,"targets":[{"expr":"sum by(pod) (rate(container_cpu_usage_seconds_total{cluster=~\"$cluster\", namespace=~\"$namespace\", container=\"loki\", pod=~\"(loki|enterprise-logs)-read.*\"}[$__rate_interval]))","format":"time_series","intervalFactor":2,"legendFormat":"{{pod}}","legendLink":null,"step":10},{"expr":"min(container_spec_cpu_quota{cluster=~\"$cluster\", namespace=~\"$namespace\", container=\"loki\", pod=~\"(loki|enterprise-logs)-read.*\"} / container_spec_cpu_period{cluster=~\"$cluster\", namespace=~\"$namespace\", container=\"loki\", pod=~\"(loki|enterprise-logs)-read.*\"})","format":"time_series","intervalFactor":2,"legendFormat":"limit","legendLink":null,"step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"CPU","tooltip":{"sort":2},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"id":2,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[{"alias":"limit","color":"#E02F44","fill":0}],"spaceLength":10,"span":4,"stack":false,"steppedLine":false,"targets":[{"expr":"max by(pod) (container_memory_working_set_bytes{cluster=~\"$cluster\", namespace=~\"$namespace\", container=\"loki\", pod=~\"(loki|enterprise-logs)-read.*\"})","format":"time_series","intervalFactor":2,"legendFormat":"{{pod}}","legendLink":null,"step":10},{"expr":"min(container_spec_memory_limit_bytes{cluster=~\"$cluster\", namespace=~\"$namespace\", container=\"loki\", pod=~\"(loki|enterprise-logs)-read.*\"} \u003e 0)","format":"time_series","intervalFactor":2,"legendFormat":"limit","legendLink":null,"step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Memory (workingset)","tooltip":{"sort":2},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"bytes","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"id":3,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":4,"stack":false,"steppedLine":false,"targets":[{"expr":"sum by(pod) (go_memstats_heap_inuse_bytes{cluster=~\"$cluster\", job=~\"($namespace)/(loki|enterprise-logs)-read\"})","format":"time_series","intervalFactor":2,"legendFormat":"{{pod}}","legendLink":null,"step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Memory (go heap inuse)","tooltip":{"sort":2},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"bytes","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]}],"repeat":null,"repeatIteration":null,"repeatRowId":null,"showTitle":true,"title":"Resource Usage","titleSize":"h6"},{"collapse":false,"height":"250px","panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fieldConfig":{"defaults":{"color":{"fixedColor":"blue","mode":"fixed"},"custom":{},"thresholds":{"mode":"absolute","steps":[{"color":"green","value":null}]},"unit":"dateTimeFromNow"}},"fill":1,"id":4,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","options":{"colorMode":"value","graphMode":"area","justifyMode":"auto","orientation":"auto","reduceOptions":{"calcs":["lastNotNull"],"fields":"","values":false},"text":{},"textMode":"auto"},"percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":4,"stack":false,"steppedLine":false,"targets":[{"expr":"loki_boltdb_shipper_compact_tables_operation_last_successful_run_timestamp_seconds{cluster=~\"$cluster\", namespace=~\"$namespace\"} * 1e3","format":"time_series","instant":true,"refId":"A"}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Last Compact and Mark Operation Success","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"stat","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"id":5,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":4,"stack":false,"steppedLine":false,"targets":[{"expr":"loki_boltdb_shipper_compact_tables_operation_duration_seconds{cluster=~\"$cluster\", namespace=~\"$namespace\"}","format":"time_series","intervalFactor":2,"legendFormat":"duration","legendLink":null,"step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Compact and Mark Operations Duration","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"s","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"id":6,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":4,"stack":false,"steppedLine":false,"targets":[{"expr":"sum by (status)(rate(loki_boltdb_shipper_compact_tables_operation_total{cluster=~\"$cluster\", namespace=~\"$namespace\"}[$__rate_interval]))","format":"time_series","intervalFactor":2,"legendFormat":"{{success}}","legendLink":null,"step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Compact and Mark Operations Per Status","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]}],"repeat":null,"repeatIteration":null,"repeatRowId":null,"showTitle":true,"title":"Compact and Mark","titleSize":"h6"},{"collapse":false,"height":"250px","panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":10,"id":7,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":0,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":4,"stack":true,"steppedLine":false,"targets":[{"expr":"count by(action)(loki_boltdb_shipper_retention_marker_table_processed_total{cluster=~\"$cluster\", namespace=~\"$namespace\"})","format":"time_series","intervalFactor":2,"legendFormat":"{{action}}","legendLink":null,"step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Processed Tables Per Action","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":10,"id":8,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":0,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":4,"stack":true,"steppedLine":false,"targets":[{"expr":"count by(table,action)(loki_boltdb_shipper_retention_marker_table_processed_total{cluster=~\"$cluster\", namespace=~\"$namespace\" , action=~\"modified|deleted\"})","format":"time_series","intervalFactor":2,"legendFormat":"{{table}}-{{action}}","legendLink":null,"step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Modified Tables","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":10,"id":9,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":0,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":4,"stack":true,"steppedLine":false,"targets":[{"expr":"sum by (table)(rate(loki_boltdb_shipper_retention_marker_count_total{cluster=~\"$cluster\", namespace=~\"$namespace\"}[$__rate_interval])) \u003e0","format":"time_series","intervalFactor":2,"legendFormat":"{{table}}","legendLink":null,"step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Marks Creation Rate Per Table","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]}],"repeat":null,"repeatIteration":null,"repeatRowId":null,"showTitle":true,"title":"Per Table Marker","titleSize":"h6"},{"collapse":false,"height":"250px","panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"format":"short","id":10,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":false,"steppedLine":false,"targets":[{"expr":"sum (increase(loki_boltdb_shipper_retention_marker_count_total{cluster=~\"$cluster\", namespace=~\"$namespace\"}[24h]))","format":"time_series","instant":true,"intervalFactor":2,"refId":"A"}],"thresholds":"70,80","timeFrom":null,"timeShift":null,"title":"Marked Chunks (24h)","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"singlestat","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"id":11,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":false,"steppedLine":false,"targets":[{"expr":"histogram_quantile(0.99, sum(rate(loki_boltdb_shipper_retention_marker_table_processed_duration_seconds_bucket{cluster=~\"$cluster\", namespace=~\"$namespace\"}[$__rate_interval])) by (le)) * 1e3","format":"time_series","intervalFactor":2,"legendFormat":"99th Percentile","refId":"A","step":10},{"expr":"histogram_quantile(0.50, sum(rate(loki_boltdb_shipper_retention_marker_table_processed_duration_seconds_bucket{cluster=~\"$cluster\", namespace=~\"$namespace\"}[$__rate_interval])) by (le)) * 1e3","format":"time_series","intervalFactor":2,"legendFormat":"50th Percentile","refId":"B","step":10},{"expr":"sum(rate(loki_boltdb_shipper_retention_marker_table_processed_duration_seconds_sum{cluster=~\"$cluster\", namespace=~\"$namespace\"}[$__rate_interval])) * 1e3 / sum(rate(loki_boltdb_shipper_retention_marker_table_processed_duration_seconds_count{cluster=~\"$cluster\", namespace=~\"$namespace\"}[$__rate_interval]))","format":"time_series","intervalFactor":2,"legendFormat":"Average","refId":"C","step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Mark Table Latency","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"ms","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]}],"repeat":null,"repeatIteration":null,"repeatRowId":null,"showTitle":true,"title":"","titleSize":"h6"},{"collapse":false,"height":"250px","panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"format":"short","id":12,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":false,"steppedLine":false,"targets":[{"expr":"sum (increase(loki_boltdb_shipper_retention_sweeper_chunk_deleted_duration_seconds_count{cluster=~\"$cluster\", namespace=~\"$namespace\"}[24h]))","format":"time_series","instant":true,"intervalFactor":2,"refId":"A"}],"thresholds":"70,80","timeFrom":null,"timeShift":null,"title":"Delete Chunks (24h)","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"singlestat","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"id":13,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":false,"steppedLine":false,"targets":[{"expr":"histogram_quantile(0.99, sum(rate(loki_boltdb_shipper_retention_sweeper_chunk_deleted_duration_seconds_bucket{cluster=~\"$cluster\", namespace=~\"$namespace\"}[$__rate_interval])) by (le)) * 1e3","format":"time_series","intervalFactor":2,"legendFormat":"99th Percentile","refId":"A","step":10},{"expr":"histogram_quantile(0.50, sum(rate(loki_boltdb_shipper_retention_sweeper_chunk_deleted_duration_seconds_bucket{cluster=~\"$cluster\", namespace=~\"$namespace\"}[$__rate_interval])) by (le)) * 1e3","format":"time_series","intervalFactor":2,"legendFormat":"50th Percentile","refId":"B","step":10},{"expr":"sum(rate(loki_boltdb_shipper_retention_sweeper_chunk_deleted_duration_seconds_sum{cluster=~\"$cluster\", namespace=~\"$namespace\"}[$__rate_interval])) * 1e3 / sum(rate(loki_boltdb_shipper_retention_sweeper_chunk_deleted_duration_seconds_count{cluster=~\"$cluster\", namespace=~\"$namespace\"}[$__rate_interval]))","format":"time_series","intervalFactor":2,"legendFormat":"Average","refId":"C","step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Delete Latency","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"ms","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]}],"repeat":null,"repeatIteration":null,"repeatRowId":null,"showTitle":true,"title":"Sweeper","titleSize":"h6"},{"collapse":false,"height":"250px","panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"id":14,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":4,"stack":false,"steppedLine":false,"targets":[{"expr":"time() - (loki_boltdb_shipper_retention_sweeper_marker_file_processing_current_time{cluster=~\"$cluster\", namespace=~\"$namespace\"} \u003e 0)","format":"time_series","intervalFactor":2,"legendFormat":"lag","legendLink":null,"step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Sweeper Lag","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"s","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"id":15,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":4,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(loki_boltdb_shipper_retention_sweeper_marker_files_current{cluster=~\"$cluster\", namespace=~\"$namespace\"})","format":"time_series","intervalFactor":2,"legendFormat":"count","legendLink":null,"step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Marks Files to Process","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"id":16,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":4,"stack":false,"steppedLine":false,"targets":[{"expr":"sum by (status)(rate(loki_boltdb_shipper_retention_sweeper_chunk_deleted_duration_seconds_count{cluster=~\"$cluster\", namespace=~\"$namespace\"}[$__rate_interval]))","format":"time_series","intervalFactor":2,"legendFormat":"{{status}}","legendLink":null,"step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Delete Rate Per Status","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]}],"repeat":null,"repeatIteration":null,"repeatRowId":null,"showTitle":true,"title":"","titleSize":"h6"},{"collapse":false,"height":"250px","panels":[{"datasource":"$logs","id":17,"span":12,"targets":[{"expr":"{cluster=~\"$cluster\", job=~\"($namespace)/(loki|enterprise-logs)-read\"}","refId":"A"}],"title":"Compactor Logs","type":"logs"}],"repeat":null,"repeatIteration":null,"repeatRowId":null,"showTitle":true,"title":"Logs","titleSize":"h6"}],"schemaVersion":14,"style":"dark","tags":["loki"],"templating":{"list":[{"current":{"text":"default","value":"default"},"hide":0,"label":"Data Source","name":"datasource","options":[],"query":"prometheus","refresh":1,"regex":"","type":"datasource"},{"allValue":null,"current":{"text":"prod","value":"prod"},"datasource":"$datasource","hide":0,"includeAll":false,"label":"cluster","multi":false,"name":"cluster","options":[],"query":"label_values(loki_build_info, cluster)","refresh":1,"regex":"","sort":2,"tagValuesQuery":"","tags":[],"tagsQuery":"","type":"query","useTags":false},{"allValue":null,"current":{"text":"prod","value":"prod"},"datasource":"$datasource","hide":0,"includeAll":false,"label":"namespace","multi":false,"name":"namespace","options":[],"query":"label_values(loki_build_info{cluster=~\"$cluster\"}, namespace)","refresh":1,"regex":"","sort":2,"tagValuesQuery":"","tags":[],"tagsQuery":"","type":"query","useTags":false},{"hide":0,"label":null,"name":"logs","options":[],"query":"loki","refresh":1,"regex":"","type":"datasource"}]},"time":{"from":"now-1h","to":"now"},"timepicker":{"refresh_intervals":["5s","10s","30s","1m","5m","15m","30m","1h","2h","1d"],"time_options":["5m","15m","1h","6h","12h","24h","2d","7d","30d"]},"timezone":"utc","title":"Loki / Retention","uid":"retention","version":0} + "loki-writes-resources.json": | + {"annotations":{"list":[]},"editable":true,"gnetId":null,"graphTooltip":0,"hideControls":false,"links":[{"asDropdown":true,"icon":"external link","includeVars":true,"keepTime":true,"tags":["loki"],"targetBlank":false,"title":"Loki Dashboards","type":"dashboards"}],"refresh":"10s","rows":[{"collapse":false,"collapsed":false,"panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"gridPos":{},"id":1,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":false,"steppedLine":false,"targets":[{"expr":"sum by(pod) (loki_ingester_memory_streams{cluster=~\"$cluster\", job=~\"($namespace)/(loki|enterprise-logs)-write\"})","format":"time_series","intervalFactor":2,"legendFormat":"{{pod}}","legendLink":null,"step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"In-memory streams","tooltip":{"sort":2},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"gridPos":{},"id":2,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[{"alias":"limit","color":"#E02F44","fill":0}],"spaceLength":10,"span":6,"stack":false,"steppedLine":false,"targets":[{"expr":"sum by(pod) (rate(container_cpu_usage_seconds_total{cluster=~\"$cluster\", namespace=~\"$namespace\", container=\"loki\", pod=~\"(loki|enterprise-logs)-write.*\"}[$__rate_interval]))","format":"time_series","intervalFactor":2,"legendFormat":"{{pod}}","legendLink":null,"step":10},{"expr":"min(container_spec_cpu_quota{cluster=~\"$cluster\", namespace=~\"$namespace\", container=\"loki\", pod=~\"(loki|enterprise-logs)-write.*\"} / container_spec_cpu_period{cluster=~\"$cluster\", namespace=~\"$namespace\", container=\"loki\", pod=~\"(loki|enterprise-logs)-write.*\"})","format":"time_series","intervalFactor":2,"legendFormat":"limit","legendLink":null,"step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"CPU","tooltip":{"sort":2},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"gridPos":{},"id":3,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[{"alias":"limit","color":"#E02F44","fill":0}],"spaceLength":10,"span":6,"stack":false,"steppedLine":false,"targets":[{"expr":"max by(pod) (container_memory_working_set_bytes{cluster=~\"$cluster\", namespace=~\"$namespace\", container=\"loki\", pod=~\"(loki|enterprise-logs)-write.*\"})","format":"time_series","intervalFactor":2,"legendFormat":"{{pod}}","legendLink":null,"step":10},{"expr":"min(container_spec_memory_limit_bytes{cluster=~\"$cluster\", namespace=~\"$namespace\", container=\"loki\", pod=~\"(loki|enterprise-logs)-write.*\"} \u003e 0)","format":"time_series","intervalFactor":2,"legendFormat":"limit","legendLink":null,"step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Memory (workingset)","tooltip":{"sort":2},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"bytes","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"gridPos":{},"id":4,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":false,"steppedLine":false,"targets":[{"expr":"sum by(pod) (go_memstats_heap_inuse_bytes{cluster=~\"$cluster\", job=~\"($namespace)/(loki|enterprise-logs)-write\"})","format":"time_series","intervalFactor":2,"legendFormat":"{{pod}}","legendLink":null,"step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Memory (go heap inuse)","tooltip":{"sort":2},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"bytes","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":10,"gridPos":{},"id":5,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":0,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":true,"steppedLine":false,"targets":[{"expr":"sum by(instance, pod, device) (rate(node_disk_written_bytes_total[$__rate_interval])) + ignoring(pod) group_right() (label_replace(count by(instance, pod, device) (container_fs_writes_bytes_total{cluster=~\"$cluster\", namespace=~\"$namespace\", container=\"loki\", pod=~\"(loki|enterprise-logs)-write.*\", device!~\".*sda.*\"}), \"device\", \"$1\", \"device\", \"/dev/(.*)\") * 0)\n","format":"time_series","intervalFactor":2,"legendFormat":"{{pod}} - {{device}}","legendLink":null,"step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Disk Writes","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"Bps","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":10,"gridPos":{},"id":6,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":0,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":true,"steppedLine":false,"targets":[{"expr":"sum by(instance, pod, device) (rate(node_disk_read_bytes_total[$__rate_interval])) + ignoring(pod) group_right() (label_replace(count by(instance, pod, device) (container_fs_writes_bytes_total{cluster=~\"$cluster\", namespace=~\"$namespace\", container=\"loki\", pod=~\"(loki|enterprise-logs)-write.*\", device!~\".*sda.*\"}), \"device\", \"$1\", \"device\", \"/dev/(.*)\") * 0)\n","format":"time_series","intervalFactor":2,"legendFormat":"{{pod}} - {{device}}","legendLink":null,"step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Disk Reads","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"Bps","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"gridPos":{},"id":7,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":false,"steppedLine":false,"targets":[{"expr":"max by(persistentvolumeclaim) (kubelet_volume_stats_used_bytes{cluster=~\"$cluster\", namespace=~\"$namespace\"} / kubelet_volume_stats_capacity_bytes{cluster=~\"$cluster\", namespace=~\"$namespace\"}) and count by(persistentvolumeclaim) (kube_persistentvolumeclaim_labels{cluster=~\"$cluster\", namespace=~\"$namespace\",label_name=~\"(loki|enterprise-logs)-write.*\"})","format":"time_series","intervalFactor":2,"legendFormat":"{{persistentvolumeclaim}}","legendLink":null,"step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Disk Space Utilization","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"percentunit","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]}],"repeat":null,"repeatIteration":null,"repeatRowId":null,"showTitle":true,"title":"Write path","titleSize":"h6","type":"row"}],"schemaVersion":14,"style":"dark","tags":["loki"],"templating":{"list":[{"current":{"text":"default","value":"default"},"hide":0,"label":"Data Source","name":"datasource","options":[],"query":"prometheus","refresh":1,"regex":"","type":"datasource"},{"allValue":null,"current":{"text":"prod","value":"prod"},"datasource":"$datasource","hide":0,"includeAll":false,"label":"cluster","multi":false,"name":"cluster","options":[],"query":"label_values(loki_build_info, cluster)","refresh":1,"regex":"","sort":2,"tagValuesQuery":"","tags":[],"tagsQuery":"","type":"query","useTags":false},{"allValue":null,"current":{"text":"prod","value":"prod"},"datasource":"$datasource","hide":0,"includeAll":false,"label":"namespace","multi":false,"name":"namespace","options":[],"query":"label_values(loki_build_info{cluster=~\"$cluster\"}, namespace)","refresh":1,"regex":"","sort":2,"tagValuesQuery":"","tags":[],"tagsQuery":"","type":"query","useTags":false}]},"time":{"from":"now-1h","to":"now"},"timepicker":{"refresh_intervals":["5s","10s","30s","1m","5m","15m","30m","1h","2h","1d"],"time_options":["5m","15m","1h","6h","12h","24h","2d","7d","30d"]},"timezone":"utc","title":"Loki / Writes Resources","uid":"writes-resources","version":0} + "loki-writes.json": | + {"annotations":{"list":[]},"editable":true,"gnetId":null,"graphTooltip":0,"hideControls":false,"links":[{"asDropdown":true,"icon":"external link","includeVars":true,"keepTime":true,"tags":["loki"],"targetBlank":false,"title":"Loki Dashboards","type":"dashboards"}],"refresh":"10s","rows":[{"collapse":false,"height":"250px","panels":[{"aliasColors":{"1xx":"#EAB839","2xx":"#7EB26D","3xx":"#6ED0E0","4xx":"#EF843C","5xx":"#E24D42","error":"#E24D42","success":"#7EB26D"},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":10,"id":1,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":0,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":true,"steppedLine":false,"targets":[{"expr":"sum by (status) (\n label_replace(label_replace(rate(loki_request_duration_seconds_count{cluster=~\"$cluster\",job=~\"($namespace)/(loki|enterprise-logs)-write\", route=~\"api_prom_push|loki_api_v1_push|/httpgrpc.HTTP/Handle\"}[$__rate_interval]),\n \"status\", \"${1}xx\", \"status_code\", \"([0-9])..\"),\n \"status\", \"${1}\", \"status_code\", \"([a-z]+)\"))\n","format":"time_series","intervalFactor":2,"legendFormat":"{{status}}","refId":"A","step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"QPS","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"id":2,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":false,"steppedLine":false,"targets":[{"expr":"histogram_quantile(0.99, sum by (le) (job:loki_request_duration_seconds_bucket:sum_rate{job=~\"($namespace)/(loki|enterprise-logs)-write\", cluster=~\"$cluster\"})) * 1e3","format":"time_series","intervalFactor":2,"legendFormat":"99th Percentile","refId":"A","step":10},{"expr":"histogram_quantile(0.50, sum by (le) (job:loki_request_duration_seconds_bucket:sum_rate{job=~\"($namespace)/(loki|enterprise-logs)-write\", cluster=~\"$cluster\"})) * 1e3","format":"time_series","intervalFactor":2,"legendFormat":"50th Percentile","refId":"B","step":10},{"expr":"1e3 * sum(job:loki_request_duration_seconds_sum:sum_rate{job=~\"($namespace)/(loki|enterprise-logs)-write\", cluster=~\"$cluster\"}) / sum(job:loki_request_duration_seconds_count:sum_rate{job=~\"($namespace)/(loki|enterprise-logs)-write\", cluster=~\"$cluster\"})","format":"time_series","intervalFactor":2,"legendFormat":"Average","refId":"C","step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Latency","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"ms","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]}],"repeat":null,"repeatIteration":null,"repeatRowId":null,"showTitle":true,"title":"Write Path","titleSize":"h6"},{"collapse":false,"height":"250px","panels":[{"aliasColors":{"1xx":"#EAB839","2xx":"#7EB26D","3xx":"#6ED0E0","4xx":"#EF843C","5xx":"#E24D42","error":"#E24D42","success":"#7EB26D"},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":10,"id":3,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":0,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":true,"steppedLine":false,"targets":[{"expr":"sum by (status) (\n label_replace(label_replace(rate(loki_boltdb_shipper_request_duration_seconds_count{cluster=~\"$cluster\",job=~\"($namespace)/(loki|enterprise-logs)-write\", operation=\"WRITE\"}[$__rate_interval]),\n \"status\", \"${1}xx\", \"status_code\", \"([0-9])..\"),\n \"status\", \"${1}\", \"status_code\", \"([a-z]+)\"))\n","format":"time_series","intervalFactor":2,"legendFormat":"{{status}}","refId":"A","step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"QPS","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"id":4,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":false,"steppedLine":false,"targets":[{"expr":"histogram_quantile(0.99, sum(rate(loki_boltdb_shipper_request_duration_seconds_bucket{cluster=~\"$cluster\",job=~\"($namespace)/(loki|enterprise-logs)-write\", operation=\"WRITE\"}[$__rate_interval])) by (le)) * 1e3","format":"time_series","intervalFactor":2,"legendFormat":"99th Percentile","refId":"A","step":10},{"expr":"histogram_quantile(0.50, sum(rate(loki_boltdb_shipper_request_duration_seconds_bucket{cluster=~\"$cluster\",job=~\"($namespace)/(loki|enterprise-logs)-write\", operation=\"WRITE\"}[$__rate_interval])) by (le)) * 1e3","format":"time_series","intervalFactor":2,"legendFormat":"50th Percentile","refId":"B","step":10},{"expr":"sum(rate(loki_boltdb_shipper_request_duration_seconds_sum{cluster=~\"$cluster\",job=~\"($namespace)/(loki|enterprise-logs)-write\", operation=\"WRITE\"}[$__rate_interval])) * 1e3 / sum(rate(loki_boltdb_shipper_request_duration_seconds_count{cluster=~\"$cluster\",job=~\"($namespace)/(loki|enterprise-logs)-write\", operation=\"WRITE\"}[$__rate_interval]))","format":"time_series","intervalFactor":2,"legendFormat":"Average","refId":"C","step":10}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Latency","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"ms","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]}],"repeat":null,"repeatIteration":null,"repeatRowId":null,"showTitle":true,"title":"BoltDB Shipper","titleSize":"h6"}],"schemaVersion":14,"style":"dark","tags":["loki"],"templating":{"list":[{"current":{"text":"default","value":"default"},"hide":0,"label":"Data Source","name":"datasource","options":[],"query":"prometheus","refresh":1,"regex":"","type":"datasource"},{"allValue":null,"current":{"text":"prod","value":"prod"},"datasource":"$datasource","hide":0,"includeAll":false,"label":"cluster","multi":false,"name":"cluster","options":[],"query":"label_values(loki_build_info, cluster)","refresh":1,"regex":"","sort":2,"tagValuesQuery":"","tags":[],"tagsQuery":"","type":"query","useTags":false},{"allValue":null,"current":{"text":"prod","value":"prod"},"datasource":"$datasource","hide":0,"includeAll":false,"label":"namespace","multi":false,"name":"namespace","options":[],"query":"label_values(loki_build_info{cluster=~\"$cluster\"}, namespace)","refresh":1,"regex":"","sort":2,"tagValuesQuery":"","tags":[],"tagsQuery":"","type":"query","useTags":false}]},"time":{"from":"now-1h","to":"now"},"timepicker":{"refresh_intervals":["5s","10s","30s","1m","5m","15m","30m","1h","2h","1d"],"time_options":["5m","15m","1h","6h","12h","24h","2d","7d","30d"]},"timezone":"utc","title":"Loki / Writes","uid":"writes","version":0} \ No newline at end of file diff --git a/monitor/loki/index.yaml b/monitor/loki/index.yaml index 03ae00e..ed46de3 100644 --- a/monitor/loki/index.yaml +++ b/monitor/loki/index.yaml @@ -6,6 +6,48 @@ metadata: name: loki description: null options: + storage: + default: + volume: + accessMode: ReadWriteOnce + size: 1oGi + type: Filesystem + description: Configure this app storage + examples: + - volume: + accessMode: ReadWriteOnce + size: 1oGi + type: Filesystem + properties: + volume: + default: + accessMode: ReadWriteOnce + size: 1oGi + type: Filesystem + properties: + accessMode: + default: ReadWriteOnce + enum: + - ReadWriteOnce + - ReadOnlyMany + - ReadWriteMany + type: string + size: + default: 1oGi + type: string + type: + default: Filesystem + enum: + - Filesystem + - Block + type: string + type: object + type: object + alertmanager: + default: alertmanager-alertmanager + examples: + - alertmanager-alertmanager + type: string images: default: loki: @@ -45,30 +87,6 @@ options: type: string type: object type: object - volume: - default: - accessMode: ReadWriteOnce - size: 10Gi - examples: - - accessMode: ReadWriteOnce - size: 10Gi - properties: - accessMode: - default: ReadWriteOnce - enum: - - ReadWriteOnce - - ReadOnlyMany - - ReadWriteMany - type: string - size: - default: 10Gi - type: string - type: object - alertmanager: - default: alertmanager-alertmanager - examples: - - alertmanager-alertmanager - type: string dependencies: [] providers: kubernetes: true diff --git a/monitor/monitor-control-plan/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-etcd.yaml b/monitor/monitor-control-plan/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-etcd.yaml index 611d723..da7bd00 100644 --- a/monitor/monitor-control-plan/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-etcd.yaml +++ b/monitor/monitor-control-plan/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-etcd.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" spec: diff --git a/monitor/monitor-control-plan/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kube-apiserver-availability.rules.yaml b/monitor/monitor-control-plan/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kube-apiserver-availability.rules.yaml index ee40b07..a5c172e 100644 --- a/monitor/monitor-control-plan/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kube-apiserver-availability.rules.yaml +++ b/monitor/monitor-control-plan/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kube-apiserver-availability.rules.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" spec: diff --git a/monitor/monitor-control-plan/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kube-apiserver-burnrate.rules.yaml b/monitor/monitor-control-plan/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kube-apiserver-burnrate.rules.yaml index fb16c9a..12a7204 100644 --- a/monitor/monitor-control-plan/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kube-apiserver-burnrate.rules.yaml +++ b/monitor/monitor-control-plan/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kube-apiserver-burnrate.rules.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" spec: diff --git a/monitor/monitor-control-plan/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kube-apiserver-histogram.rules.yaml b/monitor/monitor-control-plan/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kube-apiserver-histogram.rules.yaml index 74396bd..b734489 100644 --- a/monitor/monitor-control-plan/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kube-apiserver-histogram.rules.yaml +++ b/monitor/monitor-control-plan/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kube-apiserver-histogram.rules.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" spec: diff --git a/monitor/monitor-control-plan/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kube-apiserver-slos.yaml b/monitor/monitor-control-plan/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kube-apiserver-slos.yaml index ae593a7..f96d3c9 100644 --- a/monitor/monitor-control-plan/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kube-apiserver-slos.yaml +++ b/monitor/monitor-control-plan/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kube-apiserver-slos.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" spec: diff --git a/monitor/monitor-control-plan/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kube-scheduler.rules.yaml b/monitor/monitor-control-plan/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kube-scheduler.rules.yaml index 33c1319..23306ff 100644 --- a/monitor/monitor-control-plan/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kube-scheduler.rules.yaml +++ b/monitor/monitor-control-plan/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kube-scheduler.rules.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" spec: diff --git a/monitor/monitor-control-plan/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kubernetes-system-controller-manager.yaml b/monitor/monitor-control-plan/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kubernetes-system-controller-manager.yaml index 951e038..bdb1581 100644 --- a/monitor/monitor-control-plan/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kubernetes-system-controller-manager.yaml +++ b/monitor/monitor-control-plan/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kubernetes-system-controller-manager.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" spec: diff --git a/monitor/monitor-control-plan/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kubernetes-system-scheduler.yaml b/monitor/monitor-control-plan/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kubernetes-system-scheduler.yaml index f02012d..7c5e58d 100644 --- a/monitor/monitor-control-plan/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kubernetes-system-scheduler.yaml +++ b/monitor/monitor-control-plan/monitoring.coreos.com_v1_PrometheusRule_prometheus-community-kube-kubernetes-system-scheduler.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" spec: diff --git a/monitor/monitor-control-plan/monitoring.coreos.com_v1_ServiceMonitor_prometheus-community-kube-apiserver.yaml b/monitor/monitor-control-plan/monitoring.coreos.com_v1_ServiceMonitor_prometheus-community-kube-apiserver.yaml index 962fdde..298535d 100644 --- a/monitor/monitor-control-plan/monitoring.coreos.com_v1_ServiceMonitor_prometheus-community-kube-apiserver.yaml +++ b/monitor/monitor-control-plan/monitoring.coreos.com_v1_ServiceMonitor_prometheus-community-kube-apiserver.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" spec: diff --git a/monitor/monitor-control-plan/monitoring.coreos.com_v1_ServiceMonitor_prometheus-community-kube-kube-controller-manager.yaml b/monitor/monitor-control-plan/monitoring.coreos.com_v1_ServiceMonitor_prometheus-community-kube-kube-controller-manager.yaml index fe1888c..c844853 100644 --- a/monitor/monitor-control-plan/monitoring.coreos.com_v1_ServiceMonitor_prometheus-community-kube-kube-controller-manager.yaml +++ b/monitor/monitor-control-plan/monitoring.coreos.com_v1_ServiceMonitor_prometheus-community-kube-kube-controller-manager.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" spec: diff --git a/monitor/monitor-control-plan/monitoring.coreos.com_v1_ServiceMonitor_prometheus-community-kube-kube-etcd.yaml b/monitor/monitor-control-plan/monitoring.coreos.com_v1_ServiceMonitor_prometheus-community-kube-kube-etcd.yaml index 06ddb7d..0fda783 100644 --- a/monitor/monitor-control-plan/monitoring.coreos.com_v1_ServiceMonitor_prometheus-community-kube-kube-etcd.yaml +++ b/monitor/monitor-control-plan/monitoring.coreos.com_v1_ServiceMonitor_prometheus-community-kube-kube-etcd.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" spec: diff --git a/monitor/monitor-control-plan/monitoring.coreos.com_v1_ServiceMonitor_prometheus-community-kube-kube-scheduler.yaml b/monitor/monitor-control-plan/monitoring.coreos.com_v1_ServiceMonitor_prometheus-community-kube-kube-scheduler.yaml index a4260e6..0681073 100644 --- a/monitor/monitor-control-plan/monitoring.coreos.com_v1_ServiceMonitor_prometheus-community-kube-kube-scheduler.yaml +++ b/monitor/monitor-control-plan/monitoring.coreos.com_v1_ServiceMonitor_prometheus-community-kube-kube-scheduler.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" spec: diff --git a/monitor/monitor-control-plan/v1_ConfigMap_prometheus-community-kube-apiserver.yaml b/monitor/monitor-control-plan/v1_ConfigMap_prometheus-community-kube-apiserver.yaml index 6c4130a..f196aa2 100644 --- a/monitor/monitor-control-plan/v1_ConfigMap_prometheus-community-kube-apiserver.yaml +++ b/monitor/monitor-control-plan/v1_ConfigMap_prometheus-community-kube-apiserver.yaml @@ -12,9 +12,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" data: diff --git a/monitor/monitor-control-plan/v1_ConfigMap_prometheus-community-kube-controller-manager.yaml b/monitor/monitor-control-plan/v1_ConfigMap_prometheus-community-kube-controller-manager.yaml index a9b2cd6..6da6e6a 100644 --- a/monitor/monitor-control-plan/v1_ConfigMap_prometheus-community-kube-controller-manager.yaml +++ b/monitor/monitor-control-plan/v1_ConfigMap_prometheus-community-kube-controller-manager.yaml @@ -12,9 +12,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" data: diff --git a/monitor/monitor-control-plan/v1_ConfigMap_prometheus-community-kube-etcd.yaml b/monitor/monitor-control-plan/v1_ConfigMap_prometheus-community-kube-etcd.yaml index 89de251..ad7ade6 100644 --- a/monitor/monitor-control-plan/v1_ConfigMap_prometheus-community-kube-etcd.yaml +++ b/monitor/monitor-control-plan/v1_ConfigMap_prometheus-community-kube-etcd.yaml @@ -12,9 +12,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" data: diff --git a/monitor/monitor-control-plan/v1_ConfigMap_prometheus-community-kube-scheduler.yaml b/monitor/monitor-control-plan/v1_ConfigMap_prometheus-community-kube-scheduler.yaml index c5635f7..b01fa26 100644 --- a/monitor/monitor-control-plan/v1_ConfigMap_prometheus-community-kube-scheduler.yaml +++ b/monitor/monitor-control-plan/v1_ConfigMap_prometheus-community-kube-scheduler.yaml @@ -12,9 +12,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" data: diff --git a/monitor/monitor-control-plan/v1_Service_prometheus-community-kube-kube-controller-manager.yaml b/monitor/monitor-control-plan/v1_Service_prometheus-community-kube-kube-controller-manager.yaml index e3370e5..809256c 100644 --- a/monitor/monitor-control-plan/v1_Service_prometheus-community-kube-kube-controller-manager.yaml +++ b/monitor/monitor-control-plan/v1_Service_prometheus-community-kube-kube-controller-manager.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" namespace: kube-system diff --git a/monitor/monitor-control-plan/v1_Service_prometheus-community-kube-kube-etcd.yaml b/monitor/monitor-control-plan/v1_Service_prometheus-community-kube-kube-etcd.yaml index c189147..681444c 100644 --- a/monitor/monitor-control-plan/v1_Service_prometheus-community-kube-kube-etcd.yaml +++ b/monitor/monitor-control-plan/v1_Service_prometheus-community-kube-kube-etcd.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" namespace: kube-system diff --git a/monitor/monitor-control-plan/v1_Service_prometheus-community-kube-kube-scheduler.yaml b/monitor/monitor-control-plan/v1_Service_prometheus-community-kube-kube-scheduler.yaml index 4d209b2..6fbe33c 100644 --- a/monitor/monitor-control-plan/v1_Service_prometheus-community-kube-kube-scheduler.yaml +++ b/monitor/monitor-control-plan/v1_Service_prometheus-community-kube-kube-scheduler.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus-community - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "prometheus-community" heritage: "Helm" namespace: kube-system diff --git a/monitor/node-exporter/apps_v1_DaemonSet_node-exporter-prometheus-node-exporter.yaml b/monitor/node-exporter/apps_v1_DaemonSet_node-exporter-prometheus-node-exporter.yaml index d047c1e..d919580 100644 --- a/monitor/node-exporter/apps_v1_DaemonSet_node-exporter-prometheus-node-exporter.yaml +++ b/monitor/node-exporter/apps_v1_DaemonSet_node-exporter-prometheus-node-exporter.yaml @@ -5,7 +5,7 @@ metadata: name: node-exporter-prometheus-node-exporter namespace: vynil-monitor labels: - helm.sh/chart: prometheus-node-exporter-4.25.0 + helm.sh/chart: prometheus-node-exporter-4.26.0 app.kubernetes.io/managed-by: Helm app.kubernetes.io/component: metrics app.kubernetes.io/part-of: prometheus-node-exporter @@ -29,7 +29,7 @@ spec: annotations: cluster-autoscaler.kubernetes.io/safe-to-evict: "true" labels: - helm.sh/chart: prometheus-node-exporter-4.25.0 + helm.sh/chart: prometheus-node-exporter-4.26.0 app.kubernetes.io/managed-by: Helm app.kubernetes.io/component: metrics app.kubernetes.io/part-of: prometheus-node-exporter diff --git a/monitor/node-exporter/monitoring.coreos.com_v1_PrometheusRule_node-exporter-kube-prometh-node-exporter.rules.yaml b/monitor/node-exporter/monitoring.coreos.com_v1_PrometheusRule_node-exporter-kube-prometh-node-exporter.rules.yaml index cb2ab79..9242545 100644 --- a/monitor/node-exporter/monitoring.coreos.com_v1_PrometheusRule_node-exporter-kube-prometh-node-exporter.rules.yaml +++ b/monitor/node-exporter/monitoring.coreos.com_v1_PrometheusRule_node-exporter-kube-prometh-node-exporter.rules.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: node-exporter - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "node-exporter" heritage: "Helm" spec: diff --git a/monitor/node-exporter/monitoring.coreos.com_v1_PrometheusRule_node-exporter-kube-prometh-node-exporter.yaml b/monitor/node-exporter/monitoring.coreos.com_v1_PrometheusRule_node-exporter-kube-prometh-node-exporter.yaml index fb29b8e..d8439f6 100644 --- a/monitor/node-exporter/monitoring.coreos.com_v1_PrometheusRule_node-exporter-kube-prometh-node-exporter.yaml +++ b/monitor/node-exporter/monitoring.coreos.com_v1_PrometheusRule_node-exporter-kube-prometh-node-exporter.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: node-exporter - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "node-exporter" heritage: "Helm" spec: diff --git a/monitor/node-exporter/monitoring.coreos.com_v1_PrometheusRule_node-exporter-kube-prometh-node-network.yaml b/monitor/node-exporter/monitoring.coreos.com_v1_PrometheusRule_node-exporter-kube-prometh-node-network.yaml index 7341b5f..cb1bdac 100644 --- a/monitor/node-exporter/monitoring.coreos.com_v1_PrometheusRule_node-exporter-kube-prometh-node-network.yaml +++ b/monitor/node-exporter/monitoring.coreos.com_v1_PrometheusRule_node-exporter-kube-prometh-node-network.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: node-exporter - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "node-exporter" heritage: "Helm" spec: diff --git a/monitor/node-exporter/monitoring.coreos.com_v1_PrometheusRule_node-exporter-kube-prometh-node.rules.yaml b/monitor/node-exporter/monitoring.coreos.com_v1_PrometheusRule_node-exporter-kube-prometh-node.rules.yaml index fe8fed4..cf2dec4 100644 --- a/monitor/node-exporter/monitoring.coreos.com_v1_PrometheusRule_node-exporter-kube-prometh-node.rules.yaml +++ b/monitor/node-exporter/monitoring.coreos.com_v1_PrometheusRule_node-exporter-kube-prometh-node.rules.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: node-exporter - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "node-exporter" heritage: "Helm" spec: diff --git a/monitor/node-exporter/monitoring.coreos.com_v1_ServiceMonitor_node-exporter-prometheus-node-exporter.yaml b/monitor/node-exporter/monitoring.coreos.com_v1_ServiceMonitor_node-exporter-prometheus-node-exporter.yaml index c2e5c13..890da43 100644 --- a/monitor/node-exporter/monitoring.coreos.com_v1_ServiceMonitor_node-exporter-prometheus-node-exporter.yaml +++ b/monitor/node-exporter/monitoring.coreos.com_v1_ServiceMonitor_node-exporter-prometheus-node-exporter.yaml @@ -5,7 +5,7 @@ metadata: name: node-exporter-prometheus-node-exporter namespace: vynil-monitor labels: - helm.sh/chart: prometheus-node-exporter-4.25.0 + helm.sh/chart: prometheus-node-exporter-4.26.0 app.kubernetes.io/managed-by: Helm app.kubernetes.io/component: metrics app.kubernetes.io/part-of: prometheus-node-exporter diff --git a/monitor/node-exporter/v1_ConfigMap_node-exporter-kube-prometh-node-cluster-rsrc-use.yaml b/monitor/node-exporter/v1_ConfigMap_node-exporter-kube-prometh-node-cluster-rsrc-use.yaml index 255ca74..b111460 100644 --- a/monitor/node-exporter/v1_ConfigMap_node-exporter-kube-prometh-node-cluster-rsrc-use.yaml +++ b/monitor/node-exporter/v1_ConfigMap_node-exporter-kube-prometh-node-cluster-rsrc-use.yaml @@ -12,9 +12,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: node-exporter - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "node-exporter" heritage: "Helm" data: diff --git a/monitor/node-exporter/v1_ConfigMap_node-exporter-kube-prometh-node-rsrc-use.yaml b/monitor/node-exporter/v1_ConfigMap_node-exporter-kube-prometh-node-rsrc-use.yaml index 3cb87c9..693f949 100644 --- a/monitor/node-exporter/v1_ConfigMap_node-exporter-kube-prometh-node-rsrc-use.yaml +++ b/monitor/node-exporter/v1_ConfigMap_node-exporter-kube-prometh-node-rsrc-use.yaml @@ -12,9 +12,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: node-exporter - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "node-exporter" heritage: "Helm" data: diff --git a/monitor/node-exporter/v1_ConfigMap_node-exporter-kube-prometh-nodes-darwin.yaml b/monitor/node-exporter/v1_ConfigMap_node-exporter-kube-prometh-nodes-darwin.yaml index b9ea944..b7c5604 100644 --- a/monitor/node-exporter/v1_ConfigMap_node-exporter-kube-prometh-nodes-darwin.yaml +++ b/monitor/node-exporter/v1_ConfigMap_node-exporter-kube-prometh-nodes-darwin.yaml @@ -12,9 +12,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: node-exporter - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "node-exporter" heritage: "Helm" data: diff --git a/monitor/node-exporter/v1_ConfigMap_node-exporter-kube-prometh-nodes.yaml b/monitor/node-exporter/v1_ConfigMap_node-exporter-kube-prometh-nodes.yaml index 51eedbe..12a60bd 100644 --- a/monitor/node-exporter/v1_ConfigMap_node-exporter-kube-prometh-nodes.yaml +++ b/monitor/node-exporter/v1_ConfigMap_node-exporter-kube-prometh-nodes.yaml @@ -12,9 +12,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: node-exporter - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "node-exporter" heritage: "Helm" data: diff --git a/monitor/node-exporter/v1_ServiceAccount_node-exporter-prometheus-node-exporter.yaml b/monitor/node-exporter/v1_ServiceAccount_node-exporter-prometheus-node-exporter.yaml index 00c01d4..2bb87ea 100644 --- a/monitor/node-exporter/v1_ServiceAccount_node-exporter-prometheus-node-exporter.yaml +++ b/monitor/node-exporter/v1_ServiceAccount_node-exporter-prometheus-node-exporter.yaml @@ -6,7 +6,7 @@ metadata: name: node-exporter-prometheus-node-exporter namespace: vynil-monitor labels: - helm.sh/chart: prometheus-node-exporter-4.25.0 + helm.sh/chart: prometheus-node-exporter-4.26.0 app.kubernetes.io/managed-by: Helm app.kubernetes.io/component: metrics app.kubernetes.io/part-of: prometheus-node-exporter diff --git a/monitor/node-exporter/v1_Service_node-exporter-prometheus-node-exporter.yaml b/monitor/node-exporter/v1_Service_node-exporter-prometheus-node-exporter.yaml index 9c9665f..e06580c 100644 --- a/monitor/node-exporter/v1_Service_node-exporter-prometheus-node-exporter.yaml +++ b/monitor/node-exporter/v1_Service_node-exporter-prometheus-node-exporter.yaml @@ -5,7 +5,7 @@ metadata: name: node-exporter-prometheus-node-exporter namespace: vynil-monitor labels: - helm.sh/chart: prometheus-node-exporter-4.25.0 + helm.sh/chart: prometheus-node-exporter-4.26.0 app.kubernetes.io/managed-by: Helm app.kubernetes.io/component: metrics app.kubernetes.io/part-of: prometheus-node-exporter diff --git a/monitor/prometheus/index.yaml b/monitor/prometheus/index.yaml index e7da145..57d06e8 100644 --- a/monitor/prometheus/index.yaml +++ b/monitor/prometheus/index.yaml @@ -6,25 +6,65 @@ metadata: name: prometheus description: null options: - listenLocal: - default: false + ingress-class: + default: traefik examples: - - false - type: boolean + - traefik + type: string + domain: + default: your-company + examples: + - your-company + type: string + app-group: + default: monitor + examples: + - monitor + type: string + domain-name: + default: your_company.com + examples: + - your_company.com + type: string retention: default: 10d examples: - 10d type: string - sub_domain: + replicas: + default: 1 + examples: + - 1 + type: integer + shards: + default: 1 + examples: + - 1 + type: integer + enableAdminAPI: + default: false + examples: + - false + type: boolean + alertmanager: + default: alertmanager-alertmanager + examples: + - alertmanager-alertmanager + type: string + listenLocal: + default: false + examples: + - false + type: boolean + sub-domain: default: prometheus examples: - prometheus type: string - ingress_class: - default: traefik + logLevel: + default: info examples: - - traefik + - info type: string images: default: @@ -70,46 +110,6 @@ options: examples: - letsencrypt-prod type: string - domain: - default: your-company - examples: - - your-company - type: string - replicas: - default: 1 - examples: - - 1 - type: integer - domain_name: - default: your_company.com - examples: - - your_company.com - type: string - app_group: - default: monitor - examples: - - monitor - type: string - alertmanager: - default: alertmanager-alertmanager - examples: - - alertmanager-alertmanager - type: string - enableAdminAPI: - default: false - examples: - - false - type: boolean - logLevel: - default: info - examples: - - info - type: string - shards: - default: 1 - examples: - - 1 - type: integer dependencies: - dist: null category: share diff --git a/monitor/prometheus/monitoring.coreos.com_v1_PrometheusRule_prometheus-kube-prometheus-kubelet.rules.yaml b/monitor/prometheus/monitoring.coreos.com_v1_PrometheusRule_prometheus-kube-prometheus-kubelet.rules.yaml index c7b750e..80fc52e 100644 --- a/monitor/prometheus/monitoring.coreos.com_v1_PrometheusRule_prometheus-kube-prometheus-kubelet.rules.yaml +++ b/monitor/prometheus/monitoring.coreos.com_v1_PrometheusRule_prometheus-kube-prometheus-kubelet.rules.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "prometheus" heritage: "Helm" spec: diff --git a/monitor/prometheus/monitoring.coreos.com_v1_PrometheusRule_prometheus-kube-prometheus-kubernetes-system-kube-proxy.yaml b/monitor/prometheus/monitoring.coreos.com_v1_PrometheusRule_prometheus-kube-prometheus-kubernetes-system-kube-proxy.yaml index 69295e1..1b06752 100644 --- a/monitor/prometheus/monitoring.coreos.com_v1_PrometheusRule_prometheus-kube-prometheus-kubernetes-system-kube-proxy.yaml +++ b/monitor/prometheus/monitoring.coreos.com_v1_PrometheusRule_prometheus-kube-prometheus-kubernetes-system-kube-proxy.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "prometheus" heritage: "Helm" spec: diff --git a/monitor/prometheus/monitoring.coreos.com_v1_PrometheusRule_prometheus-kube-prometheus-prometheus.yaml b/monitor/prometheus/monitoring.coreos.com_v1_PrometheusRule_prometheus-kube-prometheus-prometheus.yaml index 5474a69..c2cc6eb 100644 --- a/monitor/prometheus/monitoring.coreos.com_v1_PrometheusRule_prometheus-kube-prometheus-prometheus.yaml +++ b/monitor/prometheus/monitoring.coreos.com_v1_PrometheusRule_prometheus-kube-prometheus-prometheus.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "prometheus" heritage: "Helm" spec: diff --git a/monitor/prometheus/monitoring.coreos.com_v1_ServiceMonitor_prometheus-kube-prometheus-coredns.yaml b/monitor/prometheus/monitoring.coreos.com_v1_ServiceMonitor_prometheus-kube-prometheus-coredns.yaml index 125e13d..d27733f 100644 --- a/monitor/prometheus/monitoring.coreos.com_v1_ServiceMonitor_prometheus-kube-prometheus-coredns.yaml +++ b/monitor/prometheus/monitoring.coreos.com_v1_ServiceMonitor_prometheus-kube-prometheus-coredns.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "prometheus" heritage: "Helm" spec: diff --git a/monitor/prometheus/monitoring.coreos.com_v1_ServiceMonitor_prometheus-kube-prometheus-kube-proxy.yaml b/monitor/prometheus/monitoring.coreos.com_v1_ServiceMonitor_prometheus-kube-prometheus-kube-proxy.yaml index 59455cf..d8bbb5a 100644 --- a/monitor/prometheus/monitoring.coreos.com_v1_ServiceMonitor_prometheus-kube-prometheus-kube-proxy.yaml +++ b/monitor/prometheus/monitoring.coreos.com_v1_ServiceMonitor_prometheus-kube-prometheus-kube-proxy.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "prometheus" heritage: "Helm" spec: diff --git a/monitor/prometheus/monitoring.coreos.com_v1_ServiceMonitor_prometheus-kube-prometheus-kubelet.yaml b/monitor/prometheus/monitoring.coreos.com_v1_ServiceMonitor_prometheus-kube-prometheus-kubelet.yaml index 55d1acf..653325c 100644 --- a/monitor/prometheus/monitoring.coreos.com_v1_ServiceMonitor_prometheus-kube-prometheus-kubelet.yaml +++ b/monitor/prometheus/monitoring.coreos.com_v1_ServiceMonitor_prometheus-kube-prometheus-kubelet.yaml @@ -8,9 +8,9 @@ metadata: app: kube-prometheus-stack-kubelet app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "prometheus" heritage: "Helm" spec: diff --git a/monitor/prometheus/monitoring.coreos.com_v1_ServiceMonitor_prometheus-kube-prometheus-prometheus.yaml b/monitor/prometheus/monitoring.coreos.com_v1_ServiceMonitor_prometheus-kube-prometheus-prometheus.yaml index e1c49f1..d527bb0 100644 --- a/monitor/prometheus/monitoring.coreos.com_v1_ServiceMonitor_prometheus-kube-prometheus-prometheus.yaml +++ b/monitor/prometheus/monitoring.coreos.com_v1_ServiceMonitor_prometheus-kube-prometheus-prometheus.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "prometheus" heritage: "Helm" spec: diff --git a/monitor/prometheus/presentation.tf b/monitor/prometheus/presentation.tf index d476560..8bafcf3 100644 --- a/monitor/prometheus/presentation.tf +++ b/monitor/prometheus/presentation.tf @@ -1,5 +1,5 @@ locals { - dns_name = "${var.sub_domain}.${var.domain_name}" + dns_name = "${var.sub-domain}.${var.domain-name}" dns_names = [local.dns_name] app_name = var.component == var.instance ? var.instance : format("%s-%s", var.component, var.instance) icon = "favicon.ico" @@ -21,7 +21,7 @@ module "ingress" { instance = var.instance namespace = var.namespace issuer = var.issuer - ingress_class = var.ingress_class + ingress-class = var.ingress-class labels = local.common-labels dns_names = local.dns_names middlewares = ["forward-${local.app_name}"] @@ -35,7 +35,7 @@ module "application" { source = "git::https://git.solidite.fr/vynil/kydah-modules.git//application" component = var.component instance = var.instance - app_group = var.app_group + app-group = var.app-group dns_name = local.dns_name icon = local.icon protocol_provider = module.forward.provider-id @@ -60,7 +60,7 @@ module "forward" { instance = var.instance domain = var.domain namespace = var.namespace - ingress_class = var.ingress_class + ingress-class = var.ingress-class labels = local.common-labels dns_names = local.dns_names service = local.service diff --git a/monitor/prometheus/rbac.authorization.k8s.io_v1_ClusterRoleBinding_prometheus-kube-prometheus-prometheus.yaml b/monitor/prometheus/rbac.authorization.k8s.io_v1_ClusterRoleBinding_prometheus-kube-prometheus-prometheus.yaml index f7e1d3b..0cb2b23 100644 --- a/monitor/prometheus/rbac.authorization.k8s.io_v1_ClusterRoleBinding_prometheus-kube-prometheus-prometheus.yaml +++ b/monitor/prometheus/rbac.authorization.k8s.io_v1_ClusterRoleBinding_prometheus-kube-prometheus-prometheus.yaml @@ -8,9 +8,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "prometheus" heritage: "Helm" roleRef: diff --git a/monitor/prometheus/rbac.authorization.k8s.io_v1_ClusterRole_prometheus-kube-prometheus-prometheus.yaml b/monitor/prometheus/rbac.authorization.k8s.io_v1_ClusterRole_prometheus-kube-prometheus-prometheus.yaml index a820419..c01e748 100644 --- a/monitor/prometheus/rbac.authorization.k8s.io_v1_ClusterRole_prometheus-kube-prometheus-prometheus.yaml +++ b/monitor/prometheus/rbac.authorization.k8s.io_v1_ClusterRole_prometheus-kube-prometheus-prometheus.yaml @@ -8,9 +8,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "prometheus" heritage: "Helm" rules: diff --git a/monitor/prometheus/v1_ConfigMap_prometheus-kube-prometheus-grafana-datasource.yaml b/monitor/prometheus/v1_ConfigMap_prometheus-kube-prometheus-grafana-datasource.yaml index c40a6be..e81431f 100644 --- a/monitor/prometheus/v1_ConfigMap_prometheus-kube-prometheus-grafana-datasource.yaml +++ b/monitor/prometheus/v1_ConfigMap_prometheus-kube-prometheus-grafana-datasource.yaml @@ -10,9 +10,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "prometheus" heritage: "Helm" data: diff --git a/monitor/prometheus/v1_ConfigMap_prometheus-kube-prometheus-k8s-coredns.yaml b/monitor/prometheus/v1_ConfigMap_prometheus-kube-prometheus-k8s-coredns.yaml index 0ea5b20..d1d922d 100644 --- a/monitor/prometheus/v1_ConfigMap_prometheus-kube-prometheus-k8s-coredns.yaml +++ b/monitor/prometheus/v1_ConfigMap_prometheus-kube-prometheus-k8s-coredns.yaml @@ -12,9 +12,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "prometheus" heritage: "Helm" data: diff --git a/monitor/prometheus/v1_ConfigMap_prometheus-kube-prometheus-kubelet.yaml b/monitor/prometheus/v1_ConfigMap_prometheus-kube-prometheus-kubelet.yaml index 9579597..0c212c7 100644 --- a/monitor/prometheus/v1_ConfigMap_prometheus-kube-prometheus-kubelet.yaml +++ b/monitor/prometheus/v1_ConfigMap_prometheus-kube-prometheus-kubelet.yaml @@ -12,9 +12,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "prometheus" heritage: "Helm" data: diff --git a/monitor/prometheus/v1_ConfigMap_prometheus-kube-prometheus-prometheus.yaml b/monitor/prometheus/v1_ConfigMap_prometheus-kube-prometheus-prometheus.yaml index 751b7ef..596c620 100644 --- a/monitor/prometheus/v1_ConfigMap_prometheus-kube-prometheus-prometheus.yaml +++ b/monitor/prometheus/v1_ConfigMap_prometheus-kube-prometheus-prometheus.yaml @@ -12,11 +12,11 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "prometheus" heritage: "Helm" data: prometheus.json: |- - {"annotations":{"list":[]},"editable":true,"gnetId":null,"graphTooltip":0,"hideControls":false,"links":[],"refresh":"60s","rows":[{"collapse":false,"height":"250px","panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"id":1,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":12,"stack":false,"steppedLine":false,"styles":[{"alias":"Time","dateFormat":"YYYY-MM-DD HH:mm:ss","pattern":"Time","type":"hidden"},{"alias":"Count","colorMode":null,"colors":[],"dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":2,"link":false,"linkTargetBlank":false,"linkTooltip":"Drill down","linkUrl":"","pattern":"Value #A","thresholds":[],"type":"hidden","unit":"short"},{"alias":"Uptime","colorMode":null,"colors":[],"dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":2,"link":false,"linkTargetBlank":false,"linkTooltip":"Drill down","linkUrl":"","pattern":"Value #B","thresholds":[],"type":"number","unit":"s"},{"alias":"Instance","colorMode":null,"colors":[],"dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":2,"link":false,"linkTargetBlank":false,"linkTooltip":"Drill down","linkUrl":"","pattern":"instance","thresholds":[],"type":"number","unit":"short"},{"alias":"Job","colorMode":null,"colors":[],"dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":2,"link":false,"linkTargetBlank":false,"linkTooltip":"Drill down","linkUrl":"","pattern":"job","thresholds":[],"type":"number","unit":"short"},{"alias":"Version","colorMode":null,"colors":[],"dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":2,"link":false,"linkTargetBlank":false,"linkTooltip":"Drill down","linkUrl":"","pattern":"version","thresholds":[],"type":"number","unit":"short"},{"alias":"","colorMode":null,"colors":[],"dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":2,"pattern":"/.*/","thresholds":[],"type":"string","unit":"short"}],"targets":[{"expr":"count by (job, instance, version) (prometheus_build_info{job=~\"$job\", instance=~\"$instance\"})","format":"table","instant":true,"legendFormat":"","refId":"A"},{"expr":"max by (job, instance) (time() - process_start_time_seconds{job=~\"$job\", instance=~\"$instance\"})","format":"table","instant":true,"legendFormat":"","refId":"B"}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Prometheus Stats","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transform":"table","type":"table","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]}],"repeat":null,"repeatIteration":null,"repeatRowId":null,"showTitle":true,"title":"Prometheus Stats","titleSize":"h6"},{"collapse":false,"height":"250px","panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"id":2,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(rate(prometheus_target_sync_length_seconds_sum{job=~\"$job\",instance=~\"$instance\"}[5m])) by (scrape_job) * 1e3","format":"time_series","legendFormat":"{{scrape_job}}","legendLink":null}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Target Sync","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"ms","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":10,"id":3,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":0,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":true,"steppedLine":false,"targets":[{"expr":"sum(prometheus_sd_discovered_targets{job=~\"$job\",instance=~\"$instance\"})","format":"time_series","legendFormat":"Targets","legendLink":null}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Targets","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]}],"repeat":null,"repeatIteration":null,"repeatRowId":null,"showTitle":true,"title":"Discovery","titleSize":"h6"},{"collapse":false,"height":"250px","panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"id":4,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":4,"stack":false,"steppedLine":false,"targets":[{"expr":"rate(prometheus_target_interval_length_seconds_sum{job=~\"$job\",instance=~\"$instance\"}[5m]) / rate(prometheus_target_interval_length_seconds_count{job=~\"$job\",instance=~\"$instance\"}[5m]) * 1e3","format":"time_series","legendFormat":"{{interval}} configured","legendLink":null}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Average Scrape Interval Duration","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"ms","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":10,"id":5,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":0,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":4,"stack":true,"steppedLine":false,"targets":[{"expr":"sum by (job) (rate(prometheus_target_scrapes_exceeded_body_size_limit_total[1m]))","format":"time_series","legendFormat":"exceeded body size limit: {{job}}","legendLink":null},{"expr":"sum by (job) (rate(prometheus_target_scrapes_exceeded_sample_limit_total[1m]))","format":"time_series","legendFormat":"exceeded sample limit: {{job}}","legendLink":null},{"expr":"sum by (job) (rate(prometheus_target_scrapes_sample_duplicate_timestamp_total[1m]))","format":"time_series","legendFormat":"duplicate timestamp: {{job}}","legendLink":null},{"expr":"sum by (job) (rate(prometheus_target_scrapes_sample_out_of_bounds_total[1m]))","format":"time_series","legendFormat":"out of bounds: {{job}}","legendLink":null},{"expr":"sum by (job) (rate(prometheus_target_scrapes_sample_out_of_order_total[1m]))","format":"time_series","legendFormat":"out of order: {{job}}","legendLink":null}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Scrape failures","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":10,"id":6,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":0,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":4,"stack":true,"steppedLine":false,"targets":[{"expr":"rate(prometheus_tsdb_head_samples_appended_total{job=~\"$job\",instance=~\"$instance\"}[5m])","format":"time_series","legendFormat":"{{job}} {{instance}}","legendLink":null}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Appended Samples","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]}],"repeat":null,"repeatIteration":null,"repeatRowId":null,"showTitle":true,"title":"Retrieval","titleSize":"h6"},{"collapse":false,"height":"250px","panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":10,"id":7,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":0,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":true,"steppedLine":false,"targets":[{"expr":"prometheus_tsdb_head_series{job=~\"$job\",instance=~\"$instance\"}","format":"time_series","legendFormat":"{{job}} {{instance}} head series","legendLink":null}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Head Series","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":10,"id":8,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":0,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":true,"steppedLine":false,"targets":[{"expr":"prometheus_tsdb_head_chunks{job=~\"$job\",instance=~\"$instance\"}","format":"time_series","legendFormat":"{{job}} {{instance}} head chunks","legendLink":null}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Head Chunks","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]}],"repeat":null,"repeatIteration":null,"repeatRowId":null,"showTitle":true,"title":"Storage","titleSize":"h6"},{"collapse":false,"height":"250px","panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":10,"id":9,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":0,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":true,"steppedLine":false,"targets":[{"expr":"rate(prometheus_engine_query_duration_seconds_count{job=~\"$job\",instance=~\"$instance\",slice=\"inner_eval\"}[5m])","format":"time_series","legendFormat":"{{job}} {{instance}}","legendLink":null}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Query Rate","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":10,"id":10,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":0,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":true,"steppedLine":false,"targets":[{"expr":"max by (slice) (prometheus_engine_query_duration_seconds{quantile=\"0.9\",job=~\"$job\",instance=~\"$instance\"}) * 1e3","format":"time_series","legendFormat":"{{slice}}","legendLink":null}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Stage Duration","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"ms","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]}],"repeat":null,"repeatIteration":null,"repeatRowId":null,"showTitle":true,"title":"Query","titleSize":"h6"}],"schemaVersion":14,"style":"dark","tags":["prometheus-mixin"],"templating":{"list":[{"current":{"text":"default","value":"default"},"hide":0,"label":"Data source","name":"datasource","options":[],"query":"prometheus","refresh":1,"regex":"","type":"datasource"},{"allValue":".+","current":{"selected":true,"text":"All","value":"$__all"},"datasource":"$datasource","hide":0,"includeAll":true,"label":"job","multi":true,"name":"job","options":[],"query":"label_values(prometheus_build_info{job=\"prometheus-k8s\",namespace=\"monitoring\"}, job)","refresh":1,"regex":"","sort":2,"tagValuesQuery":"","tags":[],"tagsQuery":"","type":"query","useTags":false},{"allValue":".+","current":{"selected":true,"text":"All","value":"$__all"},"datasource":"$datasource","hide":0,"includeAll":true,"label":"instance","multi":true,"name":"instance","options":[],"query":"label_values(prometheus_build_info{job=~\"$job\"}, instance)","refresh":1,"regex":"","sort":2,"tagValuesQuery":"","tags":[],"tagsQuery":"","type":"query","useTags":false}]},"time":{"from":"now-1h","to":"now"},"timepicker":{"refresh_intervals":["5s","10s","30s","1m","5m","15m","30m","1h","2h","1d"],"time_options":["5m","15m","1h","6h","12h","24h","2d","7d","30d"]},"timezone": "Europe/Paris","title":"Prometheus / Overview","uid":"","version":0} \ No newline at end of file + {"annotations":{"list":[]},"editable":true,"gnetId":null,"graphTooltip":0,"hideControls":false,"links":[],"refresh":"60s","rows":[{"collapse":false,"height":"250px","panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"id":1,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":12,"stack":false,"steppedLine":false,"styles":[{"alias":"Time","dateFormat":"YYYY-MM-DD HH:mm:ss","pattern":"Time","type":"hidden"},{"alias":"Count","colorMode":null,"colors":[],"dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":2,"link":false,"linkTargetBlank":false,"linkTooltip":"Drill down","linkUrl":"","pattern":"Value #A","thresholds":[],"type":"hidden","unit":"short"},{"alias":"Uptime","colorMode":null,"colors":[],"dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":2,"link":false,"linkTargetBlank":false,"linkTooltip":"Drill down","linkUrl":"","pattern":"Value #B","thresholds":[],"type":"number","unit":"s"},{"alias":"Cluster","colorMode":null,"colors":[],"dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":2,"link":false,"linkTargetBlank":false,"linkTooltip":"Drill down","linkUrl":"","pattern":"cluster","thresholds":[],"type":"number","unit":"short"},{"alias":"Instance","colorMode":null,"colors":[],"dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":2,"link":false,"linkTargetBlank":false,"linkTooltip":"Drill down","linkUrl":"","pattern":"instance","thresholds":[],"type":"number","unit":"short"},{"alias":"Job","colorMode":null,"colors":[],"dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":2,"link":false,"linkTargetBlank":false,"linkTooltip":"Drill down","linkUrl":"","pattern":"job","thresholds":[],"type":"number","unit":"short"},{"alias":"Version","colorMode":null,"colors":[],"dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":2,"link":false,"linkTargetBlank":false,"linkTooltip":"Drill down","linkUrl":"","pattern":"version","thresholds":[],"type":"number","unit":"short"},{"alias":"","colorMode":null,"colors":[],"dateFormat":"YYYY-MM-DD HH:mm:ss","decimals":2,"pattern":"/.*/","thresholds":[],"type":"string","unit":"short"}],"targets":[{"expr":"count by (cluster, job, instance, version) (prometheus_build_info{cluster=~\"$cluster\", job=~\"$job\", instance=~\"$instance\"})","format":"table","instant":true,"legendFormat":"","refId":"A"},{"expr":"max by (cluster, job, instance) (time() - process_start_time_seconds{cluster=~\"$cluster\", job=~\"$job\", instance=~\"$instance\"})","format":"table","instant":true,"legendFormat":"","refId":"B"}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Prometheus Stats","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"transform":"table","type":"table","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]}],"repeat":null,"repeatIteration":null,"repeatRowId":null,"showTitle":true,"title":"Prometheus Stats","titleSize":"h6"},{"collapse":false,"height":"250px","panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"id":2,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":false,"steppedLine":false,"targets":[{"expr":"sum(rate(prometheus_target_sync_length_seconds_sum{cluster=~\"$cluster\",job=~\"$job\",instance=~\"$instance\"}[5m])) by (cluster, job, scrape_job, instance) * 1e3","format":"time_series","legendFormat":"{{cluster}}:{{job}}:{{instance}}:{{scrape_job}}","legendLink":null}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Target Sync","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"ms","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":10,"id":3,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":0,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":true,"steppedLine":false,"targets":[{"expr":"sum by (cluster, job, instance) (prometheus_sd_discovered_targets{cluster=~\"$cluster\", job=~\"$job\",instance=~\"$instance\"})","format":"time_series","legendFormat":"{{cluster}}:{{job}}:{{instance}}","legendLink":null}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Targets","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]}],"repeat":null,"repeatIteration":null,"repeatRowId":null,"showTitle":true,"title":"Discovery","titleSize":"h6"},{"collapse":false,"height":"250px","panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":1,"id":4,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":1,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":4,"stack":false,"steppedLine":false,"targets":[{"expr":"rate(prometheus_target_interval_length_seconds_sum{cluster=~\"$cluster\", job=~\"$job\",instance=~\"$instance\"}[5m]) / rate(prometheus_target_interval_length_seconds_count{cluster=~\"$cluster\", job=~\"$job\",instance=~\"$instance\"}[5m]) * 1e3","format":"time_series","legendFormat":"{{cluster}}:{{job}}:{{instance}} {{interval}} configured","legendLink":null}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Average Scrape Interval Duration","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"ms","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":10,"id":5,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":0,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":4,"stack":true,"steppedLine":false,"targets":[{"expr":"sum by (cluster, job, instance) (rate(prometheus_target_scrapes_exceeded_body_size_limit_total{cluster=~\"$cluster\",job=~\"$job\",instance=~\"$instance\"}[1m]))","format":"time_series","legendFormat":"exceeded body size limit: {{cluster}} {{job}} {{instance}}","legendLink":null},{"expr":"sum by (cluster, job, instance) (rate(prometheus_target_scrapes_exceeded_sample_limit_total{cluster=~\"$cluster\",job=~\"$job\",instance=~\"$instance\"}[1m]))","format":"time_series","legendFormat":"exceeded sample limit: {{cluster}} {{job}} {{instance}}","legendLink":null},{"expr":"sum by (cluster, job, instance) (rate(prometheus_target_scrapes_sample_duplicate_timestamp_total{cluster=~\"$cluster\",job=~\"$job\",instance=~\"$instance\"}[1m]))","format":"time_series","legendFormat":"duplicate timestamp: {{cluster}} {{job}} {{instance}}","legendLink":null},{"expr":"sum by (cluster, job, instance) (rate(prometheus_target_scrapes_sample_out_of_bounds_total{cluster=~\"$cluster\",job=~\"$job\",instance=~\"$instance\"}[1m]))","format":"time_series","legendFormat":"out of bounds: {{cluster}} {{job}} {{instance}}","legendLink":null},{"expr":"sum by (cluster, job, instance) (rate(prometheus_target_scrapes_sample_out_of_order_total{cluster=~\"$cluster\",job=~\"$job\",instance=~\"$instance\"}[1m]))","format":"time_series","legendFormat":"out of order: {{cluster}} {{job}} {{instance}}","legendLink":null}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Scrape failures","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":10,"id":6,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":0,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":4,"stack":true,"steppedLine":false,"targets":[{"expr":"rate(prometheus_tsdb_head_samples_appended_total{cluster=~\"$cluster\", job=~\"$job\",instance=~\"$instance\"}[5m])","format":"time_series","legendFormat":"{{cluster}} {{job}} {{instance}}","legendLink":null}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Appended Samples","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]}],"repeat":null,"repeatIteration":null,"repeatRowId":null,"showTitle":true,"title":"Retrieval","titleSize":"h6"},{"collapse":false,"height":"250px","panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":10,"id":7,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":0,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":true,"steppedLine":false,"targets":[{"expr":"prometheus_tsdb_head_series{cluster=~\"$cluster\",job=~\"$job\",instance=~\"$instance\"}","format":"time_series","legendFormat":"{{cluster}} {{job}} {{instance}} head series","legendLink":null}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Head Series","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":10,"id":8,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":0,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":true,"steppedLine":false,"targets":[{"expr":"prometheus_tsdb_head_chunks{cluster=~\"$cluster\",job=~\"$job\",instance=~\"$instance\"}","format":"time_series","legendFormat":"{{cluster}} {{job}} {{instance}} head chunks","legendLink":null}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Head Chunks","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]}],"repeat":null,"repeatIteration":null,"repeatRowId":null,"showTitle":true,"title":"Storage","titleSize":"h6"},{"collapse":false,"height":"250px","panels":[{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":10,"id":9,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":0,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":true,"steppedLine":false,"targets":[{"expr":"rate(prometheus_engine_query_duration_seconds_count{cluster=~\"$cluster\",job=~\"$job\",instance=~\"$instance\",slice=\"inner_eval\"}[5m])","format":"time_series","legendFormat":"{{cluster}} {{job}} {{instance}}","legendLink":null}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Query Rate","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"short","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]},{"aliasColors":{},"bars":false,"dashLength":10,"dashes":false,"datasource":"$datasource","fill":10,"id":10,"legend":{"avg":false,"current":false,"max":false,"min":false,"show":true,"total":false,"values":false},"lines":true,"linewidth":0,"links":[],"nullPointMode":"null as zero","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"spaceLength":10,"span":6,"stack":true,"steppedLine":false,"targets":[{"expr":"max by (slice) (prometheus_engine_query_duration_seconds{quantile=\"0.9\",cluster=~\"$cluster\", job=~\"$job\",instance=~\"$instance\"}) * 1e3","format":"time_series","legendFormat":"{{slice}}","legendLink":null}],"thresholds":[],"timeFrom":null,"timeShift":null,"title":"Stage Duration","tooltip":{"shared":true,"sort":2,"value_type":"individual"},"type":"graph","xaxis":{"buckets":null,"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"ms","label":null,"logBase":1,"max":null,"min":0,"show":true},{"format":"short","label":null,"logBase":1,"max":null,"min":null,"show":false}]}],"repeat":null,"repeatIteration":null,"repeatRowId":null,"showTitle":true,"title":"Query","titleSize":"h6"}],"schemaVersion":14,"style":"dark","tags":["prometheus-mixin"],"templating":{"list":[{"current":{"text":"default","value":"default"},"hide":0,"label":"Data source","name":"datasource","options":[],"query":"prometheus","refresh":1,"regex":"","type":"datasource"},{"allValue":".+","current":{"selected":true,"text":"All","value":"$__all"},"datasource":"$datasource","hide":2,"includeAll":true,"label":"cluster","multi":true,"name":"cluster","options":[],"query":"label_values(prometheus_build_info{job=\"prometheus-k8s\",namespace=\"monitoring\"}, cluster)","refresh":1,"regex":"","sort":2,"tagValuesQuery":"","tags":[],"tagsQuery":"","type":"query","useTags":false},{"allValue":".+","current":{"selected":true,"text":"All","value":"$__all"},"datasource":"$datasource","hide":0,"includeAll":true,"label":"job","multi":true,"name":"job","options":[],"query":"label_values(prometheus_build_info{cluster=~\"$cluster\"}, job)","refresh":1,"regex":"","sort":2,"tagValuesQuery":"","tags":[],"tagsQuery":"","type":"query","useTags":false},{"allValue":".+","current":{"selected":true,"text":"All","value":"$__all"},"datasource":"$datasource","hide":0,"includeAll":true,"label":"instance","multi":true,"name":"instance","options":[],"query":"label_values(prometheus_build_info{cluster=~\"$cluster\", job=~\"$job\"}, instance)","refresh":1,"regex":"","sort":2,"tagValuesQuery":"","tags":[],"tagsQuery":"","type":"query","useTags":false}]},"time":{"from":"now-1h","to":"now"},"timepicker":{"refresh_intervals":["5s","10s","30s","1m","5m","15m","30m","1h","2h","1d"],"time_options":["5m","15m","1h","6h","12h","24h","2d","7d","30d"]},"timezone": "Europe/Paris","title":"Prometheus / Overview","uid":"","version":0} \ No newline at end of file diff --git a/monitor/prometheus/v1_ConfigMap_prometheus-kube-prometheus-proxy.yaml b/monitor/prometheus/v1_ConfigMap_prometheus-kube-prometheus-proxy.yaml index 443b1e3..67b68e9 100644 --- a/monitor/prometheus/v1_ConfigMap_prometheus-kube-prometheus-proxy.yaml +++ b/monitor/prometheus/v1_ConfigMap_prometheus-kube-prometheus-proxy.yaml @@ -12,9 +12,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "prometheus" heritage: "Helm" data: diff --git a/monitor/prometheus/v1_Secret_prometheus-kube-prometheus-prometheus.yaml b/monitor/prometheus/v1_Secret_prometheus-kube-prometheus-prometheus.yaml index 4fc5bbe..a669a1f 100644 --- a/monitor/prometheus/v1_Secret_prometheus-kube-prometheus-prometheus.yaml +++ b/monitor/prometheus/v1_Secret_prometheus-kube-prometheus-prometheus.yaml @@ -10,9 +10,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "prometheus" heritage: "Helm" data: \ No newline at end of file diff --git a/monitor/prometheus/v1_ServiceAccount_prometheus-kube-prometheus-prometheus.yaml b/monitor/prometheus/v1_ServiceAccount_prometheus-kube-prometheus-prometheus.yaml index 9fe0791..326990d 100644 --- a/monitor/prometheus/v1_ServiceAccount_prometheus-kube-prometheus-prometheus.yaml +++ b/monitor/prometheus/v1_ServiceAccount_prometheus-kube-prometheus-prometheus.yaml @@ -12,8 +12,8 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "prometheus" heritage: "Helm" \ No newline at end of file diff --git a/monitor/prometheus/v1_Service_prometheus-kube-prometheus-coredns.yaml b/monitor/prometheus/v1_Service_prometheus-kube-prometheus-coredns.yaml index cc6c34e..9b3c38e 100644 --- a/monitor/prometheus/v1_Service_prometheus-kube-prometheus-coredns.yaml +++ b/monitor/prometheus/v1_Service_prometheus-kube-prometheus-coredns.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "prometheus" heritage: "Helm" namespace: kube-system diff --git a/monitor/prometheus/v1_Service_prometheus-kube-prometheus-kube-proxy.yaml b/monitor/prometheus/v1_Service_prometheus-kube-prometheus-kube-proxy.yaml index 85ca323..7c1540b 100644 --- a/monitor/prometheus/v1_Service_prometheus-kube-prometheus-kube-proxy.yaml +++ b/monitor/prometheus/v1_Service_prometheus-kube-prometheus-kube-proxy.yaml @@ -9,9 +9,9 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: "56.0.4" + app.kubernetes.io/version: "56.1.0" app.kubernetes.io/part-of: kube-prometheus-stack - chart: kube-prometheus-stack-56.0.4 + chart: kube-prometheus-stack-56.1.0 release: "prometheus" heritage: "Helm" namespace: kube-system diff --git a/monitor/thanos-ruler/index.yaml b/monitor/thanos-ruler/index.yaml new file mode 100644 index 0000000..607673f --- /dev/null +++ b/monitor/thanos-ruler/index.yaml @@ -0,0 +1,82 @@ +--- +apiVersion: vinyl.solidite.fr/v1beta1 +kind: Component +category: monitor +metadata: + name: thanos-ruler + description: null +options: + images: + default: + operator: + pullPolicy: IfNotPresent + registry: docker.io + repository: to-be/defined + tag: v1.0.0 + examples: + - operator: + pullPolicy: IfNotPresent + registry: docker.io + repository: to-be/defined + tag: v1.0.0 + properties: + operator: + default: + pullPolicy: IfNotPresent + registry: docker.io + repository: to-be/defined + tag: v1.0.0 + properties: + pullPolicy: + default: IfNotPresent + enum: + - Always + - Never + - IfNotPresent + type: string + registry: + default: docker.io + type: string + repository: + default: to-be/defined + type: string + tag: + default: v1.0.0 + type: string + type: object + type: object + domain-name: + default: your_company.com + examples: + - your_company.com + type: string + ingress-class: + default: traefik + examples: + - traefik + type: string + domain: + default: your-company + examples: + - your-company + type: string + sub-domain: + default: to-be-set + examples: + - to-be-set + type: string + issuer: + default: letsencrypt-prod + examples: + - letsencrypt-prod + type: string +dependencies: [] +providers: + kubernetes: true + authentik: true + kubectl: true + postgresql: null + restapi: null + http: null + gitea: null +tfaddtype: null diff --git a/monitor/thanos-ruler/monitoring.coreos.com_v1_ServiceMonitor_kube-prometheus-stack-thanos-ruler.yaml b/monitor/thanos-ruler/monitoring.coreos.com_v1_ServiceMonitor_kube-prometheus-stack-thanos-ruler.yaml new file mode 100644 index 0000000..cd52cc8 --- /dev/null +++ b/monitor/thanos-ruler/monitoring.coreos.com_v1_ServiceMonitor_kube-prometheus-stack-thanos-ruler.yaml @@ -0,0 +1,29 @@ +# Source: kube-prometheus-stack/templates/thanos-ruler/servicemonitor.yaml +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + name: kube-prometheus-stack-thanos-ruler + namespace: vynil-monitor + labels: + app: kube-prometheus-stack-thanos-ruler + + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/instance: prometheus-community + app.kubernetes.io/version: "56.1.0" + app.kubernetes.io/part-of: kube-prometheus-stack + chart: kube-prometheus-stack-56.1.0 + release: "prometheus-community" + heritage: "Helm" +spec: + + selector: + matchLabels: + app: kube-prometheus-stack-thanos-ruler + release: "prometheus-community" + self-monitor: "true" + namespaceSelector: + matchNames: + - "vynil-monitor" + endpoints: + - port: web + path: "/metrics" \ No newline at end of file diff --git a/monitor/thanos-ruler/monitoring.coreos.com_v1_ThanosRuler_kube-prometheus-stack-thanos-ruler.yaml b/monitor/thanos-ruler/monitoring.coreos.com_v1_ThanosRuler_kube-prometheus-stack-thanos-ruler.yaml new file mode 100644 index 0000000..9a722a3 --- /dev/null +++ b/monitor/thanos-ruler/monitoring.coreos.com_v1_ThanosRuler_kube-prometheus-stack-thanos-ruler.yaml @@ -0,0 +1,39 @@ +# Source: kube-prometheus-stack/templates/thanos-ruler/ruler.yaml +apiVersion: monitoring.coreos.com/v1 +kind: ThanosRuler +metadata: + name: kube-prometheus-stack-thanos-ruler + namespace: vynil-monitor + labels: + app: kube-prometheus-stack-thanos-ruler + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/instance: prometheus-community + app.kubernetes.io/version: "56.1.0" + app.kubernetes.io/part-of: kube-prometheus-stack + chart: kube-prometheus-stack-56.1.0 + release: "prometheus-community" + heritage: "Helm" +spec: + image: "quay.io/thanos/thanos:v0.33.0" + replicas: 1 + listenLocal: false + serviceAccountName: kube-prometheus-stack-thanos-ruler + externalPrefix: http://kube-prometheus-stack-thanos-ruler.vynil-monitor:10902 + paused: false + logFormat: "logfmt" + logLevel: "info" + retention: "24h" + ruleNamespaceSelector: {} + ruleSelector: + matchLabels: + release: "prometheus-community" + + routePrefix: "/" + securityContext: + fsGroup: 2000 + runAsGroup: 2000 + runAsNonRoot: true + runAsUser: 1000 + seccompProfile: + type: RuntimeDefault + portName: web \ No newline at end of file diff --git a/monitor/thanos-ruler/v1_Secret_kube-prometheus-stack-thanos-ruler.yaml b/monitor/thanos-ruler/v1_Secret_kube-prometheus-stack-thanos-ruler.yaml new file mode 100644 index 0000000..069e039 --- /dev/null +++ b/monitor/thanos-ruler/v1_Secret_kube-prometheus-stack-thanos-ruler.yaml @@ -0,0 +1,17 @@ +# Source: kube-prometheus-stack/templates/thanos-ruler/secret.yaml +apiVersion: v1 +kind: Secret +metadata: + name: kube-prometheus-stack-thanos-ruler + namespace: vynil-monitor + labels: + app: kube-prometheus-stack-thanos-ruler + + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/instance: prometheus-community + app.kubernetes.io/version: "56.1.0" + app.kubernetes.io/part-of: kube-prometheus-stack + chart: kube-prometheus-stack-56.1.0 + release: "prometheus-community" + heritage: "Helm" +data: \ No newline at end of file diff --git a/monitor/thanos-ruler/v1_ServiceAccount_kube-prometheus-stack-thanos-ruler.yaml b/monitor/thanos-ruler/v1_ServiceAccount_kube-prometheus-stack-thanos-ruler.yaml new file mode 100644 index 0000000..197a80d --- /dev/null +++ b/monitor/thanos-ruler/v1_ServiceAccount_kube-prometheus-stack-thanos-ruler.yaml @@ -0,0 +1,18 @@ +--- +# Source: kube-prometheus-stack/templates/thanos-ruler/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: kube-prometheus-stack-thanos-ruler + namespace: vynil-monitor + labels: + app: kube-prometheus-stack-thanos-ruler + app.kubernetes.io/name: kube-prometheus-stack-thanos-ruler + app.kubernetes.io/component: thanos-ruler + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/instance: prometheus-community + app.kubernetes.io/version: "56.1.0" + app.kubernetes.io/part-of: kube-prometheus-stack + chart: kube-prometheus-stack-56.1.0 + release: "prometheus-community" + heritage: "Helm" \ No newline at end of file diff --git a/monitor/thanos-ruler/v1_Service_kube-prometheus-stack-thanos-ruler.yaml b/monitor/thanos-ruler/v1_Service_kube-prometheus-stack-thanos-ruler.yaml new file mode 100644 index 0000000..9e312ac --- /dev/null +++ b/monitor/thanos-ruler/v1_Service_kube-prometheus-stack-thanos-ruler.yaml @@ -0,0 +1,26 @@ +# Source: kube-prometheus-stack/templates/thanos-ruler/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: kube-prometheus-stack-thanos-ruler + namespace: vynil-monitor + labels: + app: kube-prometheus-stack-thanos-ruler + self-monitor: "true" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/instance: prometheus-community + app.kubernetes.io/version: "56.1.0" + app.kubernetes.io/part-of: kube-prometheus-stack + chart: kube-prometheus-stack-56.1.0 + release: "prometheus-community" + heritage: "Helm" +spec: + ports: + - name: web + port: 10902 + targetPort: 10902 + protocol: TCP + selector: + app.kubernetes.io/name: thanos-ruler + thanos-ruler: kube-prometheus-stack-thanos-ruler + type: "ClusterIP" \ No newline at end of file diff --git a/share/accounts-management/index.yaml b/share/accounts-management/index.yaml index f3a41fa..6e26259 100644 --- a/share/accounts-management/index.yaml +++ b/share/accounts-management/index.yaml @@ -11,23 +11,6 @@ options: examples: - your-company type: string - clients: - default: - apps: [] - enable: false - examples: - - apps: [] - enable: false - properties: - apps: - default: [] - items: - type: string - type: array - enable: - default: false - type: boolean - type: object fournisseurs: default: apps: [] @@ -57,6 +40,23 @@ options: type: string type: array type: object + clients: + default: + apps: [] + enable: false + examples: + - apps: [] + enable: false + properties: + apps: + default: [] + items: + type: string + type: array + enable: + default: false + type: boolean + type: object dependencies: - dist: null category: share diff --git a/share/authentik-forward/index.yaml b/share/authentik-forward/index.yaml index 07d646c..e1a5497 100644 --- a/share/authentik-forward/index.yaml +++ b/share/authentik-forward/index.yaml @@ -6,28 +6,28 @@ metadata: name: authentik-forward description: null options: - issuer: - default: letsencrypt-prod + sub-domain: + default: null + domain-name: + default: your_company.com examples: - - letsencrypt-prod - type: string - ingress_class: - default: traefik - examples: - - traefik + - your_company.com type: string domain: default: your-company examples: - your-company type: string - domain_name: - default: your_company.com + issuer: + default: letsencrypt-prod examples: - - your_company.com + - letsencrypt-prod + type: string + ingress-class: + default: traefik + examples: + - traefik type: string - sub_domain: - default: null dependencies: - dist: null category: share diff --git a/share/authentik/datas.tf b/share/authentik/datas.tf index 8baedf2..006caac 100644 --- a/share/authentik/datas.tf +++ b/share/authentik/datas.tf @@ -46,7 +46,7 @@ data "kustomization_overlay" "data" { "AUTHENTIK_POSTGRESQL__PORT=5432", "AUTHENTIK_POSTGRESQL__USER=${var.component}", "AUTHENTIK_REDIS__HOST=${var.name}-${var.component}-redis", - "AUTHENTIK_BOOTSTRAP_EMAIL=${var.admin.email}@${var.domain_name}", + "AUTHENTIK_BOOTSTRAP_EMAIL=${var.admin.email}@${var.domain-name}", ] } patches { diff --git a/share/authentik/index.yaml b/share/authentik/index.yaml index 8466292..dc4fb5e 100644 --- a/share/authentik/index.yaml +++ b/share/authentik/index.yaml @@ -23,16 +23,41 @@ options: type: boolean type: object type: object - postgres: - default: - replicas: 1 + ingress-class: + default: traefik examples: - - replicas: 1 + - traefik + type: string + email: + default: + port: 587 + timeout: 30 + use_ssl: false + use_tls: false + examples: + - port: 587 + timeout: 30 + use_ssl: false + use_tls: false properties: - replicas: - default: 1 + port: + default: 587 type: integer + timeout: + default: 30 + type: integer + use_ssl: + default: false + type: boolean + use_tls: + default: false + type: boolean type: object + domain-name: + default: your_company.com + examples: + - your_company.com + type: string storage: default: postgres: @@ -199,35 +224,10 @@ options: type: string type: object type: object - loglevel: - default: info + domain: + default: your-company examples: - - info - type: string - error_reporting: - default: - enabled: false - environment: k8s - send_pii: false - examples: - - enabled: false - environment: k8s - send_pii: false - properties: - enabled: - default: false - type: boolean - environment: - default: k8s - type: string - send_pii: - default: false - type: boolean - type: object - geoip: - default: /geoip/GeoLite2-City.mmdb - examples: - - /geoip/GeoLite2-City.mmdb + - your-company type: string backups: default: @@ -288,45 +288,30 @@ options: default: false type: boolean type: object - domain_name: - default: your_company.com - examples: - - your_company.com - type: string - ingress_class: - default: traefik - examples: - - traefik - type: string - email: + error_reporting: default: - port: 587 - timeout: 30 - use_ssl: false - use_tls: false + enabled: false + environment: k8s + send_pii: false examples: - - port: 587 - timeout: 30 - use_ssl: false - use_tls: false + - enabled: false + environment: k8s + send_pii: false properties: - port: - default: 587 - type: integer - timeout: - default: 30 - type: integer - use_ssl: + enabled: default: false type: boolean - use_tls: + environment: + default: k8s + type: string + send_pii: default: false type: boolean type: object - issuer: - default: letsencrypt-prod + loglevel: + default: info examples: - - letsencrypt-prod + - info type: string admin: default: @@ -338,16 +323,31 @@ options: default: auth-admin type: string type: object - domain: - default: your-company + postgres: + default: + replicas: 1 examples: - - your-company + - replicas: 1 + properties: + replicas: + default: 1 + type: integer + type: object + geoip: + default: /geoip/GeoLite2-City.mmdb + examples: + - /geoip/GeoLite2-City.mmdb type: string - sub_domain: + sub-domain: default: auth examples: - auth type: string + issuer: + default: letsencrypt-prod + examples: + - letsencrypt-prod + type: string dependencies: - dist: null category: core diff --git a/share/authentik/ingress.tf b/share/authentik/ingress.tf index 8dc29b4..902e01d 100644 --- a/share/authentik/ingress.tf +++ b/share/authentik/ingress.tf @@ -1,5 +1,5 @@ locals { - dns_names = ["${var.sub_domain}.${var.domain_name}"] + dns_names = ["${var.sub-domain}.${var.domain-name}"] middlewares = ["${var.instance}-https"] service = { "name" = "${var.instance}" @@ -66,7 +66,7 @@ resource "kubectl_manifest" "prj_ingress" { annotations: "traefik.ingress.kubernetes.io/router.middlewares": "${join(",", [for m in local.middlewares : format("%s-%s@kubernetescrd", var.namespace, m)])}" spec: - ingressClassName: "${var.ingress_class}" + ingressClassName: "${var.ingress-class}" rules: ${jsonencode(local.rules)} tls: - hosts: ${jsonencode(local.dns_names)} diff --git a/share/dataset-maria/mariadb.tf b/share/dataset-maria/mariadb.tf index 7010e87..a1bab35 100644 --- a/share/dataset-maria/mariadb.tf +++ b/share/dataset-maria/mariadb.tf @@ -40,6 +40,8 @@ resource "kubectl_manifest" "prj_mariadb" { namespace: "${var.namespace}" labels: ${jsonencode(local.maria-labels)} spec: + image: "${var.images.mariadb.registry}/${var.images.mariadb.repository}:${var.images.mariadb.tag}" + imagePullPolicy: "${var.images.mariadb.pullPolicy}" rootPasswordSecretKeyRef: key: root-password name: "${var.instance}-${var.component}" diff --git a/share/dataset-mongo/index.yaml b/share/dataset-mongo/index.yaml index 6c39978..48cc088 100644 --- a/share/dataset-mongo/index.yaml +++ b/share/dataset-mongo/index.yaml @@ -47,26 +47,6 @@ options: type: string type: object type: object - cacheSizeGB: - default: 1 - examples: - - 1 - type: integer - replicas: - default: 1 - examples: - - 1 - type: integer - mongo: - default: - version: 7.0.2 - examples: - - version: 7.0.2 - properties: - version: - default: 7.0.2 - type: string - type: object image: default: pullPolicy: IfNotPresent @@ -81,6 +61,26 @@ options: - IfNotPresent type: string type: object + replicas: + default: 1 + examples: + - 1 + type: integer + cacheSizeGB: + default: 1 + examples: + - 1 + type: integer + mongo: + default: + version: 7.0.2 + examples: + - version: 7.0.2 + properties: + version: + default: 7.0.2 + type: string + type: object dependencies: - dist: null category: dbo diff --git a/share/dataset-pg/directus.tf b/share/dataset-pg/directus.tf index f46f1f3..86d95c9 100644 --- a/share/dataset-pg/directus.tf +++ b/share/dataset-pg/directus.tf @@ -45,13 +45,13 @@ resource "kubectl_manifest" "directus_config" { DB_PORT: "5432" STORAGE_LOCATIONS: "local" STORAGE_LOCAL_ROOT: "/var/store" - ADMIN_EMAIL: "admin@${var.domain_name}" + ADMIN_EMAIL: "admin@${var.domain-name}" NODE_EXTRA_CA_CERTS: "/etc/local-ca/ca.crt" TELEMETRY: "false" AUTH_PROVIDERS: "VYNIL" AUTH_VYNIL_DRIVER: "openid" AUTH_VYNIL_ALLOW_PUBLIC_REGISTRATION: "true" - AUTH_VYNIL_ISSUER_URL: "https://${data.kubernetes_ingress_v1.authentik.spec[0].rule[0].host}/application/o/directus-${replace(var.sub_domain, ".", "-")}-${var.instance}/.well-known/openid-configuration" + AUTH_VYNIL_ISSUER_URL: "https://${data.kubernetes_ingress_v1.authentik.spec[0].rule[0].host}/application/o/directus-${replace(var.sub-domain, ".", "-")}-${var.instance}/.well-known/openid-configuration" AUTH_VYNIL_IDENTIFIER_KEY: "email" PUBLIC_URL: "https://${local.directus-dns_name}" EOF @@ -133,12 +133,12 @@ resource "kubectl_manifest" "directus_deploy" { valueFrom: secretKeyRef: key: "client-id" - name: "directus-${replace(var.sub_domain, ".", "-")}-${var.instance}-id" + name: "directus-${replace(var.sub-domain, ".", "-")}-${var.instance}-id" - name: AUTH_VYNIL_CLIENT_SECRET valueFrom: secretKeyRef: key: "client-secret" - name: "directus-${replace(var.sub_domain, ".", "-")}-${var.instance}-secret" + name: "directus-${replace(var.sub-domain, ".", "-")}-${var.instance}-secret" - name: DB_USER valueFrom: secretKeyRef: @@ -216,7 +216,7 @@ module "directus-ingress" { instance = var.instance namespace = var.namespace issuer = var.issuer - ingress_class = var.ingress_class + ingress-class = var.ingress-class labels = local.directus-labels dns_names = [local.directus-dns_name] create-redirect = true @@ -230,9 +230,9 @@ module "directus-ingress" { module "directus-application" { count = var.extentions.directus.enable ? 1 : 0 source = "/dist/modules/application" - component = "directus-${replace(var.sub_domain, ".", "-")}" + component = "directus-${replace(var.sub-domain, ".", "-")}" instance = var.instance - app_group = var.app_group + app-group = var.app-group dns_name = local.directus-dns_name icon = local.directus-icon protocol_provider = module.directus-oauth2[0].provider-id @@ -244,7 +244,7 @@ module "directus-application" { module "directus-oauth2" { count = var.extentions.directus.enable ? 1 : 0 source = "/dist/modules/oauth2" - component = "directus-${replace(var.sub_domain, ".", "-")}" + component = "directus-${replace(var.sub-domain, ".", "-")}" instance = var.instance namespace = var.namespace labels = local.directus-labels diff --git a/share/dataset-pg/index.yaml b/share/dataset-pg/index.yaml index 2b962bb..c3e508c 100644 --- a/share/dataset-pg/index.yaml +++ b/share/dataset-pg/index.yaml @@ -6,7 +6,17 @@ metadata: name: dataset-pg description: null options: - sub_domain: + app-group: + default: api + examples: + - api + type: string + domain: + default: your-company + examples: + - your-company + type: string + sub-domain: default: dataset-pg examples: - dataset-pg @@ -28,30 +38,10 @@ options: type: string type: object type: object - postgres: - default: - replicas: 1 + issuer: + default: letsencrypt-prod examples: - - replicas: 1 - properties: - replicas: - default: 1 - type: integer - type: object - domain: - default: your-company - examples: - - your-company - type: string - app_group: - default: api - examples: - - api - type: string - ingress_class: - default: traefik - examples: - - traefik + - letsencrypt-prod type: string extentions: default: @@ -234,15 +224,6 @@ options: type: object type: object type: object - databases: - default: [] - items: - properties: - name: - default: db - type: string - type: object - type: array backups: default: enable: false @@ -297,16 +278,29 @@ options: default: backup-settings type: string type: object - domain_name: - default: your_company.com + ingress-class: + default: traefik examples: - - your_company.com - type: string - issuer: - default: letsencrypt-prod - examples: - - letsencrypt-prod + - traefik type: string + databases: + default: [] + items: + properties: + name: + default: db + type: string + type: object + type: array + roles: + default: [] + items: + properties: + name: + default: alt-account + type: string + type: object + type: array images: default: postgresql: @@ -336,15 +330,21 @@ options: type: number type: object type: object - roles: - default: [] - items: - properties: - name: - default: alt-account - type: string - type: object - type: array + postgres: + default: + replicas: 1 + examples: + - replicas: 1 + properties: + replicas: + default: 1 + type: integer + type: object + domain-name: + default: your_company.com + examples: + - your_company.com + type: string dependencies: - dist: null category: dbo diff --git a/share/dataset-pg/postgresql.tf b/share/dataset-pg/postgresql.tf index 609cdec..5eb2c43 100644 --- a/share/dataset-pg/postgresql.tf +++ b/share/dataset-pg/postgresql.tf @@ -1,5 +1,5 @@ locals { - dns_name = "${var.instance}.${var.sub_domain}.${var.domain_name}" + dns_name = "${var.instance}.${var.sub-domain}.${var.domain-name}" pg-labels = merge(local.common-labels, { "app.kubernetes.io/component" = "postgresql" }) diff --git a/share/dataset-pg/postgrest.tf b/share/dataset-pg/postgrest.tf index b877998..ad5df86 100644 --- a/share/dataset-pg/postgrest.tf +++ b/share/dataset-pg/postgrest.tf @@ -152,7 +152,7 @@ module "postgrest-ingress" { instance = var.instance namespace = var.namespace issuer = var.issuer - ingress_class = var.ingress_class + ingress-class = var.ingress-class labels = local.prest-labels dns_names = [local.prest-dns_name] create-redirect = true @@ -184,7 +184,7 @@ module "swagger-ingress" { instance = var.instance namespace = var.namespace issuer = var.issuer - ingress_class = var.ingress_class + ingress-class = var.ingress-class labels = local.prest-labels dns_names = [local.prest-dns_name] middlewares = [] diff --git a/share/dataset-rabbit/index.yaml b/share/dataset-rabbit/index.yaml index a8ea6cc..43bb178 100644 --- a/share/dataset-rabbit/index.yaml +++ b/share/dataset-rabbit/index.yaml @@ -6,45 +6,16 @@ metadata: name: dataset-rabbit description: null options: - images: - default: - rabbit: - pullPolicy: IfNotPresent - registry: docker.io - repository: rabbitmq - tag: 3.10.2-management + storage: + default: 8Gi examples: - - rabbit: - pullPolicy: IfNotPresent - registry: docker.io - repository: rabbitmq - tag: 3.10.2-management - properties: - rabbit: - default: - pullPolicy: IfNotPresent - registry: docker.io - repository: rabbitmq - tag: 3.10.2-management - properties: - pullPolicy: - default: IfNotPresent - enum: - - Always - - Never - - IfNotPresent - type: string - registry: - default: docker.io - type: string - repository: - default: rabbitmq - type: string - tag: - default: 3.10.2-management - type: string - type: object - type: object + - 8Gi + type: string + replicas: + default: 1 + examples: + - 1 + type: integer ressources: default: limits: @@ -86,16 +57,45 @@ options: type: string type: object type: object - storage: - default: 8Gi + images: + default: + rabbit: + pullPolicy: IfNotPresent + registry: docker.io + repository: rabbitmq + tag: 3.10.2-management examples: - - 8Gi - type: string - replicas: - default: 1 - examples: - - 1 - type: integer + - rabbit: + pullPolicy: IfNotPresent + registry: docker.io + repository: rabbitmq + tag: 3.10.2-management + properties: + rabbit: + default: + pullPolicy: IfNotPresent + registry: docker.io + repository: rabbitmq + tag: 3.10.2-management + properties: + pullPolicy: + default: IfNotPresent + enum: + - Always + - Never + - IfNotPresent + type: string + registry: + default: docker.io + type: string + repository: + default: rabbitmq + type: string + tag: + default: 3.10.2-management + type: string + type: object + type: object dependencies: - dist: null category: dbo @@ -107,4 +107,5 @@ providers: postgresql: null restapi: null http: null + gitea: null tfaddtype: null diff --git a/share/dataset-redis/index.yaml b/share/dataset-redis/index.yaml index 3baa6bb..f968004 100644 --- a/share/dataset-redis/index.yaml +++ b/share/dataset-redis/index.yaml @@ -6,49 +6,38 @@ metadata: name: dataset-redis description: null options: - storage: - default: 8Gi + exporter: + default: + enable: true examples: - - 8Gi - type: string + - enable: true + properties: + enable: + default: true + type: boolean + type: object images: default: - exporter: - registry: quay.io - repository: opstree/redis-exporter - tag: v1.44.0 redis: pullPolicy: IfNotPresent registry: quay.io repository: opstree/redis tag: v7.0.12 + redis_exporter: + registry: quay.io + repository: opstree/redis-exporter + tag: v1.44.0 examples: - - exporter: - registry: quay.io - repository: opstree/redis-exporter - tag: v1.44.0 - redis: + - redis: pullPolicy: IfNotPresent registry: quay.io repository: opstree/redis tag: v7.0.12 + redis_exporter: + registry: quay.io + repository: opstree/redis-exporter + tag: v1.44.0 properties: - exporter: - default: - registry: quay.io - repository: opstree/redis-exporter - tag: v1.44.0 - properties: - registry: - default: quay.io - type: string - repository: - default: opstree/redis-exporter - type: string - tag: - default: v1.44.0 - type: string - type: object redis: default: pullPolicy: IfNotPresent @@ -73,17 +62,28 @@ options: default: v7.0.12 type: string type: object + redis_exporter: + default: + registry: quay.io + repository: opstree/redis-exporter + tag: v1.44.0 + properties: + registry: + default: quay.io + type: string + repository: + default: opstree/redis-exporter + type: string + tag: + default: v1.44.0 + type: string + type: object type: object - exporter: - default: - enable: true + storage: + default: 8Gi examples: - - enable: true - properties: - enable: - default: true - type: boolean - type: object + - 8Gi + type: string dependencies: - dist: null category: dbo diff --git a/share/dataset-redis/redis.tf b/share/dataset-redis/redis.tf index 6ef2a62..f996438 100644 --- a/share/dataset-redis/redis.tf +++ b/share/dataset-redis/redis.tf @@ -24,7 +24,7 @@ resource "kubectl_manifest" "prj_redis" { storage: "${var.storage}" redisExporter: enabled: ${var.exporter.enable} - image: "${var.images.exporter.registry}/${var.images.exporter.repository}:${var.images.exporter.tag}" + image: "${var.images.redis_exporter.registry}/${var.images.redis_exporter.repository}:${var.images.redis_exporter.tag}" securityContext: runAsUser: 1000 fsGroup: 1000 diff --git a/share/division/index.yaml b/share/division/index.yaml index 9616b8f..8da82b4 100644 --- a/share/division/index.yaml +++ b/share/division/index.yaml @@ -6,6 +6,11 @@ metadata: name: division description: null options: + apps: + default: [] + items: + type: string + type: array teams: default: [] items: @@ -20,11 +25,6 @@ options: type: string type: object type: array - apps: - default: [] - items: - type: string - type: array parent: default: employes enum: diff --git a/share/dns/config.tf b/share/dns/config.tf index 24c626f..010c71c 100644 --- a/share/dns/config.tf +++ b/share/dns/config.tf @@ -23,13 +23,13 @@ locals { } EOF soa-ns = <<-EOF - @ IN SOA ${var.sub_domain}.${var.domain_name}. ${var.domain_name}. ( + @ IN SOA ${var.sub-domain}.${var.domain-name}. ${var.domain-name}. ( ${formatdate("YYYYMMDDhh",timestamp())} ; Serial 4H ; Refresh 1H ; Retry 7D ; Expire 4H ) ; Negative Cache TTL - @ IN NS ${var.sub_domain}.${var.domain_name}. + @ IN NS ${var.sub-domain}.${var.domain-name}. EOF files = merge({ "Corefile" = join("\n", concat([local.begin-core],[for z in var.zones: format("file /etc/coredns/%s.db %s", z.name,z.name)],[local.end-core])) diff --git a/share/dns/index.yaml b/share/dns/index.yaml index fab55a4..5c4b683 100644 --- a/share/dns/index.yaml +++ b/share/dns/index.yaml @@ -6,15 +6,25 @@ metadata: name: dns description: null options: - domain_name: + domain: + default: your-company + examples: + - your-company + type: string + sub-domain: + default: dns + examples: + - dns + type: string + domain-name: default: your_company.com examples: - your_company.com type: string - sub_domain: - default: dns + forward: + default: 192.168.1.254 examples: - - dns + - 192.168.1.254 type: string zones: default: [] @@ -93,16 +103,6 @@ options: default: 1.11.1 type: string type: object - domain: - default: your-company - examples: - - your-company - type: string - forward: - default: 192.168.1.254 - examples: - - 192.168.1.254 - type: string dependencies: [] providers: kubernetes: true diff --git a/share/organisation/gitea-user.tf b/share/organisation/gitea-user.tf index ece8f87..02fc2f1 100644 --- a/share/organisation/gitea-user.tf +++ b/share/organisation/gitea-user.tf @@ -83,7 +83,7 @@ resource "gitea_user" "user-ci" { username = "${var.instance}-ci" login_name = "${var.instance}-ci" password = random_password.password.result - email = "${var.instance}-ci@${var.domain_name}" + email = "${var.instance}-ci@${var.domain-name}" must_change_password = true } diff --git a/share/organisation/index.yaml b/share/organisation/index.yaml index 149b46c..b654cda 100644 --- a/share/organisation/index.yaml +++ b/share/organisation/index.yaml @@ -6,18 +6,31 @@ metadata: name: organisation description: null options: - datasets: - default: [] - items: - properties: - engine: - default: pg - type: string - name: - default: '' - type: string - type: object - type: array + app-group: + default: dev + examples: + - dev + type: string + domain: + default: your-company + examples: + - your-company + type: string + ingress-class: + default: traefik + examples: + - traefik + type: string + gitea-ssh-domain: + default: '' + examples: + - '' + type: string + issuer: + default: letsencrypt-prod + examples: + - letsencrypt-prod + type: string stages: default: [] items: @@ -27,36 +40,6 @@ options: type: string type: object type: array - ingress_class: - default: traefik - examples: - - traefik - type: string - haveGitea: - default: false - examples: - - false - type: boolean - distributions: - default: - core: core - domain: domain - examples: - - core: core - domain: domain - properties: - core: - default: core - type: string - domain: - default: domain - type: string - type: object - issuer: - default: letsencrypt-prod - examples: - - letsencrypt-prod - type: string backups: default: enable: false @@ -87,26 +70,43 @@ options: default: backup-settings type: string type: object - app_group: - default: dev + haveGitea: + default: false examples: - - dev - type: string - domain_name: + - false + type: boolean + datasets: + default: [] + items: + properties: + engine: + default: pg + type: string + name: + default: '' + type: string + type: object + type: array + domain-name: default: your_company.com examples: - your_company.com type: string - domain: - default: your-company + distributions: + default: + core: core + domain: domain examples: - - your-company - type: string - gitea-ssh-domain: - default: '' - examples: - - '' - type: string + - core: core + domain: domain + properties: + core: + default: core + type: string + domain: + default: domain + type: string + type: object dependencies: [] providers: kubernetes: true diff --git a/share/organisation/stages.tf b/share/organisation/stages.tf index 0352b34..99f4885 100644 --- a/share/organisation/stages.tf +++ b/share/organisation/stages.tf @@ -1,17 +1,17 @@ locals { annotations = { "vynil.solidite.fr/name" = "${var.component}" - "vynil.solidite.fr/domain" = var.domain_name + "vynil.solidite.fr/domain" = var.domain-name "vynil.solidite.fr/issuer" = var.issuer - "vynil.solidite.fr/ingress" = var.ingress_class + "vynil.solidite.fr/ingress" = var.ingress-class } global = { "domain" = var.namespace - "domain_name" = var.domain_name + "domain-name" = var.domain-name "issuer" = var.issuer - "ingress_class" = var.ingress_class + "ingress-class" = var.ingress-class "backups" = var.backups - "app_group" = var.app_group + "app-group" = var.app-group } sorted-stage-name = reverse(distinct(sort([for s in var.stages: s.name]))) sorted-dataset-name = reverse(distinct(sort([for d in var.datasets: d.name]))) @@ -26,7 +26,7 @@ locals { for name in local.sorted-dataset-name: [ for ds in var.datasets: merge(ds,{ - "sub_domain" = "${stage}.${var.instance}" + "sub-domain" = "${stage}.${var.instance}" "namespace" = "${var.domain}-${var.instance}-${stage}" }) if ds.name == name ] diff --git a/share/wildduck/application.tf b/share/wildduck/application.tf index e7f5ca8..c0960a3 100644 --- a/share/wildduck/application.tf +++ b/share/wildduck/application.tf @@ -14,10 +14,10 @@ resource "authentik_application" "prj_app" { name = "${var.instance}" slug = "${var.component}-${var.instance}" #protocol_provider = authentik_provider_oauth2.oauth2.id - group = var.app_group + group = var.app-group backchannel_providers = [authentik_provider_scim.scim.id] - meta_launch_url = format("https://%s.%s", var.sub_domain, var.domain_name) - meta_icon = format("https://%s.%s/%s", var.sub_domain, var.domain_name, "favicon-32x32.png") + meta_launch_url = format("https://%s.%s", var.sub-domain, var.domain-name) + meta_icon = format("https://%s.%s/%s", var.sub-domain, var.domain-name, "favicon-32x32.png") } resource "authentik_policy_expression" "policy" { diff --git a/share/wildduck/haraka.tf b/share/wildduck/haraka.tf index 6748e2e..37d1962 100644 --- a/share/wildduck/haraka.tf +++ b/share/wildduck/haraka.tf @@ -96,11 +96,11 @@ resource "kubernetes_config_map_v1" "haraka_config" { } data = yamldecode(<<-EOF me: |- - ${var.sub_domain}.${var.domain_name} + ${var.sub-domain}.${var.domain-name} host_list: |- # add hosts in here we want to accept mail for - ${var.sub_domain}.${var.domain_name} - ${var.domain_name} + ${var.sub-domain}.${var.domain-name} + ${var.domain-name} ${join("\n ",var.additional-domains)} rspamd.ini: |- host = ${var.instance}-rspamd.${var.namespace}.svc.cluster.local @@ -188,7 +188,7 @@ resource "kubernetes_config_map_v1" "haraka_config" { dkim_sign.ini: |- disabled = true selector = mail - domain = ${var.domain_name} + domain = ${var.domain-name} headers_to_sign = From, Sender, Reply-To, Subject, Date, Message-ID, To, Cc, MIME-Version wildduck.yaml: |- redis: diff --git a/share/wildduck/index.yaml b/share/wildduck/index.yaml index c696b6f..6453179 100644 --- a/share/wildduck/index.yaml +++ b/share/wildduck/index.yaml @@ -6,11 +6,83 @@ metadata: name: wildduck description: null options: - app_group: + domain: + default: your-company + examples: + - your-company + type: string + redis: + default: + exporter: + enabled: true + examples: + - exporter: + enabled: true + properties: + exporter: + default: + enabled: true + properties: + enabled: + default: true + type: boolean + type: object + type: object + domain-name: + default: your_company.com + examples: + - your_company.com + type: string + app-group: default: '' examples: - '' type: string + issuer: + default: letsencrypt-prod + examples: + - letsencrypt-prod + type: string + sub-domain: + default: mail + examples: + - mail + type: string + backups: + default: + enable: false + endpoint: '' + key-id-key: s3-id + secret-key: s3-secret + secret-name: backup-settings + examples: + - enable: false + endpoint: '' + key-id-key: s3-id + secret-key: s3-secret + secret-name: backup-settings + properties: + enable: + default: false + type: boolean + endpoint: + default: '' + type: string + key-id-key: + default: s3-id + type: string + secret-key: + default: s3-secret + type: string + secret-name: + default: backup-settings + type: string + type: object + additional-domains: + default: [] + items: + type: string + type: array images: default: haraka: @@ -288,38 +360,11 @@ options: type: string type: object type: object - sub_domain: - default: mail + ingress-class: + default: traefik examples: - - mail + - traefik type: string - additional-domains: - default: [] - items: - type: string - type: array - domain: - default: your-company - examples: - - your-company - type: string - redis: - default: - exporter: - enabled: true - examples: - - exporter: - enabled: true - properties: - exporter: - default: - enabled: true - properties: - enabled: - default: true - type: boolean - type: object - type: object storage: default: redis: @@ -337,51 +382,6 @@ options: type: string type: object type: object - backups: - default: - enable: false - endpoint: '' - key-id-key: s3-id - secret-key: s3-secret - secret-name: backup-settings - examples: - - enable: false - endpoint: '' - key-id-key: s3-id - secret-key: s3-secret - secret-name: backup-settings - properties: - enable: - default: false - type: boolean - endpoint: - default: '' - type: string - key-id-key: - default: s3-id - type: string - secret-key: - default: s3-secret - type: string - secret-name: - default: backup-settings - type: string - type: object - ingress_class: - default: traefik - examples: - - traefik - type: string - domain_name: - default: your_company.com - examples: - - your_company.com - type: string - issuer: - default: letsencrypt-prod - examples: - - letsencrypt-prod - type: string dependencies: - dist: null category: dbo diff --git a/share/wildduck/ingress.tf b/share/wildduck/ingress.tf index 16cc818..3b28f80 100644 --- a/share/wildduck/ingress.tf +++ b/share/wildduck/ingress.tf @@ -1,6 +1,6 @@ locals { - dns_names = ["${var.sub_domain}.${var.domain_name}"] - cert-names = concat(local.dns_names, ["${var.domain_name}"]) + dns_names = ["${var.sub-domain}.${var.domain-name}"] + cert-names = concat(local.dns_names, ["${var.domain-name}"]) middlewares = ["${var.instance}-https"] service = { "name" = "${var.instance}-webmail" @@ -67,7 +67,7 @@ resource "kubectl_manifest" "prj_ingress" { annotations: "traefik.ingress.kubernetes.io/router.middlewares": "${join(",", [for m in local.middlewares : format("%s-%s@kubernetescrd", var.namespace, m)])}" spec: - ingressClassName: "${var.ingress_class}" + ingressClassName: "${var.ingress-class}" rules: ${jsonencode(local.rules)} tls: - hosts: ${jsonencode(local.dns_names)} diff --git a/share/wildduck/scimgateway.tf b/share/wildduck/scimgateway.tf index b061409..4374d18 100644 --- a/share/wildduck/scimgateway.tf +++ b/share/wildduck/scimgateway.tf @@ -55,7 +55,7 @@ resource "kubectl_manifest" "scimgateway_deploy" { - name: "PORT" value: "8880" - name: "WILDDUCK_DOMAIN" - value: "${var.domain_name}" + value: "${var.domain-name}" - name: "WILDDUCK_API" value: "http://${var.instance}-wildduck-api.${var.namespace}.svc" - name: SEED diff --git a/share/wildduck/webmail.tf b/share/wildduck/webmail.tf index 82d52d2..1670af7 100644 --- a/share/wildduck/webmail.tf +++ b/share/wildduck/webmail.tf @@ -92,7 +92,7 @@ resource "kubernetes_config_map_v1" "webmail_config" { [service] # email domain for new users - domain="${var.domain_name}" + domain="${var.domain-name}" # default quotas for new users quota=1024 recipients=2000 @@ -102,7 +102,7 @@ resource "kubernetes_config_map_v1" "webmail_config" { allowJoin=false enableSpecial=false # if true the allow creating addresses with special usernames # allowed domains for new addresses - domains=["${var.domain_name}"] + domains=["${var.domain-name}"] generalNotification="" # static notification to show on top of the page @@ -145,7 +145,7 @@ resource "kubernetes_config_map_v1" "webmail_config" { # set to false if not using HTTPS enabled=true # must be https url or use default - appId="https://${var.domain_name}" + appId="https://${var.domain-name}" [log] level="silly" @@ -154,15 +154,15 @@ resource "kubernetes_config_map_v1" "webmail_config" { [setup] # these values are shown in the configuration help page [setup.imap] - hostname="${var.sub_domain}.${var.domain_name}" + hostname="${var.sub-domain}.${var.domain-name}" secure=true port=143 [setup.pop3] - hostname="${var.sub_domain}.${var.domain_name}" + hostname="${var.sub-domain}.${var.domain-name}" secure=true port=110 [setup.smtp] - hostname="${var.sub_domain}.${var.domain_name}" + hostname="${var.sub-domain}.${var.domain-name}" secure=true port=25 EOF diff --git a/share/wildduck/wildduck.tf b/share/wildduck/wildduck.tf index 3d1b612..084ebb1 100644 --- a/share/wildduck/wildduck.tf +++ b/share/wildduck/wildduck.tf @@ -173,7 +173,7 @@ resource "kubernetes_config_map_v1" "wildduck_config" { enabled=true [smtp.setup] # Public configuration for SMTP MDA, needed for mobileconfig files - hostname="${var.sub_domain}.${var.domain_name}" + hostname="${var.sub-domain}.${var.domain-name}" secure=true port=465 [webhooks] @@ -312,7 +312,7 @@ resource "kubernetes_config_map_v1" "wildduck_config" { autoExpunge=true [setup] # Public configuration for IMAP - hostname="${var.sub_domain}.${var.domain_name}" + hostname="${var.sub-domain}.${var.domain-name}" secure=true # port defaults to imap.port port=9930 @@ -360,7 +360,7 @@ resource "kubernetes_config_map_v1" "wildduck_config" { cert="/var/opt/certs/tls.crt" [setup] # Public configuration for POP3 - hostname="${var.sub_domain}.${var.domain_name}" + hostname="${var.sub-domain}.${var.domain-name}" secure=true # port defaults to pop3.port port=995 diff --git a/share/wildduck/zonemta.tf b/share/wildduck/zonemta.tf index 2acf8ea..c003312 100644 --- a/share/wildduck/zonemta.tf +++ b/share/wildduck/zonemta.tf @@ -128,7 +128,7 @@ resource "kubernetes_config_map_v1" "zonemta_config" { # Server process must be able to locally bind to these addresses [[default]] address="0.0.0.0" - name="${var.sub_domain}.${var.domain_name}" + name="${var.sub-domain}.${var.domain-name}" # #[[default]] #address="1.2.3.5" @@ -145,7 +145,7 @@ resource "kubernetes_config_map_v1" "zonemta_config" { interfaces=["feeder"] # optional hostname to be used in headers # defaults to os.hostname() - hostname="${var.sub_domain}.${var.domain_name}" + hostname="${var.sub-domain}.${var.domain-name}" # How long to keep auth records in log authlogExpireDays=30 # default smtp recipients for 24h (can be overriden per user) @@ -161,7 +161,7 @@ resource "kubernetes_config_map_v1" "zonemta_config" { # SRS secret value. Must be the same as in the MX side secret="${local.secrets.srs}" # SRS domain, must resolve back to MX - rewriteDomain="${var.domain_name}" + rewriteDomain="${var.domain-name}" # DKIM Settings # ------------- ["modules/zonemta-wildduck".dkim]