drone 1.0.4 → 1.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. data/Gemfile +13 -0
  2. data/Guardfile +12 -0
  3. data/Rakefile +22 -37
  4. data/drone.gemspec +2 -6
  5. data/examples/collectd.rb +51 -0
  6. data/examples/common.rb +24 -0
  7. data/examples/json.rb +49 -0
  8. data/examples/redis_storage.rb +60 -0
  9. data/examples/simple.rb +3 -3
  10. data/extensions/drone_collectd/Gemfile +7 -0
  11. data/extensions/drone_collectd/LICENSE +20 -0
  12. data/extensions/drone_collectd/README.md +24 -0
  13. data/extensions/drone_collectd/drone_collectd.gemspec +28 -0
  14. data/extensions/drone_collectd/lib/drone_collectd.rb +7 -0
  15. data/extensions/drone_collectd/lib/drone_collectd/collectd.rb +97 -0
  16. data/extensions/drone_collectd/lib/drone_collectd/parser.rb +86 -0
  17. data/extensions/drone_collectd/specs/common.rb +3 -0
  18. data/extensions/drone_collectd/specs/unit/parser_spec.rb +49 -0
  19. data/extensions/drone_json/Gemfile +6 -0
  20. data/extensions/drone_json/LICENSE +20 -0
  21. data/extensions/drone_json/README.md +9 -0
  22. data/extensions/drone_json/drone_json.gemspec +32 -0
  23. data/extensions/drone_json/lib/drone_json.rb +9 -0
  24. data/extensions/drone_json/lib/drone_json/json.rb +100 -0
  25. data/extensions/drone_json/specs/common.rb +63 -0
  26. data/extensions/drone_redis/Gemfile +7 -0
  27. data/extensions/drone_redis/drone_redis.gemspec +22 -0
  28. data/extensions/drone_redis/lib/drone_redis.rb +8 -0
  29. data/extensions/drone_redis/lib/drone_redis/redis.rb +218 -0
  30. data/lib/drone.rb +1 -0
  31. data/lib/drone/errors.rb +11 -0
  32. data/lib/drone/metrics/histogram.rb +7 -6
  33. data/lib/drone/metrics/meter.rb +1 -1
  34. data/lib/drone/monitoring.rb +2 -2
  35. data/lib/drone/storage/memory.rb +1 -0
  36. data/lib/drone/utils/exponentially_decaying_sample.rb +79 -24
  37. data/lib/drone/version.rb +1 -1
  38. data/specs/{unit → metrics}/histogram_spec.rb +5 -1
  39. data/specs/metrics/meter_spec.rb +10 -2
  40. data/specs/metrics/timer_spec.rb +7 -1
  41. data/specs/{unit/monitoring_spec.rb → monitoring_spec.rb} +25 -1
  42. data/specs/{unit → utils}/ewma_spec.rb +1 -0
  43. data/specs/utils/exponentially_decaying_sample_spec.rb +140 -0
  44. data/specs/{unit → utils}/uniform_sample_spec.rb +0 -0
  45. metadata +72 -93
  46. data/specs/unit/exponentially_decaying_sample_spec.rb +0 -86
metadata CHANGED
@@ -1,104 +1,81 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: drone
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.5
4
5
  prerelease:
5
- version: 1.0.4
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Julien Ammous
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-05-09 00:00:00 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
12
+ date: 2011-11-06 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
16
15
  name: eventmachine
17
- prerelease: false
18
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &70313414340220 !ruby/object:Gem::Requirement
19
17
  none: false
20
- requirements:
21
- - - ~>
22
- - !ruby/object:Gem::Version
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
23
21
  version: 0.12.10
24
22
  type: :runtime
25
- version_requirements: *id001
26
- - !ruby/object:Gem::Dependency
27
- name: mocha
28
- prerelease: false
29
- requirement: &id002 !ruby/object:Gem::Requirement
30
- none: false
31
- requirements:
32
- - - ">="
33
- - !ruby/object:Gem::Version
34
- version: "0"
35
- type: :development
36
- version_requirements: *id002
37
- - !ruby/object:Gem::Dependency
38
- name: bacon
39
- prerelease: false
40
- requirement: &id003 !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ">="
44
- - !ruby/object:Gem::Version
45
- version: "0"
46
- type: :development
47
- version_requirements: *id003
48
- - !ruby/object:Gem::Dependency
49
- name: schmurfy-em-spec
50
23
  prerelease: false
