# crow

Crow implements an extensible [Munin]( node in
Elixir. Extensive documentation can be found on

Using Crow, you can set up informative graphs about your Elixir applications
quickly and easily. For instance, this is what the `CrowPlugins.BEAM.Memory`
and `CrowPlugins.BEAM.IO` plugins generate for you to view in Munin:

![daily & weekly memory usage & bytes via port in / out

## Overview

Crow has an acceptor process that deals with listening to
connections on a configured port (defaulting to `4949`). On connection, a
worker is spawned that speaks the [munin master-node data exchange

The worker provides the connected peer with access to plugins, plugins are
modules that implement the `Crow.Plugin` behaviour. The
[`crow_plugins`]( repository contains
a couple of plugins that can be used in monitoring the BEAM itself.

## Installation

You can install `crow` by adding it to your `mix.exs`:

def deps do
    {:crow, "~> 0.1"}

After adding Crow to your Elixir app, register the server running it in your
Munin master configuration. For instance, if you have an Elixir app with Crow
listening on port `4949`, the following configuration would suffice (assuming
you also installed a munin node):


However, it's recommended to run Crow alongside a regular Munin node, which
tends to listen on `4949` itself. Therefore, assuming you want to have
information from both your server and the app, you could use a configuration
like the following:


    port    4950

<!-- vim: set textwidth=80 sw=2 ts=2: -->