The firehose will syphon off select messages and submit those messages to a pool of available firehose channels. This allows for subset of logs to be redirected down a known smaller group of channels. The firehose is controlled via two environment variables `FIREHOSE_CHANNEL_IDS` and `FIREHOSE_FILTER_TOKENS`. Both are comma separated lists. The former is a list the list of channels the firehose will use. The latter is a list of interested app token names that should be filtered down the firehose. ``` FIREHOSE_CHANNEL_IDS="1000,1100,1200" FIREHOSE_FILTER_TOKENS="events,metrics" ``` The above variables would filter all "events" and "metrics" log messages down the firehose. The firehose itself will shard logs across three channels, 1000, 1100, and 1200 using random distribution. The firehose can be disabled at runtime by simply calling ```erlang logplex_firehose:disable(). ``` Once disabled the firehose can be enabled again by using ```erlang logplex_firehose:enable(). ``` This allows for dynamic reconfiguration of the firehose by modifing the logplex application env variables at runtime. Those variables are lowercase versions of the OS environment variables `firehose_channel_ids` and `firehose_filter_tokens` respectively.
new team owner new reporting channel
This gen_server is currently consuming the most memory of all processes in production by a fairly large margin.
Rather than starting and stopping it.
Also head to ready_to_send state instead of sending.
We're seeing instances in production where TCP incast can cause processes to be descheduled, resulting in mailboxes backing up and running out of memory. http://www.snookles.com/slf-blog/2012/01/05/tcp-incast-what-is-it/ In cases where this happens it's better to just take a hit and drop the data than to risk letting the mailbox back up.
Wrong RFC number referenced?
This reverts commit 8ace66c. We don't actually want that formatting for HTTP headers.
This will allow the toolbelt to warn users when their apps get flagged in for excessive output volume.
Added Makefile and missing config file
use canonical repository link
# Please enter a commit message to explain why this merge is necessary, # especially if it merges an updated upstream into a topic branch. # # Lines starting with '#' will be ignored, and an empty message aborts # the commit.