Statix Build Status

Statix is an Elixir client for StatsD compatible servers. It is focusing on wicked-fast speed without sacrificing simplicity, completeness, or correctness.

What makes Statix to be the fastest library:

[1] In contrast with process-based clients it has much lower memory consumption and incredibly high throughput:

Statix

statsderl

Installation

Add Statix as a dependency to your mix.exs file:

def application() do
[applications: [:statix]]
end
defp deps() do
[{:statix, "~> 0.7"}]
end

Then run mix deps.get in your shell to fetch the dependencies.

Usage

A module that uses Statix represents a socket connection:

defmodule Sample.Statix do
use Statix
end

Before using connection the connect/0 function needs to be invoked. In general, this function is called during the invocation of your application start/2 callback.

def start(_type, _args) do
:ok = Sample.Statix.connect
# ...
end

Thereafter, the increment/1,2, decrement/1,2, gauge/2, set/2, timing/2 and measure/2 functions will be successfully pushing metrics to the server.

Configuration

Statix could be configured globally with:

config :statix,
prefix: "sample",
host: "stats.tld",
port: 8181

and on a per connection basis as well:

config :statix, Sample.Statix,
port: 8811

The defaults are:

License

This software is licensed under the ISC license.