telemetry 1.1.12 → 1.1.13

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MTA0YmZmMGQ2ODRiYTZkNTdlZTRmMTQyNDMwZGViZDEyNTM0YzZjMA==
4
+ NTQ1MDljMTg1YWUwNjc1MjRjNGMyODRkMmNmZTY1Zjg1YWQ3NjFhYQ==
5
5
  data.tar.gz: !binary |-
6
- MTBmMGJiY2EzMDhlMGVlZWI4MDJmNzM0MmFhODZiNjY5NDZhOGVjMQ==
6
+ M2Q3MWU5Y2ZhODQ5YzliYTM3MDEzYTkyZTNiYmRiZjc2MGE5MzRhMQ==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- ZTE1NDY0OGYwNTVmZDAxYzM3NDhlMzBlYzNjOTkyYTFiZDAxMzcwMDgyNjk0
10
- ODljYTg0ZTEzYmE5MWM0NjI2M2IxNmNlYTUzYTIwMmVhMWZhYjMzMGY3YjU2
11
- M2Q3YTIzMjYxZDkwMjczM2IyMDJmODUwYjRjMmU5MTRhZDVkYzE=
9
+ NjU3ZDc3ZDY2YzZhZGRjNGVlZDhmNDVlM2RkNzQzZTkzZDIyYTJlYzM3NWI1
10
+ ZDI4NDc1MTVmNjhmMjJiMjc4NmYwNDUwMDkzYjFhNDk3Nzk2YWE0ZjdlZjg3
11
+ NzQ0MWUwY2ZhMmM0MTM4OGM5OTc3MzBjODJjYmFkYWMwOWZlN2I=
12
12
  data.tar.gz: !binary |-
13
- ZmNlOGZlYTEwM2EwYjg2NWFjYzVkNDJhNTNjZDZmYTQzNWM4ZjliMmEwOGZj
14
- OWE2YzZmYzBhM2FlZmJkYzRjODBlYTFlOTQzZGNmN2FlOTQwOWZhNTUyMzBm
15
- NTE4ZWYwYzk1M2Y1MTI1ZGE0YjEzMDRkMmZmN2VkMDkwYmExMjg=
13
+ MjcxNWViNDgzZTUxMjJiNjViN2MyMmZhZjAyOWZiZjcxMDJjOGRkZGNhY2Q2
14
+ OGM0NDk2NDFjZGRjMTk1MzAwMGQ5ZGE4M2ZhNWVkZTAzZmY0NmE4YWRlZTdh
15
+ NzBkMGU4NmJjMWIyZDIyZWViNjlmOTc5YzExM2ViZThiMmExYzg=
data/README.md CHANGED
@@ -10,7 +10,7 @@ Install on your system:
10
10
 
11
11
  ## Basic Usage
12
12
 
