JonathanSerafini / fluent-plugin-redis_list_poller

Fluentd redis input plugin supporting batch operations

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Abandoned Project

NOTE: This project is no longer being maintained.

Fluent::Plugin::RedisListPoller

This gem provides a few input plugins for Fluentd which are designed to more efficiently poll large volumes of messages than other existing redis input plugins.

  • redis_list_poller: Input plugin designed to fetch large volumes of messages
  • redis_list_monitor: Input plugin designed to fetch queue size metrics

In additional to the standard stuff, the redis_list_poller input plugin also looks for a lock key in Redis to see whether it has been administratively disabled. This lock key follows the naming convention of redis:KEY_NAME:lock.

Requirements

  • Fluentd v0.14+

Installation

gem install fluent-plugin-redis_list_poller

Configuration Options

<source>
  @type       redis_list_poller
  host        127.0.0.1
  port        6379
  path        nil
  password    nil
  db          0
  timeout     5.0
  driver      ruby

  key         redis_list_item
  command     lpop
  batch_size  100

  tag         redis.data

  poll_interval      0.01
  sleep_interval     5
  retry_interval    5

  <parse>
    @type json
  </parse>
</source>

Benchmarks

These very simple benchmarks which give a rough ideas of the sorts of message rates one can expect from this input plugin.

They were run within a Vagrant box, with a local Redis, running on my Macbook Pro 15'. Fluentd is running on a single CPU core and is using the examples/standalone.conf.

poll_interval batch_size messages/second
1 1 1
0.5 1 2
0.2 1 5
0.01 1 100
0.001 1 457
poll_interval batch_size messages/second
1 10 10
0.5 10 20
0.2 10 50
0.01 10 1000
0.001 10 1793
poll_interval batch_size messages/second
1 100 100
0.5 100 200
0.2 100 500
0.01 100 7823
0.001 100 7600

About

Fluentd redis input plugin supporting batch operations

License:Other


Languages

Language:Ruby 99.0%Language:Shell 1.0%