summaryrefslogtreecommitdiffstats
path: root/integration/src/main/assembly/monitor.sh
diff options
context:
space:
mode:
Diffstat (limited to 'integration/src/main/assembly/monitor.sh')
-rw-r--r--integration/src/main/assembly/monitor.sh75
1 files changed, 75 insertions, 0 deletions
diff --git a/integration/src/main/assembly/monitor.sh b/integration/src/main/assembly/monitor.sh
new file mode 100644
index 0000000..9cac87a
--- /dev/null
+++ b/integration/src/main/assembly/monitor.sh
@@ -0,0 +1,75 @@
+#!/bin/bash
+DIRNAME=`dirname $0`
+RUNHOME=`cd $DIRNAME/; pwd`
+LOG_DIR=${RUNHOME}/tomcat/logs
+
+RETRY=$1
+CURL_RETRY_COUNT=1
+SLEEP_SECONDS_IN_MONITOR=2
+
+if [ x"$HTTP_OVERWRITE_PORT" == x"" ]; then
+ apds_port=80
+else
+ apds_port=$HTTP_OVERWRITE_PORT
+fi
+
+#####################################
+echo @RUNHOME@ $RUNHOME
+echo @LOG_DIR@ $LOG_DIR
+echo @apds_port@ $apds_port
+#####################################
+
+print_log() {
+ LOG_DATE=`date "+%Y-%m-%d %H:%M:%S"`
+ LOG_FILENAME="$LOG_DIR/apds-monitor-`date "+%Y-%m-%d"`.log"
+ ######[$$]:进程id
+ ###### $n 传递给脚本或函数的参数, $1为函数名称,默认为FUNCNAME[0] $2为日志输出内容
+ ###### $? 函数的返回值
+ ###### FUNCNAME[@]: 函数调用栈,
+ ###### {} 第一个空格后在写脚本
+ { echo -e $LOG_DATE "[$$]===${FUNCNAME[@]}=== $2 "; } >> $LOG_FILENAME
+}
+
+apds_monitor() {
+ print_log ${FUNCNAME[0]} "Starting health check. ==$1==";
+ if [ "$1" == "with-retry" ]; then
+ CURL_RETRY_COUNT=5
+ fi
+
+ for i in `seq $CURL_RETRY_COUNT`
+ do
+ success=0
+ response=$(curl -m 2 -sL 127.0.0.1:$apds_port/blueprint/readme.txt -w %{http_code} -o /dev/null)
+ rc=$?
+ if [ $rc -eq 0 ];then
+ print_log "${FUNCNAME[0]}" "Info: Curl to health check endpoint succeeded.";
+ success=1
+ break
+ else
+ print_log "${FUNCNAME[0]}" "Warn: Curl to health check endpoint failed $i time(s).";
+ if [ "$1" == "with-retry" ]; then
+ sleep $SLEEP_SECONDS_IN_MONITOR
+ fi
+ fi
+ done
+
+ if [ $success -eq 0 ];then
+ print_log "${FUNCNAME[0]}" "Failed: health check Endpoint is unreachable.";
+ return 1
+ fi
+
+ if [ $response -eq 200 ]; then
+ print_log "${FUNCNAME[0]}" "health check succeed.";
+ return 0
+ fi
+
+ print_log "${FUNCNAME[0]}" "Failed:health check return non 200 but is : $response ";
+ return 1
+}
+
+if [ ! -d "$LOG_DIR" ]; then
+ echo there is no $LOG_DIR but will be created, You can ignore this message!
+ mkdir -p "$LOG_DIR"
+fi
+
+apds_monitor $RETRY