Statix is an Elixir client for StatsD-compatible servers. It is focused on speed without sacrificing simplicity, completeness, or correctness.
What makes Statix the fastest library around:
- direct sending to socket [1]
- caching of the UDP packet header
- connection pooling to distribute the metric sending
- diligent usage of IO lists
[1] In contrast with process-based clients, Statix has lower memory consumption and higher throughput – Statix v1.0.0 does about 876640 counter increments per flush:
It is possible to measure that yourself.
for_<-1..10_000doTask.start(fn->for_<-1..10_000doStatixSample.increment("sample",1)endend)endMake sure you have StatsD server running to get more realistic results.
See the documentation for detailed usage information.
Add Statix as a dependency to your mix.exs file:
defpdeps()do[{:statix,">= 0.0.0"}]endThen run mix deps.get in your shell to fetch the dependencies.
This software is licensed under the ISC license.
