Skip to content

Commit a064cad

Browse files
committed
experimental debug output for debugging performance issues
1 parent ab29854 commit a064cad

File tree

4 files changed

+49
-19
lines changed

4 files changed

+49
-19
lines changed

clowder_init.sh

+6
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
#!/bin/sh
22

3+
echo "$(date --iso-8601=ns)" | tee -a $LOGPATH
4+
echo "start clowder_init.sh" | tee -a $LOGPATH
5+
36
if [[ -z "${ACG_CONFIG}" ]]; then
47
export PG_BOUNCER_LISTEN_PORT="5432"
58
else
@@ -21,3 +24,6 @@ else
2124

2225
[[ -z "${DB_PORT}" ]] && DB_PORT="5432"
2326
fi
27+
28+
echo "$(date --iso-8601=ns)" | tee -a $LOGPATH
29+
echo "exit clowder_init.sh" | tee -a $LOGPATH

entrypoint.sh

+17-14
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,19 @@
11
#!/bin/sh
22

3+
PID="$$"
4+
LOGPATH=/tmp/log-entrypoint-"$PID"
5+
36
source /clowder_init.sh
47

58
set -e
69

710
function check_svc_status() {
811
local SVC_NAME=$1 SVC_PORT=$2
912

10-
[[ $# -lt 2 ]] && echo "Error: Usage: check_svc_status svc_name svc_port" && exit 1
13+
[[ $# -lt 2 ]] && echo "Error: Usage: check_svc_status svc_name svc_port" | tee -a $LOGPATH && exit 1
1114

1215
while true; do
13-
echo "${LOGPREFIX} Checking ${SVC_NAME}:$SVC_PORT status ..."
16+
echo "${LOGPREFIX} Checking ${SVC_NAME}:$SVC_PORT status ..." | tee -a $LOGPATH
1417
ncat ${SVC_NAME} ${SVC_PORT} < /dev/null && break
1518
sleep 5
1619
done
@@ -19,23 +22,23 @@ function check_svc_status() {
1922

2023
if [[ -n "${ACG_CONFIG}" ]]; then
2124
export LOGPREFIX="Clowder Init:"
22-
echo "${LOGPREFIX} Running in a clowder environment"
25+
echo "${LOGPREFIX} Running in a clowder environment" | tee -a $LOGPATH
2326

24-
echo "${LOGPREFIX} Database name: ${DB_NAME}"
25-
echo "${LOGPREFIX} Database host: ${DB_HOST}"
26-
echo "${LOGPREFIX} Database port: ${DB_PORT}"
27-
echo "${LOGPREFIX} PG Bouncer port: ${PG_BOUNCER_LISTEN_PORT}"
27+
echo "${LOGPREFIX} Database name: ${DB_NAME}" | tee -a $LOGPATH
28+
echo "${LOGPREFIX} Database host: ${DB_HOST}" | tee -a $LOGPATH
29+
echo "${LOGPREFIX} Database port: ${DB_PORT}" | tee -a $LOGPATH
30+
echo "${LOGPREFIX} PG Bouncer port: ${PG_BOUNCER_LISTEN_PORT}" | tee -a $LOGPATH
2831
if [[ -n "${DB_SSLMODE}" ]]; then
29-
echo "${LOGPREFIX} Database SSL Mode: ${DB_SSLMODE}"
32+
echo "${LOGPREFIX} Database SSL Mode: ${DB_SSLMODE}" | tee -a $LOGPATH
3033
fi
3134
if [[ -s "${DB_CAFILE}" ]]; then
32-
echo "${LOGPREFIX} Database CA File: ${DB_CAFILE}"
35+
echo "${LOGPREFIX} Database CA File: ${DB_CAFILE}" | tee -a $LOGPATH
3336
fi
3437

35-
[[ -z "${DB_HOST}" ]] && echo "${LOGPREFIX} Error: Missing Database configuration" && exit 1
38+
[[ -z "${DB_HOST}" ]] && echo "${LOGPREFIX} Error: Missing Database configuration" | tee -a $LOGPATH && exit 1
3639

3740
# Wait for the database to be ready
38-
echo "${LOGPREFIX} Waiting for database readiness ..."
41+
echo "${LOGPREFIX} Waiting for database readiness ..." | tee -a $LOGPATH
3942
check_svc_status $DB_HOST $DB_PORT
4043
fi
4144

@@ -44,7 +47,7 @@ PG_CONFIG_DIR=/etc/pgbouncer
4447
# md5 and write the password
4548
pass="md5$(echo -n "$DB_PASSWORD$DB_USER" | md5sum | cut -f 1 -d ' ')"
4649
echo "\"$DB_USER\" \"$pass\"" >> ${PG_CONFIG_DIR}/userlist.txt
47-
echo "Wrote authentication credentials to ${PG_CONFIG_DIR}/userlist.txt"
50+
echo "Wrote authentication credentials to ${PG_CONFIG_DIR}/userlist.txt" | tee -a $LOGPATH
4851

4952
# pgbouncer config
5053
printf "\
@@ -72,7 +75,7 @@ if [[ -s "${DB_CAFILE}" ]]; then
7275
echo "server_tls_ca_file=${DB_CAFILE}" >> ${PG_CONFIG_DIR}/pgbouncer.ini
7376
fi
7477

75-
echo "Wrote pgbouncer config to ${PG_CONFIG_DIR}/pgbouncer.ini"
78+
echo "Wrote pgbouncer config to ${PG_CONFIG_DIR}/pgbouncer.ini" | tee -a $LOGPATH
7679

77-
echo "Starting $*..."
80+
echo "Starting $*..." | tee -a $LOGPATH
7881
exec "$@"

probe-liveness.sh

+14-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,19 @@
11
#!/bin/bash
22

3+
PID="$$"
4+
LOGPATH=/tmp/log-liveness-"$PID"
5+
6+
exec {BASH_XTRACEFD}>>$LOGPATH
7+
#set -x
8+
9+
10+
echo "$(date --iso-8601=ns)" | tee -a $LOGPATH
311
source /clowder_init.sh
412

5-
/usr/pgsql-14/bin/pg_isready -h localhost -p ${PG_BOUNCER_LISTEN_PORT} -U "${DB_USER}" | grep "accepting connections"
6-
exit $?
13+
echo "$(date --iso-8601=ns)" | tee -a $LOGPATH
14+
/usr/pgsql-14/bin/pg_isready -h localhost -p ${PG_BOUNCER_LISTEN_PORT} -U "${DB_USER}" | grep "accepting connections" | tee -a $LOGPATH
15+
RESULT=$?
16+
echo "$(date --iso-8601=ns)" | tee -a $LOGPATH
17+
echo "result was $RESULT" | tee -a $LOGPATH
18+
exit $RESULT
719

probe-readiness.sh

+12-3
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,23 @@
11
#!/bin/bash
22

3+
PID="$$"
4+
LOGPATH=/tmp/log-readiness-"$PID"
5+
6+
exec {BASH_XTRACEFD}>>$LOGPATH
7+
#set -x
8+
39
# Note: host and port should remain localhost and ${PG_BOUNCER_LISTEN_PORT}
410
# because that represents the location of pgbouncer itself, not the
511
# remote psql server that would have $DB_HOST:$DB_PORT.
6-
712
source /clowder_init.sh
813

14+
echo "$(date --iso-8601=ns)" | tee -a $LOGPATH
915
PGPASSWORD="$DB_PASSWORD" /usr/pgsql-14/bin/psql \
1016
-h localhost -p ${PG_BOUNCER_LISTEN_PORT} -U "${DB_USER}" -d "${DB_NAME}" \
1117
-c "select 1 as psql_is_ready" 2>/dev/null \
12-
| grep "psql_is_ready"
13-
exit $?
18+
| grep "psql_is_ready" | tee -a $LOGPATH
19+
RESULT=$?
20+
echo "$(date --iso-8601=ns)" | tee -a $LOGPATH
21+
echo "result was $RESULT" | tee -a $LOGPATH
22+
exit $RESULT
1423

0 commit comments

Comments
 (0)