add new eidastest check

Updated QA check
This commit is contained in:
Maria Haider 2022-11-10 11:59:43 +01:00
parent 9c0a8ba2a0
commit 6cbfd488af
Signed by: mariah
GPG key ID: 7414A760CA747E57
3 changed files with 121 additions and 1 deletions

View file

@ -1366,6 +1366,12 @@ class nagios_monitor {
description => 'check test countires in QA',
contact_groups => ['alerts'],
}
nagioscfg::service {'check_eidastest_prod':
host_name => ['localhost'],
check_command => 'check_eidastest_prod',
description => 'check test countires in Production',
contact_groups => ['alerts'],
}
nagioscfg::command {'check_metadata_age':
command_line => "/usr/lib/nagios/plugins/check_eidas_metadata_age.sh '\$ARG1\$' '\$ARG2\$' '\$ARG3\$'"
}

View file

@ -0,0 +1,83 @@
#!/bin/bash
exec_status=$(curl -s https://api.swedenconnect.se/testid/prod/execution-status | jq --raw-output)
exec_status_result=$?
if [[ $exec_status_result -ne 0 ]]; then
echo "CRITICAL - Service FAIL"
exit $STATE_CRITICAL
fi
calculate_time() {
md_date=$(date -d "$1" +%s)
now=$(date +%s)
diff=$(("$md_date"-"$now"))
if ((diff < 0)); then ((diff*=-1)); fi
echo $diff
}
exec_time=$(echo "$exec_status" | jq --raw-output '."last execution result".executiontimestamp')
diff_exec_time=$(calculate_time "$exec_time")
day=$(( 24 * 3600))
if [ "$diff_exec_time" -gt "$day" ]; then
echo "CRITICAL - tests are too old!!"
exit $STATE_CRITICAL
fi
raw_lands=$(echo "$exec_status" | jq --raw-output '."last execution result".failed[].result')
declare -a lands=($(echo "$raw_lands" | tr "\n" " "))
exit_status_warning=0
exit_status_critical=0
output=""
for land in "${lands[@]}"
do
if [ "$land" ]
then
first_failed=$(curl -s https://api.swedenconnect.se/testid/prod/failed-tests | jq --raw-output '."failed tests"[].'\"$land\"'|select( . != null )')
diff_failed=$(calculate_time "$first_failed")
half_day=$((12 * 3600))
sec_to_hrs=$(("$diff_failed" / 3600))
if [ "$diff_failed" -gt "$day" ]; then
exit_status_critical=1
output="$output CRITICAL - $land is failing for $sec_to_hrs hours!"
elif [ "$diff_failed" -gt "$half_day" ]; then
exit_status_warning=1
output="$output WARNING - $land is failing for $sec_to_hrs hours!"
fi
fi
done
if [ "$exit_status_critical" -gt 0 ]
then
echo "$output"
exit $STATE_CRITICAL
elif [ "$exit_status_warning" -gt 0 ]
then
echo "$output"
exit $STATE_WARNING
elif [ -z "${lands[*]}" ]
then
echo "Tests on production lands are error free"
else
echo "${lands[*]} failing"
fi
exit 0

View file

@ -1,5 +1,36 @@
#!/bin/bash
exec_status=$(curl -s https://api.swedenconnect.se/testid/qa/execution-status | jq --raw-output)
exec_status_result=$?
if [[ $exec_status_result -ne 0 ]]; then
echo "CRITICAL - Service FAIL"
exit $STATE_CRITICAL
fi
calculate_time() {
md_date=$(date -d "$1" +%s)
now=$(date +%s)
diff=$(("$md_date"-"$now"))
if ((diff < 0)); then ((diff*=-1)); fi
echo $diff
}
exec_time=$(echo "$exec_status" | jq --raw-output '."last execution result".executiontimestamp')
diff_exec_time=$(calculate_time "$exec_time")
day=$(( 24 * 3600))
if [ "$diff_exec_time" -gt "$day" ]; then
echo "CRITICAL - tests are too old!!"
exit $STATE_CRITICAL
fi
raw_lands=$(curl -s https://api.swedenconnect.se/testid/qa/execution-status | jq --raw-output '."last execution result".failed[].result')
@ -24,7 +55,7 @@ done
if [ "$exit_status" -gt 0 ]
then
echo $output
echo "$output"
else
echo "Tests on test lands are error free"
fi