25 lines
1.1 KiB
Bash
Executable File
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"
|