Files
glpi-neuroforge-mega/deployments/master/monitoring/validate.sh
T
groot 9a4370e4df
release-tag / release-image (push) Successful in 6m50s
v1.6.0
2026-09-02 10:26:50 +02:00

25 lines
1.1 KiB
Bash
Executable File

#!/usr/bin/env sh
set -eu
cd "$(dirname "$0")"
command -v docker >/dev/null 2>&1 || { echo "FEHLT: docker"; exit 1; }
ENV_FILE=../.env
getenv() { grep -E "^$1=" "$ENV_FILE" | head -1 | cut -d= -f2-; }
CPU_TARGET=$(getenv CPU_SUBAGENT_NODE_EXPORTER_TARGET)
GPU_TARGET=$(getenv GPU_SUBAGENT_NODE_EXPORTER_TARGET)
GPU_DCGM_TARGET=$(getenv GPU_SUBAGENT_DCGM_EXPORTER_TARGET)
METRICS_TOKEN=$(getenv NEUROFORGE_METRICS_TOKEN)
PROM_IMAGE=$(getenv PROMETHEUS_IMAGE)
TMP=$(mktemp -d)
trap 'rm -rf "$TMP"' EXIT
sed -e "s|__CPU_TARGET__|${CPU_TARGET}|g" \
-e "s|__GPU_TARGET__|${GPU_TARGET}|g" \
-e "s|__GPU_DCGM_TARGET__|${GPU_DCGM_TARGET}|g" \
prometheus/prometheus.yml.template > "$TMP/prometheus.yml"
printf '%s' "$METRICS_TOKEN" > "$TMP/neuroforge_metrics.token"
docker run --rm --entrypoint=/bin/promtool \
-v "$TMP/prometheus.yml:/etc/prometheus/prometheus.yml:ro" \
-v "$PWD/prometheus/alerts.yml:/etc/prometheus-alerts/alerts.yml:ro" \
-v "$TMP/neuroforge_metrics.token:/etc/prometheus-secrets/neuroforge_metrics.token:ro" \
"$PROM_IMAGE" check config /etc/prometheus/prometheus.yml
echo "Prometheus promtool validation: OK"