RRD_rrdtool的介绍和使用

本文参考:

rrd4j的介绍和使用:http://blog.chinaunix.net/uid-29962463-id-4568454.html

rrdtool的介绍和使用:http://www.cnblogs.com/lightideal/archive/2012/03/14/2395613.html

rrdtool官网:http://oss.oetiker.ch/rrdtool/doc/rrdtool.en.html

rrdtool的使用

1.创建RRD数据库语法

rrdtool create filename 
    [--start|-b start time] 
    [--step|-s step] 
    [--no-overwrite] 
    [DS:ds-name:DST:dst arguments] 
    [RRA:CF:cf arguments]

1.create关键字:创建数据库。 filename:数据库的名称,后缀最好为.rrd。比如:time.rrd

2.start:第一个记录开始的时间,默认是当前时间-10秒

3.step:每条记录的时间间隔,默认是300秒

4.no-overwrite:不覆盖同文件名的数据库文件

5.DS:ds-name:DST:dst arguments 各参数说明:

a:DS关键字:用于定义数据源,一个rrd文件可以有多个DS(相当于MySQL数据库的列)

    ds-name:数据源的名称,一个rrd文件可以有多个数据源

b:DST关键字:数据源的数据类型,支持的数据类型有:

    GAUGE:      将采样的值直接存入RRD中
    COUNTER:    (当前采样值-上个采样值)/间隔时间
    DERIVE:     与COUNTER类似, 但采样数据可以是递增的,也可以是递减, 或一会递增, 一会递减
    ABSOLUTE:   当前采样的值/时间间隔
    COMPUTE:    表达式

    使用方式:

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

        DS:ds-name:COMPUTE:rpn-expression

        COMPUTE 存放对其他数据源进行公式计算的结果。

        heartbeat 心跳,一般设置为step的2倍,在心跳期间,如果没有接收到任何数据(即step > heartbeat)

            则下一次记录会记为unknown,如果心跳大于step但不是step的整数倍,则下次记录会被记为未知。

            参考http://blog.chinaunix.net/uid-29962463-id-4568454.html

        min:max PDP 的最小值 / 最大值。

6.RRA:CF:cf arguments 各参数说明:

a:RRA关键字:用于定义RRA(Round robin archive)文档,一个RRD数据库文件至少有一个RRA档,CDP就被保存在RRA中

b:CF合并方式:有以下几种类型

    AVERAGE,MIN,MAX,LAST

    使用方式:

        RRA:AVERAGE | MIN | MAX | LAST:xff:steps:rows

        xff 定义合并时间间隔内允许的 PDP 为 UNKNOWN 的比例,超过这个比例时,CDP 被置为 UNKNOWN。 一般设置为0.5不用管了。   

        steps 定义多少个 PDP 合并一个 CDP。

        rows 定义一个 RRA 档保存有多少条记录。

7.特殊字段说明:

PDP:Primary Data Point, 基本数据点,就是我们采集的每个样值

CDP:Consolidation Data Point, 合并数据点,由多个PDP按照一定的规则计算出来的

简单的来说:每个PDP是我们存储的样值,两个PDP之间的时间就是step,多个PDP按照一定的方式整合,就是CDP

2.更新/插入数据库语法

rrdtool {update | updatev} filename 
    [--template|-t ds-name[:ds-name]...] 
    [--daemon address] [--] 
    N|timestamp:value[:value...] at-timestamp@value[:value...] [timestamp:value[:value...] … ]

1.update/updatev:用于更新数据库

updatev 会输出磁盘上数据库文件更新后输出更新信息。由于 updatev 需要直接的磁盘访问,所有不能与 --daemon 共用。

filename 需要更新的 RRD 数据库的文件名

2.–template|-t ds-name[:ds-name]…

默认情况下,需要按照数据源定义的顺序更新。该参数允许你指定要更新的数据。

3.–daemon address

使用缓存后台程序更新数据库,而不直接访问磁盘。

4.N|timestamp:value[:value…]

更新时间及数据。时间格式可以是 N| 时戳;N 表示现在;时戳以自 1970-01-01 以来的秒数来表示。 

如果使用负数时间(当前时间之前多长时间),需要使用 "-" 与其它选项区分开。用 U 表示数据的值为 UNKNOWN。

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

更新时间也可以使用 AT 风格表示。

环境变量 RRDCACHED_ADDRESS 与 --daemon 选项的作用是一样的,如果两者都出现的话,前者优先。

3.读取数据语法

rrdtool fetch filename 
    CF 
    [--resolution|-r resolution] 
    [--start|-s start] 
    [--end|-e end] 
    [--daemon address]

1.fetch关键字:用于取数据

2.CF 需要读取数据的合并方式(AVERAGE,MIN,MAX,LAST)

3.–resolution|-r resolution (default is the highest resolution)

解析度,也就是你要取数据的时间间隔(单位:秒);

rrdfetch 会尽量找到最匹配的 RRA。默认为数据库文件支持的最高解析度,即时间间隔最短的;

如果想取的不是最高解析度的 RRA,假设要取得的是解析度为 x 的 RRA,开始时间和结束时间必须落在期望解析度的边界点上,即需要满足以下条件:

    a.start 时间和 end 时间都是 x 的倍数

    b.start 时间和 end 时间都在 RRA 记录的时间范围内。

4.–start|-s start (default end-1day)

开始时间;支持时戳和 AT 风格;默认是 1 天前。

5.–end|-e end (default now)

结束时间;格式与开始时间相同;默认是现在;

6.–daemon address

缓存后台程序地址。如果指定的话,在读取之前,会发 flush 指令给缓存后台程序将缓存的数据同步到磁盘。

4.绘图的语法(参数很多,可在官网上查明,我挑几个重要的写一下)

rrdtool graph|graphv filename 
    [-s|--start time] [-e|--end time] [-S|--step seconds]
    [-t|--title string] [-v|--vertical-label string]
    [-w|--width pixels] [-h|--height pixels] [-j|--only-graph] [-D|--full-size-mode]

1.时间范围:[-s|–start time] [-e|–end time] [-S|–step seconds]

2.设置标题:

图片顶部: [-t|--title string]

图片左边: [-v|--vertical-label string] --垂直显示

3.设置大小:[-w|–width pixels] [-h|–height pixels]

默认是400px,100px
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值