Fluent::Plugin::PgJson, a plugin for Fluentd
Output Plugin for PostgreSQL Json Type.
Json type is availble in PostgreSQL version over 9.2
Requirements
| fluent-plugin-pgjson | fluentd | Ruby | 
|---|---|---|
| >= 1.0.0 | >= v1.0.0 | >= 2.2 | 
| < 1.0.0 | >= v0.12.0 | >= 1.9 | 
Installation
$ fluent-gem install fluent-plugin-pgjson
Schema
Specified table must have following schema:
| col | type | 
|---|---|
| {tag_col} | Text | 
| {time_col} | Timestamp WITH TIME ZONE | 
| {record_col} | Json | 
Example
CREATE TABLE fluentd (
    tag Text
    ,time Timestamptz
    ,record Json
);
JSONB?
Yes! Just define a record column as JSONB type.
CREATE TABLE fluentd (
    tag Text
    ,time Timestamptz
    ,record Jsonb
);
Configuration
Example
<match **>
  @type pgjson
  #host localhost
  #port 5432
  #sslmode prefer
  database fluentd
  table fluentd
  user postgres
  password postgres
  #time_col time
  #tag_col tag
  #record_col record
  #msgpack false
  #encoder yajl
</match>
Parameter
| parameter | description | default | 
|---|---|---|
| host | The hostname of PostgreSQL server | localhost | 
| port | The port of PostgreSQL server | 5432 | 
| sslmode | Set the sslmode to enable Eavesdropping protection/MITM protection. See PostgreSQL Documentation for more details. (disable, allow, prefer, require, verify-ca, verify-full) | 
prefer | 
| database | The database name to connect | |
| table | The table name to insert records | |
| user | The user name to connect database | nil | 
| password | The password to connect database | nil | 
| time_col | The column name for the time | time | 
| tag_col | The column name for the tag | tag | 
| record_col | The column name for the record | record | 
| msgpack | If true, insert records formatted as msgpack | false | 
| encoder | JSON encoder (yajl, json) | 
yajl | 
Copyright
- Copyright (c) 2014- OKUNO Akihiro
 - License
- Apache License, version 2.0