From ed3be1a837d59a327c9799c345ac00430b77b8e2 Mon Sep 17 00:00:00 2001 From: PandaFood Date: Fri, 8 Nov 2024 14:17:50 +0100 Subject: [PATCH 1/2] Update monitoring guide to use latest versions of the helm charts and add neccesary config for the update --- .../loki-monitoring-config.yaml | 58 +++++++++++++++++++ guides/monitoring-setup/monitoring.md | 10 +++- .../prometheus-operator-config.yaml | 4 ++ 3 files changed, 69 insertions(+), 3 deletions(-) create mode 100644 guides/monitoring-setup/loki-monitoring-config.yaml diff --git a/guides/monitoring-setup/loki-monitoring-config.yaml b/guides/monitoring-setup/loki-monitoring-config.yaml new file mode 100644 index 000000000..901f11f28 --- /dev/null +++ b/guides/monitoring-setup/loki-monitoring-config.yaml @@ -0,0 +1,58 @@ +loki: + storage: + type: filesystem + storage_config: + filesystem: + directory: /tmp/loki/ + commonConfig: + replication_factor: 1 + schemaConfig: + configs: + - from: "2024-04-01" + store: tsdb + object_store: filesystem + schema: v13 + index: + prefix: loki_index_ + period: 24h + ruler: + enable_api: true + +chunksCache: + enabled: false + +monitoring: + serviceMonitor: + enabled: true + +deploymentMode: SingleBinary + +singleBinary: + replicas: 1 + +# Zero out replica counts of other deployment modes +backend: + replicas: 0 +read: + replicas: 0 +write: + replicas: 0 + +ingester: + replicas: 0 +querier: + replicas: 0 +queryFrontend: + replicas: 0 +queryScheduler: + replicas: 0 +distributor: + replicas: 0 +compactor: + replicas: 0 +indexGateway: + replicas: 0 +bloomCompactor: + replicas: 0 +bloomGateway: + replicas: 0 \ No newline at end of file diff --git a/guides/monitoring-setup/monitoring.md b/guides/monitoring-setup/monitoring.md index 76841e2ae..295d5347f 100644 --- a/guides/monitoring-setup/monitoring.md +++ b/guides/monitoring-setup/monitoring.md @@ -16,13 +16,17 @@ echo "Installing prometheus-operator" wget https://raw.githubusercontent.com/juice-shop/multi-juicer/main/guides/monitoring-setup/prometheus-operator-config.yaml echo "Installing Prometheus Operator & Grafana" -helm --namespace monitoring upgrade --install monitoring prometheus-community/kube-prometheus-stack --version 13.3.0 --values prometheus-operator-config.yaml +helm --namespace monitoring upgrade --install monitoring prometheus-community/kube-prometheus-stack --version 65.5.1 --values prometheus-operator-config.yaml + +echo "Getting loki configuration" +# The default loki config is set to monolithic single replica. If more redundancy is needed you can reconfigure it to your liking. https://grafana.com/docs/loki/latest/setup/install/helm/concepts/ +wget https://raw.githubusercontent.com/juice-shop/multi-juicer/main/guides/monitoring-setup/loki-monitoring-config.yaml echo "Installing loki" -helm --namespace monitoring upgrade --install loki grafana/loki --version 2.3.0 --set="serviceMonitor.enabled=true" +helm --namespace monitoring upgrade --install loki grafana/loki --version 6.18.0 --values loki-monitoring-config.yaml echo "Installing loki/promtail" -helm --namespace monitoring upgrade --install promtail grafana/promtail --version 3.0.4 --set "config.lokiAddress=http://loki:3100/loki/api/v1/push" --set="serviceMonitor.enabled=true" +helm --namespace monitoring upgrade --install promtail grafana/promtail --version 6.16.6 --set="serviceMonitor.enabled=true" --set="config.clients[0].url=http://loki-gateway/loki/api/v1/push,config.clients[0].tenant_id=multijuicer" --set="config.snippets.extraRelabelConfigs[0].action=labelmap,config.snippets.extraRelabelConfigs[0].regex=__meta_kubernetes_pod_label_(team)" echo "Installing MultiJuicer" helm install multi-juicer oci://ghcr.io/juice-shop/multi-juicer/helm/multi-juicer --set="balancer.metrics.enabled=true" --set="balancer.metrics.dashboards.enabled=true" --set="balancer.metrics.serviceMonitor.enabled=true" diff --git a/guides/monitoring-setup/prometheus-operator-config.yaml b/guides/monitoring-setup/prometheus-operator-config.yaml index b03838cb4..a8189a661 100644 --- a/guides/monitoring-setup/prometheus-operator-config.yaml +++ b/guides/monitoring-setup/prometheus-operator-config.yaml @@ -11,3 +11,7 @@ grafana: type: loki access: proxy url: "http://loki:3100" + jsonData: + httpHeaderName1: 'X-Scope-OrgID' + secureJsonData: + httpHeaderValue1: 'multijuicer' \ No newline at end of file From a41928bd73b70b46f54b8f0e0877212ad9bbdc15 Mon Sep 17 00:00:00 2001 From: PandaFood Date: Fri, 8 Nov 2024 14:17:50 +0100 Subject: [PATCH 2/2] Change label selector in grafana dashboard to reflect change in loki version --- helm/multi-juicer/dashboards/instances.json | 4 ++-- .../tests/__snapshot__/multijuicer_test.yaml.snap | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/helm/multi-juicer/dashboards/instances.json b/helm/multi-juicer/dashboards/instances.json index fcf5f7fd4..9887fc43c 100644 --- a/helm/multi-juicer/dashboards/instances.json +++ b/helm/multi-juicer/dashboards/instances.json @@ -1235,7 +1235,7 @@ "steppedLine": false, "targets": [ { - "expr": "increase(http_requests_count{app.kubernetes.io/name=\"juiceshop\", team=\"$team\"}[1m])", + "expr": "increase(http_requests_count{app=\"juiceshop\", team=\"$team\"}[1m])", "interval": "1m", "legendFormat": "{{status_code}}", "refId": "A" @@ -1921,7 +1921,7 @@ }, "targets": [ { - "expr": "{app.kubernetes.io/name=\"juice-shop\", team=\"$team\"}", + "expr": "{app=\"juice-shop\", team=\"$team\"}", "refId": "A" } ], diff --git a/helm/multi-juicer/tests/__snapshot__/multijuicer_test.yaml.snap b/helm/multi-juicer/tests/__snapshot__/multijuicer_test.yaml.snap index bf45eb1c6..c1ee6826c 100644 --- a/helm/multi-juicer/tests/__snapshot__/multijuicer_test.yaml.snap +++ b/helm/multi-juicer/tests/__snapshot__/multijuicer_test.yaml.snap @@ -2209,7 +2209,7 @@ full values render out correctly: "steppedLine": false, "targets": [ { - "expr": "increase(http_requests_count{app.kubernetes.io/name=\"juiceshop\", team=\"$team\"}[1m])", + "expr": "increase(http_requests_count{app=\"juiceshop\", team=\"$team\"}[1m])", "interval": "1m", "legendFormat": "{{status_code}}", "refId": "A" @@ -2895,7 +2895,7 @@ full values render out correctly: }, "targets": [ { - "expr": "{app.kubernetes.io/name=\"juice-shop\", team=\"$team\"}", + "expr": "{app=\"juice-shop\", team=\"$team\"}", "refId": "A" } ],