telemetry 1.3.9 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f66a46f50d1cfd3fe40472b34a51c803c33fa5a7
4
- data.tar.gz: 496ba49e4aeb15dc53f23eadaf14454813a84444
3
+ metadata.gz: f909b582e2a38ba2ff587a7086f2da0f591f06c1
4
+ data.tar.gz: e0580f90598446e0382b48f59a1d3918cc878e49
5
5
  SHA512:
6
- metadata.gz: c95aef29ac5f645fd291fa3d3fa0714542f1a0e0150ab12c5875039b1730b628494e7de10ea144f6da2b2eebc9cbbb07b0eae8cf2d1de1dbfd9e2356820df419
7
- data.tar.gz: 68ae3c692334fac0bbb1116dbcd1264ffd34cda09bee656dd8afedc2cd96ef343b881f97a38e380c9811d2b97cd51d277735c5b99e13ad1abfc6d25949f293f9
6
+ metadata.gz: c6cc0c9d27fce5739e05d584682c8c6d484780a0b178d16901a91bfe47221de2e46d866a967b95526626c6fec5fc5d7a706f258aa0db7527b88f4920cb722b7c
7
+ data.tar.gz: 156f530fb37ed5fabc4790e6a23b775c840340508079b4ab9ff09fc2e2d63a8805dd82c7c3e696b2dffb2eb0b0534741667295072ef6bfdbc33b002792abbd61
data/bin/telemetryd CHANGED
@@ -18,6 +18,9 @@ runner.with_options do |opts|
18
18
  opts.on("-o", "--once", "Run once") do |o|
19
19
  options[:once] = o
20
20
  end
21
+ opts.on("-b", "--debug", "Debug") do |o|
22
+ Telemetry::logger.level = Logger::DEBUG
23
+ end
21
24
  end
22
25
 
23
26
  runner.execute do |opts|
data/lib/telemetry/api.rb CHANGED
@@ -21,7 +21,7 @@ module Telemetry
21
21
  if ENV["RACK_ENV"] == 'development'
22
22
  @api_host = "https://api.telemetryapp.com"
23
23
  elsif ENV["RACK_ENV"] == 'test'
24
- @api_host = "https://api.telemetryapp.com"
24
+ @api_host = "https://qa-api.telemetryapp.com"
25
25
  elsif ENV["RACK_ENV"] == 'qa'
26
26
  @api_host = "https://qa-api.telemetryapp.com"
27
27
  else
@@ -168,6 +168,8 @@ module Telemetry
168
168
  def self.send(method, endpoint, data = nil)
169
169
 
170
170
  http = Net::HTTP::Persistent.new 'telemetry_api'
171
+ http.idle_timeout = 15
172
+ http.max_requests = 100
171
173
  uri = URI("#{Telemetry.api_host}#{endpoint}")
172
174
 
173
175
  Telemetry::logger.debug "REQ #{uri} - #{MultiJson.dump(data)}"
@@ -202,89 +204,107 @@ module Telemetry
202
204
  code = response.code
203
205
 
204
206
  Telemetry::logger.debug "RESP (#{((Time.now-start_time)*1000).to_i}ms): #{response.code}:#{response.body}"
207
+ result = Telemetry::Api.parse_response(response)
205
208
 
206
209
  case response.code
207
210
  when "200"
208
- rj = MultiJson.load(response.body)
209
- Telemetry::logger.info "Updated: #{rj['updated'].join(', ')}" if rj.is_a?(Hash) && rj['updated'] && rj['updated'].is_a?(Array) && rj['updated'].count > 0
210
- Telemetry::logger.info "Skipped: #{rj['skipped'].join(', ')}" if rj.is_a?(Hash) && rj['skipped'] && rj['skipped'].is_a?(Array) && rj['skipped'].count > 0
211
- Telemetry::logger.info "Errors: #{rj['errors'].join(', ')}" if rj.is_a?(Hash) && rj['errors'] && rj['errors'].is_a?(Array) && rj['errors'].count > 0
212
- return rj
211
+ Telemetry::logger.debug "200 OK"
212
+ return result
213
213
  when "201"
214
- rj = MultiJson.load(response.body)
215
- Telemetry::logger.info "Updated: #{rj['updated'].join(', ')}" if rj.is_a?(Hash) && rj['updated'] && rj['updated'].is_a?(Array) && rj['updated'].count > 0
216
- Telemetry::logger.info "Skipped: #{rj['skipped'].join(', ')}" if rj.is_a?(Hash) && rj['skipped'] && rj['skipped'].is_a?(Array) && rj['skipped'].count > 0
217
- Telemetry::logger.info "Errors: #{rj['errors'].join(', ')}" if rj.is_a?(Hash) && rj['errors'] && rj['errors'].is_a?(Array) && rj['errors'].count > 0
218
- return rj
214
+ Telemetry::logger.debug "201 OK"
215
+ return result
219
216
  when "204"
217
+ Telemetry::logger.debug "204 OK"
220
218
  return "No Body"
221
219
  when "400"
222
- json = MultiJson.load(response.body)
223
- error = "#{Time.now} (HTTP 400) #{json['errors'].join(',') if json && json['errors']}"
224
- Telemetry::logger.debug response.body
220
+ error = "HTTP 400: Request error"
225
221
  Telemetry::logger.error error
226
222
  raise Telemetry::FormatError, error
227
223
  when "401"
228
224
  if Telemetry.token == nil
229
- error = "#{Time.now} (HTTP 401): Authentication failed, please set Telemetry.token to your API Token. #{method.upcase} #{uri}"
225
+ error = "HTTP 401: Authentication failed, please set Telemetry.token to your API Token. #{method.upcase} #{uri}"
230
226
  Telemetry::logger.error error
