-
Notifications
You must be signed in to change notification settings - Fork 21
/
Copy pathmonitor.js
executable file
·121 lines (80 loc) · 2.67 KB
/
monitor.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
////////////////////////////////////////////////////////////////////////////////////////////
// MINERSTAT.COM - Hardware Monitor
module.exports = {
////////////////////////////////////////////////////////////////////////////////////////////
// DETECT VIDEO CARD TYPE
detect: function () {
var exec = require('child_process').exec;
var child;
global.gputype = "unknown";
child = exec("nvidia-smi -L",
function (error, stdout, stderr) {
var response = stdout;
if(response.indexOf("GPU 0:") > -1) {
global.gputype = "nvidia";
}
if (error !== null) {
console.log('exec error: ' + error);
}
});
child = exec(global.path + "/bin/amdcovc",
function (error, stdout, stderr) {
var response = stderr;
if(response.indexOf("no version information") === -1) {
global.gputype = "amd";
}
if (error !== null) {
console.log('exec error: ' + error);
}
});
},
////////////////////////////////////////////////////////////////////////////////////////////
// AMDMEMINFO (for GPU Temp/Fan/ ... monitoring)
HWamd: function () {
var exec = require('child_process').exec;
var query = exec(global.path + "/bin/amdcovc",
function (error, stdout, stderr) {
isfinished(stdout,"amd");
});
},
////////////////////////////////////////////////////////////////////////////////////////////
// NVIDIA-SMI (for GPU Temp/Fan/ ... monitoring)
HWnvidia: function () {
var lstart = -1;
var response_start = -1;
var exec = require('child_process').exec;
var gpunum;
var hwg = []; var hwf = [];
gpunum = exec("nvidia-smi --query-gpu=count --format=csv,noheader | tail -n1",
function (error, stdout, stderr) {
var response = stdout;
while (lstart != (response - 1)) {
lstart ++;
var datar = "";
var q2 = exec("nvidia-smi -i "+lstart+" --query-gpu=name,temperature.gpu,fan.speed --format=csv,noheader | tail -n1",
function (error, stdout, stderr) {
datar = stdout;
// ADD DATA TO ARRAY
hwg.push(datar);
response_start ++;
if (response_start == (response - 1)) { isfinished(hwg,"nvidia"); }
});
} // END WHILE
}); // END FETCH
} // END HWNvidia
} // END MODULE.EXPORT
function isfinished(hwdatar,typ) {
if (typ === "nvidia") {
// ARRAY to JSON
var hwdatas = JSON.stringify(hwdatar);
} else {
var hwdatas = hwdatar;
}
// DUMP LOG TO THE CONSOLE
console.log("["+typ+"] Hardware Monitor: " + hwdatas);
// SEND DATA TO THE SERVER
var request = require('request');
request.post({
url: 'https://minerstat.com/gethw.php?token='+ global.accesskey +'&worker='+ global.worker+'&datas='+hwdatas, form: { mes: typ }
}, function(error, response, body){ });
} // END isfinished();