alertify/test.sh

89 lines
2.4 KiB
Bash
Executable file

#!/usr/bin/env bash
SERVER=${1:-'localhost:8080'}
NAME=testAlert-$RANDOM
FINGERPRINT=$(date +%s | md5sum | cut -f1 -d' ')
URL="http://${SERVER}/alert"
BOLD=$(tput bold)
NORMAL=$(tput sgr0)
call_alertmanager() {
VALUE=${1}
curl -v "${URL}" --header 'Expect:' --header 'Content-type: application/json' --data @<(cat <<EOF
{
"receiver": "alertify",
"status": "${STATUS}",
"alerts": [
{
"status": "${STATUS}",
"labels": {
"alertname": "${NAME}",
"id": "01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b",
"instance": "localhost:1234",
"job": "test_job",
"name": "testserver",
"priority": "1",
"severity": "low",
"value": "${VALUE}"
},
"annotations": {
"description": "testserver: unhealthy",
"summary": "Server unhealthy"
},
"startsAt": "${START}",
"endsAt": "${END}",
"generatorURL": "http://example.com/some/url",
"fingerprint": "${FINGERPRINT}"
}
],
"groupLabels": {
"alertname": "${NAME}",
"id": "01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b",
"instance": "localhost:1234",
"job": "test_job",
"name": "testserver",
"priority": "1",
"severity": "low",
"value": "${VALUE}"
},
"commonLabels": {
"alertname": "${NAME}",
"id": "01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b",
"instance": "localhost:1234",
"job": "test_job",
"name": "testserver",
"priority": "1",
"severity": "low",
"value": "${VALUE}"
},
"commonAnnotations": {
"description": "testserver: unhealthy",
"summary": "Server unhealthy"
},
"externalURL": "http://1ff297bc31a0:9093",
"version": "4",
"groupKey": "{}:{alertname=\"${NAME}\", id=\"01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b\", instance=\"localhost:1234\", job=\"test_job\", name=\"testserver\", priority=\"1\", severity=\"low\", value=\"${VALUE}\"}",
"truncatedAlerts": 0
}
EOF
)
}
echo "${BOLD}Firing alert ${NAME} ${NORMAL}"
STATUS='firing'
START=$(date --rfc-3339=seconds | sed 's/ /T/')
END="0001-01-01T00:00:00Z"
call_alertmanager 42
echo -e "\n"
echo "${BOLD}Press enter to resolve alert ${NAME} ${NORMAL}"
read -r
echo "${BOLD}Sending resolved ${NORMAL}"
STATUS='resolved'
END=$(date --rfc-3339=seconds | sed 's/ /T/')
call_alertmanager 0
echo -e "\n"