ProductPromotion
Logo

Elixir

made by https://0x3d.site

GitHub - koudelka/elixir-riemann: A Riemann client for Elixir, surprise!
A Riemann client for Elixir, surprise! Contribute to koudelka/elixir-riemann development by creating an account on GitHub.
Visit Site

GitHub - koudelka/elixir-riemann: A Riemann client for Elixir, surprise!

GitHub - koudelka/elixir-riemann: A Riemann client for Elixir, surprise!

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)

Articles
to learn more about the elixir concepts.

Resources
which are currently available to browse on.

mail [email protected] to add your project or resources here 🔥.

FAQ's
to know more about the topic.

mail [email protected] to add your project or resources here 🔥.

Queries
or most google FAQ's about Elixir.

mail [email protected] to add more queries here 🔍.

More Sites
to check out once you're finished browsing here.

0x3d
https://www.0x3d.site/
0x3d is designed for aggregating information.
NodeJS
https://nodejs.0x3d.site/
NodeJS Online Directory
Cross Platform
https://cross-platform.0x3d.site/
Cross Platform Online Directory
Open Source
https://open-source.0x3d.site/
Open Source Online Directory
Analytics
https://analytics.0x3d.site/
Analytics Online Directory
JavaScript
https://javascript.0x3d.site/
JavaScript Online Directory
GoLang
https://golang.0x3d.site/
GoLang Online Directory
Python
https://python.0x3d.site/
Python Online Directory
Swift
https://swift.0x3d.site/
Swift Online Directory
Rust
https://rust.0x3d.site/
Rust Online Directory
Scala
https://scala.0x3d.site/
Scala Online Directory
Ruby
https://ruby.0x3d.site/
Ruby Online Directory
Clojure
https://clojure.0x3d.site/
Clojure Online Directory
Elixir
https://elixir.0x3d.site/
Elixir Online Directory
Elm
https://elm.0x3d.site/
Elm Online Directory
Lua
https://lua.0x3d.site/
Lua Online Directory
C Programming
https://c-programming.0x3d.site/
C Programming Online Directory
C++ Programming
https://cpp-programming.0x3d.site/
C++ Programming Online Directory
R Programming
https://r-programming.0x3d.site/
R Programming Online Directory
Perl
https://perl.0x3d.site/
Perl Online Directory
Java
https://java.0x3d.site/
Java Online Directory
Kotlin
https://kotlin.0x3d.site/
Kotlin Online Directory
PHP
https://php.0x3d.site/
PHP Online Directory
React JS
https://react.0x3d.site/
React JS Online Directory
Angular
https://angular.0x3d.site/
Angular JS Online Directory