国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

使用Python實現一個簡單的項目監控

2020-02-23 00:29:13
字體:
來源:轉載
供稿:網友

在公司里做的一個接口系統,主要是對接第三方的系統接口,所以,這個系統里會和很多其他公司的項目交互。隨之而來一個很蛋疼的問題,這么多公司的接口,不同公司接口的穩定性差別很大,訪問量大的時候,有的不怎么行的接口就各種出錯了。

這個接口系統剛剛開發不久,整個系統中,處于比較邊緣的位置,不像其他項目,有日志庫,還有短信告警,一旦出問題,很多情況下都是用戶反饋回來,所以,我的想法是,拿起python,為這個項目寫一個監控。如果在調用某個第三方接口的過程中,大量出錯了,說明這個接口有有問題了,就可以更快的采取措施。

項目的也是有日志庫的,所有的info,error日志都是每隔一分鐘掃描入庫,日志庫是用的mysql,表里有幾個特別重要的字段:

        level 日志級別         message 日志內容         file_name Java代碼文件         log_time 日志時間

有日志庫,就不用自己去線上環境掃日志分析了,直接從日志庫入手。由于日志庫在線上時每隔1分鐘掃,那我就去日志庫每隔2分鐘掃一次,如果掃到有一定數量的error日志就報警,如果只有一兩條錯誤就可以無視了,也就是短時間爆發大量錯誤日志,就可以斷定系統有問題了。報警方式就用發送郵件,所以,需要做下面幾件事情:
1. 操作MySql。
2. 發送郵件。
3. 定時任務。
4. 日志。
5. 運行腳本。

明確了以上幾件事情,就可以動手了。
操作數據庫

使用MySQLdb這個驅動,直接操作數據庫,主要就是查詢操作。
獲取數據庫的連接:
 

def get_con(): host = "127.0.0.1" port = 3306 logsdb = "logsdb" user = "root" password = "never tell you" con = MySQLdb.connect(host=host, user=user, passwd=password, db=logsdb, port=port, charset="utf8") return con

從日志庫里獲取數據,獲取當前時間之前2分鐘的數據,首先,根據當前時間進行計算一下時間。之前,計算有問題,現在已經修改。
 

def calculate_time():  now = time.mktime(datetime.now().timetuple())-60*2 result = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(now)) return result

然后,根據時間和日志級別去日志庫查詢數據
 

def get_data(): select_time = calculate_time() logger.info("select time:"+select_time) sql = "select file_name,message from logsdb.app_logs_record " /   "where log_time >"+"'"+select_time+"'" /   "and level="+"'ERROR'" /   "order by log_time desc" conn = get_con()  cursor = conn.cursor() cursor.execute(sql) results = cursor.fetchall()  cursor.close() conn.close()  return results            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 香格里拉县| 岗巴县| 定州市| 佛山市| 吉林市| 馆陶县| 沾益县| 泰安市| 哈巴河县| 濮阳市| 永春县| 通化市| 太保市| 衡南县| 长丰县| 江门市| 临海市| 三都| 廊坊市| 毕节市| 伊春市| 曲麻莱县| 榆社县| 萨嘎县| 米林县| 普安县| 阆中市| 绿春县| 西安市| 额敏县| 武定县| 叙永县| 台南市| 河北省| 调兵山市| 藁城市| 定西市| 林口县| 淮南市| 舞钢市| 吉水县|