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 CHANGED
@@ -30,7 +30,7 @@ runner.execute do |opts|
30
30
  loop do
31
31
  start_timestamp = Time.now.to_f
32
32
  output = Telemetry.run_scheduled_flow_updates
33
- Telemetry::Net.send(output)
33
+ Telemetry::Api.send(output)
34
34
  Telemetry.wait_for_interval_from(start_timestamp)
35
35
  end
36
36
  end
@@ -122,6 +122,7 @@ module Telemetry
122
122
 
123
123
  def run_scheduled_flow_updates
124
124
  @@buffer = {}
125
+ @@tasks ||= {}
125
126
  @@last_values ||= {}
126
127
  @@values_expires_at ||= {}
127
128
  @@next_run_at ||= {}
@@ -1,9 +1,10 @@
1
1
  #/usr/bin/env ruby
2
2
 
3
3
  module Telemetry
4
- class Net
5
- require "multi_json"
6
- require "rest_client"
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
- response = RestClient.post(uri, body, :content_type => :json, :accept => :json) do |response, request, result|
19
- case response.code
20
- when 200
21
- json = MultiJson.load(response)
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
@@ -1,3 +1,3 @@
1
1
  module Telemetry
2
- VERSION = "1.0.1"
2
+ VERSION = "1.0.2"
3
3
  end
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.telemetryboard.com"
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 "c65bc385a3b301359590a80973483ebf"
2
+ api_token "130be0e02baf48892b82d41e9b7f1a19"
3
3
 
4
- gauge "demo-gauge" do
5
- set value: rand(1000)
6
- set max: rand(1000)
7
- end
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
- value "foobard" do
15
- set value: rand(1000)
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.1
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-05 00:00:00.000000000 Z
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.telemetryboard.com
83
+ homepage: http://www.telemetryapp.com
100
84
  licenses: []
101
85
  post_install_message:
102
86
  rdoc_options: []