编译我的程序node.js - rrdtool时出错:未知的DS名称“““

x6yk4ghg  于 2023-02-08  发布在  Node.js
关注(0)|答案(2)|浏览(82)

var rrdtool =需要(“rrdtool”);
变量开始=rrdtool.now()- 10;变量数据库= rrdtool.create('test. rrd',{开始:开始,步骤:1 },[“DS:试验:量规:1:0:100”,“RRA:平均值:0.5:1:10”]);

puruo6ea

puruo6ea1#

问题不出在ds名称上,而出在下一个命令上。

db.update(start + 0, 15);

如果只保留所提供的行,则代码编译时不会出错。要更正update方法中的错误,请转到proc.js文件(node_modules/rrdtool/lib/proc.js),并将update方法更改为如下所示的内容。

exports.update = function (file, ts, values, cb) {
  var cmd = [ts];

  cmd.push(values);

  exec(['update', file, cmd.join(':')], function (err) {
    cb(err);
  });
};

在修改之前,rrdtool命令的格式不正确,该命令看起来像update --template timestamp,而不是update timestamp:value。在我的示例中,时间戳是start + 0,值是15。

fnx2tebb

fnx2tebb2#

问题出在更新方法中。如果您尝试执行以下操作:

db.update(start + 1, 90)

它将产生错误。您应该传递对象而不是值。类似于以下操作:

db.update(start + 0, {test: 15});

相关问题