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