Statix 
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]- Statix (v0.0.1): ~554734 counter increments per flush
- statsderl (v0.3.5): ~21715 counter increments per flush
Installation
Add Statix as a dependency to your mix.exs file:
def application() do
[applications: [:statix]]
end
defp deps() do
[{:statix, "~> 0.0.1"}]
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, and timing/2 functions will be successfully pushing metrics to the server.
Configuration
Statix could be configured globally with:
config :statix,
address: {127, 0, 0, 1}, port: 8181and on a per connection basis as well:
config :statix, Sample.Statix,
port: 8811License
This software is licensed under the ISC license.