Privacy Policy Generator For Business, Blog or Website

var StatsD = require('hot-shots'), client = new StatsD({ port: 8020, globalTags: { env: process.env.NODE_ENV }, errorHandler: errorHandler, }); // Increment: Increments a stat by a value (default is 1) client.increment('my_counter'); // Decrement: Decrements a stat by a value (default is -1) client.decrement('my_counter'); // Histogram: send data for histogram stat (DataDog and Telegraf only) client.histogram('my_histogram', 42); // Distribution: Tracks the statistical distribution of a set of values across your infrastructure. // (DataDog v6) client.distribution('my_distribution', 42); // Gauge: Gauge a stat by a specified amount client.gauge('my_gauge', 123.45); // Set: Counts unique occurrences of a stat (alias of unique) client.set('my_unique', 'foobar'); client.unique('my_unique', 'foobarbaz'); // Event: sends the titled event (DataDog only) client.event('my_title', 'description'); // Check: sends a service check (DataDog only) client.check('service.up', client.CHECKS.OK, { hostname: 'host-1' }, ['foo', 'bar']) // Incrementing multiple items client.increment(['these', 'are', 'different', 'stats']); // Incrementing with tags client.increment('my_counter', ['foo', 'bar']); // Sampling, this will sample 25% of the time the StatsD Daemon will compensate for sampling client.increment('my_counter', 1, 0.25); // Tags, this will add user-defined tags to the data // (DataDog and Telegraf only) client.histogram('my_histogram', 42, ['foo', 'bar']); // Using the callback. This is the same format for the callback // with all non-close calls client.set(['foo', 'bar'], 42, function(error, bytes){ //this only gets called once after all messages have been sent if(error){ console.error('Oh noes! There was an error:', error); } else { console.log('Successfully sent', bytes, 'bytes'); } }); // Timing: sends a timing command with the specified milliseconds client.timing('response_time', 42); // Timing: also accepts a Date object of which the difference is calculated client.timing('response_time', new Date()); // Timer: Returns a function that you call to record how long the first // parameter takes to execute (in milliseconds) and then sends that value // using 'client.timing'. // The parameters after the first one (in this case 'fn') // match those in 'client.timing'. var fn = function(a, b) { return a + b }; client.timer(fn, 'fn_execution_time')(2, 2); // Async timer: Similar to timer above, but you instead pass in a function // that returns a Promise. And then it returns a Promise that will record the timing. var fn = function () { return new Promise(function (resolve, reject) { setTimeout(resolve, n); }); }; var instrumented = statsd.asyncTimer(fn, 'fn_execution_time'); instrumented().then(function() { console.log('Code run and metric sent'); }); // Async timer: Similar to asyncTimer above, but it instead emits a distribution. var fn = function () { return new Promise(function (resolve, reject) { setTimeout(resolve, n); }); }; var instrumented = statsd.asyncDistTimer(fn, 'fn_execution_time'); instrumented().then(function() { console.log('Code run and metric sent'); }); // Sampling, tags and callback are optional and could be used in any combination (DataDog and Telegraf only) client.histogram('my_histogram', 42, 0.25); // 25% Sample Rate client.histogram('my_histogram', 42, { tag: 'value'}); // User-defined tag client.histogram('my_histogram', 42, ['tag:value']); // Tags as an array client.histogram('my_histogram', 42, next); // Callback client.histogram('my_histogram', 42, 0.25, ['tag']); client.histogram('my_histogram', 42, 0.25, next); client.histogram('my_histogram', 42, { tag: 'value'}, next); client.histogram('my_histogram', 42, 0.25, { tag: 'value'}, next); // Use a child client to add more context to the client. // Clients can be nested. var childClient = client.childClient({ prefix: 'additionalPrefix.', suffix: '.additionalSuffix', globalTags: { globalTag1: 'forAllMetricsFromChildClient'} }); childClient.increment('my_counter_with_more_tags'); // Close statsd. This will ensure all stats are sent and stop statsd // from doing anything more. client.close(function(err) { console.log('The close did not work quite right: ', err); });

Comments