Statix Save

Fast and reliable Elixir client for StatsD-compatible servers

Project README

Statix

CI Status Hex Version

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:

Statix

It is possible to measure that yourself.
for _ <- 1..10_000 do
  Task.start(fn ->
    for _ <- 1..10_000 do
      StatixSample.increment("sample", 1)
    end
  end)
end

Make sure you have StatsD server running to get more realistic results.

See the documentation for detailed usage information.

Installation

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

defp deps() do
  [{:statix, ">= 0.0.0"}]
end

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

License

This software is licensed under the ISC license.

Open Source Agenda is not affiliated with "Statix" Project. README Source: lexmag/statix
Stars
274
Open Issues
18
Last Commit
3 weeks ago
Repository
License
ISC

Open Source Agenda Badge

Open Source Agenda Rating