ducksboard_reporter 0.1.5 → 0.1.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 55064babfaea0c586bfb00ce8e78bf3ea30a66d5
4
- data.tar.gz: 01d526c95693b104c8ab3e62364e761572e4e45d
3
+ metadata.gz: 11fb63f4af0155d6b61623c2861565e0228c79c5
4
+ data.tar.gz: 22661f14ac7e1df6be2acdd1d5720c1d9aead8c6
5
5
  SHA512:
6
- metadata.gz: 6cd9f1809ab873bb55d686d29961d251b9813b753648ba556eb04d144d4a58123e6b5a3f64604ceb2390b573eeec9f7c5f0d95ed5b8808b81d421b533a3d3352
7
- data.tar.gz: 01eff8227e66cd9539ea8aecf04468975b3b4acb0ffc729b57fe3ec069c5822ff8349b842ab72942c812ee704558df6b27655510d698cddf27ae6af7daad0a29
6
+ metadata.gz: 38334cbbe75836952ccd566d4c9dfbaad21f1c3fb5959d2a721d82be20262208b2396fee9af795c2f10a19b657dfa84daa9054c4a41040bf7a0e0b42fda97336
7
+ data.tar.gz: e2264b5862ce9021bc899164445f27abc9619bd17820107e876e77771aaee6dbc1f53fe864b190eb7c7b86ae75d52dc022e9bc313d76a325f681f72f249c79e1
@@ -29,4 +29,5 @@ Gem::Specification.new do |spec|
29
29
  spec.add_runtime_dependency "celluloid", "~> 0.16"
30
30
  spec.add_runtime_dependency "timers", ">= 1.1.0"
31
31
  spec.add_runtime_dependency "trollop", ">= 1.16.2"
32
+ spec.add_runtime_dependency "faraday", ">= 0.9.0"
32
33
  end
data/example_config.yml CHANGED
@@ -10,9 +10,14 @@ reporters:
10
10
  options:
11
11
  log_file: haproxy.log
12
12
 
13
+ - name: honeybadger
14
+ type: Honeybadger
15
+ options:
16
+ api_key: 58L5pGcr82Vm11G1HHG6
17
+ project_id: 2948
18
+
13
19
  widgets:
14
20
  - type: Box
15
21
  id: 506475
16
- reporter: haproxy_log_requests
17
- value:
18
- current: :requests
22
+ reporter: honeybadger
23
+ value: :unresolved_fault_count
@@ -0,0 +1,58 @@
1
+ require "faraday"
2
+ require "hashie"
3
+
4
+ module DucksboardReporter
5
+ class JsonRemote
6
+ attr_reader :response, :exception
7
+
8
+ class << self
9
+ def get(url, options = {})
10
+ request = Thread.current[:_json_remote_request] = new(url, options)
11
+ request.get
12
+ end
13
+
14
+ def request
15
+ Thread.current[:_json_remote_request]
16
+ end
17
+ end
18
+
19
+ def initialize(url, options = {})
20
+ @url = url
21
+ @connection_timeout = options[:connection_timeout] || options[:timeout]
22
+ @read_timeout = options[:read_timeout] || options[:timeout]
23
+ end
24
+
25
+ def get
26
+ @exception = nil
27
+ conn = Faraday.new(
28
+ url: host_with_scheme_and_port,
29
+ headers: {accept: "application/json"}
30
+ )
31
+ @response = conn.get(uri.request_uri, request_options)
32
+ Hashie::Mash.new(JSON.parse(@response.body))
33
+ rescue => e
34
+ @exception = e
35
+ nil
36
+ end
37
+
38
+ private
39
+
40
+ def host_with_scheme_and_port
41
+ host = "#{uri.scheme}://#{uri.host}"
42
+ host << ":#{uri.port}" if uri.port != 80
43
+ host
44
+ end
45
+
46
+ def uri
47
+ @uri ||= URI.parse(@url)
48
+ end
49
+
50
+ def request_options
51
+ options = {}
52
+ options[:connection_timeout] = @connection_timeout if @connection_timeout
53
+ options[:read_timeout] = @read_timeout if @read_timeout
54
+ options
55
+ end
56
+ end
57
+ end
58
+
@@ -0,0 +1,29 @@
1
+ require "open-uri"
2
+
3
+ module DucksboardReporter
4
+ module Reporters
5
+ class Honeybadger < Reporter
6
+
7
+ def collect
8
+ every(10) do
9
+ @data = JsonRemote.get(url, timeout: 5)
10
+ if @data.nil? && (e = JsonRemote.request.exception)
11
+ error(log_format("Cannot request data from Honeybadger #{e}"))
12
+ end
13
+ end
14
+ end
15
+
16
+ def unresolved_fault_count
17
+ @data.unresolved_fault_count if @data
18
+ end
19
+
20
+ private
21
+
22
+ def url
23
+ @url ||= "https://api.honeybadger.io/v1/projects/#{options[:project_id]}?auth_token=#{options[:api_key]}"
24
+ end
25
+ end
26
+ end
27
+ end
28
+
29
+
@@ -1,3 +1,3 @@
1
1
  module DucksboardReporter
2
- VERSION = "0.1.5"
2
+ VERSION = "0.1.6"
3
3
  end
@@ -10,12 +10,15 @@ Hash.include Hashie::Extensions::SymbolizeKeys
10
10
  require "ducksboard_reporter/version"
11
11
  require "ducksboard_reporter/reporter"
12
12
  require "ducksboard_reporter/widget"
13
+
13
14
  require "ducksboard_reporter/file_tail"
15
+ require "ducksboard_reporter/json_remote"
14
16
 
15
17
  require "ducksboard_reporter/reporters/random"
16
18
  require "ducksboard_reporter/reporters/haproxy_log_requests"
17
19
  require "ducksboard_reporter/reporters/cpu_usage"
18
20
  require "ducksboard_reporter/reporters/bandwidth"
21
+ require "ducksboard_reporter/reporters/honeybadger"
19
22
 
20
23
  Thread.abort_on_exception = true
21
24
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ducksboard_reporter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - unnu
@@ -150,6 +150,20 @@ dependencies:
150
150
  - - ">="
151
151
  - !ruby/object:Gem::Version
152
152
  version: 1.16.2
153
+ - !ruby/object:Gem::Dependency
154
+ name: faraday
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: 0.9.0
160
+ type: :runtime
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: 0.9.0
153
167
  description: Report values to ducksboard
154
168
  email:
155
169
  - norman.timmler@gmail.com
@@ -168,10 +182,12 @@ files:
168
182
  - example_config.yml
169
183
  - lib/ducksboard_reporter.rb
170
184
  - lib/ducksboard_reporter/file_tail.rb
185
+ - lib/ducksboard_reporter/json_remote.rb
171
186
  - lib/ducksboard_reporter/reporter.rb
172
187
  - lib/ducksboard_reporter/reporters/bandwidth.rb
173
188
  - lib/ducksboard_reporter/reporters/cpu_usage.rb
174
189
  - lib/ducksboard_reporter/reporters/haproxy_log_requests.rb
190
+ - lib/ducksboard_reporter/reporters/honeybadger.rb
175
191
  - lib/ducksboard_reporter/reporters/random.rb
176
192
  - lib/ducksboard_reporter/version.rb
177
193
  - lib/ducksboard_reporter/widget.rb