fluent-plugin-gelf-best 1.3.2 → 1.3.3

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
2
  SHA256:
3
- metadata.gz: 7327c66aa6fddfe60ed1448e76a59ecd906b458957758b748ee3162aefa85d0f
4
- data.tar.gz: 2f5b1820ab88ce8665288b2e218e8be53aa274d5047e32cde33faaa5dad967c6
3
+ metadata.gz: dc3a134e34dfdc0c22a93f90ca53b655bbb9133f787726adb478ffdb6b74bba3
4
+ data.tar.gz: f65ca691ac9b2e7046878b1b8b6315a21c6a3d575408ece21aff885c0f3c3add
5
5
  SHA512:
6
- metadata.gz: 2735ce20d4dc4405d137405a30ec2c52dc83343fae9fdb7312f35e1b671546bd95ce0ab1c93648deaa1e0175fcedb79df739596aaedb27e767135695169a1ec5
7
- data.tar.gz: 4add4d31fc40b78c7ff70450b556749e755f0fa6072e62a24160c4afa8ae63f09f4a46c2e2a7d26e876bb9379b65264787da37a603aa807e5dd0489c092416af
6
+ metadata.gz: f2adf1721b08d85f7a191d7121eb0a0190aee674f70159c828a475a4f717a90594307e116b1a88212d0095c9b546d48134c596e7fb186f6dba9cc0476905e616
7
+ data.tar.gz: 7bca600938707cda06ce79d798d11dd3dd3756ee7a0a3016b2770aa9a63d1133f0a7bcb745d8e14699d6503099cced2d6ff2a63b008731e8aa8a4fc3b6a652a4
@@ -19,7 +19,6 @@ Gem::Specification.new do |spec|
19
19
 
20
20
  spec.add_runtime_dependency "fluentd", ">=1.0.0"
21
21
  spec.add_runtime_dependency "gelf", ">= 2.0.0"
22
- spec.add_development_dependency "oj", "~> 3.3.10"
23
22
  spec.add_development_dependency "test-unit"
24
23
  spec.add_development_dependency "rake"
25
24
  end
@@ -1,26 +1,24 @@
1
- require 'oj'
2
- require 'date'
3
- require 'gelf'
4
-
5
1
  module Fluent
6
2
  module GelfPluginUtil
3
+ require "gelf"
4
+ require "date"
7
5
 
8
6
  LEVEL_MAP = {
9
- '0' => GELF::UNKNOWN, '1' => GELF::UNKNOWN, 'a' => GELF::UNKNOWN,
10
- '2' => GELF::FATAL, 'c' => GELF::FATAL,
11
- '3' => GELF::ERROR,
12
- '4' => GELF::WARN, 'w' => GELF::WARN,
13
- '5' => GELF::INFO, 'n' => GELF::INFO,
14
- '6' => GELF::INFO, 'i' => GELF::INFO,
15
- '7' => GELF::DEBUG, 'd' => GELF::DEBUG,
16
- 'e' => GELF::ERROR
7
+ "0" => GELF::UNKNOWN, "1" => GELF::UNKNOWN, "a" => GELF::UNKNOWN,
8
+ "2" => GELF::FATAL, "c" => GELF::FATAL,
9
+ "3" => GELF::ERROR,
10
+ "4" => GELF::WARN, "w" => GELF::WARN,
11
+ "5" => GELF::INFO, "n" => GELF::INFO,
12
+ "6" => GELF::INFO, "i" => GELF::INFO,
13
+ "7" => GELF::DEBUG, "d" => GELF::DEBUG,
14
+ "e" => GELF::ERROR # assuming 'e' stands typically for 'error'
17
15
  }.freeze
18
16
 
19
17
  def make_gelfentry(tag, time, record, conf = {})
20
- gelfentry = {"_fluentd_tag" => tag, "timestamp" => calculate_timestamp(time)}
18
+ gelfentry = {'_fluentd_tag' => tag, 'timestamp' => calculate_timestamp(time)}
21
19
 
22
- record.each do |k, v|
23
- process_record_entry(k, v, conf, gelfentry)
20
+ record.each_pair do |k, v|
21
+ gelfentry.merge!(process_record_entry(k, v, conf, gelfentry))
24
22
  end
