fluent-plugin-bunyan 0.0.4 → 0.0.5
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/fluent-plugin-bunyan.gemspec +2 -1
- data/lib/fluent/plugin/parser_bunyan.rb +13 -2
- data/test/plugin/test_parser_bunyan.rb +24 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 897084b1f198fcdf65487558092d7ff3a0c61d55a60f3b7e7cafe983a3c88e37
|
4
|
+
data.tar.gz: 87e400a29faaa103b766e585bc8bc368829878feef22f2efe32ab8afec52a8f7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e369516e341686750d853796d384b111f1bdfc0b24891a64b3cfba11cc156720764bdd56c16647379d6ea192f64692af5b038b6948eebd6fd684873e41ff1d22
|
7
|
+
data.tar.gz: f7c5979bd8c869151b3c9e0e8f06a0808e168c26a44b5edc68ed7055e28890646dbeaeb43bd65502b2b45f11b19678641a9c99ed71332bcc11bafc4b58ed9ca7
|
@@ -3,7 +3,8 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
3
3
|
|
4
4
|
Gem::Specification.new do |spec|
|
5
5
|
spec.name = "fluent-plugin-bunyan"
|
6
|
-
spec.version =
|
6
|
+
#spec.version = Fluent::Plugin::BunyanParser.new.version
|
7
|
+
spec.version = "0.0.5"
|
7
8
|
spec.authors = ["Gildas Cherruel"]
|
8
9
|
spec.email = ["gildas@breizh.org"]
|
9
10
|
|
@@ -26,11 +26,22 @@ module Fluent
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def parse(text)
|
29
|
-
# Example of a log line we want to get stuff from:
|
29
|
+
# Example of a log line from containerd we want to get stuff from:
|
30
30
|
# 2020-03-16T22:14:05.710251038+09:00 stdout F {"UserAgent":"kube-probe/1.17","hostname":"helloworld-go-helloworld-5649dfd7bd-k8954","level":30,"msg":"request start: GET /","name":"helloworld","pid":1,"remote":"10.1.10.1:60114","reqid":"e4745ed6-82d4-4013-aeda-1d02bef42331","scope":"/","tid":17,"time":"2020-03-16T13:14:05Z","topic":"route","v":0}
|
31
|
+
# Example of a log line from docker for mac we want to get stuff from:
|
32
|
+
# {"log":"{\"UserAgent\":\"HTTPie/2.0.0\",\"hostname\":\"helloworld-859745b47d-5dlbn\",\"level\":30,\"msg\":\"request start: GET /\",\"name\":\"helloworld\",\"pid\":1,\"remote\":\"192.168.65.3:42018\",\"reqid\":\"ba054f49-d97e-4970-89c4-dd3b75270e6a\",\"scope\":\"/\",\"tid\":14,\"time\":\"2020-03-24T08:29:02Z\",\"topic\":\"route\",\"v\":0}\n","stream":"stdout","time":"2020-03-24T08:29:02.3995324Z"}
|
31
33
|
if text =~ /[^{]*({.*)/
|
32
34
|
super(text.sub(/[^{]*({.*)/, '\1')) do |time, record|
|
33
35
|
if record then
|
36
|
+
if record["log"] then # This is a Docker style log message
|
37
|
+
begin
|
38
|
+
r = JSON.load(record["log"])
|
39
|
+
r.delete("time")
|
40
|
+
record.merge!(r)
|
41
|
+
record.delete("log")
|
42
|
+
rescue JSON::ParserError
|
43
|
+
end
|
44
|
+
end
|
34
45
|
record["severity"] = severity(record["level"] || 0)
|
35
46
|
record["host"] = record.delete("hostname")
|
36
47
|
record["message"] = record.delete("msg")
|
@@ -52,7 +63,7 @@ module Fluent
|
|
52
63
|
end
|
53
64
|
|
54
65
|
def version
|
55
|
-
return "0.0.
|
66
|
+
return "0.0.5"
|
56
67
|
end
|
57
68
|
end
|
58
69
|
end
|
@@ -81,7 +81,7 @@ class BunyanParserTest < Test::Unit::TestCase
|
|
81
81
|
end
|
82
82
|
end
|
83
83
|
|
84
|
-
test "can parse entry from
|
84
|
+
test "can parse entry from containerd" do
|
85
85
|
driver = create_driver(CONFIG)
|
86
86
|
text = '2020-03-10T07:08:41.710251038+09:00 stdout F {"hostname":"helloworld-go-helloworld-5649dfd7bd-k8954","level":30,"msg":"The message","name":"helloworld","pid":1,"scope":"main","tid":1,"time":"2020-03-10T07:08:41Z","topic":"main","v":0}'
|
87
87
|
expected_time = Time.utc(2020, 3, 10, 7, 8, 41).to_i
|
@@ -102,6 +102,29 @@ class BunyanParserTest < Test::Unit::TestCase
|
|
102
102
|
end
|
103
103
|
end
|
104
104
|
|
105
|
+
test "can parse entry from Docker for Mac/Windows" do
|
106
|
+
driver = create_driver(CONFIG)
|
107
|
+
text = '{"log":"{\"hostname\":\"helloworld-859745b47d-5dlbn\",\"level\":30,\"msg\":\"The message\",\"name\":\"helloworld\",\"pid\":1,\"remote\":\"192.168.65.3:42018\",\"scope\":\"main\",\"tid\":14,\"time\":\"2020-03-24T08:29:02Z\",\"topic\":\"main\",\"v\":0}\n","stream":"stdout","time":"2020-03-24T08:29:02.3995324Z"}'
|
108
|
+
expected_time = Time.utc(2020, 3, 24, 8, 29, 2).to_i
|
109
|
+
expected_record = {
|
110
|
+
"host" => "helloworld-859745b47d-5dlbn",
|
111
|
+
"name" => "helloworld",
|
112
|
+
"severity" => "info",
|
113
|
+
"level" => 30,
|
114
|
+
"message" => "The message",
|
115
|
+
"remote" => "192.168.65.3:42018",
|
116
|
+
"topic" => "main",
|
117
|
+
"scope" => "main",
|
118
|
+
"stream" => "stdout",
|
119
|
+
"pid" => 1,
|
120
|
+
"tid" => 14,
|
121
|
+
}
|
122
|
+
driver.instance.parse(text) do |time, record|
|
123
|
+
assert_equal(expected_record, record)
|
124
|
+
assert_equal(expected_time, time)
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
105
128
|
private
|
106
129
|
|
107
130
|
def create_driver(conf = CONFIG)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-bunyan
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gildas Cherruel
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-03-
|
11
|
+
date: 2020-03-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|