-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmonitor_check.py
More file actions
41 lines (29 loc) · 1.13 KB
/
monitor_check.py
File metadata and controls
41 lines (29 loc) · 1.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import cosmosdb
import monitor_smtp
import requests
import json
import datetime
now = datetime.datetime.now()
def request_sites():
check_int = 0
monitor_sites = json.loads(cosmosdb.select_monitor_sites())
for site in monitor_sites:
site_url = site["url"]
site_group = site["notif_group"]
site_expected_status = site["status_code"]
try:
request = requests.get(site_url, timeout=15.0)
except requests.exceptions.RequestException as e:
check_int = 1
monitor_smtp.monitor_sendmail(site_group, site_url, site_expected_status, e)
continue
site_status_code = request.status_code
if int(site_status_code) != int(site_expected_status):
check_int = 1
monitor_smtp.monitor_sendmail(site_group, site_url, site_expected_status, site_status_code)
if check_int == 0:
time_now = now.strftime("%Y-%m-%d %H:%M:%S")
output_str = "%s: %s sites checked and all returned expected status codes" % (time_now, len(monitor_sites))
print(output_str)
if __name__ == "__main__":
request_sites()