fluent-plugin-sampling-filter 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.1
@@ -0,0 +1,64 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "fluent-plugin-sampling-filter"
8
+ s.version = "0.1.1"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["TAGOMORI Satoshi"]
12
+ s.date = "2012-03-29"
13
+ s.description = "fluentd plugin to pickup sample data from matched massages"
14
+ s.email = "tagomoris@gmail.com"
15
+ s.extra_rdoc_files = [
16
+ "LICENSE.txt",
17
+ "README.rdoc"
18
+ ]
19
+ s.files = [
20
+ ".document",
21
+ "AUTHORS",
22
+ "Gemfile",
23
+ "LICENSE.txt",
24
+ "README.rdoc",
25
+ "Rakefile",
26
+ "VERSION",
27
+ "fluent-plugin-sampling-filter.gemspec",
28
+ "lib/fluent/plugin/out_sampling_filter.rb",
29
+ "test/helper.rb",
30
+ "test/plugin/test_out_sampling_filter.rb"
31
+ ]
32
+ s.homepage = "http://github.com/tagomoris/fluent-plugin-sampling-filter"
33
+ s.require_paths = ["lib"]
34
+ s.rubygems_version = "1.8.19"
35
+ s.summary = "fluentd plugin to pickup sample data from matched massages"
36
+
37
+ if s.respond_to? :specification_version then
38
+ s.specification_version = 3
39
+
40
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
41
+ s.add_runtime_dependency(%q<fluentd>, [">= 0"])
42
+ s.add_development_dependency(%q<shoulda>, [">= 0"])
43
+ s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
44
+ s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
45
+ s.add_development_dependency(%q<simplecov>, [">= 0"])
46
+ s.add_development_dependency(%q<rdoc>, [">= 0"])
47
+ else
48
+ s.add_dependency(%q<fluentd>, [">= 0"])
49
+ s.add_dependency(%q<shoulda>, [">= 0"])
50
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
51
+ s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
52
+ s.add_dependency(%q<simplecov>, [">= 0"])
53
+ s.add_dependency(%q<rdoc>, [">= 0"])
54
+ end
55
+ else
56
+ s.add_dependency(%q<fluentd>, [">= 0"])
57
+ s.add_dependency(%q<shoulda>, [">= 0"])
58
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
59
+ s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
60
+ s.add_dependency(%q<simplecov>, [">= 0"])
61
+ s.add_dependency(%q<rdoc>, [">= 0"])
62
+ end
63
+ end
64
+
@@ -48,13 +48,17 @@ class Fluent::SamplingFilterOutput < Fluent::Output
48
48
  else
49
49
  tag
50
50
  end
51
- @counts[t] ||= 0
51
+ # Access to @counts SHOULD be protected by mutex, with a heavy penalty.
52
+ # Code below is not thread safe, but @counts (counter for sampling rate) is not
53
+ # so serious value (and probably will not be broke...),
54
+ # then i let here as it is now.
52
55
  pairs = []
53
56
  es.each {|time,record|
54
- @counts[t] += 1
55
- if @counts[t] == @interval
57
+ c = (@counts[t] = @counts.fetch(t, 0) + 1)
58
+ if c % @interval == 0
56
59
  pairs.push [time, record]
57
- @counts[t] = 0
60
+ # reset only just before @counts[t] is to be bignum from fixnum
61
+ @counts[t] = 0 if c > 0x6fffffff
58
62
  end
59
63
  }
60
64
  emit_sampled(tag, pairs)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-sampling-filter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-23 00:00:00.000000000Z
12
+ date: 2012-03-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: fluentd
16
- requirement: &2154789280 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2154789280
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: shoulda
27
- requirement: &2154788800 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ! '>='
@@ -32,10 +37,15 @@ dependencies:
32
37
  version: '0'
33
38
  type: :development
34
39
  prerelease: false
35
- version_requirements: *2154788800
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: bundler
38
- requirement: &2154788320 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ~>
@@ -43,10 +53,15 @@ dependencies:
43
53
  version: 1.0.0
44
54
  type: :development
45
55
  prerelease: false
46
- version_requirements: *2154788320
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 1.0.0
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: jeweler
49
- requirement: &2154787840 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
67
  - - ~>
@@ -54,10 +69,15 @@ dependencies:
54
69
  version: 1.6.4
55
70
  type: :development
56
71
  prerelease: false
57
- version_requirements: *2154787840
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: 1.6.4
58
78
  - !ruby/object:Gem::Dependency
59
79
  name: simplecov
60
- requirement: &2154787360 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
61
81
  none: false
62
82
  requirements:
63
83
  - - ! '>='
@@ -65,10 +85,15 @@ dependencies:
65
85
  version: '0'
66
86
  type: :development
67
87
  prerelease: false
68
- version_requirements: *2154787360
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
69
94
  - !ruby/object:Gem::Dependency
70
95
  name: rdoc
71
- requirement: &2154786880 !ruby/object:Gem::Requirement
96
+ requirement: !ruby/object:Gem::Requirement
72
97
  none: false
73
98
  requirements:
74
99
  - - ! '>='
@@ -76,7 +101,12 @@ dependencies:
76
101
  version: '0'
77
102
  type: :development
78
103
  prerelease: false
79
- version_requirements: *2154786880
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
80
110
  description: fluentd plugin to pickup sample data from matched massages
81
111
  email: tagomoris@gmail.com
82
112
  executables: []
@@ -92,6 +122,7 @@ files:
92
122
  - README.rdoc
93
123
  - Rakefile
94
124
  - VERSION
125
+ - fluent-plugin-sampling-filter.gemspec
95
126
  - lib/fluent/plugin/out_sampling_filter.rb
96
127
  - test/helper.rb
97
128
  - test/plugin/test_out_sampling_filter.rb
@@ -109,7 +140,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
109
140
  version: '0'
110
141
  segments:
111
142
  - 0
112
- hash: 3531476844839040291
143
+ hash: 2842791238956206034
113
144
  required_rubygems_version: !ruby/object:Gem::Requirement
114
145
  none: false
115
146
  requirements:
@@ -118,7 +149,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
118
149
  version: '0'
119
150
  requirements: []
120
151
  rubyforge_project:
121
- rubygems_version: 1.8.6
152
+ rubygems_version: 1.8.19
122
153
  signing_key:
123
154
  specification_version: 3
124
155
  summary: fluentd plugin to pickup sample data from matched massages