日常使用报表二次开发

2018-06-15 11:48 更新

日常使用报表调用关系

日常使用报表 _report 函数

(1)获取报表的时间范围

time_from = int(time.mktime(startTime))+1

time_till = int(time.mktime(endTime))

(2)获取需要输出的host 列表【主要是获取hostid】

host_list = self._hosts_get()

如果没有--hostid和--hostgroupid参数,此函数将会返回所有的主机列表

(3)对每个host输出和想要输出的item相关的item信息列表【主要是获取对应hostid的相关itemid】

itemid_all_list = self.item_get(host_info[0],itemName)

 item_get 调用的是zabbix官方api item.get

(4)依次对要查询的itemid进行求最大值,最小值以及平均值

report_min,report_max,report_avg = self.__trend_get(itemid,time_from,time_till)

这个函数的主要参数就是itemid 和 time_from,time_till

 __trend_get调用的是zabbix官方api trend.get,同时对返回的数据进行了下求值运算(最大值,最小值,平均值)
计算方法为:
最大值:特定时间范围内,trend.get 获取特定itemid的最大值中的最大值
最小值:特定时间范围内,trend.get 获取特定itemid的最小值中的最小值
平均值:特定时间范围内,trend.get 获取特定itemid的平均值重新求平均值
trend.get 为zabbix3.0 加的api,故低于zabbix3.0的版本需要使用history.get 进行计算

(5)对输出的信息进行处理

 if history_type=="3":    

    report_min=int(report_min)

    report_max=int(report_max)

    report_avg=int(report_avg)

report_min=str(report_min)

report_max=str(report_max)

report_avg=str(report_avg)

类型是3时,结果为整数型的

0 - numeric float; 
1 - character; 
2 - log; 
3 - numeric unsigned; 整型
4 - text.

想要对数据进行处理时,可以从第5步方面着手处理,good luck


    


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号