telemetry 1.0.1 → 1.0.2
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.
- data/bin/telemetryd +1 -1
- data/lib/telemetry/config_parser.rb +1 -0
- data/lib/telemetry/telemetry.rb +23 -16
- data/lib/telemetry/version.rb +1 -1
- data/telemetry.gemspec +1 -2
- data/telemetryd_config.rb +29 -10
- metadata +3 -19
data/bin/telemetryd
CHANGED
data/lib/telemetry/telemetry.rb
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
#/usr/bin/env ruby
|
2
2
|
|
3
3
|
module Telemetry
|
4
|
-
class
|
5
|
-
require
|
6
|
-
require
|
4
|
+
class Api
|
5
|
+
require 'multi_json'
|
6
|
+
require 'net/http'
|
7
|
+
require 'uri'
|
7
8
|
|
8
9
|
def self.send(data)
|
9
10
|
return unless Telemetry.token
|
@@ -11,39 +12,45 @@ module Telemetry
|
|
11
12
|
|
12
13
|
RestClient.proxy = ENV['http_proxy'] if ENV['http_proxy']
|
13
14
|
|
14
|
-
uri = "https://#{Telemetry.token}:@data.telemetryapp.com/v1/data.json"
|
15
15
|
body = MultiJson.dump({:data => data})
|
16
16
|
|
17
|
+
uri = URI("https://data.telemetryapp.com/v1/data.json")
|
18
|
+
request = Net::HTTP::Post.new(uri.path)
|
19
|
+
request.basic_auth(Telemetry.token, "")
|
20
|
+
request['Content-Type'] = 'application/json'
|
21
|
+
request.body = body
|
22
|
+
|
17
23
|
begin
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
24
|
+
result = Net::HTTP.start(uri.hostname, uri.port, :use_ssl => true) do |http|
|
25
|
+
response = http.request(request)
|
26
|
+
case response.code
|
27
|
+
when "200"
|
28
|
+
json = MultiJson.load(response.body)
|
22
29
|
if json
|
23
30
|
puts "#{Time.now} Update OK: Updated #{json["updated"].count} flows" if json["updated"] && json["updated"].count > 0
|
24
31
|
puts "#{Time.now} Update OK: Skipped #{json["skipped"].count} flows (#{json["skipped"].join(", ")})" if json["skipped"] && json["skipped"].count > 0
|
25
32
|
puts "#{Time.now} Update OK: Errors with #{json["errors"].count} flows (#{json["errors"].join(", ")})" if json["errors"] && json["errors"].count > 0
|
26
33
|
end
|
27
|
-
when 400
|
28
|
-
puts "#{Time.now} ERROR 400: Request error. #{response}. Exiting."
|
34
|
+
when "400"
|
35
|
+
puts "#{Time.now} ERROR 400: Request error. #{response.body}. Exiting."
|
29
36
|
exit
|
30
|
-
when 401
|
37
|
+
when "401"
|
31
38
|
puts "#{Time.now} ERROR 401: Authentication failed, please check your api_token. Exiting."
|
32
39
|
exit
|
33
|
-
when 403
|
40
|
+
when "403"
|
34
41
|
puts "#{Time.now} ERROR 403: Authorization failed, please check your account access. Exiting."
|
35
42
|
exit
|
36
|
-
when 429
|
43
|
+
when "429"
|
37
44
|
puts "#{Time.now} ERROR 429: Rate limited. Please reduce your update interval. Pausing updates for 300s."
|
38
45
|
sleep 300
|
39
|
-
when 500
|
46
|
+
when "500"
|
40
47
|
puts "#{Time.now} ERROR 500: Data API server error. Pausing updates for 60s."
|
41
48
|
sleep 60
|
42
|
-
when 503
|
49
|
+
when "503"
|
43
50
|
puts "#{Time.now} ERROR 503: Data API server is down. Pausing updates for 60s."
|
44
51
|
sleep 60
|
45
52
|
else
|
46
|
-
puts "#{Time.now} ERROR UNK: #{response}. Exiting."
|
53
|
+
puts "#{Time.now} ERROR UNK: #{response.body}. Exiting."
|
47
54
|
exit
|
48
55
|
end
|
49
56
|
end
|
data/lib/telemetry/version.rb
CHANGED
data/telemetry.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |gem|
|
|
10
10
|
gem.email = ["gersham@etosi.com"]
|
11
11
|
gem.description = %q{Telemetry Data Submission API Gem. See our website for a more detailed description.}
|
12
12
|
gem.summary = %q{Telemetry Data Submission API Gem}
|
13
|
-
gem.homepage = "http://www.
|
13
|
+
gem.homepage = "http://www.telemetryapp.com"
|
14
14
|
gem.files = `git ls-files`.split($/)
|
15
15
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
16
16
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
@@ -18,6 +18,5 @@ Gem::Specification.new do |gem|
|
|
18
18
|
gem.required_ruby_version = '>= 1.9.2'
|
19
19
|
gem.add_dependency "oj"
|
20
20
|
gem.add_dependency "multi_json"
|
21
|
-
gem.add_dependency "rest-client"
|
22
21
|
gem.add_dependency "dante"
|
23
22
|
end
|
data/telemetryd_config.rb
CHANGED
@@ -1,16 +1,35 @@
|
|
1
1
|
interval 5
|
2
|
-
api_token "
|
2
|
+
api_token "130be0e02baf48892b82d41e9b7f1a19"
|
3
3
|
|
4
|
-
gauge "
|
5
|
-
|
6
|
-
|
7
|
-
|
4
|
+
gauge "test_gauge" do
|
5
|
+
|
6
|
+
# value (required) - the current value of the gauge
|
7
|
+
set value: 33
|
8
|
+
|
9
|
+
# range (optional) - the number of hours in the past to take the max value from
|
10
|
+
# typically this is either 24 (a day) or 168 (a week)
|
11
|
+
set range: 168
|
12
|
+
|
13
|
+
# max (optional) - the maximum value of the gauge, exclusive of setting range
|
14
|
+
set max: 100
|
15
|
+
|
16
|
+
# value_color (optional) - the color for the value.
|
17
|
+
set value_color: "#FF0000"
|
18
|
+
|
19
|
+
# value_2 (optional) - a second value to display on the side
|
20
|
+
set value_2: 33
|
21
|
+
|
22
|
+
# value_2_color (optional) - the color of the second value
|
23
|
+
set value_2_color: "green"
|
24
|
+
|
25
|
+
# value_2_label (optional) - a text label for the value_2
|
26
|
+
set value_2_label: "Errors"
|
8
27
|
|
9
|
-
gauge "blah-gauge" do
|
10
|
-
set value: 44
|
11
|
-
set max: 55
|
12
28
|
end
|
13
29
|
|
14
|
-
|
15
|
-
|
30
|
+
upstatus "test_upstatus" do
|
31
|
+
|
32
|
+
|
33
|
+
|
34
|
+
|
16
35
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: telemetry
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-02-
|
12
|
+
date: 2013-02-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: oj
|
@@ -43,22 +43,6 @@ dependencies:
|
|
43
43
|
- - ! '>='
|
44
44
|
- !ruby/object:Gem::Version
|
45
45
|
version: '0'
|
46
|
-
- !ruby/object:Gem::Dependency
|
47
|
-
name: rest-client
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
|
-
requirements:
|
51
|
-
- - ! '>='
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: '0'
|
54
|
-
type: :runtime
|
55
|
-
prerelease: false
|
56
|
-
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
|
-
requirements:
|
59
|
-
- - ! '>='
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
62
46
|
- !ruby/object:Gem::Dependency
|
63
47
|
name: dante
|
64
48
|
requirement: !ruby/object:Gem::Requirement
|
@@ -96,7 +80,7 @@ files:
|
|
96
80
|
- lib/telemetry/version.rb
|
97
81
|
- telemetry.gemspec
|
98
82
|
- telemetryd_config.rb
|
99
|
-
homepage: http://www.
|
83
|
+
homepage: http://www.telemetryapp.com
|
100
84
|
licenses: []
|
101
85
|
post_install_message:
|
102
86
|
rdoc_options: []
|