fluent-plugin-throttle 0.0.1 → 0.0.2

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: a6e438f87f8be6572c11b82e0dce8c493b3ed92d
4
- data.tar.gz: e6cb87f9b709ea05d72e8244c72b2daf814ed741
3
+ metadata.gz: 65759b9fff6dd920e4d1963a9d7ef7d786cd4708
4
+ data.tar.gz: fce8128e0943af6ce0dcb412658dcebdb426ea00
5
5
  SHA512:
6
- metadata.gz: 814306a6ae6eee257ea97734a101f5edd0daacf6754f2dbc7e031f3e8be01dbe05bc0d6592dce6911f43d1c9b082f4597fc43acc687c4ff7180d51eb04190d07
7
- data.tar.gz: 72ea81c1dd748d0c5ac0650c6add62d4eb2302f1d4e5704b886161cc6fcd00ddc123948e9c2ce58ea69fbcc14d85773361e1a012851e12c4cbc4e273cdb734fb
6
+ metadata.gz: 32ac8f613190595a760cb2bdc44c7e1e270824c86ebcff96179751df63325798a2384eb8f4f4557455db6020698acf950de5f51b375be802177a504e6da671c1
7
+ data.tar.gz: fc74e2b98c362d0428ae9b24464a5466bec1ec17cef2827bf206ce707450f8700ffbb70453fc8b8c45338ded45879299695ec795404a4d6a9405000f2662299b
data/README.md CHANGED
@@ -15,8 +15,12 @@ $ gem install fluent-plugin-throttle
15
15
  ## Usage
16
16
 
17
17
  ```xml
18
- <filter>
19
- ...
18
+ <filter **>
19
+ @type throttle
20
+ group_key kubernetes.container_name
21
+ group_bucket_period_s 60
22
+ group_bucket_limit 6000
23
+ group_reset_rate_s 100
20
24
  </filter>
21
25
  ```
22
26
 
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "fluent-plugin-throttle"
7
- spec.version = "0.0.1"
7
+ spec.version = "0.0.2"
8
8
  spec.authors = ["François-Xavier Bourlet"]
9
9
  spec.email = ["fx.bourlet@rubrik.com"]
10
10
  spec.summary = %q{Fluentd filter for throttling logs based on a configurable key.}
@@ -14,7 +14,7 @@ module Fluent
14
14
  Group = Struct.new(
15
15
  :rate_count,
16
16
  :rate_last_reset,
17
- :rate,
17
+ :aprox_rate,
18
18
  :bucket_count,
19
19
  :bucket_last_reset,
20
20
  :last_warning)
@@ -66,7 +66,7 @@ module Fluent
66
66
  since_last_rate_reset = now - counter.rate_last_reset
67
67
  if since_last_rate_reset >= 1
68
68
  # compute and store rate/s at most every seconds.
69
- counter.rate = (counter.rate_count / since_last_rate_reset).round()
69
+ counter.aprox_rate = (counter.rate_count / since_last_rate_reset).round()
70
70
  counter.rate_count = 0
71
71
  counter.rate_last_reset = now
72
72
  end
@@ -77,11 +77,11 @@ module Fluent
77
77
 
78
78
  if counter.bucket_count == -1 and @group_reset_rate_s != -1
79
79
  # wait until rate drops back down if needed.
80
- if counter.rate < @group_reset_rate_s
80
+ if counter.aprox_rate < @group_reset_rate_s
81
81
  log_rate_back_down(now, group, counter)
82
82
  else
83
83
  since_last_warning = now - counter.last_warning
84
- if since_last_warning > @warning_delay
84
+ if since_last_warning >= @warning_delay
85
85
  log_rate_limit_exceeded(now, group, counter)
86
86
  counter.last_warning = now
87
87
  end
@@ -122,11 +122,10 @@ module Fluent
122
122
  end
123
123
 
124
124
  def log_items(now, group, counter)
125
- rate = counter.rate
126
- if rate == 0
127
- since_last_reset = now - counter.bucket_last_reset
128
- rate = (counter.bucket_count / since_last_reset).round()
129
- end
125
+ since_last_reset = now - counter.bucket_last_reset
126
+ rate = (counter.bucket_count / since_last_reset).round()
127
+ aprox_rate = counter.aprox_rate
128
+ rate = aprox_rate if aprox_rate > rate
130
129
 
131
130
  {'group_key': group,
132
131
  'rate_s': rate,
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-throttle
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - François-Xavier Bourlet
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-03-19 00:00:00.000000000 Z
11
+ date: 2018-03-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler