开发环境
操作系统:CentOS 7.4 Python版本 :3.6 Django版本: 1.10.5 操作系统用户:oms 数据处理:pandas 前端展示:highcharts
通过上面我们已介绍了如何定时获取系统Oracle状态语句以及如何利用pandas处理成highcharts识别的格式
这节讲如何让其在前端显示
建立页面的步骤
我们还是通过这张图的步骤来说明如何建立页面
urls.py页面
- oracle_performance分别为系统状态趋势的页面(以天为单位)
- performance分别为系统状态趋势的页面(以小时为单位)
views.py
这里以oracle_performance函数做例子讲解
上面的url设定调用views.py里面的oracle_performance函数,该函数讲解如下:
1. 首先判断请求的方法是不是post(提交表单前),如果不是则打开oracle_performance.html页面,charts_oracle_performance为定义的表单,可在forms.py中定义
- 如果请求方法为post(提交表单后),首先验证输入是否正确,如果正确则获取相应的ipaddress,tnsname,performance_type等信息,
- 接下来根据performance_type的类型(物理读,逻辑读等)调用monitor/command/views_oracleperformance.py文件里面的方法来得到我们想要的数据,这个方法的讲解在昨天的公众号,大家可自行查看
- 最后我们将TOP SQL相关的内容封装成字典重定向到相应的template文件中
template文件
这里我们使用highcharts.html文件来显示趋势图
这里通过highcharts来展现数据库性能趋势状态
Django允许在html文件内部使用程for循环的形式来迭代列表
关于oracle_peforance页面就说到这了,performance页面可自行参考源码
效果展示
1.数据库系统状态趋势(天为单位)
首先是表单提交之前的界面
这里选择需要查询的数据库,支持多个数据库同时查询
然后是起止时间以及性能类型
最后可以选择天和周为单位
点击提交后会展示各个数据库该时间段的趋势图
2.数据库系统状态趋势(小时为单位)
首先是表单提交之前的界面
这里选择需要查询的数据库
然后是起止时间以及性能类型
最后是是否比较基线,这个后续会有单独介绍
点击提交后会展示出每天各个时间段的趋势图
源代码位置
欢迎访问我的github主页查看源码
https://github.com/bsbforever/oms_django