Permalink
Commits on Apr 8, 2013
  1. Adding test using framing funs for HTTP drain

    verifies the formatting of messages with a bit more depth, although it
    still doesn't try to parse them on the receiving end.
    ferd committed Apr 8, 2013
  2. Better accuracy of dropped frames for HTTP drains

    This patch moves the counting of lost messages outside of the drain
    buffer and brings it into the HTTP drain itself, which will treat
    them as a new message part of its queue, to be produced once the queue
    is empty and no errors happened while sending other messages.
    
    This frame will contain the accumulated errors for all previous frames
    (lost while parsing, and lost while trying to send and failing after too
    many retries or malformed requests).
    
    The patch also removes bits of dead code here and there, and adds tests,
    which add a dependency for meck. The dependency will never be part of
    the standard compile path, and so a new test config has been created: it
    mirrors the regular config, but allows specific dependencies not to be
    included in production.
    
    The new way to build tests has been documented.
    ferd committed Apr 5, 2013
Commits on Apr 2, 2013
  1. Upgrading dependencies

    ferd committed Apr 2, 2013
  2. Merge branch 'v60'

    ferd committed Apr 2, 2013
Commits on Apr 1, 2013
  1. fix logplex_drain:create/2

    bgentry committed Apr 1, 2013
  2. v59 -> v60 live upgrade

    bgentry committed Apr 1, 2013
  3. Upgrade path for v58 -> v59

    ferd committed with bgentry Mar 29, 2013
  4. Fixing potential race condition on drain shutdown

    Drains are sometimes shut down through the API by sending themselves a
    'shutdown' message. However,  in logplex_drain:stop/2, if the drain
    process crashes before or after the monitor is set in the call, and
    before the 'shutdown' message makes it there, the receive will work on
    '{'DOWN', Ref, process, DrainPid, _}' but the supervisor will restart it
    because it's transient.
    
    During that failure, we think we killed the pid, but we didn't (the
    crash did), so it restarts and stands alone while we're content at the
    fact it died once.
    
    This patch uses the {shutdown, call} tuple to mean the drain was killed
    using a gen_server:call demand, which will be reported in the monitor as
    a reason. This lets us switch based on the reason to make sure the drain
    was properly shut down.
    ferd committed with bgentry Mar 27, 2013
  5. Merge branch 'v59'

    bgentry committed Apr 1, 2013
  6. Adds logplex_drain:create/2.

    archaelus committed Apr 1, 2013
Commits on Mar 29, 2013
  1. Upgrade path for v58 -> v59

    ferd committed Mar 29, 2013
  2. Fixing potential race condition on drain shutdown

    Drains are sometimes shut down through the API by sending themselves a
    'shutdown' message. However,  in logplex_drain:stop/2, if the drain
    process crashes before or after the monitor is set in the call, and
    before the 'shutdown' message makes it there, the receive will work on
    '{'DOWN', Ref, process, DrainPid, _}' but the supervisor will restart it
    because it's transient.
    
    During that failure, we think we killed the pid, but we didn't (the
    crash did), so it restarts and stands alone while we're content at the
    fact it died once.
    
    This patch uses the {shutdown, call} tuple to mean the drain was killed
    using a gen_server:call demand, which will be reported in the monitor as
    a reason. This lets us switch based on the reason to make sure the drain
    was properly shut down.
    ferd committed Mar 27, 2013
  3. Merge branch 'v58'

    ferd committed Mar 29, 2013
Commits on Mar 26, 2013
Commits on Mar 25, 2013
  1. Merge pull request #31 from heroku/l2met-visibility

    Add L2met style metrics channel/drain to Logplex.
    archaelus committed Mar 25, 2013
  2. minor style changes

    bgentry committed Mar 25, 2013
  3. Add a way to specify that a config is an integer

    Use that convention for internal_metrics_channel_id
    bgentry committed Mar 25, 2013
  4. use channel ID instead of token for metrics

    For internal metrics, avoid having to lookup the channel ID from the
    token by just starting with the token.
    bgentry committed Mar 25, 2013
  5. Clean up metric msg formatting, skip tails + redis

    Rather than sending these logs through the entire message pipeline, skip
    to injecting them directly in the drain stream. Avoid putting them into
    Redis or sending them to tails.
    bgentry committed Mar 25, 2013
  6. correct config name in readme

    bgentry committed Mar 25, 2013
Commits on Mar 22, 2013
  1. Moving to blocking redo operations for the API

    Calls to certain operations may fail in large number in case of network
    or OS errors when pipelining socket operations. By using blocking calls,
    we're able to reset connections or cancel individual requests without
    breaking all subsequent calls.
    ferd committed Mar 22, 2013
Commits on Mar 21, 2013
  1. properly assemble messages for internal metrics

    construct messages using logplex_syslog_utils:to_msg()
    bgentry committed Mar 21, 2013