fluent-plugin-heroku-syslog-http 0.2.1 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0624c9d73582304ed077c39803d7350b425838c1
|
4
|
+
data.tar.gz: 339dc0f4a5166fe2d581e8524839c26e1606de76
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ba3a89f11e524c6bc440c686ee76741a79af6f041199b156deed30607b6a26d87886ef151e7ff566b2e5c48d451fcfa7eb40d6228c11abcc33eb53f9d94d76fb
|
7
|
+
data.tar.gz: de9383bd19a6f5f7016626b83ac63c32d30217263f769f927eb30ac2164074a3ec5807b7a096e9eae74d541ae21ab9eb573d1ff9389aa2e2bf6338cd094874df
|
@@ -19,15 +19,14 @@ module Fluent
|
|
19
19
|
raise "'#{EVENT_RECORD_PARAMETER}' parameter is required" unless content
|
20
20
|
|
21
21
|
messages = []
|
22
|
-
while payload = content.match(/^([0-9]+) (.*)$/) do
|
22
|
+
while payload = content.match(/^([0-9]+) (.*)$/m) do
|
23
23
|
length = payload[1].to_i
|
24
|
-
|
24
|
+
log.warn "Invalid message length specified: #{length}" unless payload[2].size >= length
|
25
25
|
|
26
26
|
messages << payload[2][0...length]
|
27
27
|
content = payload[2][length..-1] || ''
|
28
28
|
end
|
29
|
-
content
|
30
|
-
raise "#{content.size} bytes left in payload" unless content.size == 0
|
29
|
+
log.warn "#{content.size} bytes left in payload" unless content.size == 0
|
31
30
|
|
32
31
|
records = []
|
33
32
|
messages.each do |msg|
|
@@ -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{^\<(?<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>.*)$}m
|
12
12
|
|
13
13
|
FACILITY_MAP = {
|
14
14
|
0 => 'kern',
|
@@ -81,6 +81,22 @@ class HerokuSyslogHttpInputTest < Test::Unit::TestCase
|
|
81
81
|
assert_equal 'x' * 1024, d.events[1][2]['message']
|
82
82
|
end
|
83
83
|
|
84
|
+
def test_newlines_in_payload
|
85
|
+
messages = [
|
86
|
+
"60 <13>1 2014-01-29T06:25:52.589365+00:00 host app web.1 - foo\n",
|
87
|
+
"60 <13>1 2014-01-29T06:25:52.589365+00:00 host app web.1 - bar\n",
|
88
|
+
]
|
89
|
+
d = create_driver
|
90
|
+
d.run(expect_records: 1, timeout: 5) do
|
91
|
+
res = post(messages)
|
92
|
+
assert_equal '', res.body
|
93
|
+
assert_equal '200', res.code
|
94
|
+
end
|
95
|
+
|
96
|
+
assert_equal "foo\n", d.events[0][2]['message']
|
97
|
+
assert_equal "bar\n", d.events[1][2]['message']
|
98
|
+
end
|
99
|
+
|
84
100
|
def test_accept_matched_drain_id_multiple
|
85
101
|
messages = [
|
86
102
|
'59 <13>1 2014-01-01T01:23:45.123456+00:00 host app web.1 - foo',
|