fluent-plugin-bunyan 0.0.4 → 0.0.5

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
  SHA256:
3
- metadata.gz: 9c7ca077c27fc89eada5a3b8854ae9ac6b16a26503d73fa5690f4b8ed423d77c
4
- data.tar.gz: 35fe59d48c1c8dabe0c22900ff203e46884fb0b21125e7a8799399b70f3a3fe8
3
+ metadata.gz: 897084b1f198fcdf65487558092d7ff3a0c61d55a60f3b7e7cafe983a3c88e37
4
+ data.tar.gz: 87e400a29faaa103b766e585bc8bc368829878feef22f2efe32ab8afec52a8f7
5
5
  SHA512:
6
- metadata.gz: e4854c127c3a0903daa6b604f2b347c9bea23f9fe202fad1c10779b340efc177459cb34552f35a50c713f36241fd9e2204cd64bd7b55dcc75dd744cd5f876a86
7
- data.tar.gz: 44b4796655c0985988e9683a71ce0a849c9cb4d45ad075267ff790f542bb7022c1c41b28690e47de42ac5c703a2a05b6dd6be69cb86102ee7e130c1d05bf4353
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 = "0.0.4"
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.4"
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 Kubernetes" do
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
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-16 00:00:00.000000000 Z
11
+ date: 2020-03-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler