fluent-plugin-heroku-syslog-http 0.2.0 → 0.2.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA256:
3
- metadata.gz: 232b9309f8c101e5ff0845ef5a8330661d98816d3c25068914a7e2dfbdf5566a
4
- data.tar.gz: d5f49511ab61357336c8ef9d99936781709a044994c0af8f0cf0c5e22d537623
2
+ SHA1:
3
+ metadata.gz: 532357c0144bd00b49441c441a413a1418857f42
4
+ data.tar.gz: 7d0804f14d7d041736c35d986f8c0db2fd6e34a8
5
5
  SHA512:
6
- metadata.gz: 14d6c03abb519a8f07fbf2ba0e0f894aee8a9b20aa7c3ab2699b6c44317feff51f54b2ce4bd20d0f5e197cdd6090c8994406cb1651bd1e9f8071c731b3197fc2
7
- data.tar.gz: 13bf91845d3591a7df8206ab1730c5db0d4350b92678ec393f60567956788da03e127dca649a423024db467929a7f43e6d3fdd35dd46f8f30f58088dfa61e9af
6
+ metadata.gz: fad8aed05a98d60e1e684ea0b9b3e99cdefcd296003a536d910ef0597fe77839b2c01f3fa3a0cfff2322209f6b5143b3d1ca3cde172ffd297d9c06440a1f6e62
7
+ data.tar.gz: 73df938e9c8a26fc7f53601631d633f5c4e852caf8973dd763f42f9f40b28a92e0c8d6fa173b834c8d561ff064672064903b0f32c027372042ada494fb50ded0
data/Gemfile CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  source 'https://rubygems.org'
4
4
 
5
- ruby '2.4.4'
5
+ ruby '2.5.3'
6
6
 
7
7
  # Specify your gem's dependencies in fluent-plugin-heroku-syslog.gemspec
8
8
  gemspec
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |gem|
4
4
  gem.name = 'fluent-plugin-heroku-syslog-http'
5
- gem.version = '0.2.0'
5
+ gem.version = '0.2.1'
6
6
  gem.authors = ['Drivy', 'Kazuyuki Honda']
7
7
  gem.email = ['sre@drivy.com']
8
8
  gem.description = 'fluent plugin to drain heroku syslog'
@@ -18,8 +18,18 @@ module Fluent
18
18
  content = params[EVENT_RECORD_PARAMETER]
19
19
  raise "'#{EVENT_RECORD_PARAMETER}' parameter is required" unless content
20
20
 
21
+ messages = []
22
+ while payload = content.match(/^([0-9]+) (.*)$/) do
23
+ length = payload[1].to_i
24
+ raise "Invalid message length specified: #{length}" unless payload[2].size >= length
25
+
26
+ messages << payload[2][0...length]
27
+ content = payload[2][length..-1] || ''
28
+ end
29
+ content << content
30
+ raise "#{content.size} bytes left in payload" unless content.size == 0
31
+
21
32
  records = []
22
- messages = content.split("\n")
23
33
  messages.each do |msg|
24
34
  @parser.parse(msg) do |time, record|
25
35
  raise "Could not parse event: #{content}" if record.nil?
@@ -34,6 +44,7 @@ module Fluent
34
44
  records << record
35
45
  end
36
46
  end
47
+
37
48
  [nil, records]
38
49
  end
39
50
  end
@@ -8,7 +8,7 @@ module Fluent
8
8
  class HerokuSyslogHttpParser < RegexpParser
9
9
  Fluent::Plugin.register_parser('heroku_syslog_http', self)
10
10
 
11
- SYSLOG_HTTP_REGEXP = %r{^([0-9]+) +\<(?<syslog.pri>[0-9]+)\>([0-9]+) (?<syslog.timestamp>[^ ]+) (?<syslog.hostname>[^ ]+) (?<syslog.appname>[^ ]+) (?<syslog.procid>[^ ]+) - *(?<message>.*)$}
11
+ SYSLOG_HTTP_REGEXP = %r{^\<(?<syslog.pri>[0-9]+)\>([0-9]+) (?<syslog.timestamp>[^ ]+) (?<syslog.hostname>[^ ]+) (?<syslog.appname>[^ ]+) (?<syslog.procid>[^ ]+) - *(?<message>.*)$}
12
12
 