25
23
 
26
24
  ensure_short_message(gelfentry)
@@ -40,29 +38,43 @@ module Fluent
40
38
  def process_record_entry(k, v, conf, gelfentry)
41
39
  case k
42
40
  when 'host', 'hostname'
43
- gelfentry['host'] = conf[:use_record_host] ? v : (gelfentry['_host'] = v)
41
+ return {'host' => (conf[:use_record_host] ? v : gelfentry['_host'] = v)}
44
42
  when 'timestamp', 'time'
45
- gelfentry['timestamp'] = parse_timestamp(v)
43
+ { 'timestamp' => parse_timestamp(v) }
46
44
  when 'level'
47
- gelfentry['level'] = LEVEL_MAP[v.to_s.downcase[0]] || GELF::UNKNOWN
45
+ {'level' => LEVEL_MAP[v.to_s.downcase[0]] || (v.to_s.length >= 2 && v.to_s.downcase[1] != "r" ? GELF::UNKNOWN : v)}
48
46
  when 'msec'
49
- gelfentry['timestamp'] = conf[:add_msec_time] ? "#{time.to_s}.#{v}".to_f : (gelfentry['_msec'] = v)
47
+ conf[:add_msec_time] ? {'timestamp' => "#{time.to_s}.#{v}".to_f} : {'_msec' => v}
50
48
  when 'short_message', 'version', 'full_message', 'facility', 'file', 'line'
51
- gelfentry[k] = v
49
+ {k => v}
52
50
  else
53
- gelfentry[k.start_with?('_') ? k : "_#{k}"] = v
51
+ {k.start_with?('_') ? k : "_#{k}" => v}
54
52
  end
55
53
  end
56
54
 
57
55
  def parse_timestamp(v)
58
- return v if v.is_a?(Integer) || v.is_a?(Float)
59
-
60
- DateTime.parse(v).strftime("%Q").to_f / 1_000 rescue v
56
+ if v.is_a?(Integer) || v.is_a?(Float)
57
+ v
58
+ else
59
+ begin
60
+ (DateTime.parse(v).strftime("%Q").to_f / 1_000).round(3)
61
+ rescue ArgumentError
62
+ v
63
+ end
64
+ end
61
65
  end
62
66
 
63
67
  def ensure_short_message(gelfentry)
64
- default_key = ['_message', '_msg', '_log', '_record'].find { |key| gelfentry[key]&.strip&.empty? == false }
65
- gelfentry['short_message'] = default_key ? gelfentry.delete(default_key) : '(no message)'
68
+ return if gelfentry['short_message'] && !gelfentry['short_message'].to_s.strip.empty?
69
+
70
+ ['_message', '_msg', '_log', '_record'].each do |key|
71
+ if gelfentry[key] && !gelfentry[key].to_s.strip.empty?
72
+ gelfentry['short_message'] = gelfentry.delete(key)
73
+ return
74
+ end
75
+ end
76
+
77
+ gelfentry['short_message'] = '(no message)' unless gelfentry['short_message']
66
78
  end
67
79
  end
68
80
  end
@@ -1,3 +1,3 @@
1
1
  module FluentPluginGelfBest
2
- VERSION = "1.3.2"
2
+ VERSION = "1.3.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-gelf-best
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.2
4
+ version: 1.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Yamauchi
@@ -40,20 +40,6 @@ dependencies:
40
40
  - - ">="
41
41
  - !ruby/object:Gem::Version
42
42
  version: 2.0.0
43
- - !ruby/object:Gem::Dependency
44
- name: oj
45
- requirement: !ruby/object:Gem::Requirement
46
- requirements:
47
- - - "~>"
48
- - !ruby/object:Gem::Version
49
- version: 3.3.10
50
- type: :development
51
- prerelease: false
52
- version_requirements: !ruby/object:Gem::Requirement
53
- requirements:
54
- - - "~>"
55
- - !ruby/object:Gem::Version
56
- version: 3.3.10
57
43
  - !ruby/object:Gem::Dependency
58
44
  name: test-unit
59
45
  requirement: !ruby/object:Gem::Requirement