SpringBoot结合GaussDB进行系统性能监控
变ip的问题调整:
然后使用vi打开
Ifcfg-ens33全部代码如下.
把=号前面的不变,后面的改成你自己电脑的参数.
System.txt系统监控文件
(1)开发首先有表,有表入库
11个字段,GaussDB的时间字段只能是timestamp(时间戳)
在sys创建表
由smith进行管理,把查询,插入,删除功能给它
这里更新, 服务器实时产生,数据实际反映服务器,分析数据,这里没有更新。
企业(15天30T数据,瘦身)
启动GaussDB
切换用户,python启动
同一个表mysql存 gaussdb存
- 先进入到GuassDB的数据库
建表
连接sys就可以了
连接smith,给权限
然后连接smith,测试一下
表可以连接后,客户端开发
(2)SpringBoot开发
分析:每小时内cpu,内存,硬盘的使用最大值,平均值,最小值
写语句 :Sql
Select hour(mytime),max(disk_rate) from mysystem group by hour(mytime)
表是空的,插入数据 insert
分析 select 方法
数据存在文件中,如果再存数据库,数据存两份,空间翻倍。
数据分析后在数据库中不需要存在
把数据库表里的数据删除
存:数据库聚合函数,函数算法优化,直接使用即可
数据分析:数据库里分析即可
数据分析的结果:
小时 取大硬盘数
对于java 来说结果是列表
列表中的数据是两个值对,值对在java中用map或者是类
Map内存数据, 这里使用类
定义结果类
第一步:与表对应的java bean
在bean包中建立一个java类MySystem;
代码的属性与表一致
通过分析,还有结果类Result
结果类有两个数据:小时,XX使用率
第二步:写mapper
通过逻辑分析,这里需要对数据库3操作,增查删。
给3个接口
增:批增,一次增加多个数据
Insert into myuser values(1,1),(2,2),(3,3)
在mybatis 中循环出values
第三步写xml文件
初步的xml中的sql语句
现在这个分析是固定的
select hour(mytime),max(disk_rate) from sys.mysystem group by hour(mytime)
分析,把hour换成动态,max换在动态,解决用户按需求进行分析,mybatis有变量模板,字符格式模式,变量#{},先占位.
字符格式模板不做格式,变量里的字符直接取 {},{}解决不了sql的注入,
Select(fenxi_shijian,fenxi_fangfa)
Select ${fenxi_shijian}(mytime),${fenxi_fangfa}(disk_rate) from sys.mysystem group by ${fenxi_shijian}(mytime)
用#出现
Select * from my where userame=? And password=?
用$出现
Select * from my where username=aaa and password=aaa
强调xml的parameterType只可一个对象
做法
再做一个java bean类
再改Mapper接口的参数
这样xml只有一个参数
最后把sql完善在Gaussdb的语句
最后得到动态分析
最后的动态语句
第四 步实现Service
Service把mapper的3接口调用
第五步:实现controller
采用模拟数据
先查看后端模拟的数据是否正常运行
访问时报错
后台错误
报错调整加入一个@Param
把xml文件改了一下,把insert的$符号改成#号
然后查数据库,有数据
表示插入成功
第二句分析
select extract({myunit} from mytime),{myfunc}({myfield}) from sys.mysystem group by extract({myunit} from mytime)
希望
select extract(hour from mytime),max(disk_rate) from sys.mysystem
group by extract(hour from mytime)
在GaussDB测试结果:
注意,结果中时间是 ,最后disk_rate是,这两个名字与java类不同
这里把语句起别名,把命名myhour,把命名成rate
改的sql语句如下.
然后,运行程序看打印
现在把Controller变成读取文件