Popularity
5.2
Stable
Activity
0.0
Stable
57
4
7

Monthly Downloads: 70
Programming language: Elixir
License: MIT License
Tags: Third Party APIs    
Latest version: v0.1.5

riemann alternatives and similar packages

Based on the "Third Party APIs" category.
Alternatively, view riemann alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of riemann or a related project?

Add another 'Third Party APIs' Package

README

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)


*Note that all licence references and agreements mentioned in the riemann README section above are relevant to that project's source code only.