51
- requirement: &id004 !ruby/object:Gem::Requirement
24
+ version_requirements: *70313414340220
25
+ - !ruby/object:Gem::Dependency
26
+ name: flt
27
+ requirement: &70313414339400 !ruby/object:Gem::Requirement
52
28
  none: false
53
- requirements:
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- version: "0"
57
- type: :development
58
- version_requirements: *id004
59
- - !ruby/object:Gem::Dependency
60
- name: delorean
61
- prerelease: false
62
- requirement: &id005 !ruby/object:Gem::Requirement
63
- none: false
64
- requirements:
65
- - - ">="
66
- - !ruby/object:Gem::Version
67
- version: "0"
68
- type: :development
69
- version_requirements: *id005
70
- - !ruby/object:Gem::Dependency
71
- name: simplecov
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: 1.3.0
33
+ type: :runtime
72
34
  prerelease: false
73
- requirement: &id006 !ruby/object:Gem::Requirement
74
- none: false
75
- requirements:
76
- - - ">="
77
- - !ruby/object:Gem::Version
78
- version: "0"
79
- type: :development
80
- version_requirements: *id006
35
+ version_requirements: *70313414339400
81
36
  description: Drone is a monitoring library based on the metrics java library
82
37
  email: []
83
-
84
38
  executables: []
85
-
86
39
  extensions: []
87
-
88
40
  extra_rdoc_files: []
89
-
90
- files:
41
+ files:
91
42
  - .gitignore
92
43
  - .rvmrc
93
44
  - .yardopts
94
45
  - Gemfile
46
+ - Guardfile
95
47
  - LICENSE
96
48
  - README.md
97
49
  - Rakefile
98
50
  - drone.gemspec
51
+ - examples/collectd.rb
52
+ - examples/common.rb
53
+ - examples/json.rb
54
+ - examples/redis_storage.rb
99
55
  - examples/simple.rb
56
+ - extensions/drone_collectd/Gemfile
57
+ - extensions/drone_collectd/LICENSE
58
+ - extensions/drone_collectd/README.md
59
+ - extensions/drone_collectd/drone_collectd.gemspec
60
+ - extensions/drone_collectd/lib/drone_collectd.rb
61
+ - extensions/drone_collectd/lib/drone_collectd/collectd.rb
62
+ - extensions/drone_collectd/lib/drone_collectd/parser.rb
63
+ - extensions/drone_collectd/specs/common.rb
64
+ - extensions/drone_collectd/specs/unit/parser_spec.rb
65
+ - extensions/drone_json/Gemfile
66
+ - extensions/drone_json/LICENSE
67
+ - extensions/drone_json/README.md
68
+ - extensions/drone_json/drone_json.gemspec
69
+ - extensions/drone_json/lib/drone_json.rb
70
+ - extensions/drone_json/lib/drone_json/json.rb
71
+ - extensions/drone_json/specs/common.rb
72
+ - extensions/drone_redis/Gemfile
73
+ - extensions/drone_redis/drone_redis.gemspec
74
+ - extensions/drone_redis/lib/drone_redis.rb
75
+ - extensions/drone_redis/lib/drone_redis/redis.rb
100
76
  - lib/drone.rb
101
77
  - lib/drone/core.rb
78
+ - lib/drone/errors.rb
102
79
  - lib/drone/interfaces/base.rb
103
80
  - lib/drone/interfaces/console.rb
104
81
  - lib/drone/metrics/counter.rb
@@ -119,40 +96,42 @@ files:
119
96
  - specs/common.rb
120
97
  - specs/metrics/counter_spec.rb
121
98
  - specs/metrics/gauge_spec.rb
99
+ - specs/metrics/histogram_spec.rb
122
100
  - specs/metrics/meter_spec.rb
123
101
  - specs/metrics/timer_spec.rb
102
+ - specs/monitoring_spec.rb
124
103
  - specs/schedulers/eventmachine_spec.rb
