【问题标题】:How can I create RRD files in Perl?如何在 Perl 中创建 RRD 文件?
【发布时间】:2009-12-29 09:39:59
【问题描述】:

我有一个单独的应用程序每 10 秒打印一次日志。我需要从日志文件创建 RRD 文件。我需要一些 Perl 代码来读取日志文件并仅在没有图表的情况下创建 RRD。

我还浏览了 CPAN 中可用的 Perl 模块,即 RRD::Simple 和 RRD::Simple::Examples,但我仍然需要帮助。

【问题讨论】:

  • 到目前为止你有什么?你试过什么?这不是一个人们会给你代码的网站,它是一个人们会帮助你解决编程问题的网站。
  • @Chris:我需要帮助才能开始用 perl 编码来创建 rrd。如果您可以建议我开始使用任何示例代码。
  • 好吧,模块的概要部分向您展示了该做什么。当您尝试这些示例时发生了什么?

标签: perl rrdtool rrd


【解决方案1】:

我会从RRD::Simple 开始。文档中有一些示例代码。由于您不需要创建图表,因此只需跳过示例的该部分即可。

一些示例读取单个数据样本,调用update 函数一次,然后退出。这些脚本旨在定期运行以实时收集数据。可能与您的需求更相关的示例是 ApacheAccessLogActivity.pl,它读取 Apache 日志文件,使用正则表达式解析每一行,进行一些分析以找出它刚刚读取的内容,然后调用 update,所有在一个循环中。请注意,该示例使用独立函数而不是面向对象的版本。

如果您已经阅读了该模块的文档并且需要更多关于如何使用它的信息,或者如果您已经尝试过它并发现它有一些缺点阻碍您使用它,那么请更具体地了解你需要做什么。

RRDTool::OO 看起来也很有希望。

【讨论】:

    【解决方案2】:

    我推荐 RRDTool::OO。 摘自 perldoc:

    $rrd->create( ... ) 创建一个新的循环数据库 (RRD)。一个 RRD 由一个或 更多数据源和一个或多个档案:

               $rrd->create(
                    step        => 60,
                    data_source => { name      => "mydatasource",
                                     type      => "GAUGE" },
                    archive     => { rows      => 5 });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-17
      • 1970-01-01
      • 2017-07-01
      • 2013-04-05
      • 2020-06-08
      • 2010-12-11
      相关资源
      最近更新 更多