-[![Build Status](https://travis-ci.org/ibnfirnas/beam_stats.svg?branch=master)](https://travis-ci.org/ibnfirnas/beam_stats)
+[![Build Status](https://travis-ci.org/xandkar/beam_stats.svg?branch=master)](https://travis-ci.org/xandkar/beam_stats)
beam_stats
==========
+ Well-defined metrics-to-binary conversions, as opposed to the
nearly-arbitrary term-to-string conversions used in `folsomite`
+ Spec'd, tested and Dialyzed
+- More detailed stats:
+ - **per-process**. As much process ancestry is collected as possible, then
+ anonymous processes are aggregated to their youngest-known, named
+ predecessor - this aggregation keeps the useful breadcrumbs, while
+ reducing the number of unique names from exploding, which
+ **avoids the associated problems**:
+ 1. not very useful when there're lots of short-lived processes
+ 2. exploading disk space usage in Whisper
+ - per-ETS-table
+ - and more ... see records defined in `include` directory
+
+For an example of using pre-process stats to track-down memory leaks, here's a
+screenshot of the SSL connection process memory usage growth drop after upgrade
+from 17.5 to 18.1 (back in 2015):
+![SSL memory leak going away](screenshot--2015-10-05--18.41.30.jpg)
### Adding consumers
, {dst_host , "localhost"}
, {dst_port , 8125}
, {src_port , 8124}
+ , {num_msgs_per_packet , 10}
+
+ % If you want to name your node something other than what
+ % erlang:node() returns:
+ , {static_node_name , <<"unicorn_at_rainbow">>}
]}
, {beam_stats_consumer_graphite,
[ {consumption_interval , 60000}