簡單介紹一下edwin
edwin是一個報警和監控平台, 可以使用它監控任意東西, 如有異常(分為警告級和嚴重級), 可以發出報警. 可以自定義報警的通知方式, 比如郵件/短信/電話. 另外, 它提供一個web UI, 能以dashboard形式展現監控指標的狀態.
edwin對於監控項目的組織形式, 由小到大是: check item -> pagelet -> page -> dashboard. 另外,可以為 check item指定一個或多個 team 來負責. 這樣靈活的組織形式, 使得edwin非常適合管理大量監控條目.
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的情況.