summaryrefslogtreecommitdiff
path: root/py_cmd/tsg_diagnose.py
diff options
context:
space:
mode:
Diffstat (limited to 'py_cmd/tsg_diagnose.py')
-rw-r--r--py_cmd/tsg_diagnose.py151
1 files changed, 2 insertions, 149 deletions
diff --git a/py_cmd/tsg_diagnose.py b/py_cmd/tsg_diagnose.py
index c8bf8d8..8d5b36b 100644
--- a/py_cmd/tsg_diagnose.py
+++ b/py_cmd/tsg_diagnose.py
@@ -2,6 +2,7 @@
import re
import argparse
import sys
+from sys import path
import syslog
import random
path.append(r'../py_common') #将存放module的路径添加进来
@@ -11,154 +12,6 @@ from common_diagnose import *
#前台执行的diagnose cli命令, 不写syslog日志
#后台自动监测脚本, 写syslog, 也就是APP FM的功能
#写日志仅限于app相关, cpu,mem是snmp模块负责的
-
-#define KERN_EMERG "<0>" /* system is unusable */
-#define KERN_ALERT "<1>" /* action must be taken immediately */
-#define KERN_CRIT "<2>" /* critical conditions */
-#define KERN_ERR "<3>" /* error conditions */
-#define KERN_WARNING "<4>" /* warning conditions */
-#define KERN_NOTICE "<5>" /* normal but significant condition */
-#define KERN_INFO "<6>" /* informational */
-#define KERN_DEBUG "<7>" /* debug-level messages */
-
-MSG_PREFIX = ['EMERG', 'ALERT', 'CRIT', 'ERR', 'WARNING', 'NOTICE', 'INFO', 'DEBUG']
-
-G_SYSLOG_EVENT_SRC = "CLI"
-G_DIAGNOSE_NAME = "tsg_diagnose"
-G_DIAGNOSE_VERSION = "1.0.6 20190827"
-
-def tsg_diagnose_for_app():
- app_msg = ['app is not running', 'app is not running', 'app is not running', 'app maybe deadlock', 'app is reboot in 5 minute']
- app_msg.append('app is running normally')
- app_msg.append('app is running normally')
- app_msg.append('app is running normally')
-
- num = random.randint(1,7)
- if num <= 4:
- msg = "[%s] %s" %(MSG_PREFIX[num], app_msg[num])
- syslog.syslog(num, msg)
- print(msg)
- return num
-
-def tsg_diagnose_for_cpu():
- cpu_msg = []
- cpu_msg.append('CPU usage over 95%')
- cpu_msg.append('CPU usage over 90%')
- cpu_msg.append('CPU usage over 85%')
- cpu_msg.append('CPU usage over 80%')
- cpu_msg.append('CPU usage over 70%')
-
- num = random.randint(1,7)
- if num <= 4:
- msg = "[%s] %s" %(MSG_PREFIX[num], cpu_msg[num])
- syslog.syslog(num, msg)
- print(msg)
- return num
-
-
-def tsg_diagnose_for_mem():
- mem_msg = []
- mem_msg.append('free memory less than 1%')
- mem_msg.append('free memory less than 5%')
- mem_msg.append('free memory less than 10%')
- mem_msg.append('free memory less than 15%')
- mem_msg.append('free memory less than 20%')
-
- num = random.randint(1,7)
- if num <= 4:
- msg = "[%s] %s" %(MSG_PREFIX[num], mem_msg[num])
- syslog.syslog(num, msg)
- print(msg)
- return num
-
-
-def tsg_diagnose_for_disk():
- disk_msg = []
- disk_msg.append('disk usage over 99%')
- disk_msg.append('disk usage over 95%')
- disk_msg.append('disk usage over 90%')
- disk_msg.append('disk usage over 85%')
- disk_msg.append('disk usage over 80%')
-
- num = random.randint(1,7)
- if num <= 4:
- msg = "[%s] %s" %(MSG_PREFIX[num], disk_msg[num])
- syslog.syslog(num, msg)
- print(msg)
- return num
-
-def tsg_diagnose_for_network():
- return 7
-
-def tsg_diagnose():
-
- log_handle = syslog.openlog("TSG-MXN")
-
- diagnose_level = syslog.LOG_DEBUG
-
- #check app, not running, dead-lock
- check_ret = tsg_diagnose_for_app()
- if check_ret < diagnose_level:
- diagnose_level = check_ret
-
- #error, critical return immediately
- if diagnose_level <= syslog.LOG_WARNING:
- return diagnose_level
-
- #check app, drop packet, traffic bps
- check_ret = tsg_diagnose_for_network()
- if check_ret < diagnose_level:
- diagnose_level = check_ret
- #error, critical return immediately
- if diagnose_level <= syslog.LOG_WARNING:
- return diagnose_level
-
-
- #check cpu, more than 80%, 90%, 95%
- check_ret = tsg_diagnose_for_cpu()
- if check_ret < diagnose_level:
- diagnose_level = check_ret
- #error, critical return immediately
- if diagnose_level <= syslog.LOG_WARNING:
- return diagnose_level
-
- #check mem, free memory less than 10%
- check_ret = tsg_diagnose_for_mem()
- if check_ret < diagnose_level:
- diagnose_level = check_ret
- #error, critical return immediately
- if diagnose_level <= syslog.LOG_WARNING:
- return diagnose_level
-
-
- #check disk, free disk space less than 5%
- check_ret = tsg_diagnose_for_mem()
- if check_ret < diagnose_level:
- diagnose_level = check_ret
- #error, critical return immediately
- if diagnose_level <= syslog.LOG_WARNING:
- return diagnose_level
-
- #if not error, output success
- syslog.syslog(syslog.LOG_DEBUG, "TSG diagnose completed, all modules are running normally!")
- print ("TSG diagnose completed, all modules are running normally!")
- return 0
-
-def setup_cmd_args():
- parser = argparse.ArgumentParser(description='TSG OAM Argument Parser')
-
- parser.add_argument('-v', '--version', help = 'Print version information',
- action='store_true', default = 0)
-
- return parser
if __name__ == '__main__':
- comm_arg_parser = setup_cmd_args()
- arg_options = comm_arg_parser.parse_args()
-
- if arg_options.version != 0:
- print("%s version: %s" %(G_DIAGNOSE_NAME, G_DIAGNOSE_VERSION))
- sys.exit(0)
-
- fun_res_code = tsg_diagnose()
- sys.exit(fun_res_code)
+ tsg_common_diagnose(1)