基於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/

 

九、容器日志:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM