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

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: 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