import urllib import time import logging from file_utils import parse_conf, get_log_file __author__ = 'ben' logFormatter = logging.Formatter("%(asctime)s [%(threadName)-12.12s] [%(levelname)-5.5s] %(message)s") logger = logging.getLogger(__name__) fileHandler = logging.FileHandler(get_log_file()) fileHandler.setFormatter(logFormatter) logger.addHandler(fileHandler) logger.setLevel(logging.INFO) threshold = 50 # threshold is 50ms class APIMonitor: def __init__(self): self.urls = [] conf_json = parse_conf() api_json = conf_json['api_list'] for k,v in api_json.iteritems(): logger.info('%s,%s',k,v) self.urls.append(v) # self.urls = ['http://www.google.com/','http://www.youtube.com/'] # noinspection PyBroadException def do_monitor(self): for url in self.urls:
#!/usr/bin/python import logging import os from email_send import EmailSend from exec_analyze_shell import exec_monitor_shell from file_utils import get_log_file, mk_log_dir from monitor_http_api import APIMonitor from monitor_server_uptime import UptimeMonitor __author__ = 'ben' logger = logging.getLogger(__name__) logger.setLevel(logging.INFO) logging.basicConfig() if __name__ == "__main__": mk_log_dir() os.system('truncate -s 0 ' + get_log_file()) os.system( 'rm -rf /letv/logs/monitor/[0-9]*.log') # delete old jstack dump file API_diagnosis = APIMonitor().do_monitor() Uptime_diagnosis = UptimeMonitor().do_monitor() if API_diagnosis or Uptime_diagnosis: logger.info('to start execute shell ...') exec_monitor_shell() logger.info('executing shell ended...') EmailSend().write_email()