telemetry 1.1.19 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +23 -3
- data/lib/telemetry/api.rb +30 -11
- data/lib/telemetry/daemon_config_parser.rb +4 -0
- data/lib/telemetry/version.rb +1 -1
- data/telemetry.gemspec +8 -8
- metadata +35 -35
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9f1ce2e956552717f052ca48ca99889d82b992ad
|
4
|
+
data.tar.gz: 8d655c85120856567b021d5c9d3ee017e4d9f09a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 87c80fbcb013965aaccd715150289d50cf1e6bbe3f926ba4dff7455f25c3be494980400bf9210f923d5ab622cc0b3fbadcb376ef99505bf98573f3dacd469f7d
|
7
|
+
data.tar.gz: 63c75c8477a654ac34e169e5b1be1abdc99c529195a8aab432e62113a3b9f4eb569d2bd91879b333dfc4eadc1ead3d31913b48ec028271cb57eef23577e4e439
|
data/README.md
CHANGED
@@ -8,8 +8,28 @@ Install on your system:
|
|
8
8
|
|
9
9
|
$ gem install telemetry
|
10
10
|
|
11
|
+
|
11
12
|
## Basic Usage
|
12
13
|
|
14
|
+
This gem allows you to interact with the API using simple POST, GET, PATCH, PUT, DELETE. You should use the following methods:
|
15
|
+
|
16
|
+
- Telemetry::Api.delete(path)
|
17
|
+
- Telemetry::Api.get(path)
|
18
|
+
- Telemetry::Api.patch(path, body)
|
19
|
+
- Telemetry::Api.post(path, body)
|
20
|
+
- Telemetry::Api.put(path, body)
|
21
|
+
|
22
|
+
Where __path__ is the path for the resource (for instance "/boards/:board_id") and __body__ is a hash of the body to send to the server. You do not need to JSON encode the body, it will be converted to JSON for you.
|
23
|
+
|
24
|
+
require 'telemetry'
|
25
|
+
|
26
|
+
Telemetry.token = $YOUR_API_TOKEN
|
27
|
+
|
28
|
+
@board = Telemetry::Api.get("/boards/#{@board_id}")
|
29
|
+
|
30
|
+
|
31
|
+
## Sending Data To Flows
|
32
|
+
|
13
33
|
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
34
|
|
15
35
|
Set a hash of values for the flow to update. Each hash must contain the tag of the flow that you want to update.
|
@@ -26,7 +46,7 @@ Set a hash of values for the flow to update. Each hash must contain the tag of
|
|
26
46
|
|
27
47
|
For documentation on flows and the properties they support please see the [flow documentation](https://www.telemetryapp.com/documentation/flows) pages.
|
28
48
|
|
29
|
-
## Encryption
|
49
|
+
## Data Encryption
|
30
50
|
|
31
51
|
While Telemetry is SSL based and we protect our customers data with utmost caution, some corporate policies will not approve of any third party having the possibility of access to their data. Therefore we support optional encryption of the data with AES-256-CBC before sending it to the Telemetry API. The Telemetry Javascript application that runs in your browser to view the data can be configured with the same key in order to decrypt the data and display it for you while making it invisible to any prying eyes in the middle.
|
32
52
|
|
@@ -54,7 +74,7 @@ Note that the # part will not be sent to the server, it's a local argument only
|
|
54
74
|
|
55
75
|
## Affiliates
|
56
76
|
|
57
|
-
This gem supports affiliate data sending. In order to use this capability call the Telemetry::Api.affiliate_send(
|
77
|
+
This gem supports affiliate data sending. In order to use this capability call the Telemetry::Api.affiliate_send(unique-identifier, flows) method. You must have an enterprise account and get support to enable your account for affiliates first.
|
58
78
|
|
59
79
|
require 'telemetry'
|
60
80
|
|
@@ -68,7 +88,7 @@ This gem supports affiliate data sending. In order to use this capability call
|
|
68
88
|
}
|
69
89
|
|
70
90
|
# Send to the unique identifier for the affiliate as created by you on the affiliate page
|
71
|
-
Telemetry::Api.affiliate_send(
|
91
|
+
Telemetry::Api.affiliate_send("unique-identifier", flows)
|
72
92
|
|
73
93
|
For more information see the [affiliate documentation](https://admin.telemetryapp.com/documentation/affiliate).
|
74
94
|
|
data/lib/telemetry/api.rb
CHANGED
@@ -19,13 +19,13 @@ module Telemetry
|
|
19
19
|
def self.api_host
|
20
20
|
unless @api_host
|
21
21
|
if ENV["RACK_ENV"] == 'development'
|
22
|
-
@api_host = "https://
|
22
|
+
@api_host = "https://api.telemetryapp.com"
|
23
23
|
elsif ENV["RACK_ENV"] == 'test'
|
24
|
-
@api_host = "https://
|
24
|
+
@api_host = "https://api.telemetryapp.com"
|
25
25
|
elsif ENV["RACK_ENV"] == 'qa'
|
26
|
-
@api_host = "https://qa-
|
26
|
+
@api_host = "https://qa-api.telemetryapp.com"
|
27
27
|
else
|
28
|
-
@api_host = "https://
|
28
|
+
@api_host = "https://api.telemetryapp.com"
|
29
29
|
end
|
30
30
|
end
|
31
31
|
@api_host
|
@@ -56,7 +56,23 @@ module Telemetry
|
|
56
56
|
end
|
57
57
|
|
58
58
|
class Api
|
59
|
-
|
59
|
+
|
60
|
+
def self.get(path)
|
61
|
+
Telemetry::Api.send(:get, path)
|
62
|
+
end
|
63
|
+
|
64
|
+
def self.post(path, body)
|
65
|
+
Telemetry::Api.send(:post, path, body)
|
66
|
+
end
|
67
|
+
|
68
|
+
def self.patch(path, body)
|
69
|
+
Telemetry::Api.send(:patch, path, body)
|
70
|
+
end
|
71
|
+
|
72
|
+
def self.delete(path)
|
73
|
+
Telemetry::Api.send(:delete, path)
|
74
|
+
end
|
75
|
+
|
60
76
|
def self.get_flow(id)
|
61
77
|
Telemetry::Api.send(:get, "/flows/#{id}")
|
62
78
|
end
|
@@ -73,14 +89,14 @@ module Telemetry
|
|
73
89
|
raise Telemetry::AuthenticationFailed, "Please set your Telemetry.token" unless Telemetry.token
|
74
90
|
raise RuntimeError, "Must supply data to send" unless data
|
75
91
|
raise RuntimeError, "Must supply a unique affiliate identifier" unless affiliate_identifier
|
76
|
-
return Telemetry::Api.send(:post, "/
|
92
|
+
return Telemetry::Api.send(:post, "/affiliates/#{affiliate_identifier}/data", {:data => data})
|
77
93
|
end
|
78
94
|
|
79
95
|
def self.flow_update(flow)
|
80
96
|
raise Telemetry::AuthenticationFailed, "Please set your Telemetry.token" unless Telemetry.token
|
81
97
|
values = flow.to_hash
|
82
98
|
tag = values.delete('tag')
|
83
|
-
result = Telemetry::Api.send(:put, "/flows/#{tag}", values)
|
99
|
+
result = Telemetry::Api.send(:put, "/flows/#{tag}/data", values)
|
84
100
|
raise ResponseError, "API Response: #{result['errors'].join(', ')}" unless result["updated"].include?(tag)
|
85
101
|
result
|
86
102
|
end
|
@@ -94,7 +110,7 @@ module Telemetry
|
|
94
110
|
tag = values.delete('tag')
|
95
111
|
data[tag] = values
|
96
112
|
end
|
97
|
-
return Telemetry::Api.send(:post, "/
|
113
|
+
return Telemetry::Api.send(:post, "/data", {:data => data})
|
98
114
|
end
|
99
115
|
|
100
116
|
def self.send(method, endpoint, data = nil)
|
@@ -110,6 +126,9 @@ module Telemetry
|
|
110
126
|
elsif method == :put
|
111
127
|
request = Net::HTTP::Put.new(uri.path)
|
112
128
|
request.body = MultiJson.dump(data)
|
129
|
+
elsif method == :patch
|
130
|
+
request = Net::HTTP::Patch.new(uri.path)
|
131
|
+
request.body = MultiJson.dump(data)
|
113
132
|
elsif method == :get
|
114
133
|
request = Net::HTTP::Get.new(uri.path)
|
115
134
|
elsif method == :delete
|
@@ -169,16 +188,16 @@ module Telemetry
|
|
169
188
|
Telemetry::logger.error error
|
170
189
|
raise Telemetry::RateLimited, error
|
171
190
|
when "500"
|
172
|
-
error = "#{Time.now} (HTTP 500):
|
191
|
+
error = "#{Time.now} (HTTP 500): API server error. #{method.upcase} #{uri}"
|
173
192
|
Telemetry::logger.error error
|
174
193
|
Telemetry::logger.error response.body
|
175
194
|
raise Telemetry::ServerException, error
|
176
195
|
when "502"
|
177
|
-
error = "#{Time.now} (HTTP 502):
|
196
|
+
error = "#{Time.now} (HTTP 502): API server is down. #{method.upcase} #{uri}"
|
178
197
|
Telemetry::logger.error error
|
179
198
|
raise Telemetry::Unavailable, error
|
180
199
|
when "503"
|
181
|
-
error = "#{Time.now} (HTTP 503):
|
200
|
+
error = "#{Time.now} (HTTP 503): API server is down. #{method.upcase} #{uri}"
|
182
201
|
Telemetry::logger.error error
|
183
202
|
raise Telemetry::Unavailable, error
|
184
203
|
else
|
data/lib/telemetry/version.rb
CHANGED
data/telemetry.gemspec
CHANGED
@@ -17,12 +17,12 @@ Gem::Specification.new do |gem|
|
|
17
17
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
18
18
|
gem.require_paths = ["lib"]
|
19
19
|
gem.required_ruby_version = '>= 1.9.2'
|
20
|
-
gem.add_dependency "oj"
|
21
|
-
gem.add_dependency "multi_json"
|
22
|
-
gem.add_dependency "dante"
|
23
|
-
gem.add_dependency "hashie"
|
24
|
-
gem.add_dependency "net-http-persistent"
|
25
|
-
gem.add_dependency "gibberish"
|
26
|
-
gem.add_development_dependency "rspec"
|
27
|
-
gem.add_development_dependency "rake"
|
20
|
+
gem.add_dependency "oj", "~> 2.5"
|
21
|
+
gem.add_dependency "multi_json", "~> 1.8"
|
22
|
+
gem.add_dependency "dante", "~> 0.2"
|
23
|
+
gem.add_dependency "hashie", "~> 2.0"
|
24
|
+
gem.add_dependency "net-http-persistent", "~> 2.9"
|
25
|
+
gem.add_dependency "gibberish", "~> 1.3"
|
26
|
+
gem.add_development_dependency "rspec", "~> 2.14"
|
27
|
+
gem.add_development_dependency "rake", "~> 10.1"
|
28
28
|
end
|
metadata
CHANGED
@@ -1,127 +1,127 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: telemetry
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.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:
|
11
|
+
date: 2014-01-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: oj
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '2.5'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '2.5'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: multi_json
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '1.8'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '1.8'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: dante
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ~>
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
47
|
+
version: '0.2'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ~>
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
54
|
+
version: '0.2'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: hashie
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
61
|
+
version: '2.0'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ~>
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
68
|
+
version: '2.0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: net-http-persistent
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ~>
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
75
|
+
version: '2.9'
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ~>
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
82
|
+
version: '2.9'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: gibberish
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - ~>
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
89
|
+
version: '1.3'
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - ~>
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
96
|
+
version: '1.3'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: rspec
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- -
|
101
|
+
- - ~>
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: '
|
103
|
+
version: '2.14'
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- -
|
108
|
+
- - ~>
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: '
|
110
|
+
version: '2.14'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: rake
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- -
|
115
|
+
- - ~>
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: '
|
117
|
+
version: '10.1'
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- -
|
122
|
+
- - ~>
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: '
|
124
|
+
version: '10.1'
|
125
125
|
description: Telemetry Data Submission API Gem. See our website for a more detailed
|
126
126
|
description.
|
127
127
|
email:
|
@@ -168,7 +168,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
168
168
|
version: '0'
|
169
169
|
requirements: []
|
170
170
|
rubyforge_project:
|
171
|
-
rubygems_version: 2.0
|
171
|
+
rubygems_version: 2.2.0
|
172
172
|
signing_key:
|
173
173
|
specification_version: 4
|
174
174
|
summary: Telemetry Data Submission API Gem
|