Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jchristgit/crow
A munin node implemented in Elixir.
https://github.com/jchristgit/crow
elixir graphs monitoring munin munin-node
Last synced: 24 days ago
JSON representation
A munin node implemented in Elixir.
- Host: GitHub
- URL: https://github.com/jchristgit/crow
- Owner: jchristgit
- License: isc
- Created: 2019-04-06T14:48:48.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-05-04T18:36:49.000Z (over 1 year ago)
- Last Synced: 2024-04-24T13:16:57.638Z (7 months ago)
- Topics: elixir, graphs, monitoring, munin, munin-node
- Language: Elixir
- Homepage: https://hexdocs.pm/crow
- Size: 241 KB
- Stars: 5
- Watchers: 2
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# crow
Crow implements an extensible [Munin](http://munin-monitoring.org/) node in
Elixir. Extensive documentation can be found on https://hexdocs.pm/crow.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
graphs](./static/crow_plugins_graph.png)## 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
protocol](http://guide.munin-monitoring.org/en/latest/master/network-protocol.html#network-protocol).The worker provides the connected peer with access to plugins, plugins are
modules that implement the `Crow.Plugin` behaviour. The
[`crow_plugins`](https://github.com/jchristgit/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`:
```elixir
def deps do
[
{:crow, "~> 0.1"}
]
end
```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):```ini
[myapp]
address 127.0.0.1
```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:```ini
[example.com]
address 127.0.0.1[example.com;myapp]
address 127.0.0.1
port 4950
```