ducksboard_reporter 0.1.5 → 0.1.6
Sign up to get free protection for your applications and to get access to all the features.
- 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
|