@@ -277,19 +277,23 @@ test-experimental-e2e: run image-registry prometheus experimental-e2e e2e e2e-me
277277.PHONY : prometheus
278278prometheus : PROMETHEUS_NAMESPACE := olmv1-system
279279prometheus : PROMETHEUS_VERSION := v0.83.0
280+ prometheus : TMPDIR := $(shell mktemp -d)
280281prometheus : # EXHELP Deploy Prometheus into specified namespace
281- ./hack/test/setup-monitoring.sh $(PROMETHEUS_NAMESPACE ) $(PROMETHEUS_VERSION ) $(KUSTOMIZE )
282-
283- # The metrics.out file contains raw json data of the metrics collected during a test run.
284- # In an upcoming PR, this query will be replaced with one that checks for alerts from
285- # prometheus. Prometheus will gather metrics we currently query for over the test run,
286- # and provide alerts from the metrics based on the rules that we set.
282+ trap ' echo "Cleaning up $(TMPDIR)"; rm -rf "$(TMPDIR)"' EXIT; \
283+ curl -s " https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/refs/tags/$( PROMETHEUS_VERSION) /kustomization.yaml" > " $( TMPDIR) /kustomization.yaml" ; \
284+ curl -s " https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/refs/tags/$( PROMETHEUS_VERSION) /bundle.yaml" > " $( TMPDIR) /bundle.yaml" ; \
285+ (cd $( TMPDIR) && $( KUSTOMIZE) edit set namespace $( PROMETHEUS_NAMESPACE) ) && kubectl create -k " $( TMPDIR) "
286+ kubectl wait --for=condition=Ready pods -n $(PROMETHEUS_NAMESPACE ) -l app.kubernetes.io/name=prometheus-operator
287+ $(KUSTOMIZE ) build config/overlays/prometheus | sed " s/cert-git-version/cert-$( VERSION) /g" | kubectl apply -f -
288+ kubectl wait --for=condition=Ready pods -n $(PROMETHEUS_NAMESPACE ) -l app.kubernetes.io/name=prometheus-operator --timeout=60s
289+ kubectl wait --for=create pods -n $(PROMETHEUS_NAMESPACE ) prometheus-prometheus-0 --timeout=60s
290+ kubectl wait --for=condition=Ready pods -n $(PROMETHEUS_NAMESPACE ) prometheus-prometheus-0 --timeout=120s
291+
292+ # The output alerts.out file contains any alerts, pending or firing, collected during a test run in json format.
287293.PHONY : e2e-metrics
288- e2e-metrics : # EXHELP Request metrics from prometheus; place in ARTIFACT_PATH if set
289- curl -X POST \
290- -H " Content-Type: application/x-www-form-urlencoded" \
291- --data ' query={pod=~"operator-controller-controller-manager-.*|catalogd-controller-manager-.*"}' \
292- http://localhost:30900/api/v1/query > $(if $(ARTIFACT_PATH ) ,$(ARTIFACT_PATH ) ,.) /metrics.out
294+ e2e-metrics : ALERTS_FILE_PATH := $(if $(ARTIFACT_PATH ) ,$(ARTIFACT_PATH ) ,.) /alerts.out
295+ e2e-metrics : # EXHELP Request metrics from prometheus; select only actively firing alerts; place in ARTIFACT_PATH if set
296+ curl -X GET http://localhost:30900/api/v1/alerts | jq ' if (.data.alerts | length) > 0 then .data.alerts.[] else empty end' > $(ALERTS_FILE_PATH )
293297
294298.PHONY : extension-developer-e2e
295299extension-developer-e2e : KIND_CLUSTER_NAME := operator-controller-ext-dev-e2e
0 commit comments