fluent-plugin-parse_request_body 0.0.2 → 0.0.3

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: 7f84d2eb1c750300849c9a9e93855842808becd960a01042053d00a638955263
4
- data.tar.gz: 1c4bf6cfd22795b1aa9ca4d39007cddd772e82b610040037d9e0d61a252ca0f7
3
+ metadata.gz: 2cc0622663b91fa8a7aede85fbdf798eacc58dbe81f18e1a21cdcef66b69c5a2
4
+ data.tar.gz: a846ee373ff8510dbd9235639da7ab4281cce7f3bfa814531728ef40f796df27
5
5
  SHA512:
6
- metadata.gz: 7ef5d744d14b31db185827a0072c4966ac7aa57bc536a66f581c3ad32b09aacf30aec73ab11317654edd577179b1ac3d80166a47ab90442fe495e9ee9cc00638
7
- data.tar.gz: b7036d87e881b1996e6009131e01d09fffff1be9a1861adba5068cb47b0ef0df0059c80073444294aa9f692ad60103d1bdbc192c34ae835569370e21b2f12aff
6
+ metadata.gz: b4c2141c17e80ec7949c68893c2bf4aca7350887b0b733ff94aac26ce70fa9941e86b8326cfda3e2d937e171ad26306689e22bc54e46f76ec65addba6f021e2d
7
+ data.tar.gz: dc52d36cc29cff81f1ca8cede224585afb969483bf52146577a95cd100d34c9d2f42af74af85674ff5c9a84c00eb8ac2281a16d7c80fe3c2073e6e201f493215
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |gem|
2
2
  gem.name = 'fluent-plugin-parse_request_body'
3
- gem.version = '0.0.2'
3
+ gem.version = '0.0.3'
4
4
  gem.authors = ['EkiSong']
5
5
  gem.email = ['yifriday0614@gmail.com']
6
6
  gem.homepage = 'https://github.com/yifriday/fluent-plugin-parse_request_body.git'
@@ -36,6 +36,35 @@ module Fluent::Plugin
36
36
  hash
37
37
  end
38
38
  end
39
+
40
+ @map = {}
41
+ # <record></record> directive
42
+ conf.elements.select { |element| element.name == 'record' }.each { |element|
43
+ element.each_pair { |k, v|
44
+ element.has_key?(k) # to suppress unread configuration warning
45
+ v = v[1..v.size-2] if quoted_value?(v)
46
+ @map[k] = v
47
+ validate_json = Proc.new {
48
+ begin
49
+ dummy_text = Yajl::Encoder.encode('dummy_text')
50
+ Yajl::Parser.parse(v.gsub(REGEXP_PLACEHOLDER_SCAN, dummy_text))
51
+ rescue Yajl::ParseError => e
52
+ message = "parse_body: failed to parse '#{v}' as json."
53
+ log.error message, error: e
54
+ raise Fluent::ConfigError, message
55
+ end
56
+ }
57
+ validate_json.call if json?(v.tr('\'"\\', ''))
58
+ }
59
+ }
60
+ end
61
+
62
+ def add_record_field(record)
63
+ return record if @map.values.first.nil?
64
+ @map.each do |record_key, value|
65
+ record[record_key] = value
66
+ end
67
+ record
39
68
  end
40
69
 
41
70
  def add_query_params_field(record)
@@ -86,6 +115,7 @@ module Fluent::Plugin
86
115
  else
87
116
  record[new_key] = value
88
117
  end
118
+ add_record_field(record)
89
119
  end
90
120
  end
91
121
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-parse_request_body
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - EkiSong