fluent-plugin-input-gelf 0.1.0 → 0.1.1

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: b72e348033187ca8353e8f0f458586e757f7ae49
4
- data.tar.gz: b481677ab24fed18c12e90b0e0e01fb41a4f105a
3
+ metadata.gz: 7100acddd4910c56b36af50f13695d2773b4ff6b
4
+ data.tar.gz: e1d860e9bc6541e7b0a35afad2b7149eee717b7b
5
5
  SHA512:
6
- metadata.gz: c0e9646e2608c25e9a6f2f3a198f27eb5b44034d5df2c388034f8c68ed5350f54e20d49a77d34d31418a9e81a156dc395b2129668f749fbff4b1f0474e59bf0c
7
- data.tar.gz: 23524913869c9d57d8f1ea03f48fd0edfd5cb3828863513f4319b4150b22ff707ad16e1fa1ef21f494c010848bd03e0b3c7e8ca36d5d9c171a6a0b8add1efc18
6
+ metadata.gz: 9ae80360cd1ad43d94601711aae40b753cd78f2257d274554532af22d634ac1a5e92ac82a23757bd597307f5444ad9d559ded507a9af692ab66839df681a7c8b
7
+ data.tar.gz: cb307f962df7291b71e24a8f351bdb3266a3bd40ec7d392e94a5cd52add9fdb2e90259499de2d58e8c62bd3cc505e537ae715add132f27d4cad3eb6277da2d76
@@ -7,7 +7,7 @@ Gem::Specification.new do |gem|
7
7
  gem.license = "MIT"
8
8
  gem.homepage = "https://github.com/MerlinDMC/fluent-plugin-input-gelf"
9
9
  gem.summary = gem.description
10
- gem.version = "0.1.0"
10
+ gem.version = "0.1.1"
11
11
  gem.authors = ["Daniel Malon"]
12
12
  gem.email = "daniel.malon@me.com"
13
13
  gem.has_rdoc = false
@@ -36,6 +36,8 @@ module Fluent
36
36
  end
37
37
  end
38
38
  config_param :blocking_timeout, :time, default: 0.5
39
+ desc 'Strip leading underscore'
40
+ config_param :strip_leading_underscore, :bool, default: true
39
41
 
40
42
  def configure(conf)
41
43
  super
@@ -86,6 +88,9 @@ module Fluent
86
88
  # Use the recorded event time if available
87
89
  time = record.delete('timestamp').to_i if record.key?('timestamp')
88
90
 
91
+ # Postprocess recorded event
92
+ strip_leading_underscore(record) if @strip_leading_underscore
93
+
89
94
  emit(time, record)
90
95
  }
91
96
  rescue => e
@@ -109,5 +114,14 @@ module Fluent
109
114
  rescue => e
110
115
  log.error 'gelf failed to emit', error: e.to_s, error_class: e.class.to_s, tag: @tag, record: Yajl.dump(record)
111
116
  end
117
+
118
+ private
119
+
120
+ def strip_leading_underscore(record)
121
+ record.keys.each { |k|
122
+ next unless k[0,1] == '_'
123
+ record[k[1..-1]] = record.delete(k)
124
+ }
125
+ end
112
126
  end
113
127
  end
@@ -69,4 +69,53 @@ class GelfInputTest < Test::Unit::TestCase
69
69
  }
70
70
  }
71
71
  end
72
+
73
+ def test_strip_leading_underscore
74
+ configs = {'127.0.0.1' => CONFIG}
75
+ # gelf-rb currently does not support IPv6 over UDP
76
+ # configs.merge!('::1' => IPv6_CONFIG) if ipv6_enabled?
77
+
78
+ configs.each_pair { |k, v|
79
+ d = create_driver(v)
80
+
81
+ tests = [
82
+ {:given =>
83
+ {
84
+ :timestamp => 12345,
85
+ :short_message => 'short message',
86
+ :full_message => 'full message',
87
+ '_custom_field' => 12345
88
+ },
89
+ :expected =>
90
+ {
91
+ 'short_message' => 'short message',
92
+ 'full_message' => 'full message',
93
+ 'custom_field' => 12345
94
+ }
95
+ }
96
+ ]
97
+
98
+ d.run do
99
+ n = GELF::Notifier.new(k, PORT)
100
+
101
+ tests.each { |test|
102
+ n.notify!(test[:given])
103
+ }
104
+
105
+ sleep 1
106
+ end
107
+
108
+ emits = d.emits
109
+ assert_equal tests.length, emits.length, 'missing emitted events'
110
+ emits.each_index { |i|
111
+ puts emits[i].to_s
112
+ assert_equal 'gelf', emits[i][0]
113
+ assert_equal tests[i][:timestamp].to_i, emits[i][1] unless tests[i][:timestamp].nil?
114
+ assert_block "expectation not met: #{tests[i][:expected]}" do
115
+ emits[i][2].merge(tests[i][:expected]) == emits[i][2]
116
+ end
117
+ }
118
+ }
119
+ end
120
+
72
121
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-input-gelf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Malon