231
227
  raise Telemetry::AuthenticationFailed, error
232
228
  else
233
- error = "#{Time.now} (HTTP 401): Authentication failed, please verify your token. #{method.upcase} #{uri}"
229
+ error = "HTTP 401: Authentication failed, please verify your token. #{method.upcase} #{uri}"
234
230
  Telemetry::logger.error error
235
231
  raise Telemetry::AuthenticationFailed, error
236
232
  end
237
233
  when "403"
238
- error = "#{Time.now} (HTTP 403): Authorization failed, please check your account access. #{method.upcase} #{uri}"
234
+ error = "HTTP 403: Authorization failed, please check your account access. #{method.upcase} #{uri}"
239
235
  Telemetry::logger.error error
240
236
  raise Telemetry::AuthorizationError, error
241
237
  when "404"
242
- error = "#{Time.now} (HTTP 404): Requested object not found. #{method.upcase} #{uri}"
238
+ error = "HTTP 404: Requested object not found. #{method.upcase} #{uri}"
243
239
  Telemetry::logger.error error
244
240
  raise Telemetry::FlowNotFound, error
245
241
  when "405"
246
- error = "#{Time.now} (HTTP 405): Method not allowed. #{method.upcase} #{uri}"
242
+ error = "HTTP 405: Method not allowed. #{method.upcase} #{uri}"
247
243
  Telemetry::logger.error error
248
244
  raise Telemetry::MethodNotAllowed, error
249
245
  when "429"
250
- error = "#{Time.now} (HTTP 429): Rate limited. Please reduce your update interval. #{method.upcase} #{uri}"
246
+ error = "HTTP 429: Rate limited. Please reduce your update interval. #{method.upcase} #{uri}"
251
247
  Telemetry::logger.error error
252
248
  raise Telemetry::RateLimited, error
253
249
  when "500"
254
- error = "#{Time.now} (HTTP 500): API server error. #{method.upcase} #{uri}"
250
+ error = "HTTP 500: API server error. #{method.upcase} #{uri}"
255
251
  Telemetry::logger.error error
256
252
  Telemetry::logger.error response.body
257
253
  raise Telemetry::ServerException, error
258
254
  when "502"
259
- error = "#{Time.now} (HTTP 502): API server is down. #{method.upcase} #{uri}"
255
+ error = "HTTP 502: API server is down. #{method.upcase} #{uri}"
260
256
  Telemetry::logger.error error
261
257
  raise Telemetry::Unavailable, error
262
258
  when "503"
263
- error = "#{Time.now} (HTTP 503): API server is down. #{method.upcase} #{uri}"
259
+ error = "HTTP 503: API server is down. #{method.upcase} #{uri}"
264
260
  Telemetry::logger.error error
265
261
  raise Telemetry::Unavailable, error
266
262
  else
267
- error = "#{Time.now} ERROR UNK: #{method.upcase} #{uri} #{response.body}."
263
+ error = "ERROR UNK: #{method.upcase} #{uri} #{response.body}."
268
264
  raise Telemetry::UnknownError, error
269
265
  end
270
266
 
271
267
  rescue Errno::ETIMEDOUT => e
272
- error = "#{Time.now} ERROR #{e}"
268
+ error = "ERROR #{e}"
273
269
  Telemetry::logger.error error
274
270
  raise Telemetry::ConnectionError, error
275
271
 
276
272
  rescue Errno::ECONNREFUSED => e
277
- error = "#{Time.now} ERROR #{e}"
273
+ error = "ERROR #{e}"
278
274
  Telemetry::logger.error error
279
275
  raise Telemetry::ConnectionError, error
280
276
 
281
277
  rescue Exception => e
282
278
  raise e
283
279
 
284
- ensure
285
- http.shutdown
280
+ #ensure
281
+ #http.shutdown
286
282
  end
287
283
  end
284
+
285
+ def self.parse_response(response)
286
+ begin
287
+ resp_hash = MultiJson.load(response.body)
288
+ return nil unless resp_hash && resp_hash.is_a?(Hash)
289
+
290
+ if resp_hash["errors"] && resp_hash["errors"].is_a?(Array) && resp_hash["errors"].count > 0
291
+ Telemetry::logger.error "Errors: #{resp_hash['errors'].join(', ')}"
292
+ end
293
+
294
+ if resp_hash["updated"] && resp_hash["updated"].is_a?(Array) && resp_hash["updated"].count > 0
295
+ Telemetry::logger.debug "Updated: #{resp_hash['updated'].join(', ')}"
296
+ end
297
+
298
+ if resp_hash["skipped"] && resp_hash["skipped"].is_a?(Array) && resp_hash["skipped"].count > 0
299
+ Telemetry::logger.error "Skipped: #{resp_hash['skipped'].join(', ')}"
300
+ end
301
+ return resp_hash
302
+
303
+ rescue Exception => e
304
+ return nil
305
+ end
306
+ end
307
+
288
308
  end
289
309
 
290
310
  class FormatError < Exception
@@ -321,4 +341,6 @@ module Telemetry
321
341
  end
322
342
 
323
343
 
344
+
345
+
324
346
  end
@@ -1,3 +1,3 @@
1
1
  module Telemetry
2
- TELEMETRY_VERSION = "1.3.9"
2
+ TELEMETRY_VERSION = "1.4.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: telemetry
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.9
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - W. Gersham Meharg
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-26 00:00:00.000000000 Z
11
+ date: 2014-05-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: oj