| 1 | [![Build Status](https://travis-ci.org/ibnfirnas/beam_stats.svg?branch=master)](https://travis-ci.org/ibnfirnas/beam_stats) |
| 2 | |
| 3 | beam_stats |
| 4 | ========== |
| 5 | |
| 6 | Periodically collects and pushes VM metrics to arbitrary consumers. Defaults to |
| 7 | StatsD (`beam_stats_consumer_statsd`) and includes off-by-default implementations for Graphite |
| 8 | (`beam_stats_consumer_graphite`) and CSV file (`beam_stats_consumer_csv`) |
| 9 | consumers). |
| 10 | |
| 11 | Essentially like `folsomite`, but better. Better in the following ways: |
| 12 | |
| 13 | - More-general: consumers other than graphite can be defined |
| 14 | - More-focused: only concerned with VM metrics, while `folsomite` ships off |
| 15 | _everything_ from `folsom` (in addition to VM metrics) |
| 16 | - Easier-to-reason-about implementation: well-defined metrics-to-binary |
| 17 | conversions, as opposed to the nearly-arbitrary term-to-string conversions |
| 18 | used in `folsomite` |
| 19 | - Spec'd, tested and Dialyzed |
| 20 | |
| 21 | #### Configure consumers |
| 22 | |
| 23 | ```erlang |
| 24 | {env, |
| 25 | [ {production_interval , 30000} |
| 26 | , {consumers, |
| 27 | [ {beam_stats_consumer_statsd, |
| 28 | [ {consumption_interval , 60000} |
| 29 | , {dst_host , "localhost"} |
| 30 | , {dst_port , 8125} |
| 31 | , {src_port , 8124} |
| 32 | ]} |
| 33 | , {beam_stats_consumer_graphite, |
| 34 | [ {consumption_interval , 60000} |
| 35 | , {host , "localhost"} |
| 36 | , {port , 2003} |
| 37 | , {timeout , 5000} |
| 38 | ]} |
| 39 | , {beam_stats_consumer_csv, |
| 40 | [ {consumption_interval , 60000} |
| 41 | , {path , "beam_stats.csv"} |
| 42 | ]} |
| 43 | |
| 44 | , {some_custom_consumer_module, |
| 45 | [ {foo, "abc"} |
| 46 | , {bar, 123} |
| 47 | ]} |
| 48 | |
| 49 | ]} |
| 50 | ]} |
| 51 | ``` |