edwin報警和監控平台開源了(python源碼)


簡單介紹一下edwin

edwin是一個報警和監控平台, 可以使用它監控任意東西, 如有異常(分為警告級和嚴重級), 可以發出報警. 可以自定義報警的通知方式, 比如郵件/短信/電話. 另外, 它提供一個web UI, 能以dashboard形式展現監控指標的狀態.  

edwin對於監控項目的組織形式, 由小到大是:  check item -> pagelet -> page -> dashboard.  另外,可以為 check item指定一個或多個 team 來負責. 這樣靈活的組織形式, 使得edwin非常適合管理大量監控條目.
 

一句話, edwin 是一個非常適合團隊使用的監控報警平台, 而且也適合多個團隊共用.

 

為啥開源?

edwin是我歷時半年的成果, 當然單從功能上講, 其實用不了這么長時間來開發. 主要是我對代碼做了很多次重構了, 不斷琢磨我認為python項目的best practice. 今天開源出來, 希望有更多的python愛好者能從中學到點什么. 如果你的這個項目感興趣, 歡迎fork或PR, 如果喜歡, 請打個star. 

項目地址: https://github.com/harryliu/edwin

 

edwin同時也是我所有python項目的模版項目

對, 它同時也是我所有python項目的模版項目, 看看下面的特性, 就知道它是一個很全面的項目, 適應性做的也不錯.  我的新項目基本上都是在edwin基礎上做必要裁剪.

 

特性有:

  • 它是一個console和web application的組合體. 
  • console部分同時支持jython和python. web部分需要python.
  • 包含了bat和sh模版腳本, 幫助啟動python程序.
  • web application這塊使用了flask框架.
  • 使用了flask blueprint來分割不同的web 模塊.
  • 包含了一些web api的設計.
  • web端支持CherryPy部署, 當然也支持其它wsgi服務器.
  • 前端基於bootstrap, 同時考慮了對於IE的支持. 

 

亮點或best practice有: 

  • 它有比較好的logging處理方式, 包括log文件存放位置, rotate機制, 允許多進程同時寫入
  • 它的數據庫處理模塊, 同時支持jython/python, 同時支持console/web application, 並且不用擔心線程安全問題.
  • 它沒有使用sqlalchemy, 而是使用了我的pyDbRowFactory框架, 可以發揮你的SQL水平,避免了ORM框架性能上的overhead 


有圖有真相

dashboard 頁面能看到所有的監控item的匯總.

 

UnitTest分頁, 能看到該page下所有的監控item的情況. 



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM