基于Django的轻量级生产环境接口监控平台

GitHub:

https://github.com/yjlch1016/dmonitor

 

一、参考文档:

Django官方文档

https://docs.djangoproject.com/zh-hans/3.0/

django-xadmin官方文档

https://xadmin.readthedocs.io/en/docs-chinese/

Django REST framework官方文档

https://www.django-rest-framework.org/

drf-yasg官方文档

https://drf-yasg.readthedocs.io/en/stable/

django-redis官方文档

https://django-redis-chs.readthedocs.io/zh_CN/latest/

uWSGI官方文档

https://uwsgi-docs-zh.readthedocs.io/zh_CN/latest/

Celery官方文档

https://docs.celeryproject.org/en/stable/

钉钉机器人开发文档

https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq

pyecharts官方文档

https://pyecharts.org/#/zh-cn/intro

二、设计思想:

进程管理工具:Supervisor

反向代理服务器:Nginx

Web服务器:uWSGI

Web开发框架:Django

消息中间件:Redis

缓存中间件:Redis

数据库:MySQL

任务队列:Celery

监控可视化:Grafana

 

三、目录结构:

3.1 PyCharm截图:

3.2 GitHub:

https://github.com/yjlch1016/dmonitor

四、第三方依赖库:

Django==2.2.2
PyMySQL==0.9.3
xadmin==2.0.1
xlrd==1.2.0
XlsxWriter==1.1.8
xlwt==1.3.0
uWSGI==2.0.18
uwsgitop==0.11
djangorestframework==3.10.2
drf-yasg==1.16.1
django-redis==4.12.1
django-import-export==2.2.0
django-silk==4.0.1
requests==2.23.0
demjson==2.2.4
celery==4.3.0
django-celery-beat==1.5.0
django-celery-results==1.1.2
redis==3.2.1
pyecharts==1.8.1

五、工程说明:

5.1 模型:
微服务表一对多用例表
用例表一对多步骤表
步骤表一对多运行结果表
微服务表一对一环境配置表

字段
微服务表 微服务名称、Swagger地址、微服务开关、钉钉开关、邮件开关、微服务简介、创建时间、修改时间
用例表 外键、用例名称、用例开关、钉钉开关、邮件开关、创建时间、修改时间
步骤表 外键、步骤名称、步骤开关、请求方式、接口路径、请求体、请求头、请求参数、预期的响应时间、预期的响应代码、预期的响应结果、正则、创建时间、修改时间
运行结果表 外键、是否通过、失败原因、运行时间、实际的响应时间、实际的响应代码、实际的响应结果
环境配置表 外键、域名、钉钉Webhook、密钥、收件人邮箱、创建时间、修改时间


5.2 参数化:

类型写法作用域数量
正则表达式 ${变量名} 全局 不限
随机数字 {__RN位数} 本条用例 不限
随机英文字母 {__RL位数} 本条用例 不限
随机手机号码 {__MP} 本条用例 不限
随机日期时间 {__RD开始年份,结束年份} 本条用例 不限


5.3 本地调试:
python manage.py collectstatic
复制xadmin静态文件

python manage.py makemigrations
激活模型

python manage.py migrate
迁移

python manage.py createsuperuser
创建超级管理员账号
输入账号:admin
输入邮箱:123456789@qq.com
输入密码:test123456
二次确认

python manage.py runserver
启动服务

http://127.0.0.1:8000/admin/
用户名:admin
密码:test123456

5.4 本地打包:
docker build -t monitor .
monitor为镜像名称,随便取

docker run -d --name monitor2020 -p 80:80 monitor:latest
启动容器
后台运行
给容器取个别名monitor2020
映射80端口

http://x.x.x.x/admin/
宿主机的IP地址
账号:admin
密码:test123456

docker exec -it monitor2020 /bin/bash
进入容器内部

exit
退出容器内部

docker stop monitor2020
停止容器

docker rm monitor2020
删除容器

5.5 公网访问地址:

(此为虚拟地址,真实并不存在,因为没买域名和服务器)
http://www.monitor.com/admin/
账号:admin
密码:test123456

 

5.6 Supervisor访问地址:
http://www.monitor.com/supervisor/
账号:admin
密码:test123456

 

5.7 Django性能分析:

http://www.monitor.com/silk/

 

六、Web页面:

 

 

 

 

 

 

 

 

七、钉钉报警示例:

7.1 响应代码错误报警:

7.2 响应时间过长报警:

7.3 响应结果错误报警:

 

八、API:

http://www.monitor.com/api/

 

http://www.monitor.com/redoc/

 

http://www.monitor.com/swagger/

 

九、容器日志:

 

posted @ 2020-06-12 17:04  此生不换Yang  阅读(3469)  评论(2编辑  收藏  举报