Skip to content
/ statix Public
forked from lexmag/statix

Expose app metrics in the StatsD protocol

License

Notifications You must be signed in to change notification settings

adqio/statix

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Statix Build Status

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:

  • direct sending to the socket [1]
  • caching of the UDP packets header
  • IO list utilization

[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

Statix

  • statsderl (v0.3.5): ~21715 counter increments per flush

statsderl

Installation

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.

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, timing/2 and measure/2 functions will be successfully pushing metrics to the server.

Configuration

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

License

This software is licensed under the ISC license.

About

Expose app metrics in the StatsD protocol

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Elixir 100.0%