telemetry 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
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: []