私はポート2003でグラファイトカーボンキャッシュプロセスにデータを送信しようとしています
1)Ubuntuターミナル
echo "test.average 4 `date +%s`" | nc -q0 127.0.0.1 2003
2)NODEJS
var socket = net.createConnection(2003, "127.0.0.1", function() {
socket.write("test.average "+assigned_tot+"\n");
socket.end();
});
私のubuntuでターミナルウィンドウコマンドを使用してデータを送信するとうまくいきます。ただし、nodejsからUNIXタイムスタンプ形式のタイムスタンプを送信する方法がわかりませんか?
Grpahiteは、この形式のメトリックを認識しますmetric_path値タイムスタンプ\ n
ネイティブJavaScript Date
システムは、秒ではなくミリ秒で動作しますが、それ以外の場合はUNIXの「エポック時間」と同じです。
以下を実行することにより、秒の端数を切り捨ててUNIXエポックを取得できます。
Math.floor(new Date() / 1000)
可能であれば、moment.js
を使用することを強くお勧めします。 UNIXエポック以降のミリ秒数を取得するには、次を実行します。
moment().valueOf()
UNIXエポック以降の秒数を取得するには、次のようにします。
moment().unix()
次のように時間を変換することもできます。
moment('2015-07-12 14:59:23', 'YYYY-MM-DD HH:mm:ss').valueOf()
私はいつもそうしています。
Nodeにmoment.js
をインストールするには、
npm install moment
そしてそれを使用する
var moment = require('moment');
moment().valueOf();
それを単純化するヘルパーメソッド、JSの上に以下をコピー/貼り付けます:
Date.prototype.toUnixTime = function() { return this.getTime()/1000|0 };
Date.time = function() { return new Date().toUnixTime(); }
これで、簡単な呼び出しで好きな場所で使用できます:
// Get the current unix time:
console.log(Date.time())
// Parse a date and get it as Unix time
console.log(new Date('Mon, 25 Dec 2010 13:30:00 GMT').toUnixTime())
デモ:
Date.prototype.toUnixTime = function() { return this.getTime()/1000|0 };
Date.time = function() { return new Date().toUnixTime(); }
// Get the current unix time:
console.log("Current Time: " + Date.time())
// Parse a date and get it as Unix time
console.log("Custom Time (Mon, 25 Dec 2010 13:30:00 GMT): " + new Date('Mon, 25 Dec 2010 13:30:00 GMT').toUnixTime())