No commit activity in last 3 years
No release in over 3 years
Memcached output plugin for Fluent
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

Runtime

>= 0
< 2, >= 0.14.15
 Project Readme

Fluent::Plugin::Memcached, a plugin for Fluentd

Build Status Gem Version

Send your logs to Memcached.

Requirements

fluent-plugin-memcached fluentd ruby
>= 0.1.0 >= v0.14.0 >= 2.1
< 0.1.0 >= v0.12.0 >= 1.9

Installation

$ gem install fluent-plugin-memcached

Configuration

NOTE: The version 0.2.0 includes breaking changes for configuration. Please see here if you use v0.1.1 or earlier.

In your Fluentd configuration, use @type memcached.

<match dummy>
  @type memcached
  host localhost # Optional, default:localhost
  port 11211     # Optional, default:11211

  key id            # Required, set a key name, the value of which is used as memcached key
  include_key false # Optional, default: false
  increment false   # Optional, default: false

  format csv             # Optional, default: csv
  fields field1,field2   # Required, set field names, the value of which is stored in memcached
  delimiter " "          # Optional, default: " "
  force_quotes false     # Optional, default: false
</match>

Use cases

There are some results when the following input is coming.

input: {"id" => "key1", "field1" => "value1", "field2" => "value2", "field_incr" => "1"}

To store a data as CSV

<match dummy>
  @type memcached
  key id
  fields field1,field2
  delimiter ,
</match>

The result of stored a data is as below:

  • key: key1
  • value: value1,value2

To store a data as JSON

<match dummy>
  @type memcached
  key id
  fields field1,field2
  format json
</match>

The result of stored a data is as below:

  • key: key1
  • value: {"field1":"value1","field2":"value2"}

To store a data as single incremental value

<match dummy>
  @type memcached
  key id
  increment true
  format single_value
  message_key field_incr
</match>

The result of stored a data is as below:

  • key: key1
  • value: 1

Then the following input is also coming,

input: {"id" => "key1", "field1" => "value3", "field2" => "value4", "field_incr" => "2"}

The result of stored a data will be as below:

  • key: key1
  • value: 3

Fluentd v0.14 style

When using v0.14 style configuration, you can choose three different types of buffer behavior:

Simple Buffered Output

<match dummy>
...
  <buffer>
    @type memory
  </buffer>
</match>

Tag Separated Buffered Output

<match dummy>
...
  <buffer tag>
    @type memory
  </buffer>
</match>

Time Sliced Buffered Output

<match dummy>
...
  <buffer tag, time>
    @type memory
    timekey 3600 # for 1 hour
  </buffer>
</match>

For previous versions

In v0.1.1 or earlier, to store a data as JSON, like this:

<match dummy>
  @type memcached
  host localhost
  port 11211
  value_format json
  param_names param1,param2
</match>

Contributing

Bug reports and pull requests are welcome.

License