fluent-plugin-fluent-plugin-json-size-limit 0.1.15 → 0.1.16

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: 40f924059fcbebb4396efc9f677ffe7dd8b2d846a6b408c27023c604f5ac4eb7
4
- data.tar.gz: 1f4ff05c3488fd48d1aacb5f1bf6f8087bb90d65e342f8569ca2590c2282594d
3
+ metadata.gz: 101a8797e2c88b1200807388e3f970a636444d1ac8822b0eec251f3d6483b362
4
+ data.tar.gz: 988af4fe02e3fd6e83ecf19351885638e528a6e074817dd3a5cd4c6b532d1f17
5
5
  SHA512:
6
- metadata.gz: 118f7e2a31f67b792ad4b0470be2a783e4dcfa6a15330d6cf6af074e7f3fe3dac7ff0e6057edc0f425bd73bce5b7ca2d2b6f2162e58e3d400e6ebaa1ea2e255d
7
- data.tar.gz: 01e25d11c7efea63c48d34e95b6ebba689d7793568c5910a2395212284a69a25c8706322579ed58f86fb8399f20afe997f8c52c66f7f9cbbb6de46183e09051c
6
+ metadata.gz: d2e1f5bb268ec0c9f98f68c0d415eb9ffc96d0e60177505959542b293d45879d71775dfdc8a7f88f9f40980bb6881b3983ad69a4ca38662a0fe07011a301e7a6
7
+ data.tar.gz: e2cf6fd32e0cfdec8a391803f468b8534f76142fc230b1daa534b9b6ae17ddc322fac3c48a77e124767d6c6df16c66360b91c39b3f7ec363dd8653624b936033
@@ -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.15"
6
+ spec.version = "0.1.16"
7
7
  spec.authors = ["Mykola Panin"]
8
8
  spec.email = ["mykola.panin@creatoriq.com"]
9
9
 
@@ -32,23 +32,31 @@ module Fluent
32
32
  json_str = record.to_json
33
33
 
34
34
  if json_str.bytesize > @max_size
35
- sorted_fields = record.sort_by { |k, v| v.to_s.length }.reverse
35
+ attempts = 0
36
+ while json_str.bytesize > @max_size && attempts < 10
37
+ reduced = false
38
+ sorted_fields = record.sort_by { |k, v| v.to_s.length }.reverse
36
39
 
37
- sorted_fields.each do |key, value|
38
- next unless value.is_a?(String) && value.length > 10
40
+ sorted_fields.each do |key, value|
41
+ next unless value.is_a?(String) && value.length > 10
39
42
 
40
- current_size = json_str.bytesize
41
- excess_size = current_size - @max_size
43
+ current_size = json_str.bytesize
44
+ excess_size = current_size - @max_size
42
45
 
43
- new_length = [value.length - excess_size, 0].max
44
- record[key] = value[0...new_length]
45
- json_str = record.to_json
46
+ if excess_size > 0
47
+ new_length = [value.length - excess_size, 0].max
48
+ record[key] = value[0...new_length]
49
+ json_str = record.to_json
50
+ reduced = true
51
+ end
52
+ end
46
53
 
47
- break if json_str.bytesize <= @max_size
54
+ break unless reduced
55
+ attempts += 1
48
56
  end
49
57
 
50
58
  final_size = json_str.bytesize
51
- log.debug "Reduced record size from #{original_size} to #{final_size} bytes"
59
+ log.debug "Reduced record size from #{original_size} to #{final_size} bytes" if original_size != final_size
52
60
  end
53
61
 
54
62
  record
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.15
4
+ version: 0.1.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mykola Panin