simple_performer 0.0.7 → 0.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/simple_performer.rb +58 -15
- metadata +5 -18
data/lib/simple_performer.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'rest_client'
|
3
|
-
require 'eventmachine'
|
3
|
+
#require 'eventmachine'
|
4
4
|
require 'benchmark'
|
5
5
|
require 'pp'
|
6
6
|
require 'json'
|
@@ -23,6 +23,7 @@ module SimplePerformer
|
|
23
23
|
SimplePerformer.config ||= SimplePerformer::Config.new
|
24
24
|
yield(config)
|
25
25
|
# SimplePerformer.service = Performr.new(config.access_key, config.secret_key, :config=>config)
|
26
|
+
# todo: should delay start until used?
|
26
27
|
Performr.start
|
27
28
|
end
|
28
29
|
end
|
@@ -33,7 +34,7 @@ module SimplePerformer
|
|
33
34
|
end
|
34
35
|
|
35
36
|
def self.shutdown
|
36
|
-
EventMachine.stop
|
37
|
+
# EventMachine.stop
|
37
38
|
end
|
38
39
|
|
39
40
|
def self.base_url=(url)
|
@@ -53,6 +54,48 @@ module SimplePerformer
|
|
53
54
|
puts "#{name} duration: #{(end_time-start_time)} seconds."
|
54
55
|
end
|
55
56
|
|
57
|
+
class Aggregator
|
58
|
+
def initialize
|
59
|
+
@aggs = {}
|
60
|
+
end
|
61
|
+
|
62
|
+
def benchmark(name, &block)
|
63
|
+
start_time = Time.now
|
64
|
+
yield
|
65
|
+
end_time = Time.now
|
66
|
+
agg = @aggs[name]
|
67
|
+
agg = Agger.new(name) if agg.nil?
|
68
|
+
agg.add(end_time-start_time)
|
69
|
+
@aggs[name] = agg
|
70
|
+
|
71
|
+
end
|
72
|
+
|
73
|
+
# Prints current info
|
74
|
+
def puts(name)
|
75
|
+
agg = @aggs[name]
|
76
|
+
agg.puts
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
class Agger
|
81
|
+
attr_accessor :name, :sum, :count
|
82
|
+
|
83
|
+
def initialize(name)
|
84
|
+
@name = name
|
85
|
+
@sum = 0.0
|
86
|
+
@count = 0
|
87
|
+
end
|
88
|
+
|
89
|
+
def add(duration)
|
90
|
+
@sum += duration
|
91
|
+
@count += 1
|
92
|
+
end
|
93
|
+
|
94
|
+
def puts
|
95
|
+
Kernel.puts "Aggregator #{name}: count=#{count} avg=#{avg}"
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
56
99
|
class Performr
|
57
100
|
#< ApiAuth
|
58
101
|
|
@@ -124,19 +167,19 @@ module SimplePerformer
|
|
124
167
|
|
125
168
|
def periodic_update
|
126
169
|
|
127
|
-
EventMachine.run do
|
128
|
-
@timer = EventMachine::PeriodicTimer.new(60) do
|
129
|
-
|
130
|
-
begin
|
131
|
-
send_update
|
132
|
-
rescue => ex
|
133
|
-
puts 'Failed to send data to SimplePerformr!'
|
134
|
-
puts ex.message
|
135
|
-
puts ex.backtrace
|
136
|
-
end
|
137
|
-
|
138
|
-
end
|
139
|
-
end
|
170
|
+
# EventMachine.run do
|
171
|
+
# @timer = EventMachine::PeriodicTimer.new(60) do
|
172
|
+
## puts "the time is #{Time.now}"
|
173
|
+
# begin
|
174
|
+
# send_update
|
175
|
+
# rescue => ex
|
176
|
+
# puts 'Failed to send data to SimplePerformr!'
|
177
|
+
# puts ex.message
|
178
|
+
# puts ex.backtrace
|
179
|
+
# end
|
180
|
+
#
|
181
|
+
# end
|
182
|
+
# end
|
140
183
|
end
|
141
184
|
|
142
185
|
def cancel_update
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
8
|
+
- 11
|
9
|
+
version: 0.0.11
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Travis Reeder
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date:
|
17
|
+
date: 2011-01-02 00:00:00 -08:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -30,19 +30,6 @@ dependencies:
|
|
30
30
|
version: "0"
|
31
31
|
type: :runtime
|
32
32
|
version_requirements: *id001
|
33
|
-
- !ruby/object:Gem::Dependency
|
34
|
-
name: eventmachine
|
35
|
-
prerelease: false
|
36
|
-
requirement: &id002 !ruby/object:Gem::Requirement
|
37
|
-
none: false
|
38
|
-
requirements:
|
39
|
-
- - ">="
|
40
|
-
- !ruby/object:Gem::Version
|
41
|
-
segments:
|
42
|
-
- 0
|
43
|
-
version: "0"
|
44
|
-
type: :runtime
|
45
|
-
version_requirements: *id002
|
46
33
|
description: Appoxy SimplePerformer Client Gem ...
|
47
34
|
email: travis@appoxy.com
|
48
35
|
executables: []
|
@@ -65,8 +52,8 @@ homepage: http://www.appoxy.com
|
|
65
52
|
licenses: []
|
66
53
|
|
67
54
|
post_install_message:
|
68
|
-
rdoc_options:
|
69
|
-
|
55
|
+
rdoc_options: []
|
56
|
+
|
70
57
|
require_paths:
|
71
58
|
- lib
|
72
59
|
required_ruby_version: !ruby/object:Gem::Requirement
|