Проект разделен на два репозитория
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
#!/usr/bin/env bash
|
||||
set -Eeuo pipefail
|
||||
|
||||
PRIVATE_IP="${PRIVATE_IP:-192.168.0.5}"
|
||||
ROOT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
COMPOSE="${ROOT_DIR}/pours/deployment/compose.yaml"
|
||||
errors=0
|
||||
|
||||
wait_for() {
|
||||
local label="$1"
|
||||
local timeout_seconds="$2"
|
||||
shift
|
||||
shift
|
||||
local deadline=$((SECONDS + timeout_seconds))
|
||||
printf '%-34s' "$label"
|
||||
until "$@" >/dev/null 2>&1; do
|
||||
if ((SECONDS >= deadline)); then
|
||||
echo "FAIL"
|
||||
errors=$((errors + 1))
|
||||
return 0
|
||||
fi
|
||||
sleep 5
|
||||
done
|
||||
echo "OK"
|
||||
}
|
||||
|
||||
container_healthy() {
|
||||
[[ "$(docker inspect --format '{{if .State.Health}}{{.State.Health.Status}}{{else}}{{.State.Status}}{{end}}' "$1" 2>/dev/null)" == healthy ]]
|
||||
}
|
||||
|
||||
one_shot_ok() {
|
||||
local state
|
||||
state="$(docker inspect --format '{{.State.Status}} {{.State.ExitCode}}' "$1" 2>/dev/null)" || return 1
|
||||
[[ "$state" == "running 0" || "$state" == "exited 0" ]]
|
||||
}
|
||||
|
||||
[[ -f "$COMPOSE" ]] || { echo "Не найден $COMPOSE" >&2; exit 1; }
|
||||
echo "=== SigNoz: состояние ==="
|
||||
docker compose -f "$COMPOSE" ps
|
||||
echo
|
||||
|
||||
wait_for "PostgreSQL healthy" 300 container_healthy \
|
||||
signoz-metastore-postgres-0
|
||||
wait_for "ClickHouse Keeper healthy" 300 container_healthy \
|
||||
signoz-telemetrykeeper-clickhousekeeper-0
|
||||
wait_for "ClickHouse healthy" 300 container_healthy \
|
||||
signoz-telemetrystore-clickhouse-0-0
|
||||
wait_for "SigNoz healthy" 300 container_healthy \
|
||||
signoz-signoz-0
|
||||
wait_for "SigNoz API/UI" 300 curl -fsS --max-time 5 \
|
||||
http://127.0.0.1:8080/api/v1/health
|
||||
wait_for "OTLP gRPC TCP 4317" 300 timeout 3 bash -c \
|
||||
"exec 3<>/dev/tcp/${PRIVATE_IP}/4317"
|
||||
wait_for "OTLP HTTP 4318" 300 curl -fsS --max-time 5 \
|
||||
-H "Content-Type: application/json" \
|
||||
--data '{"resourceSpans":[]}' \
|
||||
"http://${PRIVATE_IP}:4318/v1/traces"
|
||||
wait_for "User scripts completed" 300 one_shot_ok \
|
||||
signoz-telemetrystore-clickhouse-user-scripts
|
||||
wait_for "Migrations running/completed" 300 one_shot_ok \
|
||||
signoz-telemetrystore-migrator
|
||||
|
||||
echo
|
||||
docker compose -f "$COMPOSE" ps -a
|
||||
echo
|
||||
ss -lntp "( sport = :8080 or sport = :4317 or sport = :4318 )"
|
||||
if ((errors)); then
|
||||
echo "Проверка завершилась с ошибками: $errors" >&2
|
||||
echo "Логи: docker compose -f '$COMPOSE' logs --tail=200" >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "SigNoz готов."
|
||||
Reference in New Issue
Block a user