fluent-plugin-fluent-plugin-json-size-limit 0.1.12 → 0.1.14

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: 998e0353c6ae89125de785143aa2abe58b39706246a2f77ef61bd810acf01fb9
4
- data.tar.gz: cc745c851ccfe06e563d7eae6b37ccb62aadeca40f1de5f1648f809e0b276b6c
3
+ metadata.gz: 5c1f2e6ac036ba52dfd968b14d7596f477a47453d7944244787a374772b3eb09
4
+ data.tar.gz: ce671aa6d8e8e3d0efa565f82a57689308347bd61e5ef34acccda2cdd403e6f3
5
5
  SHA512:
6
- metadata.gz: c7e2bb3ceb87cb43ae02481b7e23d8c7338407e7863181724616fed895858a0b32558d3d1c01ec56e668602a5bdf617e67e378958b8ac396d08b650d06259e76
7
- data.tar.gz: 4817358f65b0ce39edc85ae913ee8c3153be2a48d44c61d108d8d6fb1702fc7f54891d494d197b3bbe8a5a0125adad7f10cf8fec271517732e0e0c808968382f
6
+ metadata.gz: '0782af89ef48f11fcc72109ce021c6380000eeb37342710726182ca6cfcb22111e6abf4ea3e3f30e3ebb0b0d6e36e8e437800edd698ebfe514262202f4f9f7a4'
7
+ data.tar.gz: 98abef7edd4d61cc40b5d6840ecc3986316a05204aec1b8924abb94b040819127b330eafc451c05b65767c596bcb954392531b62be8f6f6002262045897364bd
@@ -3,7 +3,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
3
 
4
4
  Gem::Specification.new do |spec|
5
5
  spec.name = "fluent-plugin-fluent-plugin-json-size-limit"
6
- spec.version = "0.1.12"
6
+ spec.version = "0.1.14"
7
7
  spec.authors = ["Mykola Panin"]
8
8
  spec.email = ["mykola.panin@creatoriq.com"]
9
9
 
@@ -20,13 +20,18 @@ module Fluent
20
20
  class JsonSizeLimitFilter < Filter
21
21
  Fluent::Plugin.register_filter('jsonsizelimit', self)
22
22
 
23
+ config_param :max_size, :size, default: 250 * 1024
24
+
23
25
  def configure(conf)
24
26
  super
27
+ log.debug "Configuring JsonSizeLimitFilter with max_size: #{@max_size}"
25
28
  end
26
29
 
27
30
  def filter(tag, time, record)
28
31
  json_str = record.to_json
29
- while json_str.bytesize > 250 * 1024
32
+ log.debug "Original record size: #{json_str.bytesize} bytes"
33
+
34
+ while json_str.bytesize > @max_size
30
35
  sorted_fields = record.sort_by { |k, v| v.to_s.length }.reverse
31
36
  reduced = false
32
37
 
@@ -34,24 +39,26 @@ module Fluent
34
39
  next unless value.is_a?(String) && value.length > 10
35
40
 
36
41
  current_size = json_str.bytesize
37
- target_size = 250 * 1024
38
- excess_size = current_size - target_size
42
+ excess_size = current_size - @max_size
39
43
 
40
44
  new_length = [value.length - excess_size, 0].max
41
45
  record[key] = value[0...new_length]
42
-
43
46
  json_str = record.to_json
44
- if json_str.bytesize <= 250 * 1024
47
+
48
+ if json_str.bytesize <= @max_size
49
+ log.debug "Reduced size of field '#{key}'"
45
50
  reduced = true
46
51
  break
47
52
  end
48
53
  end
49
54
 
50
55
  break unless reduced
56
+ log.debug "Intermediate record size: #{json_str.bytesize} bytes"
51
57
  end
58
+
59
+ log.debug "Final record size: #{json_str.bytesize} bytes"
52
60
  record
53
61
  end
54
62
  end
55
63
  end
56
64
  end
57
-
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-fluent-plugin-json-size-limit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.12
4
+ version: 0.1.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mykola Panin