2017-08-01 89 views
0

我正在創建一個節點程序來返回linux top命令的輸出,工作正常,唯一的問題是命令的名稱被切斷,而不是完整的命令名稱/usr/local/libexec/netdata/plugins.d/apps.plugin 1回報/usr/local+Node.js - spawn正在切斷結果

我的代碼

const topparser=require("topparser") 
const spawn = require('child_process').spawn 
let proc=null 
let startTime=0 

exports.start=function(pid_limit,callback){ 
    startTime=new Date().getTime() 
    proc = spawn('top', ['-c','-b',"-d","3"]) 
    console.log("started process, pid: "+proc.pid) 
    let top_data="" 

    proc.stdout.on('data', function (data) { 
     console.log('stdout: ' + data); 
    }) 

    proc.on('close', function (code) { 
     console.log('child process exited with code ' + code); 
    }); 


}//start 

exports.stop=function(){ 
    console.log("stoped process...") 
    if(proc){proc.kill('SIGINT')}// SIGHUP -linux ,SIGINT -windows 
}//stop 

結果

14861 root  20 0  0  0  0 S 0.0 0.0 0:00.00 [kworker/1+ 
14864 root  20 0  0  0  0 S 0.0 0.0 0:00.02 [kworker/0+ 
15120 root  39 19 102488 3344 2656 S 0.0 0.1 0:00.09 /usr/bin/m+ 
16904 root  20 0  0  0  0 S 0.0 0.0 0:00.00 [kworker/0+ 
19031 root  20 0  0  0  0 S 0.0 0.0 0:00.00 [kworker/u+ 
21500 root  20 0  0  0  0 Z 0.0 0.0 0:00.00 [dsc] <def+ 
22571 root  20 0  0  0  0 S 0.0 0.0 0:00.00 [kworker/0+ 

有辦法解決嗎? 此致

回答

1

top手冊頁:

在批處理模式中,不帶參數頂部用來將格式化使用COLUMNS輸出時=和LINES = 環境變量,如果設置。否則,寬度將固定在最多512列。通過參數 ,輸出寬度可以減少或增加(最多512),但行數不受限制。

'-w', '512'添加到參數中。

+0

你是對的,加入這個參數解決了這個問題。 非常感謝 –

0

由於您使用節點,因此您可以查詢在本地主機上運行的netdata。

例子:

http://london.my-netdata.io/api/v1/data?chart=apps.cpu&after=-1&options=ms

對於本地主機netdata: http://localhost:19999/api/v1/data?chart=apps.cpu&after=-1&options=ms

你也可以systemd服務:

http://london.my-netdata.io/api/v1/data?chart=services.cpu&after=-1&options=ms

如果您不打算更新屏幕每秒,你可以指示netdata返回更長的持續時間的平均值:

http://london.my-netdata.io/api/v1/data?chart=apps.cpu&after=-5&points=1&group=average&options=ms

上述返回平均值的最後5秒。

最後,你得到的最新值所有指標netdata顯示器,與此:

http://london.my-netdata.io/api/v1/allmetrics?format=json

爲了完整起見,netdata可以導出BASH格式的所有指標shell腳本。檢查此:https://github.com/firehol/netdata/wiki/receiving-netdata-metrics-from-shell-scripts

+0

看起來很有趣,我該如何與我的項目集成(見上面的代碼)並通過套接字發送數據? –