instrumental_agent 0.9.6 → 0.9.10

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ### 0.9.10 [June 29th, 2012]
2
+ * Fix flush command when there's nothing to flush
3
+ * Support system_timer and SystemTimer gems.
4
+
1
5
  ### 0.9.6 [April 5th, 2012]
2
6
  * Documentation on reliable collection in Resque jobs
3
7
  * Fix for dead lock issuew
data/README.md CHANGED
@@ -16,7 +16,7 @@ Visit [instrumentalapp.com](instrumentalapp.com) and create an account, then in
16
16
  I = Instrumental::Agent.new('YOUR_API_KEY', :enabled => Rails.env.production?)
17
17
  ```
18
18
 
19
- You'll probably want something like the above, only enabling the agent in production mode so you don't have development and produciton data writing to the same value. Or you can setup two projects, so that you can verify stats in one, and release them to production in another.
19
+ You'll probably want something like the above, only enabling the agent in production mode so you don't have development and production data writing to the same value. Or you can setup two projects, so that you can verify stats in one, and release them to production in another.
20
20
 
21
21
  Now you can begin to use Instrumental to track your application.
22
22
 
@@ -5,15 +5,22 @@ require 'thread'
5
5
  require 'socket'
6
6
 
7
7
  if RUBY_VERSION < "1.9" && RUBY_PLATFORM != "java"
8
- begin
9
- gem 'system_timer'
10
- require 'system_timer'
11
- InstrumentalTimeout = SystemTimer
12
- rescue Exception => e
8
+ timeout_lib = nil
9
+ ["SystemTimer", "system_timer"].each do |lib|
10
+ begin
11
+ unless timeout_lib
12
+ gem lib
13
+ require "system_timer"
14
+ timeout_lib = SystemTimer
15
+ end
16
+ rescue Exception => e
17
+ end
18
+ end
19
+ if !timeout_lib
13
20
  puts <<-EOMSG
14
21
  WARNING:: You do not currently have system_timer installed.
15
22
  It is strongly advised that you install this gem when using
16
- instrumental_agent with Ruby 1.8.x. You can install it in
23
+ instrumental_agent with Ruby 1.8.x. You can install it in
17
24
  your Gemfile via:
18
25
  gem 'system_timer'
19
26
  or manually via:
@@ -21,6 +28,8 @@ gem install system_timer
21
28
  EOMSG
22
29
  require 'timeout'
23
30
  InstrumentalTimeout = Timeout
31
+ else
32
+ InstrumentalTimeout = timeout_lib
24
33
  end
25
34
  else
26
35
  require 'timeout'
@@ -182,7 +191,7 @@ module Instrumental
182
191
  queue_message('flush', {
183
192
  :synchronous => true,
184
193
  :allow_reconnect => allow_reconnect
185
- })
194
+ }) if running?
186
195
  end
187
196
 
188
197
  def enabled?
@@ -201,7 +210,7 @@ module Instrumental
201
210
  @logger ||= self.class.logger
202
211
  end
203
212
 
204
- # Stopping the agent will immediately stop all communication
213
+ # Stopping the agent will immediately stop all communication
205
214
  # to Instrumental. If you call this and submit another metric,
206
215
  # the agent will start again.
207
216
  #
@@ -1,3 +1,3 @@
1
1
  module Instrumental
2
- VERSION = '0.9.6'
2
+ VERSION = '0.9.10'
3
3
  end
data/spec/agent_spec.rb CHANGED
@@ -42,6 +42,12 @@ describe Instrumental::Agent, "disabled" do
42
42
  wait
43
43
  @server.commands.should be_empty
44
44
  end
45
+
46
+ it "should no op on an empty flush" do
47
+ @agent.flush(true)
48
+ wait
49
+ @server.commands.should be_empty
50
+ end
45
51
  end
46
52
 
47
53
  describe Instrumental::Agent, "enabled in test_mode" do
@@ -149,6 +155,12 @@ describe Instrumental::Agent, "enabled in test_mode" do
149
155
  @server.commands.join("\n").should include("increment foo.baz 1 #{tm.to_i}")
150
156
  @server.commands.join("\n").should_not include("increment foo.bar 1 #{tm.to_i}")
151
157
  end
158
+
159
+ it "should no op on an empty flush" do
160
+ @agent.flush(true)
161
+ wait
162
+ @server.commands.should be_empty
163
+ end
152
164
  end
153
165
 
154
166
  describe Instrumental::Agent, "enabled" do
@@ -376,6 +388,12 @@ describe Instrumental::Agent, "enabled" do
376
388
  wait
377
389
  @server.commands.grep(/^gauge a /).size.should == 100
378
390
  end
391
+
392
+ it "should no op on an empty flush" do
393
+ @agent.flush(true)
394
+ wait
395
+ @server.commands.should be_empty
396
+ end
379
397
  end
380
398
 
381
399
  describe Instrumental::Agent, "connection problems" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: instrumental_agent
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.6
4
+ version: 0.9.10
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -12,11 +12,11 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2012-04-05 00:00:00.000000000 Z
15
+ date: 2012-06-29 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: rake
19
- requirement: &70181168630580 !ruby/object:Gem::Requirement
19
+ requirement: !ruby/object:Gem::Requirement
20
20
  none: false
21
21
  requirements:
22
22
  - - ! '>='
@@ -24,10 +24,15 @@ dependencies:
24
24
  version: '0'
25
25
  type: :development
26
26
  prerelease: false
27
- version_requirements: *70181168630580
27
+ version_requirements: !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
28
33
  - !ruby/object:Gem::Dependency
29
34
  name: rspec
30
- requirement: &70181168630060 !ruby/object:Gem::Requirement
35
+ requirement: !ruby/object:Gem::Requirement
31
36
  none: false
32
37
  requirements:
33
38
  - - ~>
@@ -35,10 +40,15 @@ dependencies:
35
40
  version: '2.0'
36
41
  type: :development
37
42
  prerelease: false
38
- version_requirements: *70181168630060
43
+ version_requirements: !ruby/object:Gem::Requirement
44
+ none: false
45
+ requirements:
46
+ - - ~>
47
+ - !ruby/object:Gem::Version
48
+ version: '2.0'
39
49
  - !ruby/object:Gem::Dependency
40
50
  name: fuubar
41
- requirement: &70181168629580 !ruby/object:Gem::Requirement
51
+ requirement: !ruby/object:Gem::Requirement
42
52
  none: false
43
53
  requirements:
44
54
  - - ! '>='
@@ -46,10 +56,15 @@ dependencies:
46
56
  version: '0'
47
57
  type: :development
48
58
  prerelease: false
49
- version_requirements: *70181168629580
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ none: false
61
+ requirements:
62
+ - - ! '>='
63
+ - !ruby/object:Gem::Version
64
+ version: '0'
50
65
  - !ruby/object:Gem::Dependency
51
66
  name: guard
52
- requirement: &70181168629080 !ruby/object:Gem::Requirement
67
+ requirement: !ruby/object:Gem::Requirement
53
68
  none: false
54
69
  requirements:
55
70
  - - ! '>='
@@ -57,10 +72,15 @@ dependencies:
57
72
  version: '0'
58
73
  type: :development
59
74
  prerelease: false
60
- version_requirements: *70181168629080
75
+ version_requirements: !ruby/object:Gem::Requirement
76
+ none: false
77
+ requirements:
78
+ - - ! '>='
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
61
81
  - !ruby/object:Gem::Dependency
62
82
  name: guard-rspec
63
- requirement: &70181168628600 !ruby/object:Gem::Requirement
83
+ requirement: !ruby/object:Gem::Requirement
64
84
  none: false
65
85
  requirements:
66
86
  - - ! '>='
@@ -68,10 +88,15 @@ dependencies:
68
88
  version: '0'
69
89
  type: :development
70
90
  prerelease: false
71
- version_requirements: *70181168628600
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ none: false
93
+ requirements:
94
+ - - ! '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
72
97
  - !ruby/object:Gem::Dependency
73
98
  name: growl
74
- requirement: &70181168628120 !ruby/object:Gem::Requirement
99
+ requirement: !ruby/object:Gem::Requirement
75
100
  none: false
76
101
  requirements:
77
102
  - - ! '>='
@@ -79,10 +104,15 @@ dependencies:
79
104
  version: '0'
80
105
  type: :development
81
106
  prerelease: false
82
- version_requirements: *70181168628120
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ none: false
109
+ requirements:
110
+ - - ! '>='
111
+ - !ruby/object:Gem::Version
112
+ version: '0'
83
113
  - !ruby/object:Gem::Dependency
84
114
  name: rb-fsevent
85
- requirement: &70181168627620 !ruby/object:Gem::Requirement
115
+ requirement: !ruby/object:Gem::Requirement
86
116
  none: false
87
117
  requirements:
88
118
  - - ! '>='
@@ -90,7 +120,12 @@ dependencies:
90
120
  version: '0'
91
121
  type: :development
92
122
  prerelease: false
93
- version_requirements: *70181168627620
123
+ version_requirements: !ruby/object:Gem::Requirement
124
+ none: false
125
+ requirements:
126
+ - - ! '>='
127
+ - !ruby/object:Gem::Version
128
+ version: '0'
94
129
  description: Track anything.
95
130
  email:
96
131
  - support@instrumentalapp.com
@@ -128,7 +163,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
128
163
  version: '0'
129
164
  segments:
130
165
  - 0
131
- hash: -2735565330183687478
166
+ hash: 3430441242522826945
132
167
  required_rubygems_version: !ruby/object:Gem::Requirement
133
168
  none: false
134
169
  requirements:
@@ -137,10 +172,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
137
172
  version: '0'
138
173
  segments:
139
174
  - 0
140
- hash: -2735565330183687478
175
+ hash: 3430441242522826945
141
176
  requirements: []
142
177
  rubyforge_project:
143
- rubygems_version: 1.8.15
178
+ rubygems_version: 1.8.24
144
179
  signing_key:
145
180
  specification_version: 3
146
181
  summary: Agent for reporting data to instrumentalapp.com