fluent-plugin-pgjson 0.0.9 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +17 -0
- data/Gemfile +1 -1
- data/README.md +38 -28
- data/Rakefile +3 -3
- data/fluent-plugin-pgjson.gemspec +4 -5
- data/lib/fluent/plugin/out_pgjson.rb +111 -99
- data/test/helper.rb +5 -5
- data/test/plugin/test_out.rb +28 -28
- metadata +14 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a4583a2849d4add68b6735fd279bed9d975fc9f78e88043cf07dee81bbcbb4f4
|
4
|
+
data.tar.gz: 2b13f3c83f4b35f605450c304b01d1a2510f5928609847aa7036f2ad885ec362
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ee23b29a5a9d27a29be7bfa42e1ba4970e7876a2c422d535b9f47fb155a45c606646b5857a3865d4044bc7639a1966f4af6757f407d55ae47dac9026300f3c92
|
7
|
+
data.tar.gz: 7cb84bc39f1bfa14be686a31a6b14d3f47bf552c368b99ed4dbed8844ee6b726e514f5957d01a60009ecb03a9883871fb0d34c004f3cb3988a3e1bb3d6bec1e9
|
data/.travis.yml
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
language: ruby
|
2
|
+
|
3
|
+
rvm:
|
4
|
+
- 2.2
|
5
|
+
- 2.3
|
6
|
+
- 2.4
|
7
|
+
- 2.5
|
8
|
+
|
9
|
+
addons:
|
10
|
+
postgresql: "9.6"
|
11
|
+
|
12
|
+
services:
|
13
|
+
- postgresql
|
14
|
+
|
15
|
+
before_script:
|
16
|
+
- psql -c "create role fluentd with LOGIN CREATEDB password 'fluentd';" -U postgres
|
17
|
+
- psql -c "create database pgjsontest owner fluentd encoding 'utf-8'" -U postgres
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -4,19 +4,28 @@ Output Plugin for PostgreSQL Json Type.
|
|
4
4
|
|
5
5
|
<b>Json type is availble in PostgreSQL version over 9.2</b>
|
6
6
|
|
7
|
+
## Requirements
|
8
|
+
|
9
|
+
| fluent-plugin-pgjson | fluentd | Ruby |
|
10
|
+
|----------------------|------------|--------|
|
11
|
+
| >= 1.0.0 | >= v1.0.0 | >= 2.2 |
|
12
|
+
| < 1.0.0 | >= v0.12.0 | >= 1.9 |
|
13
|
+
|
7
14
|
## Installation
|
8
15
|
|
9
|
-
|
16
|
+
```
|
17
|
+
$ fluent-gem install fluent-plugin-pgjson
|
18
|
+
```
|
10
19
|
|
11
20
|
## Schema
|
12
21
|
|
13
|
-
Specified table must have
|
22
|
+
Specified table must have following schema:
|
14
23
|
|
15
|
-
|col|type|
|
16
|
-
|
17
|
-
|{tag_col}|Text|
|
18
|
-
|{time_col}|Timestamp WITH TIME ZONE|
|
19
|
-
|{record_col}|Json|
|
24
|
+
| col | type |
|
25
|
+
|--------------|--------------------------|
|
26
|
+
| {tag_col} | Text |
|
27
|
+
| {time_col} | Timestamp WITH TIME ZONE |
|
28
|
+
| {record_col} | Json |
|
20
29
|
|
21
30
|
### Example
|
22
31
|
|
@@ -39,19 +48,13 @@ CREATE TABLE fluentd (
|
|
39
48
|
);
|
40
49
|
```
|
41
50
|
|
42
|
-
### Configurable JSON Encoder
|
43
|
-
|
44
|
-
Fluentd's standard JSON encoder is `yajl`.
|
45
|
-
`yajl` is robust for invalid byte sequence.
|
46
|
-
But this plugin's default value is `json` which is Ruby standard JSON encoder for backward compatibility.
|
47
|
-
|
48
51
|
## Configuration
|
49
52
|
|
50
53
|
### Example
|
51
54
|
|
52
55
|
```
|
53
56
|
<match **>
|
54
|
-
type pgjson
|
57
|
+
@type pgjson
|
55
58
|
host localhost
|
56
59
|
port 5432
|
57
60
|
sslmode require
|
@@ -67,20 +70,27 @@ But this plugin's default value is `json` which is Ruby standard JSON encoder fo
|
|
67
70
|
|
68
71
|
### Parameter
|
69
72
|
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
73
|
+
* **host** (string) (optional): The hostname of PostgreSQL server
|
74
|
+
* Default value: `localhost`.
|
75
|
+
* **port** (integer) (optional): The port of PostgreSQL server
|
76
|
+
* Default value: `5432`.
|
77
|
+
* **sslmode** (enum) (optional): Set the sslmode to enable Eavesdropping protection/MITM protection. See [PostgreSQL Documentation](https://www.postgresql.org/docs/10/static/libpq-ssl.html) for more details.
|
78
|
+
* Available values: disable, allow, prefer, require, verify-ca, verify-full
|
79
|
+
* Default value: `prefer`.
|
80
|
+
* **database** (string) (required): The database name to connect
|
81
|
+
* **table** (string) (required): The table name to insert records
|
82
|
+
* **user** (string) (optional): The user name to connect database
|
83
|
+
* **password** (string) (optional): The password to connect database
|
84
|
+
* **time_col** (string) (optional): The column name for the time
|
85
|
+
* Default value: `time`.
|
86
|
+
* **tag_col** (string) (optional): The column name for the tag
|
87
|
+
* Default value: `tag`.
|
88
|
+
* **record_col** (string) (optional): The column name for the record
|
89
|
+
* Default value: `record`.
|
90
|
+
* **msgpack** (bool) (optional): If true, insert records formatted as msgpack
|
91
|
+
* **encoder** (enum) (optional): JSON encoder (yajl/json)
|
92
|
+
* Available values: yajl, json
|
93
|
+
* Default value: `yajl`.
|
84
94
|
|
85
95
|
## Copyright
|
86
96
|
|
data/Rakefile
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
#!/usr/bin/env rake
|
2
2
|
require "bundler/gem_tasks"
|
3
3
|
|
4
|
-
require
|
4
|
+
require "rake/testtask"
|
5
5
|
Rake::TestTask.new(:test) do |test|
|
6
|
-
test.libs <<
|
7
|
-
test.pattern =
|
6
|
+
test.libs << "lib" << "test"
|
7
|
+
test.pattern = "test/**/test_*.rb"
|
8
8
|
test.verbose = true
|
9
9
|
end
|
10
10
|
|
@@ -1,13 +1,12 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
1
|
$:.push File.expand_path("../lib", __FILE__)
|
3
2
|
|
4
3
|
Gem::Specification.new do |s|
|
5
4
|
s.name = "fluent-plugin-pgjson"
|
6
|
-
s.version = "0.0
|
5
|
+
s.version = "1.0.0"
|
7
6
|
s.authors = ["OKUNO Akihiro"]
|
8
7
|
s.email = ["choplin.choplin@gmail.com"]
|
9
|
-
s.homepage = "https://github.com/
|
10
|
-
s.summary = %q{}
|
8
|
+
s.homepage = "https://github.com/fluent-plugins-nursery/fluent-plugin-pgjson"
|
9
|
+
s.summary = %q{Fluentd Output Plugin for PostgreSQL JSON Type.}
|
11
10
|
s.description = %q{}
|
12
11
|
s.license = "Apache-2.0"
|
13
12
|
|
@@ -16,7 +15,7 @@ Gem::Specification.new do |s|
|
|
16
15
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
17
16
|
s.require_paths = ["lib"]
|
18
17
|
|
19
|
-
s.add_runtime_dependency "fluentd"
|
18
|
+
s.add_runtime_dependency "fluentd", ">=1.0.0", "<2"
|
20
19
|
s.add_runtime_dependency "pg"
|
21
20
|
s.add_development_dependency "test-unit", ">= 3.1.0"
|
22
21
|
s.add_development_dependency "rake", ">= 11.0"
|
@@ -1,121 +1,133 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require
|
4
|
-
require
|
1
|
+
require "fluent/plugin/output"
|
2
|
+
require "pg"
|
3
|
+
require "yajl"
|
4
|
+
require "json"
|
5
5
|
|
6
6
|
module Fluent::Plugin
|
7
|
+
class PgJsonOutput < Fluent::Plugin::Output
|
8
|
+
Fluent::Plugin.register_output("pgjson", self)
|
9
|
+
|
10
|
+
helpers :compat_parameters
|
11
|
+
|
12
|
+
DEFAULT_BUFFER_TYPE = "memory"
|
13
|
+
|
14
|
+
desc "The hostname of PostgreSQL server"
|
15
|
+
config_param :host, :string, default: "localhost"
|
16
|
+
desc "The port of PostgreSQL server"
|
17
|
+
config_param :port, :integer, default: 5432
|
18
|
+
desc "Set the sslmode to enable Eavesdropping protection/MITM protection"
|
19
|
+
config_param :sslmode, :enum, list: %i[disable allow prefer require verify-ca verify-full], default: :prefer
|
20
|
+
desc "The database name to connect"
|
21
|
+
config_param :database, :string
|
22
|
+
desc "The table name to insert records"
|
23
|
+
config_param :table, :string
|
24
|
+
desc "The user name to connect database"
|
25
|
+
config_param :user, :string, default: nil
|
26
|
+
desc "The password to connect database"
|
27
|
+
config_param :password, :string, default: nil, secret: true
|
28
|
+
desc "The column name for the time"
|
29
|
+
config_param :time_col, :string, default: "time"
|
30
|
+
desc "The column name for the tag"
|
31
|
+
config_param :tag_col, :string, default: "tag"
|
32
|
+
desc "The column name for the record"
|
33
|
+
config_param :record_col, :string, default: "record"
|
34
|
+
desc "If true, insert records formatted as msgpack"
|
35
|
+
config_param :msgpack, :bool, default: false
|
36
|
+
desc "JSON encoder (yajl/json)"
|
37
|
+
config_param :encoder, :enum, list: [:yajl, :json], default: :yajl
|
38
|
+
|
39
|
+
config_param :time_format, :string, default: "%F %T.%N %z"
|
40
|
+
|
41
|
+
config_section :buffer do
|
42
|
+
config_set_default :@type, DEFAULT_BUFFER_TYPE
|
43
|
+
config_set_default :chunk_keys, ["tag"]
|
44
|
+
end
|
7
45
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
helpers :compat_parameters
|
12
|
-
|
13
|
-
DEFAULT_BUFFER_TYPE = "memory"
|
14
|
-
|
15
|
-
config_param :host , :string , :default => 'localhost'
|
16
|
-
config_param :port , :integer , :default => 5432
|
17
|
-
config_param :sslmode , :string , :default => 'prefer'
|
18
|
-
config_param :database , :string
|
19
|
-
config_param :table , :string
|
20
|
-
config_param :user , :string , :default => nil
|
21
|
-
config_param :password , :string , :default => nil , :secret => true
|
22
|
-
config_param :time_col , :string , :default => 'time'
|
23
|
-
config_param :tag_col , :string , :default => 'tag'
|
24
|
-
config_param :record_col , :string , :default => 'record'
|
25
|
-
config_param :msgpack , :bool , :default => false
|
26
|
-
config_param :encoder , :enum, list: [:yajl, :json], :default => :json
|
27
|
-
config_param :time_format, :string , :default => '%F %T.%N %z'
|
28
|
-
|
29
|
-
config_section :buffer do
|
30
|
-
config_set_default :@type, DEFAULT_BUFFER_TYPE
|
31
|
-
config_set_default :chunk_keys, ['tag']
|
32
|
-
end
|
33
|
-
|
34
|
-
def initialize
|
35
|
-
super
|
36
|
-
@conn = nil
|
37
|
-
end
|
38
|
-
|
39
|
-
def configure(conf)
|
40
|
-
compat_parameters_convert(conf, :buffer)
|
41
|
-
super
|
42
|
-
unless @chunk_key_tag
|
43
|
-
raise Fluent::ConfigError, "'tag' in chunk_keys is required."
|
46
|
+
def initialize
|
47
|
+
super
|
48
|
+
@conn = nil
|
44
49
|
end
|
45
|
-
@encoder = case @encoder
|
46
|
-
when :yajl
|
47
|
-
Yajl
|
48
|
-
when :json
|
49
|
-
JSON
|
50
|
-
end
|
51
|
-
end
|
52
50
|
|
53
|
-
|
54
|
-
|
55
|
-
|
51
|
+
def configure(conf)
|
52
|
+
compat_parameters_convert(conf, :buffer)
|
53
|
+
super
|
54
|
+
unless @chunk_key_tag
|
55
|
+
raise Fluent::ConfigError, "'tag' in chunk_keys is required."
|
56
|
+
end
|
57
|
+
@encoder = case @encoder
|
58
|
+
when :yajl
|
59
|
+
Yajl
|
60
|
+
when :json
|
61
|
+
JSON
|
62
|
+
end
|
56
63
|
end
|
57
64
|
|
58
|
-
|
59
|
-
|
65
|
+
def shutdown
|
66
|
+
if ! @conn.nil? and ! @conn.finished?
|
67
|
+
@conn.close()
|
68
|
+
end
|
60
69
|
|
61
|
-
|
62
|
-
|
63
|
-
end
|
70
|
+
super
|
71
|
+
end
|
64
72
|
|
65
|
-
|
66
|
-
|
67
|
-
|
73
|
+
def formatted_to_msgpack_binary
|
74
|
+
true
|
75
|
+
end
|
68
76
|
|
69
|
-
|
70
|
-
|
71
|
-
|
77
|
+
def multi_workers_ready?
|
78
|
+
true
|
79
|
+
end
|
80
|
+
|
81
|
+
def format(tag, time, record)
|
82
|
+
[Time.at(time).strftime(@time_format), record].to_msgpack
|
83
|
+
end
|
72
84
|
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
85
|
+
def write(chunk)
|
86
|
+
init_connection
|
87
|
+
@conn.exec("COPY #{@table} (#{@tag_col}, #{@time_col}, #{@record_col}) FROM STDIN WITH DELIMITER E'\\x01'")
|
88
|
+
begin
|
89
|
+
tag = chunk.metadata.tag
|
90
|
+
chunk.msgpack_each do |time, record|
|
91
|
+
@conn.put_copy_data "#{tag}\x01#{time}\x01#{record_value(record)}\n"
|
92
|
+
end
|
93
|
+
rescue => err
|
94
|
+
errmsg = "%s while copy data: %s" % [ err.class.name, err.message ]
|
95
|
+
@conn.put_copy_end( errmsg )
|
96
|
+
@conn.get_result
|
97
|
+
raise
|
98
|
+
else
|
99
|
+
@conn.put_copy_end
|
100
|
+
res = @conn.get_result
|
101
|
+
raise res.result_error_message if res.result_status!=PG::PGRES_COMMAND_OK
|
80
102
|
end
|
81
|
-
rescue => err
|
82
|
-
errmsg = "%s while copy data: %s" % [ err.class.name, err.message ]
|
83
|
-
@conn.put_copy_end( errmsg )
|
84
|
-
@conn.get_result
|
85
|
-
raise
|
86
|
-
else
|
87
|
-
@conn.put_copy_end
|
88
|
-
res = @conn.get_result
|
89
|
-
raise res.result_error_message if res.result_status!=PG::PGRES_COMMAND_OK
|
90
103
|
end
|
91
|
-
end
|
92
104
|
|
93
|
-
|
94
|
-
def init_connection
|
95
|
-
if @conn.nil?
|
96
|
-
$log.debug "connecting to PostgreSQL server #{@host}:#{@port}, database #{@database}..."
|
105
|
+
private
|
97
106
|
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
@conn =
|
107
|
+
def init_connection
|
108
|
+
if @conn.nil?
|
109
|
+
log.debug "connecting to PostgreSQL server #{@host}:#{@port}, database #{@database}..."
|
110
|
+
|
111
|
+
begin
|
112
|
+
@conn = PG::Connection.new(dbname: @database, host: @host, port: @port, sslmode: @sslmode, user: @user, password: @password)
|
113
|
+
rescue
|
114
|
+
if ! @conn.nil?
|
115
|
+
@conn.close()
|
116
|
+
@conn = nil
|
117
|
+
end
|
118
|
+
raise "failed to initialize connection: #$!"
|
104
119
|
end
|
105
|
-
raise "failed to initialize connection: #$!"
|
106
120
|
end
|
107
121
|
end
|
108
|
-
end
|
109
122
|
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
123
|
+
def record_value(record)
|
124
|
+
if @msgpack
|
125
|
+
"\\#{@conn.escape_bytea(record.to_msgpack)}"
|
126
|
+
else
|
127
|
+
json = @encoder.dump(record)
|
128
|
+
json.gsub!(/\\/){ '\\\\' }
|
129
|
+
json
|
130
|
+
end
|
117
131
|
end
|
118
132
|
end
|
119
133
|
end
|
120
|
-
|
121
|
-
end
|
data/test/helper.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require "bundler/setup"
|
2
|
+
require "test/unit"
|
3
3
|
|
4
|
-
$LOAD_PATH.unshift(File.join(__dir__,
|
4
|
+
$LOAD_PATH.unshift(File.join(__dir__, "..", "lib"))
|
5
5
|
$LOAD_PATH.unshift(__dir__)
|
6
|
-
require
|
7
|
-
require
|
6
|
+
require "fluent/test"
|
7
|
+
require "fluent/plugin/out_pgjson"
|
data/test/plugin/test_out.rb
CHANGED
@@ -1,26 +1,26 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
1
|
+
require "pg"
|
2
|
+
require "securerandom"
|
3
|
+
require "helper"
|
4
|
+
require "fluent/test/driver/output"
|
5
|
+
require "fluent/test/helpers"
|
6
6
|
|
7
7
|
class PgJsonOutputTest < Test::Unit::TestCase
|
8
8
|
include Fluent::Test::Helpers
|
9
9
|
|
10
10
|
HOST = "localhost"
|
11
11
|
PORT = 5432
|
12
|
-
DATABASE = "
|
12
|
+
DATABASE = "pgjsontest"
|
13
13
|
TABLE = "test_fluentd_#{SecureRandom.hex}"
|
14
|
-
USER =
|
15
|
-
PASSWORD =
|
14
|
+
USER = "fluentd"
|
15
|
+
PASSWORD = "fluentd"
|
16
16
|
|
17
17
|
TIME_COL = "time"
|
18
18
|
TAG_COL = "tag"
|
19
19
|
RECORD_COL = "record"
|
20
|
-
ENCODER =
|
20
|
+
ENCODER = Yajl
|
21
21
|
|
22
22
|
CONFIG = %[
|
23
|
-
type pgjson
|
23
|
+
@type pgjson
|
24
24
|
host #{HOST}
|
25
25
|
port #{PORT}
|
26
26
|
database #{DATABASE}
|
@@ -58,20 +58,20 @@ class PgJsonOutputTest < Test::Unit::TestCase
|
|
58
58
|
def test_invalid_chunk_keys
|
59
59
|
assert_raise_message(/'tag' in chunk_keys is required./) do
|
60
60
|
create_driver(Fluent::Config::Element.new(
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
61
|
+
"ROOT", "", {
|
62
|
+
"@type" => "pgjson",
|
63
|
+
"host" => "#{HOST}",
|
64
|
+
"port" => "#{PORT}",
|
65
|
+
"database" => "#{DATABASE}",
|
66
|
+
"table" => "#{TABLE}",
|
67
|
+
"user" => "#{USER}",
|
68
|
+
"password" => "#{PASSWORD}",
|
69
|
+
"time_col" => "#{TIME_COL}",
|
70
|
+
"tag_col" => "#{TAG_COL}",
|
71
|
+
"record_col" => "#{RECORD_COL}",
|
72
72
|
}, [
|
73
|
-
Fluent::Config::Element.new(
|
74
|
-
|
73
|
+
Fluent::Config::Element.new("buffer", "mykey", {
|
74
|
+
"chunk_keys" => "mykey"
|
75
75
|
}, [])
|
76
76
|
]))
|
77
77
|
end
|
@@ -79,7 +79,7 @@ class PgJsonOutputTest < Test::Unit::TestCase
|
|
79
79
|
|
80
80
|
def test_write
|
81
81
|
with_connection do |conn|
|
82
|
-
tag =
|
82
|
+
tag = "test"
|
83
83
|
time = event_time("2014-12-26 07:58:37 UTC")
|
84
84
|
record = {"a"=>1}
|
85
85
|
|
@@ -98,7 +98,7 @@ class PgJsonOutputTest < Test::Unit::TestCase
|
|
98
98
|
|
99
99
|
def test_escape_of_backslash
|
100
100
|
with_connection do |conn|
|
101
|
-
tag =
|
101
|
+
tag = "test"
|
102
102
|
time = event_time("2014-12-26 07:58:37 UTC")
|
103
103
|
record = {"a"=>"\"foo\""}
|
104
104
|
|
@@ -117,13 +117,13 @@ class PgJsonOutputTest < Test::Unit::TestCase
|
|
117
117
|
|
118
118
|
def test_invalid_json
|
119
119
|
with_connection do |conn|
|
120
|
-
tag =
|
120
|
+
tag = "test"
|
121
121
|
time = event_time("2014-12-26 07:58:37 UTC")
|
122
122
|
|
123
123
|
d = create_driver(CONFIG)
|
124
124
|
instance = d.instance
|
125
125
|
def instance.record_value(record)
|
126
|
-
|
126
|
+
"invalid json"
|
127
127
|
end
|
128
128
|
|
129
129
|
assert_raise RuntimeError do
|
@@ -139,7 +139,7 @@ class PgJsonOutputTest < Test::Unit::TestCase
|
|
139
139
|
conn = nil
|
140
140
|
|
141
141
|
assert_nothing_raised do
|
142
|
-
conn = PG::Connection.new(:
|
142
|
+
conn = PG::Connection.new(dbname: DATABASE, host: HOST, port: PORT, user: USER, password: PASSWORD)
|
143
143
|
end
|
144
144
|
|
145
145
|
conn
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-pgjson
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- OKUNO Akihiro
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-08-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fluentd
|
@@ -16,14 +16,20 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 1.0.0
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '2'
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
27
|
- - ">="
|
25
28
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
29
|
+
version: 1.0.0
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '2'
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: pg
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -74,6 +80,7 @@ extensions: []
|
|
74
80
|
extra_rdoc_files: []
|
75
81
|
files:
|
76
82
|
- ".gitignore"
|
83
|
+
- ".travis.yml"
|
77
84
|
- Gemfile
|
78
85
|
- LICENSE
|
79
86
|
- README.md
|
@@ -83,7 +90,7 @@ files:
|
|
83
90
|
- lib/fluent/plugin/out_pgjson.rb
|
84
91
|
- test/helper.rb
|
85
92
|
- test/plugin/test_out.rb
|
86
|
-
homepage: https://github.com/
|
93
|
+
homepage: https://github.com/fluent-plugins-nursery/fluent-plugin-pgjson
|
87
94
|
licenses:
|
88
95
|
- Apache-2.0
|
89
96
|
metadata: {}
|
@@ -106,7 +113,5 @@ rubyforge_project:
|
|
106
113
|
rubygems_version: 2.7.6
|
107
114
|
signing_key:
|
108
115
|
specification_version: 4
|
109
|
-
summary:
|
110
|
-
test_files:
|
111
|
-
- test/helper.rb
|
112
|
-
- test/plugin/test_out.rb
|
116
|
+
summary: Fluentd Output Plugin for PostgreSQL JSON Type.
|
117
|
+
test_files: []
|