Fluentd Logger

A listener that writes the request and response logs to the FluentD in_http collector. For efficiency, it batches multiple logs together.

// Domain Object
{
  domain-name: "example.com"
  listeners: [
    {id: log_fluentd, builder: FluentdHttpBuilder}
  ]

  log: {
    // A list of request headers to capture in the logging output
    request-headers: [
      "user-agent",
      "client-address"
    ]

    // A list of response headers to capture in the logging output
    response-headers: [
      "content-type"
    ]
  }

  listener-config: {

    // id used in the listener list
    log_fluentd: {

        // the host (and port) of the fluentd listener
        host: "localhost:8888"

        // To bleed off pressure if Fluentd is backed up, this limits the number of outstanding
        // requests to Fluentd. If there are more than `max-outstanding` requests to FluentD,
        // future requests are dropped until one of the in flight requests completes.
        max-outstanding: 10

        // The logger will wait until there are `buffer-size` entries ready to go, or will
        // flush every 100 ms to Fluentd
        buffer-size: 100
    }
  }
}

Json Log

{
  "responding_host": "http://thor:9001",
  "method": "GET",
  "@timestamp": "2016-09-05T20:57:27.214-05:00",
  "cache_status": "nocache",
  "middleware_time": {},
  "path": "http://localhost:9001/healthcheck",
  "response_headers": {"content-type": "application/json; charset=UTF-8"},
  "response_size": 387,
  "responding_service": "shield",
  "request_headers": {"client-address":"0:0:0:0:0:0:0:1","User-Agent":"curl/7.47.1"},
  "response_status": 200,
  "shield_host": "http://thor:9001",
  "template": "/healthcheck",
  "overall_time": 24
}