Java通过rrd绘图cpu使用,rrdtool 绘图工具的使用

Rrdtool非常适合展示 随时间连续变化的数据,例如:网关的流量、apache日志中的访问数量等。

RRD作图的步骤:

建立数据源,

向其中插入数据,

确定作图的横轴(横轴单位代表的时间刻度)、纵轴, 及各自代表的含义,并画图

RRD命令参考

RRD的名词说明:

PDP:Primary Data Points (PDPs)

CF:consolidation function 合并函数

1. 建数据源的命令:

rrdtool create filename [--start|-b start time] [--step|-s step]

DS:ds-name:GAUGE | COUNTER | DERIVE | ABSOLUTE:heartbeat:min:max

[RRA: AVERRAGE | MIN | MAX | LAST :xff:steps:rows

说明:

heartbeat:参考Heartbeat和step的说明。

min 和max: 是PDP数据的取值范围,如果超过这个范围,则被标志为Unkown。

xff:xfiles factor,在合并的时候,多长时间内的数值为

unknown的情况下,合并后的值仍然是known的,即可以产生具体的值。 这个值被记为在一个interval 时间段内, unknown

data的数量与所有data数量的比例,它的取值范围是 [0,1)

steps: 定义多少个step 后对数据用CF进行一次合并。

rows:存储合并后数据的个数

进一步说明Heartbeat 和 step:

Heartbeat 定义了两个sample/update 间所能接受的最大时间间隔。如果samples间的时间间隔 小于

Heartbeat给定的数值,则为这个间隔计算一个平均数。 如果samples间的间隔 大于

Heartbeat,则这个间隔被认为是unknown。

PDP在一个step间 know的比例百用于计算PDP的平均值,如果unknown的时间大于

step所指定时间的一半,则这个PDP被标记为unknown。 这意味着在一个单独的PDP step中 存在的 known 和unknown

的取样时间 可能或不能 达到把这个PDP标记位known的程度。

Heartbeat 可以比step短(不常见) 或者长(常见);一个短的Heartbeat 意味着一个PDP

需要多个samples; 一个长的Heartbeat 可以跨越几个steps,这意味着会从一个

sample中计算出几个PDPs。一个极端的例子就是 step=5分钟, Heartbeat=1天,这种情况下每天一个sample

将导致这天内所有的PDPs都被设置成一个平均值;这个平均值是一个加权平均, 以sample在该step中 占有的时间比做权重;举例如下:

时间轴

60(step)

65: 插入sample=10

120(step), 该处的PDP= (5*10 +55*30)/60

125:插入sample=30

则120处的PDP 计算结果为:(5*10 +55*30)/60 = 28.33

2. 插入数据的命令

rrdtool {update | updatev} filename

[--template|-t ds-name[:ds-name]...]

N|timestamp:value[:value...] at-timestamp@value[:value...] [timestamp:value[:value...] ...]

解释[--template|-t ds-name[:ds-name]...]: 默认情况下,update命令认为它输入数据的顺序与 RRD中定义的数据源DS的顺序一致(除了 COMPUTE 的数据源)

N:当前时间; :用于分割多个数据源, 空格用于一个数据源中多个数据点的分割。

举例说明:

rrdtool update demo1.rrd N:3.44:3.15:U:23

向demo1的4个数据源中插入4个数据,时间位当前时间, 数据分别位3.44、 3.15、Unknown、23

rrdtool update demo2.rrd 887457267:U 887457521:22 887457903:2.7

向demo2的1个数据源中插入3组数据。

3. 作图的命令

rrdgraph

时间范围选项:[-s|--start time] [-e|--end time] [-S|--step seconds]

数据定义:

DEF:=::[:step=][:start=][:end=][:reduce=]

默认情况下,存有对应 分辨度和 合并函数的RRA中的数据 会被使用;

举例:DEF:ds0weekly=router.rrd:ds0:AVERAGE:step=7200

如果DEF中定义的DS, CF没有对应的RRA存在,则会报如下错误:

ERROR: the RRD does not contain an RRA matching the chosen CF

CDEF,VDEF的逆波兰表达式定义。

绘图例子:

rrdtool graph speed30min.png --start 920804400 --end 920806200 \

--x-grid MINUTE:2:MINUTE:10:MINUTE:10:0:%H:%M \

--vertical-label m/s \

DEF:myspeed=test.rrd:speed:AVERAGE \

CDEF:realspeed=myspeed,1000,\* \

LINE2:realspeed#FF0000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值