首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RRDTool给我一个空白图

RRDTool给我一个空白图
EN

Stack Overflow用户
提问于 2017-05-31 10:56:03
回答 1查看 595关注 0票数 0

我一直在尝试通过反复试验和研究来实现这一点。

代码语言:javascript
复制
rrdtool create attempt_db.rrd --start  1435125034 --step=10 DS:attempts:GAUGE:600:0:1000 RRA:AVERAGE:0.5:1:24

rrdtool update attempt_db.rrd  <time unixtime>:<number>

rrdtool graph latency.png -a PNG -w 7850 -h 240 --slope-mode -u 2000
--vertical-label "attempts" DEF:attempts=attempt_db.rrd:attempts:MAX LINE1:attempts

数据示例:

代码语言:javascript
复制
rrdtool update attempt_db.rrd 1495170017.8874:1
rrdtool update attempt_db.rrd 1495170248.3469:1
rrdtool update attempt_db.rrd 1495170307.1935:2
rrdtool update attempt_db.rrd 1495170323.2595:1
rrdtool update attempt_db.rrd 1495170391.3133:1
rrdtool update attempt_db.rrd 1495170396.5190:1
rrdtool update attempt_db.rrd 1495170433.3954:1
rrdtool update attempt_db.rrd 1495170433.3983:1
rrdtool update attempt_db.rrd 1495170446.6604:1
rrdtool update attempt_db.rrd 1495170447.1263:1
rrdtool update attempt_db.rrd 1495170450.4443:1
rrdtool update attempt_db.rrd 1495170479.7533:1

必须将1、2等相加才能得到每小时的费率。它们指示了恰好在那时发生的事件的数量。

我有一个有70万条记录的mysql数据库。平均流量是每小时35。我希望将每小时的事件总数作为单个数据点并绘制成图表。有时每秒有多个事件,因此必须对其求和。

我也希望能够将每个月的图表作为一个单独的线和颜色的图表。

尽管尝试了数百次,我得到的只是一张空白的图表。

更新:

代码语言:javascript
复制
rrdtool create attempt_db.rrd --step=60  --start   1435727683 DS:attempts:ABSOLUTE:600:0:1000     RRA:AVERAGE:0.5:1:1440 RRA:AVERAGE:0.5:60:2000

rrdtool graph latency.png -a PNG -w 7850 -h 240 --slope-mode -u 200 --vertical-label "attempts" DEF:attempts=attempt_db.rrd:attempts:MAX LINE1:attempts

插入数据:

代码语言:javascript
复制
mysql -u user -ppassword db -e "select concat(oob_time_sec,\":\",count(*)) from ulog2 where oob_time_sec between unix_timestamp(\"2015-07-01 00:00:00\") and unix_timestamp(\"2015-07-14 23:59:59\") group by oob_time_sec  order by oob_time_sec  " |xargs -n1  rrdtool update attempt_db.rrd

以下是对两周数据的访问。https://drive.google.com/file/d/0ByhxkwJBdusDUnBMTFI4bFlFTFE/view?usp=sharing

EN

回答 1

Stack Overflow用户

发布于 2017-06-01 08:12:17

这里有几个问题。

首先,你的RRD创建肯定是错误的。似乎您保存数据的时间不够长,并且没有定义任何摘要RRA。

其次,您没有告诉我们数据样本,所以我们无法验证它们是否在正确的范围内。(更新:现在我有了数据样本)

第三,您的图形命令没有指定时间窗口,因此不会显示包含数据的时间窗口。您也没有在您的LINE指令中指定颜色,所以无论如何都不会绘制这条线。

最后,从提供实际数据的最新更新中,我看到采样间隔通常大于心跳,因此数据被拒绝。您将需要增加心跳( DS定义中的600 ),并且可能还需要在后面的RRA定义中增加XFF设置( 0.5可能会上升到0.9)

所以,RRD的定义。您的定义指定了10s步长,数据心跳为600s。然后,您定义了一个RRA,设置为1cdp=1pdp,只有24行--这意味着它只有4分钟长。是的,你在4分钟后丢弃了所有的数据,所以永远不会得到足够的数据来完成一个小时的汇总。

备注:

  • cdp ==相关数据点。在RRA中有一排。
  • pdp ==主数据点。来自DS
  • DS ==数据源的时间归一化样本,即实际的sample
  • RRA ==循环归档;归一化后的一致数据存储在何处
  • XFF ==在CDP变为未知之前,多少部分数据是未知的==在样本成为未知

之前,样本之间有多长时间间隔

由于您说每小时(平均)有35个样本,这意味着它们大约每2分钟一次。所以,10秒的步长太小了,1分钟应该没问题。10分钟的心跳可能太大了-5分钟应该可以-但让我们暂时坚持10分钟,因为您没有指定数据样本的时间有多不规则。

然后,您想要每小时汇总一次,因此您将需要一个额外的1cdp=60pdp RRA,该RRA具有足够的行--假设200行,这将涵盖一周,但您可能需要更多行。这是因为1pdp=1step=1minute,所以我们需要60pdp来为cdp做一个小时。

所以,试试这个:rrdtool create attempt_db.rrd --step=60 DS:attempts:GAUGE:600:0:1000 \ RRA:AVERAGE:0.5:1:1440 RRA:AVERAGE:0.5:60:200

这设置了2个RRA -第一个是1天长的RRA,将值保持在1分钟精度;第二个是一周长,累积到每小时的平均值。我们有10分钟的心跳,所以只要你的数据至少如此频繁地到达,你就不会得到任何差距。

下一件要记住的事情是,您的数据需要按递增的时间顺序添加到RRD中,并且您需要输入至少62分钟的连续样本,然后才能在每小时摘要的RRA中看到任何内容。

要显示这条线,请使用LINE1:attempts#ff0000:Attempts获得一条漂亮的红线和一个图例。

注意所有这些,您应该开始看到一些图形出现--前提是您在图形命令上使用--start--end来指定包含数据的同一时间窗口!

现在,在同一张图上获得不同的月份有点复杂。首先,您需要极大地扩展第二个RRA的大小--从200 (大约一周)扩展到4500 (大约6个月)。接下来,在调用'RRD Graph‘函数时,您需要使用时间偏移量来定义具有-n*28*24*3600秒时间偏移量的多行(我建议使用周的倍数而不是日历月,以便更好地进行比较,但您可以使用任何您想要的值)。您将使用带有:start:end选项的额外DEF来完成此操作。然后在图表上以单独的线条绘制它们。有关更多信息,请参阅RRDTool manual

因此,作为最后的总结,基于您的原始命令:

代码语言:javascript
复制
rrdtool create attempt_db.rrd --step=60  --start   1435727683 \
  DS:attempts:ABSOLUTE:3600:0:1000     \
  RRA:AVERAGE:0.5:1:1440 RRA:AVERAGE:0.9:60:2000

rrdtool graph latency.png -a PNG -w 7850 -h 240 --slope-mode -u 200 \
  --start 1435727683 --end 1438404606 \
  --vertical-label "attempts" \
  DEF:attemptrate=attempt_db.rrd:attempts:MAX \
  "CDEF:attempts=attemptrate,STEPWIDTH,*" LINE1:attempts#ff0000:Attempts
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44274879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档