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 +4 -0
- data/README.md +1 -1
- data/lib/instrumental/agent.rb +17 -8
- data/lib/instrumental/version.rb +1 -1
- data/spec/agent_spec.rb +18 -0
- metadata +54 -19
data/CHANGELOG.md
CHANGED
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
|
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
|
|
data/lib/instrumental/agent.rb
CHANGED
@@ -5,15 +5,22 @@ require 'thread'
|
|
5
5
|
require 'socket'
|
6
6
|
|
7
7
|
if RUBY_VERSION < "1.9" && RUBY_PLATFORM != "java"
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
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
|
#
|
data/lib/instrumental/version.rb
CHANGED
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.
|
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-
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
175
|
+
hash: 3430441242522826945
|
141
176
|
requirements: []
|
142
177
|
rubyforge_project:
|
143
|
-
rubygems_version: 1.8.
|
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
|