Commit | Line | Data |
---|---|---|
fa46439c SK |
1 | [![Build Status](https://travis-ci.org/ibnfirnas/beam_stats.svg?branch=master)](https://travis-ci.org/ibnfirnas/beam_stats) |
2 | ||
caf75ed8 SK |
3 | beam_stats |
4 | ========== | |
5 | ||
ef2b90d7 SK |
6 | Periodically collects and pushes VM metrics to arbitrary consumer processes, |
7 | which, in-turn, can do whatever they want with the given data (such as | |
8 | serialize and forward to some time series storage). Includes, off by default, | |
9 | example implementations of consumers for: | |
caf75ed8 | 10 | |
ef2b90d7 SK |
11 | - StatsD (`beam_stats_consumer_statsd`) |
12 | - Graphite (`beam_stats_consumer_graphite`) | |
13 | - CSV file (`beam_stats_consumer_csv`) | |
14 | ||
15 | Essentially like `folsomite`, but different. Different in the following ways: | |
caf75ed8 SK |
16 | |
17 | - More-general: consumers other than graphite can be defined | |
18 | - More-focused: only concerned with VM metrics, while `folsomite` ships off | |
19 | _everything_ from `folsom` (in addition to VM metrics) | |
ef2b90d7 SK |
20 | - Easier-(for me!)-to-reason-about implementation: |
21 | + Well-defined metrics-to-binary conversions, as opposed to the | |
22 | nearly-arbitrary term-to-string conversions used in `folsomite` | |
23 | + Spec'd, tested and Dialyzed | |
875ffc3a | 24 | |
199b5f71 SK |
25 | ### Adding consumers |
26 | ||
27 | #### At app config time | |
875ffc3a SK |
28 | |
29 | ```erlang | |
30 | {env, | |
31 | [ {production_interval , 30000} | |
32 | , {consumers, | |
33 | [ {beam_stats_consumer_statsd, | |
34 | [ {consumption_interval , 60000} | |
35 | , {dst_host , "localhost"} | |
36 | , {dst_port , 8125} | |
37 | , {src_port , 8124} | |
38 | ]} | |
39 | , {beam_stats_consumer_graphite, | |
40 | [ {consumption_interval , 60000} | |
41 | , {host , "localhost"} | |
42 | , {port , 2003} | |
43 | , {timeout , 5000} | |
44 | ]} | |
45 | , {beam_stats_consumer_csv, | |
46 | [ {consumption_interval , 60000} | |
47 | , {path , "beam_stats.csv"} | |
48 | ]} | |
875ffc3a | 49 | , {some_custom_consumer_module, |
ef2b90d7 SK |
50 | [ {some_custom_option_a, "abc"} |
51 | , {some_custom_option_b, 123} | |
875ffc3a SK |
52 | ]} |
53 | ||
54 | ]} | |
55 | ]} | |
56 | ``` | |
199b5f71 SK |
57 | |
58 | #### Dynamically | |
59 | ||
60 | ```erlang | |
61 | beam_stats_consumer:add(consumer_module, ConsumerOptions). | |
62 | ``` | |
63 | ||
64 | ### Removing consumers | |
65 | ||
66 | Not yet implemented. |