Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
lib
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Riemann Build Status

Riemann is (surprise!) a Riemann client for Elixir.

Getting Started

Chuck this into your project config:

defp deps do
  [{:riemann, " ~> 0.1.6"},
end

You'll also need to start the :riemann application, either manually (Application.start(:riemann)) or in your mix.exs application config.

Usage

Sending Events

Events are anything that implements the Dict protocol, so you'll likely want a Keyword list or a Map.

If you want to send custom attributes, stick them in the attributes key as a Dict. You can add in the state key, if you want to add a state to your event.

Send your events with Riemann.send/1 and Riemann.send_async/1, blocking and non-blocking (just call and cast). They both expect an event, or a list of events.

Riemann.send(service: "my awesome app", metric: 5.0, attributes: [build: "7543"])

Riemann.send_async([
  [service: "my awesome app req", metric: 1, state: "up", attributes: [build: "7543"]],
  %{service: "things in queue", metric: 100, attributes: [build: "7543"]}
])

Querying for Events

To ask the server for a list of events matching a query string, use Riemann.query/1.

{:ok, events} = Riemann.query('service ~= "my awesome"')
#=> events = [%{attributes: %{"build" => "7543"}, description: nil, host: "dax",
#               metric: nil, service: "my awesome app", state: nil, tags: [],
#               time: 1430329965, ttl: 60.0},
#             %{attributes: %{"build" => "7543"}, description: nil, host: "dax", metric: 1,
#               service: "my awesome app req", state: "up", tags: [], time: 1430329965,
#               ttl: 60.0}]

Configuration

Just toss this snippet into your environment's config:

config :riemann, :address,
  host: "127.0.0.1",
  port: 5555

You can also set a hostname for events to override the default (the machine's name).

config :riemann, event_host: "app host (staging)"

Caveats

  • Only TCP is supported, read this.

If you want UDP, feel free to submit a PR (with tests 👺) or bug me to implement it.

License

See the LICENSE file. (spoiler: it's MIT)

About

A Riemann client for Elixir, surprise!

Topics

Resources

License

Packages

No packages published

Languages

You can’t perform that action at this time.