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性能分析:
六、Web頁面:
七、釘釘報警示例:
7.1 響應代碼錯誤報警:
7.2 響應時間過長報警:
7.3 響應結果錯誤報警:
八、API:
http://www.monitor.com/swagger/
九、容器日志: