fluent-plugin-out-http, a plugin for Fluentd

A generic fluentd output plugin for sending logs to an HTTP endpoint.

NOTE: This plugin name is overlapped from Fluentd core plugin which name is out_http. But core plugin does not provide buffered/non-buffered switch and batch/non-batch request switch. If you want to use these switch features. Please consider to use this plugin.

Build Status


For bundler

Write the following line in Gemfile:

gem "fluent-plugin-out-http"

and then,

$ bundle install

for fluentd

$ fluent-gem install fluent-plugin-out-http

For td-agent

$ td-agent-gem install fluent-plugin-out-http

Configuration options

<match *>
  @type http
  endpoint_url    http://localhost.local/api/
  ssl_no_verify   false  # default: false
  http_method     put    # default: post
  serializer      json   # default: form
  rate_limit_msec 100    # default: 0 = no rate limiting
  raise_on_error  false  # default: true
  recoverable_status_codes 503, 400 # default: 503
  cacert_file     /etc/ssl/endpoint1.cert # default: ''
  client_cert_path /path/to/client_cert.crt # default: ''
  private_key_path /path/to/private_key.key # default: ''
  private_key_passphrase yourpassphrase # default: ''
  custom_headers  {"token":"arbitrary"} # default: nil
  authentication  basic  # default: none
  username        alice  # default: ''
  password        bobpop # default: '', secret: true
  token           tokent # default: ''
  buffered        true   # default: false. Switch non-buffered/buffered mode
  bulk_request    false  # default: false. Send events as application/x-ndjson
  compress_request true  # default: false. Send compressed events

Usage notes

If you'd like to retry failed requests, consider using fluent-plugin-bufferize. Or, specify appropriate recoverable_status_codes parameter.

To send events with bulk_request, you should specify bulk_request as true Note that when this parameter as true, Fluentd always send events as application/x-ndjson. Currently, application/x-ndjson is only supported MIME type for bulk_request.

Heavily based on fluent-plugin-growthforecast

How to release

  1. Update gem.version of the gemspec file.
  2. Update CHANGELOG.md.
  3. Commit them.
  4. $ bundle exec rake release
    • It will add and push the tag, and publish the gem.