whole_func_string: 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,
          port: 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;
      }
    }
  }
func_code_string: 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,
          port: 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;
      }
    }
  }
func_documentation_string: /*
  The callback function applied to each probe, its responsibility is to
  return the results back to the appropriate collection system.