J'essaie d'envoyer des données au processus de cache de carbone en graphite sur le port 2003 à l'aide de
1) terminal 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();
});
Cela fonctionne bien lorsque j’envoie des données à l’aide de la commande terminal window sur mon Ubuntu. Cependant, je ne suis pas sûr de savoir comment envoyer le format timestamp unix Epoch de nodejs?
Grpahite comprend la métrique dans ce format metric_path valeur timestamp\n
Le système JavaScript Date
natif fonctionne en millisecondes et non en secondes, mais sinon, il correspond au même "temps de traitement" qu'à UNIX.
Vous pouvez arrondir les fractions de seconde et obtenir l’époque UNIX en procédant comme suit:
Math.floor(new Date() / 1000)
Si vous le pouvez, je vous recommande vivement d'utiliser moment.js
. Pour obtenir le nombre de millisecondes depuis UNIX Epoch, faites
moment().valueOf()
Pour obtenir le nombre de secondes depuis UNIX Epoch, faites
moment().unix()
Vous pouvez également convertir des temps comme ceci:
moment('2015-07-12 14:59:23', 'YYYY-MM-DD HH:mm:ss').valueOf()
Je fais ça tout le temps.
Pour installer moment.js
sur le nœud,
npm install moment
et de l'utiliser
var moment = require('moment');
moment().valueOf();
Les méthodes d'assistance qui le simplifient, copiez/collez ce qui suit sur votre JS:
Date.prototype.toUnixTime = function() { return this.getTime()/1000|0 };
Date.time = function() { return new Date().toUnixTime(); }
Maintenant, vous pouvez l'utiliser où vous voulez par de simples appels:
// 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())
Démo:
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())