Influxdb节点模块不插入数据

时间:2014-05-15 22:52:23

标签: javascript database node.js

我刚开始尝试使用InfluxDB和Influxdb节点模块。

我有以下代码,每秒插入一些随机数据。 我没有错误但是没有数据添加到我的时间序列中。

代码是

  

var influxdb = require('Influxdb'); var sleep = require('sleep'); VAR   connection = Influxdb('172.21.5.67',8086); connection.auth({       名称:'root'       ,密码:'root'});

     

var db; var ISCSIDataSeries;

     

函数随机(低,高){       返回Math.floor(Math.random()*(高 - 低)+低); }

     

function doInsert(i){       if(db == undefined){           db = connection.database('test');           console.log('建立数据库连接');       }

if (ISCSIDataSeries == undefined) {
    ISCSIDataSeries = db.series('SCSIData');
    console.log('the series SCSIData is established');
}

var reads = random(1000, 10000);
var writes = random(2000, 20000);
var IOS = random(100000, 1000000);


ISCSIDataSeries.writePoints({
    'columns': ['Volume', 'Reads', 'Writes'],
    'points':  [reads, writes, IOS]
   }
);

db.save(); }
     

var i = 0;而(i <10){       sleep.sleep(1);

doInsert(i);
i ++; }
     

console.log('so so folks');

在运行结束时,我看不到输入的数据。 有这个包的任何经验吗?

1 个答案:

答案 0 :(得分:6)

我是InfluxDB的维护者之一。我们不使用节点,所以我不熟悉库,但我尝试了你的代码片段,但实际上它不起作用。事实证明,influxdb库不是最新的,并且是四个月前的最后一次更新,在此期间,InfluxDB api经历了重大变化。我建议您切换到the influx package,而这似乎更积极地维护。我修改了你的代码片段以使用其他软件包,并且它可以成功运行:

var influxdb = require('influx');
var sleep = require('sleep');

var root = new influxdb.InfluxDB('localhost', 8086, 'root', 'root');
root.createDatabase('SCSIData', function(err) {
  if (err && err.message.indexOf("exist") == -1) {
    console.log("Cannot create db", err);
    process.exit(1);
  };

  var client = new influxdb.InfluxDB('localhost', 8086, 'root', 'root', 'SCSIData');

  function random (low, high) { return Math.floor(Math.random() * (high - low) + low); }

  function doInsert(i) {
    var reads = random(1000, 10000);
    var writes = random(2000, 20000);
    var IOS = random(100000, 1000000);


    client.writePoint("series.name", {
      'Volume': IOS,
      'Reads': reads,
      'Writes': writes
    }, function(err) {
      if (err) {
        console.log("Cannot write data", err);
        process.exit(1);
      }
    });
  }

  var i = 0;
  while (i < 10) {
    doInsert(i);
    i++;
  }

  client.query("select count(Reads) from series.name", function(err, result) {
    if (err) {
      console.log("Cannot write data", err);
    }

    console.log("result", result)
    console.log("Number of points: ", result[0].points[0][1]);
  })

});

console.log('so long folks');