13
- To use this gem you must require it in your file and specify your API Token that you can find on the [Telemetry API Token page](https://admin.telemetryapp.com/account/api_token)
13
+ To use this gem you must require it in your file and specify your API Token that you can find on the [Telemetry API Token page](https://www.telemetryapp.com/account/api_token)
14
14
 
15
15
  Set a hash of values for the flow to update. Each hash must contain the tag of the flow that you want to update.
16
16
 
@@ -24,7 +24,7 @@ Set a hash of values for the flow to update. Each hash must contain the tag of
24
24
  }
25
25
  Telemetry::Value.new(properties).emit
26
26
 
27
- For documentation on flows and the properties they support please see the [flow documentation](https://admin.telemetryapp.com/documentation/flows) pages.
27
+ For documentation on flows and the properties they support please see the [flow documentation](https://www.telemetryapp.com/documentation/flows) pages.
28
28
 
29
29
  ## Affiliates
30
30
 
data/lib/telemetry/api.rb CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  require 'multi_json'
4
4
  require 'oj'
5
- require 'net/http'
5
+ require 'net/http/persistent'
6
6
  require 'uri'
7
7
  require 'logger'
8
8
 
@@ -87,6 +87,7 @@ module Telemetry
87
87
 
88
88
  def self.send(method, endpoint, data = nil)
89
89
 
90
+ http = Net::HTTP::Persistent.new 'telemetry_api'
90
91
  uri = URI("#{Telemetry.api_host}#{endpoint}")
91
92
 
92
93
  Telemetry::logger.debug "REQ #{uri} - #{MultiJson.dump(data)}"
@@ -108,67 +109,69 @@ module Telemetry
108
109
  request['Accept-Version'] = '~ 1'
109
110
  request['User-Agent'] = "Telemetry Ruby Gem (#{Telemetry::TELEMETRY_VERSION})"
110
111
 
112
+ start_time = Time.now
113
+
111
114
  begin
112
115
  ssl = true if Telemetry.api_host.match(/^https/)
113
- result = Net::HTTP.start(uri.host, uri.port, :use_ssl => ssl) do |http|
114
- response = http.request(request)
115
- code = response.code
116
-
117
- Telemetry::logger.debug "RESP: #{response.code}:#{response.body}"
118
-
119
- case response.code
120
- when "200"
121
- Telemetry::logger.debug response.body
122
- return MultiJson.load(response.body)
123
- when "400"
124
- json = MultiJson.load(response.body)
125
- error = "#{Time.now} (HTTP 400): #{json['code'] if json} #{json['message'] if json}"
126
- Telemetry::logger.debug response.body
127
- Telemetry::logger.error error
128
- raise Telemetry::FormatError, error
129
- when "401"
130
- if Telemetry.token == nil
131
- error = "#{Time.now} (HTTP 401): Authentication failed, please set Telemetry.token to your API Token. #{method.upcase} #{uri}"
132
- Telemetry::logger.error error
133
- raise Telemetry::AuthenticationFailed, error
134
- else
135
- error = "#{Time.now} (HTTP 401): Authentication failed, please verify your token. #{method.upcase} #{uri}"
136
- Telemetry::logger.error error
137
- raise Telemetry::AuthenticationFailed, error
138
- end
139
- when "403"
140
- error = "#{Time.now} (HTTP 403): Authorization failed, please check your account access. #{method.upcase} #{uri}"
141
- Telemetry::logger.error error
142
- raise Telemetry::AuthorizationError, error
143
- when "404"
144
- error = "#{Time.now} (HTTP 404): Requested object not found. #{method.upcase} #{uri}"
145
- Telemetry::logger.error error
146
- raise Telemetry::FlowNotFound, error
147
- when "405"
148
- error = "#{Time.now} (HTTP 405): Method not allowed. #{method.upcase} #{uri}"
149
- Telemetry::logger.error error
150
- raise Telemetry::MethodNotAllowed, error
151
- when "429"
152
- error = "#{Time.now} (HTTP 429): Rate limited. Please reduce your update interval. #{method.upcase} #{uri}"
153
- Telemetry::logger.error error
154
- raise Telemetry::RateLimited, error
155
- when "500"
156
- error = "#{Time.now} (HTTP 500): Data API server error. #{method.upcase} #{uri}"
157
- Telemetry::logger.error error
158
- Telemetry::logger.error response.body
159
- raise Telemetry::ServerException, error
160
- when "502"
161
- error = "#{Time.now} (HTTP 502): Data API server is down. #{method.upcase} #{uri}"
162
- Telemetry::logger.error error
163
- raise Telemetry::Unavailable, error
164
- when "503"
165
- error = "#{Time.now} (HTTP 503): Data API server is down. #{method.upcase} #{uri}"
116
+
117
+ response = http.request uri, request
118
+
119
+ code = response.code
120
+
121
+ Telemetry::logger.debug "RESP (#{((Time.now-start_time)*1000).to_i}ms): #{response.code}:#{response.body}"
122
+
123
+ case response.code
124
+ when "200"
125
+ Telemetry::logger.debug response.body
126
+ return MultiJson.load(response.body)
127
+ when "400"
128
+ json = MultiJson.load(response.body)
129
+ error = "#{Time.now} (HTTP 400): #{json['code'] if json} #{json['message'] if json}"
130
+ Telemetry::logger.debug response.body
131
+ Telemetry::logger.error error
132
+ raise Telemetry::FormatError, error
133
+ when "401"
134
+ if Telemetry.token == nil
135
+ error = "#{Time.now} (HTTP 401): Authentication failed, please set Telemetry.token to your API Token. #{method.upcase} #{uri}"
166
136
  Telemetry::logger.error error
167
- raise Telemetry::Unavailable, error
137
+ raise Telemetry::AuthenticationFailed, error
168
138
  else
169
- error = "#{Time.now} ERROR UNK: #{method.upcase} #{uri} #{response.body}."
170
- raise Telemetry::UnknownError, error
139
+ error = "#{Time.now} (HTTP 401): Authentication failed, please verify your token. #{method.upcase} #{uri}"
140
+ Telemetry::logger.error error
141
+ raise Telemetry::AuthenticationFailed, error
171
142
  end
143
+ when "403"
144
+ error = "#{Time.now} (HTTP 403): Authorization failed, please check your account access. #{method.upcase} #{uri}"
145
+ Telemetry::logger.error error
146
+ raise Telemetry::AuthorizationError, error
147
+ when "404"
148
+ error = "#{Time.now} (HTTP 404): Requested object not found. #{method.upcase} #{uri}"
149
+ Telemetry::logger.error error
150
+ raise Telemetry::FlowNotFound, error
151
+ when "405"
152
+ error = "#{Time.now} (HTTP 405): Method not allowed. #{method.upcase} #{uri}"
153
+ Telemetry::logger.error error
154
+ raise Telemetry::MethodNotAllowed, error
155
+ when "429"
156
+ error = "#{Time.now} (HTTP 429): Rate limited. Please reduce your update interval. #{method.upcase} #{uri}"
157
+ Telemetry::logger.error error
158
+ raise Telemetry::RateLimited, error
159
+ when "500"
160
+ error = "#{Time.now} (HTTP 500): Data API server error. #{method.upcase} #{uri}"
161
+ Telemetry::logger.error error
162
+ Telemetry::logger.error response.body
163
+ raise Telemetry::ServerException, error
164
+ when "502"
165
+ error = "#{Time.now} (HTTP 502): Data API server is down. #{method.upcase} #{uri}"
166
+ Telemetry::logger.error error
167
+ raise Telemetry::Unavailable, error
168
+ when "503"
169
+ error = "#{Time.now} (HTTP 503): Data API server is down. #{method.upcase} #{uri}"
170
+ Telemetry::logger.error error
171
+ raise Telemetry::Unavailable, error
172
+ else
173
+ error = "#{Time.now} ERROR UNK: #{method.upcase} #{uri} #{response.body}."
174
+ raise Telemetry::UnknownError, error
172
175
  end
173
176
 
174
177
  rescue Errno::ETIMEDOUT => e
@@ -1,3 +1,3 @@
1
1
  module Telemetry
2
- TELEMETRY_VERSION = "1.1.12"
2
+ TELEMETRY_VERSION = "1.1.13"
3
3
  end
data/telemetry.gemspec CHANGED
@@ -21,6 +21,7 @@ Gem::Specification.new do |gem|
21
21
  gem.add_dependency "multi_json"
22
22
  gem.add_dependency "dante"
23
23
  gem.add_dependency "hashie"
24
+ gem.add_dependency "net-http-persistent"
24
25
  gem.add_development_dependency "rspec"
25
26
  gem.add_development_dependency "rake"
26
27
  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.1.12
4
+ version: 1.1.13
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: 2013-08-16 00:00:00.000000000 Z
11
+ date: 2013-08-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: oj
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ! '>='
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: net-http-persistent
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ! '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ! '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: rspec
71
85
  requirement: !ruby/object:Gem::Requirement