我有一个 RRDtool 图表,在重启后出现了巨大的峰值。我尝试使用流行的removespikes.pl
脚本,但只返回“未找到峰值!”。处理这个问题的最佳方法是什么?
答案1
我推荐这个perl 脚本,可以在 rrdtool 贡献页面上找到。我以前用过它,效果很好。它会自动移除峰值,甚至还会备份 .rrd 文件 :)
引用 README 文件:
removespikes.pl 的自述文件
此版本的 removespikes.pl 基于 Vins Vilaplana 和 Humberto Rossetti Baptistas 代码。
我添加了基于值的斩断(-t 值)、仅分析模式(-a)、详细/调试输出的控制(-d/-v)、帮助选项(-h)和一些代码清理。
removespikes>./removespikes.pl -h REMOVESPIKES:从 RRDtool 数据库中删除峰值。
用法:./removespikes.pl -d -a [-l 数字] [-t maxval] 数据库名称
其中:-d 启用调试消息
-a 仅运行脚本的分析阶段
-h 打印此消息
-l 设置基于 bin 的峰值截断的 % 限制(默认值:0.6)
-t 设置记录被截断的值。默认情况下禁用。启用基于值的截断将禁用基于 bin 的截断。-v 详细模式。显示一些信息 name_of_database 是要处理的 rrd 文件。
移除尖峰>
享受
编辑:我现在看到您已经尝试过,removespikes.pl
但得到了“未找到峰值”的结果。尝试将其与 -t 标志一起使用,这应该可以解决您的问题。
答案2
我的正常回答是“你不能编辑 RRD 文件。”或“你必须使用rrdtool
它来转储它,编辑转储并恢复它 - 这太麻烦了!”,但你看起来像个好人,所以我会指出你rrd编辑器:-)
答案3
removespikes.pl
上面答案中的linked版本不支持该-t
选项。不过,最新版本20140730-勒克斯确实如此。你可以在官方 RRDTool 网站上找到它:http://oss.oetiker.ch/rrdtool/pub/contrib/
答案4
我用另一种方法解决了这个问题:计算数据的 95 分位数,然后将其应用于图表的最大高度。这样你就可以保留峰值,但最终会得到很多有用的图表,即使没有峰值。但在创建图表之前,它需要更多的计算。我可以发布一个带有 PHP 代码的要点来实现这一点。