如果您不熟悉RRDTOOL,可以先参看前面的RRDTOOL入门,简单来说,RRDTOOL不仅仅是数据库工具,它还是一种强大的前端绘图工具,可以直接根据所存的数据绘出复杂的图形。其绘图主要使用graph命令来操作。

一、graph 操作的语法

rrdtool graph filename [option ...]  [data definition ...] [data calculation ...]  [variable definition ...] [graph element ...] [print element ...]

其中的 data definiton、variable definition 、data calculation、分别是下面的格式

DEF:<vname>=<rrdfile>:<ds-name>:<CF>[:step=<step>][:start=<time>]
[:end=<time>][:reduce=<CF>]
VDEF:vname=RPN expression
CDEF:vname=RPN expression

其中 filename 就是你想要生成的图片文件的名称,默认是 png 。你可以通过选项修改图片的类型,可以有 PNG、SVG、EPS、PDF四种。

A)DEF 是 Definition (定义)的意思。定义什么呢?你要绘图,总要有数据源吧?DEF 就是告诉 RRDtool 从那个 RRD 中取出指定

你可能会感到奇怪,为什么还有一个 CF 字段?因为 RRA 有多种  CF 类型,有些 RRA 可能用来保存平均值、有些 RRA 可能用于统计最大值、最小值等等。所以你必须同时指定使用什么 CF 类型的 RRA的数据。至于 :start 和 :end 、:reduce 则用得比较少,最常用的就是 :step 了,它可以让你控制 RRDtool 从那个 RRA 中取数据。

B)VDEF 是 Variable Definition (变量定义)的意思。

C)CDEF 是 Calculation Define 的意思。CDEF 支持很多数学运算,甚至还支持简单的逻辑运算 if-then-else

二、选项分类

本部分我们按照官方文档的方式,把选项分成几大类,分为 :

A)Time range : 用于控制图表的X轴显示的起始/结束时间,也包括从RRA中提取指定时间的数据。

B)Labels :用于控制 X/Y 轴的说明文字。

C)Size :用于控制图片的大小。

D)Limits :用于控制 Y 轴的上下限。

E)Grid :用于控制 X/Y 轴的刻度如何显示。

F)Miscellaneous :其他选项。例如显示中文、水印效果等等。

G)Report :数字报表

需要说明的是,本篇当中并不是列出了所有选项的用法,只是列出较为常用的选项,如果想查看所有选项的的用法,可以到官方站点下载文档。

三、时间范围控制(Time Range)

[-s|--start time] [-e|--end time] [-S|--step seconds]

既然要绘图,就应该有一个起始/结束的时间。Graph 操作中有 –s ,-e 选项。这两个选项即可以用于控制图表的 X 轴显示的时间范围,也可以用于控制 RRDtool 从 RRA 中提取对应时间的数据。如果没有指定 –-end ,默认为 now;如果没有指定 –-start,则默认为1天前。如果两者都没有 指定,则图表默认显示从当前算起1天内的。

例如:

[root@dns1 bob]# rrdtool graph 1.png /
> --start now-1h /    # X 轴显示1个小时的长度
> DEF:value1=eth0.rrd:eth0_in:AVERAGE:start=now-600:end=now-300 / # 但只取10分钟前到5分钟前的这部分
> AREA:value1#00ff00:in
475x168
[root@dns1 bob]#

四、说明文字(Label)

[-t|--title string] [-v|--vertical-label string]

-t 是用于图表上方的标题,-v 是用于 Y 轴的说明文字
五、图表大小(Label)

[-w|--width pixels] [-h|--height pixels]

这里说图表大小而不是图片大小,是因为 –w ,-h 控制的是 X/Y 轴共同围起来的那部分大小,而不是整个图片的大小,这点在前面就可以看出了。

默认的图表大小是 400 (长)x 100 (高),但一般会返回497x179 这样的数字,这个才是图片的大小。

六、Y 轴上下限(Limits)

 [-u|--upper-limit value] [-l|--lower-limit value] [-r|--rigid]

默认情况下,RRDtool 会自动调整 Y 轴的数字,来配合当前的数值大小。如果想禁止该特性,可以通过 –upper-limit 和 –lower-limit 来做限制,表示Y轴显示的值从多少到多少。如果没有指定 –rigid ,则在图表的上下边界处还是会有一些延伸,但如果指定了 -–rigid ,则严格按照 –-upper-limit 和 –-lower-limit 绘制。

在使用 –lower-limit 时要注意,如果数据中有负数,如果 -–lower-limit 为 0,则负数部分是显示不出来的。

七、数字报表

这就需要用到 GRPINT 和 COMMENT 语句了。
GPRINT 就是在图表的下方(仍然属于图片的内部)输出最大值、最小值、平均值这些东东;COMMENT 就是用来输出一些字符串,例如报表的表头。
A)GPRINT的格式是GPRINT:vname:CF:format 。由于 format 部分太多参数了,我这里就用最常用的那个 : %x.ylf 。
B)COMMENT 的格式是COMMENT:text 。要注意 COMMENT 默认是不输出换行的,如果要输出换行,必须用 “/n” 。
下面就以一个实例来说明如何打印报表 : 绘制1小时前的流量图,并打印数字报表(参照 abel 兄给出的例子)

