nl_tokens: / * The callback function applied to each probe its responsibility is to return the results back to the appropriate collection system .
pl_tokens: function update_stats ( data ) { var timenow = parseInt ( new Date ( ) . getTime ( ) / 1000 ) ; for ( var v in data ) { switch ( config . output_format ) { case 'console' : console . log ( [ [ os . hostname ( ) , v ] . join ( '.' ) , data [ v ] , timenow ] . join ( ' ' ) ) ; break ; case 'graphite' : console . log ( [ [ os . hostname ( ) , v ] . join ( '.' ) , data [ v ] , timenow ] . join ( ' ' ) ) ; break ; case 'rrd-simple' : /*
         * rrd-simple doesn't support sub-minute granularity, and RRD is
         * notoriously bad at being able to sample accurate data, so we round to
         * the nearest minute.
         */ var off = timenow % 60 ; timenow = ( off <= 30 ) ? timenow - off : timenow + ( 60 - off ) ; /*
         * POST data
         */ var data = [ [ timenow , v ] . join ( '.' ) , data [ v ] ] . join ( ' ' ) ; var http = require ( 'http' ) ; var opts = { host : config . rrdsimple . host , <mask> : config . rrdsimple . port , path : config . rrdsimple . path , method : 'POST' , headers : { 'Content-Type' : 'application/x-www-form-urlencoded' , 'Content-Length' : data . length } } console . log ( '[' + new Date ( ) . toISOString ( ) + '] ' + [ timenow , v ] . join ( '.' ) + ' -> ' + opts [ 'host' ] ) ; var req = http . request ( opts , function ( res ) { // We currently fire-and-forget.. } ) . write ( data ) ; break ; } } }