我刚开始尝试使用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');
在运行结束时,我看不到输入的数据。 有这个包的任何经验吗?
答案 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');