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 (v0.0.1): ~554734 counter increments per flush
- statsderl (v0.3.5): ~21715 counter increments per flush
Add Statix as a dependency to your mix.exs file:
def application() do
[applications: [:statix]]
end
defp deps() do
[{:statix, "~> 0.7"}]
endThen run mix deps.get in your shell to fetch the dependencies.
A module that uses Statix represents a socket connection:
defmodule Sample.Statix do
use Statix
endBefore 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
# ...
endThereafter, 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.
Statix could be configured globally with:
config :statix,
prefix: "sample",
host: "stats.tld",
port: 8181and on a per connection basis as well:
config :statix, Sample.Statix,
port: 8811The defaults are:
- prefix:
nil - host:
"127.0.0.1" - port:
8125
This software is licensed under the ISC license.

