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 +4 -4
- data/ducksboard_reporter.gemspec +1 -0
- data/example_config.yml +8 -3
- data/lib/ducksboard_reporter/json_remote.rb +58 -0
- data/lib/ducksboard_reporter/reporters/honeybadger.rb +29 -0
- data/lib/ducksboard_reporter/version.rb +1 -1
- data/lib/ducksboard_reporter.rb +3 -0
- metadata +17 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 11fb63f4af0155d6b61623c2861565e0228c79c5
|
4
|
+
data.tar.gz: 22661f14ac7e1df6be2acdd1d5720c1d9aead8c6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 38334cbbe75836952ccd566d4c9dfbaad21f1c3fb5959d2a721d82be20262208b2396fee9af795c2f10a19b657dfa84daa9054c4a41040bf7a0e0b42fda97336
|
7
|
+
data.tar.gz: e2264b5862ce9021bc899164445f27abc9619bd17820107e876e77771aaee6dbc1f53fe864b190eb7c7b86ae75d52dc022e9bc313d76a325f681f72f249c79e1
|
data/ducksboard_reporter.gemspec
CHANGED
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:
|
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
|
+
|
data/lib/ducksboard_reporter.rb
CHANGED
@@ -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.
|
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
|