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"}]
end
Then 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
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.
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:
- prefix:
nil
- host:
"127.0.0.1"
- port:
8125
This software is licensed under the ISC license.