From d571996c536ffe2541b5c08f47db600a41e6516e Mon Sep 17 00:00:00 2001 From: Garrett Delfosse Date: Thu, 23 Jan 2025 13:32:29 -0500 Subject: [PATCH] feat: add postgres exporter (#16244) Part of https://github.com/coder/internal/issues/150 - Adds postgres exporter that gets picked up by the prometheus remote writer --- scaletest/terraform/action/prometheus.tf | 63 +++++++++++++++++-- .../action/prometheus_helm_values.tftpl | 1 + 2 files changed, 59 insertions(+), 5 deletions(-) diff --git a/scaletest/terraform/action/prometheus.tf b/scaletest/terraform/action/prometheus.tf index de22a5c949..63b22df091 100644 --- a/scaletest/terraform/action/prometheus.tf +++ b/scaletest/terraform/action/prometheus.tf @@ -1,9 +1,12 @@ locals { - prometheus_helm_repo = "https://prometheus-community.github.io/helm-charts" - prometheus_helm_chart = "kube-prometheus-stack" - prometheus_release_name = "prometheus" - prometheus_remote_write_send_interval = "15s" - prometheus_remote_write_metrics_regex = ".*" + prometheus_helm_repo = "https://prometheus-community.github.io/helm-charts" + prometheus_helm_chart = "kube-prometheus-stack" + prometheus_release_name = "prometheus" + prometheus_remote_write_send_interval = "15s" + prometheus_remote_write_metrics_regex = ".*" + prometheus_postgres_exporter_helm_repo = "https://prometheus-community.github.io/helm-charts" + prometheus_postgres_exporter_helm_chart = "prometheus-postgres-exporter" + prometheus_postgres_exporter_release_name = "prometheus-postgres-exporter" } resource "helm_release" "prometheus_chart_primary" { @@ -43,6 +46,56 @@ YAML depends_on = [helm_release.prometheus_chart_primary] } +resource "kubernetes_secret" "prometheus_postgres_password" { + provider = kubernetes.primary + + type = "kubernetes.io/basic-auth" + metadata { + name = "prometheus-postgres" + namespace = kubernetes_namespace.coder_primary.metadata.0.name + } + data = { + username = "${var.name}-prometheus" + password = random_password.prometheus_postgres_password.result + } + lifecycle { + ignore_changes = [timeouts, wait_for_service_account_token] + } +} + +resource "helm_release" "prometheus_postgres_exporter" { + provider = helm.primary + + repository = local.prometheus_postgres_exporter_helm_repo + chart = local.prometheus_postgres_exporter_helm_chart + name = local.prometheus_postgres_exporter_release_name + namespace = kubernetes_namespace.coder_primary.metadata.0.name + values = [<