简单介绍一下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的汇总.
![](https://i-blog.csdnimg.cn/blog_migrate/37f65a773625e6a6ff2f62c4ea9b5278.png)
UnitTest分页, 能看到该page下所有的监控item的情况.