125
- - specs/unit/ewma_spec.rb
126
- - specs/unit/exponentially_decaying_sample_spec.rb
127
- - specs/unit/histogram_spec.rb
128
- - specs/unit/monitoring_spec.rb
129
- - specs/unit/uniform_sample_spec.rb
130
- homepage: ""
104
+ - specs/utils/ewma_spec.rb
105
+ - specs/utils/exponentially_decaying_sample_spec.rb
106
+ - specs/utils/uniform_sample_spec.rb
107
+ homepage: ''
131
108
  licenses: []
132
-
133
109
  post_install_message:
134
110
  rdoc_options: []
135
-
136
- require_paths:
111
+ require_paths:
137
112
  - lib
138
- required_ruby_version: !ruby/object:Gem::Requirement
113
+ required_ruby_version: !ruby/object:Gem::Requirement
139
114
  none: false
140
- requirements:
141
- - - ">="
142
- - !ruby/object:Gem::Version
143
- version: "0"
144
- required_rubygems_version: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ! '>='
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ segments:
120
+ - 0
121
+ hash: -3192317553115616101
122
+ required_rubygems_version: !ruby/object:Gem::Requirement
145
123
  none: false
146
- requirements:
147
- - - ">="
148
- - !ruby/object:Gem::Version
149
- version: "0"
124
+ requirements:
125
+ - - ! '>='
126
+ - !ruby/object:Gem::Version
127
+ version: '0'
128
+ segments:
129
+ - 0
130
+ hash: -3192317553115616101
150
131
  requirements: []
151
-
152
132
  rubyforge_project: drone
153
- rubygems_version: 1.8.1
133
+ rubygems_version: 1.8.11
154
134
  signing_key:
155
135
  specification_version: 3
156
136
  summary: Drone is a monitoring library
157
137
  test_files: []
158
-
@@ -1,86 +0,0 @@
1
- require File.expand_path('../../common', __FILE__)
2
-
3
- require 'drone/utils/exponentially_decaying_sample'
4
- include Drone
5
-
6
- describe 'Exponentially Decaying Sample' do
7
- describe "A sample of 100 out of 1000 elements" do
8
- before do
9
- Drone::init_drone(nil, Storage::Memory.new)
10
-
11
- @population = (0...100)
12
- @sample = ExponentiallyDecayingSample.new('id1', 1000, 0.99)
13
- @population.step(1){|n| @sample.update(n) }
14
- end
15
-
16
-
17
- should "have 100 elements" do
18
- @sample.size.should == 100
19
- @sample.values.size.should == 100
20
- end
21
-
22
- should "only have elements from the population" do
23
- arr = @sample.values - @population.to_a
24
- arr.should == []
25
- end
26
-
27
- end
28
-
29
-
30
- describe "A sample of 100 out of 10 elements" do
31
- before do
32
- @population = (0...10)
33
- @sample = ExponentiallyDecayingSample.new('id1', 100, 0.99)
34
- @population.step(1){|n| @sample.update(n) }
35
- end
36
-
37
- should "have 10 elements" do
38
- @sample.size.should == 10
39
- @sample.values.size.should == 10
40
- end
41
-
42
- should "only have elements from the population" do
43
- arr = @sample.values - @population.to_a
44
- arr.should == []
45
- end
46
-
47
- end
48
-
49
-
50
- describe "A heavily-biased sample of 100 out of 1000 elements" do
51
- before do
52
- @population = (0...100)
53
- @sample = ExponentiallyDecayingSample.new('id1', 1000, 0.99)
54
- @population.step(1){|n| @sample.update(n) }
55
- end
56
-
57
- should "have 100 elements" do
58
- @sample.size.should == 100
59
- @sample.values.size.should == 100
60
- end
61
-
62
- should "only have elements from the population" do
63
- arr = @sample.values - @population.to_a
64
- arr.should == []
65
- end
66
-
67
- should "rescale after 1 hour" do
68
- @sample.expects(:rescale).with(anything())
69
-
70
- Delorean.time_travel_to("2 hours from now") do
71
- @sample.update(1)
72
- end
73
-
74
- @sample.size.should == 101
75
- @sample.values.size.should == 101
76
- end
77
-
78
- it 'can rescale' do
79
- @sample.rescale(Time.now)
80
- @sample.values.should.not == []
81
- # TODO: add a real test here, for now it only tests
82
- # that the code actually runs
83
- end
84
- end
85
-
86
- end