fluent-plugin-remote_syslog 0.3.3 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/Gemfile +2 -0
- data/README.md +58 -4
- data/VERSION +1 -1
- data/fluent-plugin-remote_syslog.gemspec +3 -6
- data/lib/fluent/plugin/out_remote_syslog.rb +137 -38
- data/test/plugin/out_remote_syslog.rb +49 -27
- data/test/test_helper.rb +6 -3
- metadata +8 -50
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5b7602139f0aea954fe6d7fbfe8ea83aedc6a218
|
4
|
+
data.tar.gz: 041633a7947a2d028a91a91cc4b8fb60d1255990
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e6582e74ecb339c7d39a862ca5122b935271940d8c8322ec214aada1adcb2d13f79a9a11ef8571fa87e9028d27b1c5f3c0f88d74d21dcdc2076fac1323eabb74
|
7
|
+
data.tar.gz: 443286f184920a6f0a35bab20e58fa6b1c837ee2246d044ff66f2c3ad93e31d62741ab8a145535e77badbfa13c7d7bffab1c65c8e000f74ea4b248876255292b
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
## 1.0.0
|
2
|
+
|
3
|
+
* Support fluentd-0.14 or later features [#24](https://github.com/dlackty/fluent-plugin-remote_syslog/pull/24)
|
4
|
+
* Support TCP and TLS protocol [#24](https://github.com/dlackty/fluent-plugin-remote_syslog/pull/24)
|
5
|
+
* Not support fluentd-0.12.0 from this version
|
6
|
+
|
1
7
|
## 0.3.3
|
2
8
|
|
3
9
|
* Allow override "severity" or "facility" from records [#19](https://github.com/dlackty/fluent-plugin-remote_syslog/pull/19)
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -4,6 +4,13 @@
|
|
4
4
|
|
5
5
|
[Fluentd](http://fluentd.org) plugin for output to remote syslog serivce (e.g. [Papertrail](http://papertrailapp.com/))
|
6
6
|
|
7
|
+
## Requirements
|
8
|
+
|
9
|
+
| fluent-plugin-remote_syslog | fluentd | ruby |
|
10
|
+
| ------------------- | --------- | ------ |
|
11
|
+
| >= 1.0.0 | >= v0.14.0 or >= v1.0.0 | >= 2.1 |
|
12
|
+
| < 1.0.0 | >= v0.12.0 | >= 1.9 |
|
13
|
+
|
7
14
|
## Installation
|
8
15
|
|
9
16
|
```bash
|
@@ -13,16 +20,63 @@
|
|
13
20
|
## Usage
|
14
21
|
|
15
22
|
```
|
16
|
-
<match foo>
|
17
|
-
type remote_syslog
|
23
|
+
<match foo.bar>
|
24
|
+
@type remote_syslog
|
18
25
|
host example.com
|
19
26
|
port 514
|
20
27
|
severity debug
|
21
|
-
|
28
|
+
program fluentd
|
29
|
+
hostname ${tag[1]}
|
30
|
+
|
31
|
+
<buffer tag>
|
32
|
+
</buffer>
|
33
|
+
|
34
|
+
<format>
|
35
|
+
@type single_value
|
36
|
+
message_key msg
|
37
|
+
</format>
|
22
38
|
</match>
|
23
39
|
```
|
24
40
|
|
25
|
-
|
41
|
+
## Configuration
|
42
|
+
|
43
|
+
| name | type | placeholder support | description |
|
44
|
+
| -------------- | ------- | ----------- | --------------------------------- |
|
45
|
+
| hostname | string | support | departure of log |
|
46
|
+
| host | string | support | syslog target host |
|
47
|
+
| port | integer (default: `514`) | | syslog target port |
|
48
|
+
| host_with_port | string | support | parameter for <host>:<port> style |
|
49
|
+
| facility | string (default: `"user"`) | support | syslog facility |
|
50
|
+
| severity | string (default: `"notice"` | support | syslog severity |
|
51
|
+
| program | string (default: `"fluentd"` | support | syslog program name |
|
52
|
+
| protocol | enum (udp, tcp) (default: `udp`) | | transfer protocol |
|
53
|
+
| tls | bool (default: false) | | use TLS (tcp only) |
|
54
|
+
| ca_file | string | | ca_file path (tls mode only) |
|
55
|
+
| verify_mode | integer | | SSL verification mode (tls mode only) |
|
56
|
+
| packet_size | integer (default: `1024`) | | size limitation for syslog packet |
|
57
|
+
| timeout | integer | | TCP transfer timeout. if value is 0, wait forever |
|
58
|
+
| timeout_exception | bool (default: `false`) | | if value is true, raise exception by transfer timeout |
|
59
|
+
| keep_alive | bool (default: `false`) | | use TCP keep alive |
|
60
|
+
| keep_alive_idle | integer | | set TCP keep alive idle time |
|
61
|
+
| keep_alive_cnt | integer | | set TCP keep alive probe count |
|
62
|
+
| keep_alive_intvl | integer | | set TCP keep alive probe interval |
|
63
|
+
|
64
|
+
### Common Configuration
|
65
|
+
|
66
|
+
#### Buffer Section
|
67
|
+
|
68
|
+
| name | default |
|
69
|
+
| -------------- | ------- |
|
70
|
+
| flush_mode | interval |
|
71
|
+
| flush_interval | 5 |
|
72
|
+
| flush_thread_interval | 0.5 |
|
73
|
+
| flush_thread_burst_interval | 0.5 |
|
74
|
+
|
75
|
+
#### Format Section
|
76
|
+
|
77
|
+
| name | default |
|
78
|
+
| -------------- | ------- |
|
79
|
+
| @type | ltsv |
|
26
80
|
|
27
81
|
## License
|
28
82
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
1.0.0
|
@@ -17,12 +17,9 @@ Gem::Specification.new do |spec|
|
|
17
17
|
spec.require_paths = ["lib"]
|
18
18
|
|
19
19
|
spec.add_development_dependency "rake", "~> 10.0"
|
20
|
-
spec.add_development_dependency "test-unit
|
21
|
-
spec.add_development_dependency "
|
20
|
+
spec.add_development_dependency "test-unit"
|
21
|
+
spec.add_development_dependency "test-unit-rr"
|
22
22
|
|
23
23
|
spec.add_runtime_dependency "fluentd"
|
24
|
-
spec.add_runtime_dependency "
|
25
|
-
spec.add_runtime_dependency "remote_syslog_logger", "~> 1.0.0"
|
26
|
-
spec.add_runtime_dependency "fluent-mixin-config-placeholders"
|
27
|
-
spec.add_runtime_dependency "fluent-mixin-rewrite-tag-name"
|
24
|
+
spec.add_runtime_dependency "remote_syslog_sender", ">= 1.1.1"
|
28
25
|
end
|
@@ -1,54 +1,153 @@
|
|
1
|
-
require "
|
2
|
-
require "fluent/mixin/plaintextformatter"
|
3
|
-
require 'fluent/mixin/rewrite_tag_name'
|
1
|
+
require "remote_syslog_sender"
|
4
2
|
|
5
3
|
module Fluent
|
6
|
-
|
7
|
-
|
4
|
+
module Plugin
|
5
|
+
class RemoteSyslogOutput < Output
|
6
|
+
Fluent::Plugin.register_output("remote_syslog", self)
|
8
7
|
|
9
|
-
|
8
|
+
helpers :formatter, :inject
|
10
9
|
|
11
|
-
|
12
|
-
include Fluent::Mixin::ConfigPlaceholders
|
13
|
-
include Fluent::HandleTagNameMixin
|
14
|
-
include Fluent::Mixin::RewriteTagName
|
10
|
+
config_param :hostname, :string, :default => ""
|
15
11
|
|
16
|
-
|
17
|
-
|
12
|
+
config_param :host, :string, :default => nil
|
13
|
+
config_param :port, :integer, :default => 514
|
14
|
+
config_param :host_with_port, :string, :default => nil
|
18
15
|
|
19
|
-
|
20
|
-
|
21
|
-
|
16
|
+
config_param :facility, :string, :default => "user"
|
17
|
+
config_param :severity, :string, :default => "notice"
|
18
|
+
config_param :program, :string, :default => "fluentd"
|
22
19
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
20
|
+
config_param :protocol, :enum, list: [:udp, :tcp], :default => :udp
|
21
|
+
config_param :tls, :bool, :default => false
|
22
|
+
config_param :ca_file, :string, :default => nil
|
23
|
+
config_param :verify_mode, :integer, default: nil
|
24
|
+
config_param :packet_size, :size, default: 1024
|
25
|
+
config_param :timeout, :time, default: nil
|
26
|
+
config_param :timeout_exception, :bool, default: false
|
28
27
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
28
|
+
config_param :keep_alive, :bool, :default => false
|
29
|
+
config_param :keep_alive_idle, :integer, :default => nil
|
30
|
+
config_param :keep_alive_cnt, :integer, :default => nil
|
31
|
+
config_param :keep_alive_intvl, :integer, :default => nil
|
32
|
+
|
33
|
+
config_section :buffer do
|
34
|
+
config_set_default :flush_mode, :interval
|
35
|
+
config_set_default :flush_interval, 5
|
36
|
+
config_set_default :flush_thread_interval, 0.5
|
37
|
+
config_set_default :flush_thread_burst_interval, 0.5
|
38
|
+
end
|
39
|
+
|
40
|
+
config_section :format do
|
41
|
+
config_set_default :@type, 'ltsv'
|
42
|
+
end
|
43
|
+
|
44
|
+
def initialize
|
45
|
+
super
|
46
|
+
end
|
47
|
+
|
48
|
+
def configure(conf)
|
49
|
+
super
|
50
|
+
if @host.nil? && @host_with_port.nil?
|
51
|
+
raise ConfigError, "host or host_with_port is required"
|
52
|
+
end
|
53
|
+
|
54
|
+
@formatter = formatter_create
|
55
|
+
unless @formatter.formatter_type == :text_per_line
|
56
|
+
raise ConfigError, "formatter_type must be text_per_line formatter"
|
57
|
+
end
|
58
|
+
|
59
|
+
validate_target = "host=#{@host}/host_with_port=#{@host_with_port}/hostname=#{@hostname}/facility=#{@facility}/severity=#{@severity}/program=#{@program}"
|
60
|
+
placeholder_validate!(:remote_syslog, validate_target)
|
61
|
+
@senders = []
|
62
|
+
end
|
63
|
+
|
64
|
+
def multi_workers_ready?
|
65
|
+
true
|
66
|
+
end
|
33
67
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
68
|
+
def close
|
69
|
+
super
|
70
|
+
@senders.each { |s| s.close if s }
|
71
|
+
@senders.clear
|
72
|
+
end
|
73
|
+
|
74
|
+
def format(tag, time, record)
|
75
|
+
r = inject_values_to_record(tag, time, record)
|
76
|
+
@formatter.format(tag, time, r)
|
77
|
+
end
|
78
|
+
|
79
|
+
def write(chunk)
|
80
|
+
return if chunk.empty?
|
81
|
+
|
82
|
+
host = extract_placeholders(@host, chunk.metadata)
|
83
|
+
port = @port
|
84
|
+
|
85
|
+
if @host_with_port
|
86
|
+
host, port = extract_placeholders(@host_with_port, chunk.metadata).split(":")
|
87
|
+
end
|
88
|
+
|
89
|
+
host_with_port = "#{host}:#{port}"
|
90
|
+
|
91
|
+
Thread.current[host_with_port] ||= create_sender(host, port)
|
92
|
+
sender = Thread.current[host_with_port]
|
93
|
+
|
94
|
+
facility = extract_placeholders(@facility, chunk.metadata)
|
95
|
+
severity = extract_placeholders(@severity, chunk.metadata)
|
96
|
+
program = extract_placeholders(@program, chunk.metadata)
|
97
|
+
hostname = extract_placeholders(@hostname, chunk.metadata)
|
98
|
+
|
99
|
+
packet_options = {facility: facility, severity: severity, program: program}
|
100
|
+
packet_options[:hostname] = hostname unless hostname.empty?
|
101
|
+
|
102
|
+
begin
|
103
|
+
chunk.open do |io|
|
104
|
+
io.each_line do |msg|
|
105
|
+
sender.transmit(msg.chomp!, packet_options)
|
106
|
+
end
|
40
107
|
end
|
108
|
+
rescue
|
109
|
+
if Thread.current[host_with_port]
|
110
|
+
Thread.current[host_with_port].close
|
111
|
+
@senders.delete(Thread.current[host_with_port])
|
112
|
+
Thread.current[host_with_port] = nil
|
113
|
+
end
|
114
|
+
raise
|
41
115
|
end
|
116
|
+
end
|
42
117
|
|
43
|
-
|
44
|
-
@loggers[tag] ||= RemoteSyslogLogger::UdpSender.new(@host,
|
45
|
-
@port,
|
46
|
-
facility: record["facility"] || @facility,
|
47
|
-
severity: record["severity"] || @severity,
|
48
|
-
program: tag,
|
49
|
-
local_hostname: @hostname)
|
118
|
+
private
|
50
119
|
|
51
|
-
|
120
|
+
def create_sender(host, port)
|
121
|
+
if @protocol == :tcp
|
122
|
+
options = {
|
123
|
+
tls: @tls,
|
124
|
+
whinyerrors: true,
|
125
|
+
packet_size: @packet_size,
|
126
|
+
timeout: @timeout,
|
127
|
+
timeout_exception: @timeout_exception,
|
128
|
+
keep_alive: @keep_alive,
|
129
|
+
keep_alive_idle: @keep_alive_idle,
|
130
|
+
keep_alive_cnt: @keep_alive_cnt,
|
131
|
+
keep_alive_intvl: @keep_alive_intvl,
|
132
|
+
program: @program,
|
133
|
+
}
|
134
|
+
options[:ca_file] = @ca_file if @ca_file
|
135
|
+
options[:verify_mode] = @verify_mode if @verify_mode
|
136
|
+
sender = RemoteSyslogSender::TcpSender.new(
|
137
|
+
host,
|
138
|
+
port,
|
139
|
+
options
|
140
|
+
)
|
141
|
+
else
|
142
|
+
sender = RemoteSyslogSender::UdpSender.new(
|
143
|
+
host,
|
144
|
+
port,
|
145
|
+
whinyerrors: true,
|
146
|
+
program: @program,
|
147
|
+
)
|
148
|
+
end
|
149
|
+
@senders << sender
|
150
|
+
sender
|
52
151
|
end
|
53
152
|
end
|
54
153
|
end
|
@@ -1,62 +1,84 @@
|
|
1
1
|
require "test_helper"
|
2
2
|
require "fluent/plugin/out_remote_syslog"
|
3
3
|
|
4
|
-
class RemoteSyslogOutputTest <
|
4
|
+
class RemoteSyslogOutputTest < Test::Unit::TestCase
|
5
5
|
def setup
|
6
6
|
Fluent::Test.setup
|
7
7
|
end
|
8
8
|
|
9
|
-
def create_driver(conf = CONFIG
|
10
|
-
Fluent::Test::
|
9
|
+
def create_driver(conf = CONFIG)
|
10
|
+
Fluent::Test::Driver::Output.new(Fluent::Plugin::RemoteSyslogOutput).configure(conf)
|
11
11
|
end
|
12
12
|
|
13
13
|
def test_configure
|
14
14
|
d = create_driver %[
|
15
|
-
type remote_syslog
|
15
|
+
@type remote_syslog
|
16
16
|
hostname foo.com
|
17
17
|
host example.com
|
18
18
|
port 5566
|
19
19
|
severity debug
|
20
|
-
|
20
|
+
program minitest
|
21
21
|
]
|
22
22
|
|
23
|
-
d.
|
24
|
-
|
25
|
-
end
|
23
|
+
loggers = d.instance.instance_variable_get(:@senders)
|
24
|
+
assert_equal loggers, []
|
26
25
|
|
27
|
-
|
28
|
-
|
26
|
+
assert_equal "example.com", d.instance.instance_variable_get(:@host)
|
27
|
+
assert_equal 5566, d.instance.instance_variable_get(:@port)
|
28
|
+
assert_equal "debug", d.instance.instance_variable_get(:@severity)
|
29
|
+
end
|
29
30
|
|
30
|
-
|
31
|
+
def test_write
|
32
|
+
d = create_driver %[
|
33
|
+
@type remote_syslog
|
34
|
+
hostname foo.com
|
35
|
+
host example.com
|
36
|
+
port 5566
|
37
|
+
severity debug
|
38
|
+
program minitest
|
31
39
|
|
32
|
-
|
33
|
-
|
40
|
+
<format>
|
41
|
+
@type single_value
|
42
|
+
message_key message
|
43
|
+
</format>
|
44
|
+
]
|
34
45
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
46
|
+
mock.proxy(RemoteSyslogSender::UdpSender).new("example.com", 5566, whinyerrors: true, program: "minitest") do |sender|
|
47
|
+
mock.proxy(sender).transmit("foo", facility: "user", severity: "debug", program: "minitest", hostname: "foo.com")
|
48
|
+
end
|
49
|
+
|
50
|
+
d.run do
|
51
|
+
d.feed("tag", Fluent::EventTime.now, {"message" => "foo"})
|
52
|
+
end
|
40
53
|
end
|
41
54
|
|
42
|
-
def
|
55
|
+
def test_write_tcp
|
43
56
|
d = create_driver %[
|
44
|
-
type remote_syslog
|
57
|
+
@type remote_syslog
|
45
58
|
hostname foo.com
|
46
59
|
host example.com
|
47
60
|
port 5566
|
48
61
|
severity debug
|
49
|
-
|
62
|
+
program minitest
|
63
|
+
|
64
|
+
protocol tcp
|
65
|
+
|
66
|
+
<format>
|
67
|
+
@type single_value
|
68
|
+
message_key message
|
69
|
+
</format>
|
50
70
|
]
|
51
71
|
|
52
|
-
|
53
|
-
|
72
|
+
any_instance_of(RemoteSyslogSender::TcpSender) do |klass|
|
73
|
+
mock(klass).connect
|
54
74
|
end
|
55
75
|
|
56
|
-
|
57
|
-
|
76
|
+
mock.proxy(RemoteSyslogSender::TcpSender).new("example.com", 5566, whinyerrors: true, program: "minitest", tls: false, packet_size: 1024, timeout: nil, timeout_exception: false, keep_alive: false, keep_alive_cnt: nil, keep_alive_idle: nil, keep_alive_intvl: nil) do |sender|
|
77
|
+
mock(sender).transmit("foo", facility: "user", severity: "debug", program: "minitest", hostname: "foo.com")
|
78
|
+
end
|
58
79
|
|
59
|
-
|
60
|
-
|
80
|
+
d.run do
|
81
|
+
d.feed("tag", Fluent::EventTime.now, {"message" => "foo"})
|
82
|
+
end
|
61
83
|
end
|
62
84
|
end
|
data/test/test_helper.rb
CHANGED
@@ -1,7 +1,10 @@
|
|
1
|
+
require 'bundler/setup'
|
2
|
+
require 'test/unit'
|
3
|
+
|
1
4
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
|
2
5
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
3
6
|
|
4
|
-
require "minitest/autorun"
|
5
|
-
require "minitest/unit"
|
6
|
-
require "minitest/pride"
|
7
7
|
require "fluent/test"
|
8
|
+
require 'fluent/test/driver/output'
|
9
|
+
|
10
|
+
require 'test/unit/rr'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-remote_syslog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Richard Lee
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-12-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -25,7 +25,7 @@ dependencies:
|
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '10.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name: test-unit
|
28
|
+
name: test-unit
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
@@ -39,7 +39,7 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: test-unit-rr
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
@@ -67,61 +67,19 @@ dependencies:
|
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: remote_syslog_sender
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
76
|
-
type: :runtime
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - ">="
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: remote_syslog_logger
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - "~>"
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: 1.0.0
|
75
|
+
version: 1.1.1
|
90
76
|
type: :runtime
|
91
77
|
prerelease: false
|
92
78
|
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - "~>"
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: 1.0.0
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: fluent-mixin-config-placeholders
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
79
|
requirements:
|
101
80
|
- - ">="
|
102
81
|
- !ruby/object:Gem::Version
|
103
|
-
version:
|
104
|
-
type: :runtime
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - ">="
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '0'
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: fluent-mixin-rewrite-tag-name
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - ">="
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '0'
|
118
|
-
type: :runtime
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - ">="
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: '0'
|
82
|
+
version: 1.1.1
|
125
83
|
description: ''
|
126
84
|
email:
|
127
85
|
- dlackty@gmail.com
|
@@ -161,7 +119,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
161
119
|
version: '0'
|
162
120
|
requirements: []
|
163
121
|
rubyforge_project:
|
164
|
-
rubygems_version: 2.6.
|
122
|
+
rubygems_version: 2.6.13
|
165
123
|
signing_key:
|
166
124
|
specification_version: 4
|
167
125
|
summary: Fluentd output plugin for remote syslog
|