logworm_amqp 0.8.4 → 0.8.5

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.
Files changed (5) hide show
  1. data/CHANGELOG +3 -0
  2. data/Rakefile +1 -1
  3. data/lib/base/db.rb +42 -10
  4. data/logworm_amqp.gemspec +2 -2
  5. metadata +4 -4
data/CHANGELOG CHANGED
@@ -1,3 +1,6 @@
1
+ v0.8.5
2
+ Started logging amqp usage statistics to our servers (randomly) for better QA.
3
+
1
4
  v0.8.4
2
5
  No longer prints out amqp information when logging and should also self check for amqp url updates incase it was changed.
3
6
 
data/Rakefile CHANGED
@@ -1,5 +1,5 @@
1
1
  require 'echoe'
2
- Echoe.new('logworm_amqp', '0.8.4') do |p|
2
+ Echoe.new('logworm_amqp', '0.8.5') do |p|
3
3
  p.description = "logworm logging tool"
4
4
  p.url = "http://www.logworm.com"
5
5
  p.author = "Pomelo, LLC"
data/lib/base/db.rb CHANGED
@@ -28,10 +28,11 @@ module Logworm
28
28
  @consumer_key, @consumer_secret, @host, @token, @token_secret = match[1..5]
29
29
  @connection = OAuth::AccessToken.new(OAuth::Consumer.new(@consumer_key, @consumer_secret), @token, @token_secret)
30
30
  Minion.amqp_url = "amqp://logworm-producer:4tX.z.rC@pomelo-1.dotcloud.com/"
31
-
32
- time = Time.new
33
- @current_day = time.yday
34
-
31
+ @current_day = Time.now.yday
32
+ @total_time = 0
33
+ @tock = 0
34
+ @amqp_min = 500
35
+ @amqp_max = 0
35
36
  end
36
37
 
37
38
  def self.with_tokens(token, token_secret)
@@ -111,26 +112,57 @@ module Logworm
111
112
 
112
113
  def set_minion_url()
113
114
  #updates amqp_url potentially once a day.
114
- current_time = Time.new
115
- day_now = current_time.yday
115
+ day_now = Time.now.yday
116
116
  if day_now != @current_day
117
- Minion.amqp_url = db_call(:get, "#{host_with_protocol}/amqp_url")["url"]
117
+ url = nil
118
+ begin
119
+ res = db_call(:get, "#{host_with_protocol}/amqp_url")
120
+ url = res["url"] if res and res["url"]
121
+ rescue Exception
122
+ end
123
+ Minion.amqp_url = url if !url.nil?
118
124
  @current_day = day_now
119
125
  end
120
126
  end
121
127
 
128
+ def amqp_avg_set(value)
129
+ #min and max can be the same target value if method is only used once.
130
+ if value > @amqp_max
131
+ @amqp_max = value
132
+ end
133
+ if value < @amqp_min
134
+ @amqp_min = value
135
+ end
136
+ end
137
+
138
+ def push_stats()
139
+ if (rand(300) == 1) #and @tock > 0 --> don't need to worry about this since tock is always incremented at least once before ever using as a divsor
140
+ average = @total_time / @tock
141
+ tstamp = Time.now
142
+ Minion.enqueue("lw.stats", {:avg => average, :stamp => tstamp,
143
+ :max => @amqp_max, :min => @amqp_min, :max => @amqp_max, :total => @total_time })
144
+ @total_time = 0
145
+ @tock = 0
146
+ @amqp_max = 0
147
+ @amqp_min = 500
148
+ end
149
+ end
122
150
 
123
151
  def batch_log(entries)
124
152
  #db_call(:post, "#{host_with_protocol}/log", {:entries => $lr_queue.to_json})
125
153
  content = $lr_queue.to_json
126
154
  sig= signature(content, @token_secret )
127
155
  set_minion_url()
128
- Minion.enqueue("lw.logging", {:entries => content, :consumer_key => @token, :signature => sig })
156
+ s = Time.now
157
+ Minion.enqueue("lw.logging", {:entries => content, :consumer_key => @token, :signature => sig })
158
+ elapse = (Time.now - s)
159
+ @total_time += elapse
160
+ @tock += 1
161
+ amqp_avg_set(elapse)
162
+ push_stats()
129
163
  end
130
164
 
131
165
 
132
-
133
-
134
166
  private
135
167
  def db_call(method, uri, params = {})
136
168
  begin
data/logworm_amqp.gemspec CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{logworm_amqp}
5
- s.version = "0.8.4"
5
+ s.version = "0.8.5"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Pomelo, LLC"]
9
- s.date = %q{2010-08-03}
9
+ s.date = %q{2010-08-04}
10
10
  s.description = %q{logworm logging tool}
11
11
  s.email = %q{schapira@pomelollc.com}
12
12
  s.extra_rdoc_files = ["CHANGELOG", "README.md", "lib/base/config.rb", "lib/base/db.rb", "lib/base/query_builder.rb", "lib/logworm_amqp.rb"]
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logworm_amqp
3
3
  version: !ruby/object:Gem::Version
4
- hash: 55
4
+ hash: 53
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 8
9
- - 4
10
- version: 0.8.4
9
+ - 5
10
+ version: 0.8.5
11
11
  platform: ruby
12
12
  authors:
13
13
  - Pomelo, LLC
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-08-03 00:00:00 -04:00
18
+ date: 2010-08-04 00:00:00 -04:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency