brigade-monitor 0.0.2 → 0.0.3
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/bin/brigade-monitor +57 -14
- data/lib/brigade/monitor/api.rb +29 -0
- data/lib/brigade/monitor/version.rb +1 -1
- data/lib/brigade/monitor.rb +1 -0
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ac7f27e1e0e2de078f7de3da327945558eb33116
|
4
|
+
data.tar.gz: a8481f3d979e38e7e79a5f4330cb480f21815744
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6a139c80c18a5cdcdcdb20097d0eff81e373f5d24ed938796e517b4e2412e42cdca33198f76e0c800031b1201f86b562f5e6c4001f3e369c6ed4112549cc636f
|
7
|
+
data.tar.gz: 3ab51d862b928e344bcd073f8dadda58793d9940ecd970efd9affc1e9efcb79c90d462a367cf9d9a7f60cabb8c30baed341977cd0720233860520937b351bf2a
|
data/bin/brigade-monitor
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
3
|
require 'awesome_print'
|
4
|
+
require 'brigade/monitor'
|
4
5
|
require 'cgminer/api'
|
5
|
-
require 'httparty'
|
6
6
|
require 'optparse'
|
7
7
|
require 'yaml'
|
8
8
|
|
@@ -38,27 +38,70 @@ fail 'Brigade API key is required' if key.nil?
|
|
38
38
|
|
39
39
|
# build a hash-o-miner clients
|
40
40
|
miners = config['miners'].map do |miner|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
class BrigadeAPI
|
47
|
-
include HTTParty
|
48
|
-
base_uri 'https://app.brigade.io/api/v1'
|
41
|
+
{
|
42
|
+
name: miner[0],
|
43
|
+
client: CGMiner::API::Client.new(miner[1]['host'], miner[1]['port'])
|
44
|
+
}
|
49
45
|
end
|
50
46
|
|
47
|
+
api = Brigade::Monitor::API.new(key)
|
51
48
|
loop do
|
49
|
+
|
50
|
+
updates = []
|
51
|
+
|
52
52
|
miners.each do |miner|
|
53
53
|
begin
|
54
|
-
|
55
|
-
|
54
|
+
summary = miner[:client].summary
|
55
|
+
devs = miner[:client].devs
|
56
|
+
pools = miner[:client].pools
|
57
|
+
|
58
|
+
# XXX check status replies on each command?
|
59
|
+
|
60
|
+
update = {
|
61
|
+
host: miner[:name],
|
62
|
+
uptime: summary.body[0]['Elapsed'] / 60,
|
63
|
+
mhash: summary.body[0]['MHS 5s'],
|
64
|
+
rejectpct: summary.body[0]['Pool Rejected%'],
|
65
|
+
asics: [],
|
66
|
+
fpgas: [],
|
67
|
+
gpus: [],
|
68
|
+
pools: []
|
69
|
+
}
|
56
70
|
|
57
|
-
|
58
|
-
|
71
|
+
devs.body.each do |dev|
|
72
|
+
if dev.has_key? 'GPU'
|
73
|
+
update[:gpus] << {
|
74
|
+
temperature: dev['Temperature'],
|
75
|
+
enabled: dev['Enabled'] == 'Y',
|
76
|
+
status: :ok, # XXX enumerate statuses
|
77
|
+
uptime: dev['Device Elapsed'] / 60,
|
78
|
+
mhash: dev['MHS 5s'],
|
79
|
+
rejectpct: dev['Device Rejected%']
|
80
|
+
}
|
81
|
+
else
|
82
|
+
puts "Skipped device: #{dev}"
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
pools.body.each do |pool|
|
87
|
+
update[:pools] << {
|
88
|
+
url: pool['URL'],
|
89
|
+
status: :ok, # XXX enumerate statuses
|
90
|
+
active: pool['Stratum Active'],
|
91
|
+
rejectpct: pool['Pool Rejected%']
|
92
|
+
}
|
93
|
+
end
|
94
|
+
|
95
|
+
updates << update
|
59
96
|
rescue Net::OpenTimeout
|
60
97
|
puts "Timed out: #{miner}"
|
98
|
+
# XXX put something in the update to indicate it barfed
|
61
99
|
end
|
62
100
|
end
|
63
|
-
|
101
|
+
|
102
|
+
response = api.hosts(updates)
|
103
|
+
puts response.code
|
104
|
+
|
105
|
+
sleep 60
|
106
|
+
|
64
107
|
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'httparty'
|
2
|
+
|
3
|
+
module Brigade
|
4
|
+
module Monitor
|
5
|
+
|
6
|
+
class API
|
7
|
+
|
8
|
+
include HTTParty
|
9
|
+
base_uri 'https://app.brigade.io/api/v1'
|
10
|
+
|
11
|
+
def initialize(key)
|
12
|
+
@key = key
|
13
|
+
end
|
14
|
+
|
15
|
+
def hosts(data)
|
16
|
+
command('/hosts', updates: data)
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def command(command, params)
|
22
|
+
params.merge!({ token: @key })
|
23
|
+
self.class.post(command, query: params, verify: false)
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
data/lib/brigade/monitor.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: brigade-monitor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nick Veys
|
@@ -167,6 +167,7 @@ files:
|
|
167
167
|
- bin/brigade-monitor
|
168
168
|
- brigade-monitor.gemspec
|
169
169
|
- lib/brigade/monitor.rb
|
170
|
+
- lib/brigade/monitor/api.rb
|
170
171
|
- lib/brigade/monitor/version.rb
|
171
172
|
- sample-config.yaml
|
172
173
|
- spec/spec_helper.rb
|