Files
AWatch-rus/grafana-1c/tools/validate_kpi_views.sh
T

45 lines
1.2 KiB
Bash
Executable File

#!/bin/sh
set -eu
if ! command -v psql >/dev/null 2>&1; then
echo "psql not found" >&2
exit 1
fi
if [ "${1:-}" = "" ]; then
echo "Usage: $0 \"postgres://user:pass@host:5432/db?sslmode=disable\"" >&2
exit 1
fi
DSN="$1"
VIEWS="
onec_kpi_unposted_documents
onec_kpi_sales_today
onec_kpi_overdue_receivables
onec_kpi_posting_errors_24h
onec_kpi_data_freshness
"
echo "[*] Checking required KPI views"
for view_name in $VIEWS; do
exists="$(psql "$DSN" -X -A -t -v ON_ERROR_STOP=1 -c "SELECT EXISTS (
SELECT 1
FROM information_schema.views
WHERE table_name='${view_name}'
);")"
if [ "$exists" != "t" ]; then
echo "[-] Missing view: $view_name" >&2
exit 2
fi
done
echo "[*] Running test queries"
psql "$DSN" -X -v ON_ERROR_STOP=1 -c "SELECT * FROM onec_kpi_unposted_documents LIMIT 5;"
psql "$DSN" -X -v ON_ERROR_STOP=1 -c "SELECT * FROM onec_kpi_sales_today LIMIT 5;"
psql "$DSN" -X -v ON_ERROR_STOP=1 -c "SELECT * FROM onec_kpi_overdue_receivables LIMIT 5;"
psql "$DSN" -X -v ON_ERROR_STOP=1 -c "SELECT * FROM onec_kpi_posting_errors_24h LIMIT 5;"
psql "$DSN" -X -v ON_ERROR_STOP=1 -c "SELECT * FROM onec_kpi_data_freshness LIMIT 5;"
echo "[+] KPI views are valid"