[打造自己的监控系统]利用Django在前端展示Oracle 状态趋势(附源代码)

2020-08-19 10:34:39 浏览数 (1)

开发环境

操作系统: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中定义

  1. 如果请求方法为post(提交表单后),首先验证输入是否正确,如果正确则获取相应的ipaddress,tnsname,performance_type等信息,
  2. 接下来根据performance_type的类型(物理读,逻辑读等)调用monitor/command/views_oracleperformance.py文件里面的方法来得到我们想要的数据,这个方法的讲解在昨天的公众号,大家可自行查看
  3. 最后我们将TOP SQL相关的内容封装成字典重定向到相应的template文件中

template文件

这里我们使用highcharts.html文件来显示趋势图

这里通过highcharts来展现数据库性能趋势状态

Django允许在html文件内部使用程for循环的形式来迭代列表

关于oracle_peforance页面就说到这了,performance页面可自行参考源码

效果展示

1.数据库系统状态趋势(天为单位)

首先是表单提交之前的界面

这里选择需要查询的数据库,支持多个数据库同时查询

然后是起止时间以及性能类型

最后可以选择天和周为单位

点击提交后会展示各个数据库该时间段的趋势图


2.数据库系统状态趋势(小时为单位)

首先是表单提交之前的界面

这里选择需要查询的数据库

然后是起止时间以及性能类型

最后是是否比较基线,这个后续会有单独介绍

点击提交后会展示出每天各个时间段的趋势图

源代码位置

欢迎访问我的github主页查看源码

https://github.com/bsbforever/oms_django

0 人点赞