XUtils

statsderl

A statsd Erlang client.


statsderl

High Performance Erlang StatsD Client

Build Status

Requirements

  • Erlang 16.0 +

Features

  • Performance optimized
  • Parse transform

API

Function Index

Environment variables:

Name Type Default Description
base_key base_key() undefined key prefix
hostname inet:ip_address() | inet:hostname() | binary() {127,0,0,1} server hostname
port inet:port_number() 8125 server port
pool_size pos_integer() 4 pool size

base_key options:

Name Source Description Example
hostname inet:gethostname/0 use the hostname "h033"
name erl -name use the long node name "nonode@nohost"
sname erl -sname use the short node name "nonode"

Parse Transform

statsderl_transform is used to pre-compute (at compile time) the scaled sample rate and StatsD packet.

-compile({parse_transform, statsderl_transform}).

Examples

1> statsderl_app:start().
ok.

2> statsderl:counter(["test", $., "counter"], 1, 0.23).
ok.

3> statsderl:decrement("test.decrement", 1, 0.5).
ok.

4> statsderl:gauge([<<"test">>, $., "gauge"], 333, 1.0).
ok.

5> statsderl:gauge_decrement([<<"test.gauge_decrement">>], 15, 0.001).
ok.

6> statsderl:gauge_increment(<<"test.gauge_increment">>, 32, 1).
ok.

7> statsderl:increment(<<"test.increment">>, 1, 1).
ok.

8> statsderl:timing("test.timing", 5, 0.5).
ok.

9> statsderl:timing_fun(<<"test.timing_fun">>, fun() -> timer:sleep(100) end, 0.5).
ok.

10> Timestamp = os:timestamp().
{1448,591778,258983}

11> statsderl:timing_now("test.timing_now", Timestamp, 0.15).
ok.

12> statsderl_app:stop().
ok.

Tests

make test

Articles

  • coming soon...