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 +8 -8
- data/README.md +2 -2
- data/lib/telemetry/api.rb +60 -57
- data/lib/telemetry/version.rb +1 -1
- data/telemetry.gemspec +1 -0
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NTQ1MDljMTg1YWUwNjc1MjRjNGMyODRkMmNmZTY1Zjg1YWQ3NjFhYQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
M2Q3MWU5Y2ZhODQ5YzliYTM3MDEzYTkyZTNiYmRiZjc2MGE5MzRhMQ==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NjU3ZDc3ZDY2YzZhZGRjNGVlZDhmNDVlM2RkNzQzZTkzZDIyYTJlYzM3NWI1
|
10
|
+
ZDI4NDc1MTVmNjhmMjJiMjc4NmYwNDUwMDkzYjFhNDk3Nzk2YWE0ZjdlZjg3
|
11
|
+
NzQ0MWUwY2ZhMmM0MTM4OGM5OTc3MzBjODJjYmFkYWMwOWZlN2I=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
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://
|
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://
|
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
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
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::
|
137
|
+
raise Telemetry::AuthenticationFailed, error
|
168
138
|
else
|
169
|
-
error = "#{Time.now}
|
170
|
-
|
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
|
data/lib/telemetry/version.rb
CHANGED
data/telemetry.gemspec
CHANGED
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.
|
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-
|
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
|