telemetry 1.1.12 → 1.1.13

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.
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