@shopify/statsd
TypeScript icon, indicating that this package has built-in type declarations

4.4.0 • Public • Published

@shopify/statsd

Build Status Build Status License: MIT npm version

An opinionated StatsD client for Shopify Node.js servers and other StatsD utilities.

Installation

yarn add @shopify/statsd

Usage

Client

Create a StatsD client with the following:

import {StatsDClient} from '@shopify/statsd';

const statsdClient = new StatsDClient({
  host: 'some-statsd-host.com',
  port: '8125',
  prefix: 'AppName',
  suffix: 'AppSuffix',
  globalTags: {hello: 'world'},
});

distribution

Tracks the statistical distribution of a set of values across your infrastructure.

statsdClient.distribution(
  'navigationComplete',
  100, // in milliseconds
  ['navigation', 'complete', 'performance'], // user-defined tags to go with the data
);

timing

Represents the timing stat

statsdClient.timing(
  'request_duration',
  100, // in milliseconds
  [], // user-defined tags to go with the data
);

gauge

Represents the gauge stat

statsdClient.gauge(
  'my_gauge',
  123.45, // value
  [], // user-defined tags to go with the data
);

increment

Increments a stat by 1.

statsdClient.increment(
  'myCounter',
  ['navigation', 'complete', 'performance'], // user-defined tags to go with the data
);

Increment can also be supplied a value to increment the metric by.

statsdClient.increment(
  'myCounter',
  ['navigation', 'complete', 'performance'], // user-defined tags to go with the data,
  {}, // additional options
  4, // value to increment by
);

close

Close statsd client. This will ensure all stats are sent and stop statsd from doing anything more.

statsdClient.close();

childClient

Create a child client and add more context to the client. The globalTags will be merged. The prefix and suffix will be concatenated like in this example.

statsdClient.childClient({
  prefix: '.NewPrefix',
  suffix: '.NewSuffix',
  globalTags: {foo: 'bar'},
});

In this example the prefix will be AppName.NewPrefix, the suffix will be AppSuffix.NewSuffix and the globalTags will be {hello: 'world', foo: 'bar'}.

Dependencies (2)

Dev Dependencies (0)

    Package Sidebar

    Install

    npm i @shopify/statsd

    Weekly Downloads

    17,155

    Version

    4.4.0

    License

    MIT

    Unpacked Size

    17.5 kB

    Total Files

    15

    Last publish

    Collaborators

    • jaimie.rockburn
    • blittle
    • shopify-admin
    • maryharte
    • crisfmb
    • pmoloney89
    • netlohan
    • st999999
    • justin-irl
    • megswim
    • wcandillon
    • nathanpjf
    • shopify-dep
    • goodforonefare
    • lemonmade
    • vsumner
    • wizardlyhel
    • antoine.grant
    • tsov
    • andyw8-shopify
    • henrytao
    • hannachen
    • vividviolet
    • bpscott