13
13
  FACILITY_MAP = {
14
14
  0 => 'kern',
@@ -67,8 +67,8 @@ class HerokuSyslogHttpInputTest < Test::Unit::TestCase
67
67
 
68
68
  def test_msg_size
69
69
  messages = [
70
- '00 <13>1 2014-01-01T01:23:45.123456+00:00 host app web.1 - ' + 'x' * 100,
71
- '00 <13>1 2014-01-01T01:23:45.123456+00:00 host app web.1 - ' + 'x' * 1024
70
+ '156 <13>1 2014-01-01T01:23:45.123456+00:00 host app web.1 - ' + 'x' * 100,
71
+ '1080 <13>1 2014-01-01T01:23:45.123456+00:00 host app web.1 - ' + 'x' * 1024
72
72
  ]
73
73
 
74
74
  d = create_driver
@@ -83,8 +83,8 @@ class HerokuSyslogHttpInputTest < Test::Unit::TestCase
83
83
 
84
84
  def test_accept_matched_drain_id_multiple
85
85
  messages = [
86
- '00 <13>1 2014-01-01T01:23:45.123456+00:00 host app web.1 - foo',
87
- '00 <13>1 2014-01-01T01:23:45.123456+00:00 host app web.1 - bar'
86
+ '59 <13>1 2014-01-01T01:23:45.123456+00:00 host app web.1 - foo',
87
+ '59 <13>1 2014-01-01T01:23:45.123456+00:00 host app web.1 - bar'
88
88
  ]
89
89
  d = create_driver(CONFIG + %(
90
90
  drain_ids ["abc", "d.fc6b856b-3332-4546-93de-7d0ee272c3bd"]
@@ -99,8 +99,8 @@ class HerokuSyslogHttpInputTest < Test::Unit::TestCase
99
99
 
100
100
  def test_ignore_unmatched_drain_id
101
101
  messages = [
102
- '00 <13>1 2014-01-01T01:23:45.123456+00:00 host app web.1 - foo',
103
- '00 <13>1 2014-01-01T01:23:45.123456+00:00 host app web.1 - bar'
102
+ '59 <13>1 2014-01-01T01:23:45.123456+00:00 host app web.1 - foo',
103
+ '59 <13>1 2014-01-01T01:23:45.123456+00:00 host app web.1 - bar'
104
104
  ]
105
105
  d = create_driver(CONFIG + %(
106
106
  drain_ids ["abc"]
@@ -115,7 +115,7 @@ class HerokuSyslogHttpInputTest < Test::Unit::TestCase
115
115
 
116
116
  def test_logplex_metas
117
117
  messages = [
118
- '00 <13>1 2014-01-01T01:23:45.123456+00:00 host app web.1 - ' + 'x' * 100
118
+ '156 <13>1 2014-01-01T01:23:45.123456+00:00 host app web.1 - ' + 'x' * 100
119
119
  ]
120
120
  d = create_driver
121
121
  d.run(expect_records: 1, timeout: 5) do
@@ -138,7 +138,7 @@ class HerokuSyslogHttpInputTest < Test::Unit::TestCase
138
138
  'User-Agent' => 'Logplex/v49'
139
139
  }
140
140
  req = Net::HTTP::Post.new('/heroku', headers)
141
- req.body = messages.join("\n")
141
+ req.body = messages.join('')
142
142
  http.request(req)
143
143
  end
144
144
  end
@@ -30,7 +30,7 @@ class HerokuSyslogHttpParseTest < Test::Unit::TestCase
30
30
  end
31
31
 
32
32
  def test_parsing_with_default_conf
33
- text = '59 <13>1 2014-01-29T06:25:52.589365+00:00 host app web.1 - foo'
33
+ text = '<13>1 2014-01-29T06:25:52.589365+00:00 host app web.1 - foo'
34
34
  expected_time = Time.strptime('2014-01-29T07:25:52+01:00', '%Y-%m-%dT%H:%M:%S%z').to_i
35
35
  event = {
36
36
  'syslog.pri' => '13',
@@ -52,15 +52,15 @@ class HerokuSyslogHttpParseTest < Test::Unit::TestCase
52
52
  def test_parsing_pri_conf
53
53
  d = create_driver
54
54
 
55
- d.instance.parse('00 <13>1 2014-01-29T06:25:52.589365+00:00 host app web.1 - foo') do |_, record|
55
+ d.instance.parse('<13>1 2014-01-29T06:25:52.589365+00:00 host app web.1 - foo') do |_, record|
56
56
  assert_equal 'notice', record['syslog.severity']
57
57
  assert_equal 'user', record['syslog.facility']
58
58
  end
59
- d.instance.parse('00 <42>1 2014-01-29T06:25:52.589365+00:00 host app web.1 - foo') do |_, record|
59
+ d.instance.parse('<42>1 2014-01-29T06:25:52.589365+00:00 host app web.1 - foo') do |_, record|
60
60
  assert_equal 'crit', record['syslog.severity']
61
61
  assert_equal 'syslog', record['syslog.facility']
62
62
  end
63
- d.instance.parse('00 <27>1 2014-01-29T06:25:52.589365+00:00 host app web.1 - foo') do |_, record|
63
+ d.instance.parse('<27>1 2014-01-29T06:25:52.589365+00:00 host app web.1 - foo') do |_, record|
64
64
  assert_equal 'err', record['syslog.severity']
65
65
  assert_equal 'daemon', record['syslog.facility']
66
66
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-heroku-syslog-http
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Drivy
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2018-10-15 00:00:00.000000000 Z
12
+ date: 2019-08-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: fluentd
@@ -67,7 +67,7 @@ files:
67
67
  - LICENSE.txt
68
68
  - README.md
69
69
  - Rakefile
70
- - fluent-plugin-heroku-syslog.gemspec
70
+ - fluent-plugin-heroku-syslog-http.gemspec
71
71
  - lib/fluent/plugin/in_heroku_syslog_http.rb
72
72
  - lib/fluent/plugin/parser_heroku_syslog_http.rb
73
73
  - test/helper.rb
@@ -93,7 +93,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
93
93
  version: '0'
94
94
  requirements: []
95
95
  rubyforge_project:
96
- rubygems_version: 2.7.7
96
+ rubygems_version: 2.5.2.3
97
97
  signing_key:
98
98
  specification_version: 4
99
99
  summary: fluent plugin to drain heroku syslog