Example #1
0
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:
Example #2
0
#!/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()