位置: 编程技术 - 正文
推荐整理分享Python下rrdtool模块的基本使用方法(r+python),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:python中的re模块,python re模块详解,python re模块下载,python r studio,python lr模型,python re模块下载,rrt python,rrt python,内容如对您有帮助,希望把文章链接给更多的朋友!
最近需要用python根据收集到的数据进行绘图,决定使用rrd数据库,然后配合rrdtool来绘图,故学习一下rrdtool的用法。
用法如下:
创建:create(...)create(args..): Set up a new Round Robin Database create filename [--start|-b start time] [--step|-s step] [DS:ds-name:DST:heartbeat:min:max] [RRA:CF:xff:steps:rows] filename:是rrd的文件名,可以以rrd结尾。 --step:rrdtool期望每隔多长事件收到一个值,默认是5分钟。 --start:rrdtool第一个记录的起始时间,rrdtool不会接收任何数据的时间小于起始时间。例如你在update时给出的时间小于起始时间,则rrdtool会拒绝该值 DS:DS用于定义数据源,是用来存放结果的变量名。该变量名在画图时会用到。 DST:用来设置数据源的类型,有COUNTER、GUAGE、DERIVE、ABSOLUTE、COMPUTE等5种类型。 COUNTER:数值必须是递增的 DERIVE:和COUNTER类似,不过数据可递增可递减 ABSOLUTE:他每次假定前一个时间间隔的值是0,然后计算平均值 GAUGE:不做任何变化,直接存入rra中 COMPUTE:他不接收具体值,而是定义一个表达式,然后算出某个值 heartbeat: min: max: RRA:rra指定数据如何存放,他可以保存不同时间间隔的数据。力图每5分钟产生一条数据,这样一小时就是条,如果每分钟一条数据,这样一小时就是两条数据,这样一天,一年下来会有很多条数据,但是rrd数据库的大小是固定的,所以就有一个合并数据的方式了。这就是rra的功能。合并方式由CF指定。 CF:CF就是用来设置数据合并的功能,有AVERAGE、MAX、MIN、LAST等4种类型,分别表示对PDP取平均、最大、最小、当前值。 xff:xff字段设置一个比例值,rrdtool会把多个PDP合并为一个CDP,如果这写PDP中有值为UNKNOW的PDP,那么CDP的值该怎么计算,xff就是设置一个比例,当PDP中UNKNOW的比例超过多少是,就无法合成正常的CPD,合成的CPD值也为UNKNOW。 steps:表示多少个PDP合成一个CDP rows:表示总共存多少个CDP?也就是可以保存多少数据?
PDP:在每个规定的时间间隔内rrdtool都会收到一个值,rrdtool在收到该值后,根据DST的设置,会计算出另一个值,这个值就是PDP。 CDP:rrdtool使用多个PDP合并出一个CDP,也就是执行CF的后果,然后把这个CDP的值存入rra中。
查看第一次/最后一次数据更新时间:first(...)first(filename): Return the timestamp of the first data sample in an RRD
last(...)last(filename): Return the timestamp of the last data sample in an RRD
查看rrd结构信息:info(...)info(filename): extract header information from an rrd
取出rrd的值:fetch(...)fetch(args..): fetch data from an rrd. fetch filename CF [--resolution|-r resolution] [--start|-s start] [--end|-e end] filename:要取出数据的rrd文件 --start:可选,默认是end-1day --end:可选,默认是now CF:AVERAGE、MAX、MIN、LAST。前提是你的rrd中有该类型的rra才可以。
更新rrd数据:update(...)update(args..): Store a new set of values into the rrd update filename [--template|-t ds-name[:ds-name]...] N|timestamp:value[:value...] [timestamp:value[:value...] ...] filename:要更新的rrd文件 --template: -t ds-name[:ds-name]:设置更新那个DS的数据 N|timestamp:时间戳,表示数据在哪个时间点采集的,N表示now。 value[:value...]:一个rrd文件可以有多个DS,所以一次update可以更新多个value。
update插入值后,并不会有返回,无法知道插入是否正常,可以用updatev
带返回值的插入:updatev(...)updatev is called in the same manner as update 和update类似,不过每次插入后会返回一个状态码。
画图:graph(...)graph(args..): Create a graph based on data from one or several RRD graph filename [-s|--start seconds] [-e|--end seconds] [-x|--x-grid x-axis grid and label] [-y|--y-grid y-axis grid and label] [--alt-y-grid] [--alt-y-mrtg] [--alt-autoscale] [--alt-autoscale-max] [--units-exponent] value [-v|--vertical-label text] [-w|--width pixels] [-h|--height pixels] [-i|--interlaced] [-f|--imginfo formatstring] [-a|--imgformat GIF|PNG|GD] [-B|--background value] [-O|--overlay value] [-U|--unit value] [-z|--lazy] [-o|--logarithmic] [-u|--upper-limit value] [-l|--lower-limit value] [-g|--no-legend] [-r|--rigid] [--step value] [-b|--base value] [-c|--color COLORTAG#rrggbb] [-t|--title title] [DEF:vname=rrd:ds-name:CF] [CDEF:vname=rpn-expression] [PRINT:vname:CF:format] [GPRINT:vname:CF:format] [COMMENT:text] [HRULE:value#rrggbb[:legend]] [VRULE:time#rrggbb[:legend]] [LINE{1|2|3}:vname[#rrggbb[:legend]]] [AREA:vname[#rrggbb[:legend]]] [STACK:vname[#rrggbb[:legend]]]
filename:图片的名称,默认是PNG格式 --start:图片X轴数据的起始时间 --end:图片X轴数据的结束时间 --x-grid x-axis grid and label: --y-grid y-axis grid and label: --alt-y-grid --alt-y-mrtg --alt-autoscale --alt-autoscale-max --units-exponent --vertical-label text Y轴的文字说明 --width pixels X轴的大小 --height pixels Y轴的大小 --interlaced --imginfo formatstring --imgformat GIF|PNG|GD 图片格式 --background value --overlay value --unit value --lazy --logarithmic --upper-limit value Y轴数据值的上限,默认会自动调整Y轴的数字 --lower-limit value Y轴数据值的下限 --no-legend 取消图表下方的图例 --rigid 严格按照upper-limit/lower-limit来绘制 --step value --base value 默认1K= 可以调整1K= --color COLORTAG#rrggbb --title title 图表上方的标题 DEF:vname=rrd:ds-name:CF 定义绘图用的数据源,也就是从那个RRD中取数据,因为RRA有多种类型,所以需要指定CF CDEF:vname=rpn-expression 定义合并值, PRINT:vname:CF:format GPRINT:vname:CF:format 在图表的下方输出最大值、最小值之类 COMMENT:text 用来输出一些字符串 HRULE:value#rrggbb 在图表上绘制水平线 VRULE:time#rrggbb 在图表上绘制垂直线 LINE{1|2|3}:vname 使用线条来绘制vname的数据图 AREA:vname 使用方块来绘制vname的数据图 STACK:vname
下面附上一个例子:
浅析Python中signal包的使用 在liunx系统中要想每隔一分钟执行一个命令,最普遍的方法就是crontab了,如果不想使用crontab,经同事指点在程序中可以用定时器实现这种功能,于是就
python实现mysql的单引号字符串过滤方法 本文实例讲述了python实现mysql的单引号字符串过滤方法。分享给大家供大家参考,具体如下:最主要用这个函数,可以处理MySQLdb.escape_string(content).classGui
Python的Flask开发框架简单上手笔记 最简单的helloworld#!/usr/bin/envpython#encoding:utf-8fromflaskimportFlaskapp=Flask(__name__)@app.route('/')defindex():return'helloworld'if__name__=='__main__':app.run(debug=True)#app.run(host='
标签: r+python
本文链接地址:https://www.jiuchutong.com/biancheng/378604.html 转载请保留说明!友情链接: 武汉网站建设