[root@dns1 bob]# rrdtool graph 1.png /
> --start now-1h -w 600 -n DEFAULT:8 /
> DEF:value1=eth0.rrd:eth0_in:AVERAGE /
> DEF:value2=eth0.rrd:eth0_out:AVERAGE /
> COMMENT:" /n" /
> COMMENT:" 当前值----------平均值----------最大值------最小值----/n"      > COMMENT:" /n"
> AREA:value1#00FF00:"流入" /
> GPRINT:value1:LAST:'%13.2lf'  /
> GPRINT:value1:AVERAGE:%13.2lf  /
> GPRINT:value1:MAX:%13.2lf  /
> GPRINT:value1:MIN:%13.2lf  /
> COMMENT:" /n" /
> LINE2:value2#ff0000:"流出":STACK / # 注意这里是 STACK 方式
> GPRINT:value2:LAST:%13.2lf  /
> GPRINT:value2:AVERAGE:%13.2lf  /
> GPRINT:value2:MAX:%13.2lf  /
> GPRINT:value2:MIN:%13.2lf  /
> COMMENT:" /n" /
> COMMENT:” /n” /
> COMMENT:"LAST UPDATED /:$(date '+%Y-%m-%d %H/:%M')/n" -Y
687x270
[root@dns1 bob]#

注意比较 Y 轴刻度值和“流出”部分的值的关系, Y 轴刻度值 —“流入” =“流出”

上面的  COMMENT 一是输出表头,二是输出空行。注意,要用 COMMENT 输出空行,必须用 COMMENT:’ /n’ 。

注意到 ‘/’ 前面的空格吗?这个是不可以漏的,否则就不会有空行的效果了。

使用RRDTOOL进行绘图相关推荐

  1. rrdtool php 绘图,PHP封装RRDTool的操作

    class RRD { //rrdtool 执行权限 private $rrdBinPath = '/usr/bin/rrdtool'; //rrd文件地址 private $rrdFile; //默 ...

  2. rrdtool php 绘图,利用PHP的Popen实现RRDTOOL作图的动态输出

    error_reporting(E_ALL); //作图命令,注意看 graph 后面加了一个连接符 $command = '/opt/rrdtool/bin/rrdtool graph - --st ...

  3. java rrdtool_rrdtool安装和使用方法介绍,利用rrdtool 进行数据的收集绘图统计,网页显示...

    rrdtool安装和使用方法介绍,利用rrdtool 进行数据的收集绘图统计,网页显示. RRDTOOL的绘图~ 所谓的"Round Robin" 其实是一种存储数据的方式,使用固 ...

  4. RRDTool学习资料备忘

    RRDtool 简介 [color=blue] **************************************************************************** ...

  5. RRDtool简体中文教程

    本文转自:http://www.chinaunix.net 作者:ailms RRDtool 简介 [color=blue] ************************************* ...

  6. RRDTool中文手册

    RRDTool 中文手册 转自http://blog.chinaunix.net/u/12909/showart_2131009.html rrdtool  学习结构图 http://www.hiad ...

  7. RRDTool 中文手册-简易入门

    一.简介 RRDtool是由Tobias Oetiker 编写并由全球各地的许多人贡献的工具.本篇文档的作者是Alex van den Bogaerdt 主要是帮助你理解RRDtool是什么,它能够帮 ...

  8. RRDTool和mrtg的比较

    RRDTool 和 mrtg 的比较   MRTG 的优点 : 简单.易上手,基本安装完了之后只要更改一下配置文件即可. 缺点 : 1 .使用文本式的数据库,数据不能重复使用: 2 .只能按日.周.月 ...

  9. rrdtool学习--在linux上进行rrdtool解释学习--很好的教程

    转自http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=864861# 十分感谢此贴,给我了很多帮助. 还有后面一位仁兄的实例也给了了一 ...

最新文章

  1. 云计算DHT分布式存储
  2. 摄影师张梦格App项目总结
  3. Asp.Net Core(.net内核)
  4. C# 使用Awaiter
  5. 终于下决心写一写自己的博客了!
  6. Vue组件学习之组件自定义事件
  7. 【CSS3】---only-child选择器+only-of-type选择器
  8. [Spark][Python]对HDFS 上的文件,采用绝对路径,来读取获得 RDD
  9. npm install -g cnpm --registry=https://registry.npm.taobao.org报警告
  10. python_列表——元组——字典——集合
  11. (转)某期货系统漏洞致巨损二审在即 千万损失谁来买单?
  12. 默纳克主板c2图纸+底座图纸。维修利器
  13. linux下python网络编程框架-twisted安装手记,Linux下Python网络编程框架-Twisted安装手记 | 学步园...
  14. 02 必备SQL和表关系及授权
  15. js输出sb (!(~+[]) + {})[--[~+][+[]] * [~+[]] + ~~!+[]] + ({} + [])[[~!+[]] * ~+[]] 图解
  16. 《嵌入式 – GD32开发实战指南》第19章 程序加密
  17. win10OneNote登录微软 账号登陆出现错误码0x80190001
  18. java8的sorted,Java8排序stream.sorted()
  19. 查看Mac本机路由器IP地址
  20. 中国“千禧一代”是一群什么样的消费者?

热门文章

  1. java数据结构通讯录管理系统_数据结构课程设计—通讯录管理系统
  2. 【springboot中jasypt-spring-boot-starter的使用】
  3. java里部分文件全选怎么整,全选和取消 怎么办
  4. 使用计算机对炼钢过程进行,转炉炼钢计算机数采监控技术及应用
  5. Web Caching(Web缓存)
  6. SOC RTC时钟——为什么实时时钟的晶振都是32.768KHZ呢?
  7. vue直播流播放器DPlayer使用
  8. DPlayer播放m3u8
  9. Docker部署percona
  10. 【毕业答辩】毕业设计答辩如何答辩?