数据规整 我的数据来源一般都是来自于日志文件,不同的日志文件格式可能都不相同。所以第一步就是把数据抽取出来,并且格式化。
一般情况下我会用grep或者awk进行初步的整理。如果shell脚本处理不太方便,通常我会写个js脚本。
Node.js的readline可以实现按行取出。处理过后的输出依然是写文件。
const readline = require('readline') const fs = require('fs') const dayjs = require('dayjs') const fileName = 'data.log' const batch = dayjs().format('MMDDHHmmss') const dist = fs.createWriteStream(`${fileName}.out`) const rl = readline.createInterface({ input: fs.createReadStream(fileName) }) rl.on('line', handlerLine) function handlerLine (line) { let info = line.split(' ') let time = dayjs(`2020-${info[0]} ${info[1]}`).valueOf() let log = `rtpproxy,tag=b${batch} socket=${info[2]},mem=${info[3]} ${time}000000\n` console.log(log) dist.write(log) } 输出的文件格式如下,至于为什么是这种格式,且看下文分晓。
rtpproxy,tag=b0216014954 socket=691,mem=3106936 1581477499000000000 rtpproxy,tag=b0216014954 socket=615,mem=3109328 1581477648000000000 rtpproxy,tag=b0216014954 socket=669,mem=3113764 1581477901000000000 rtpproxy,tag=b0216014954 socket=701,mem=3114820 1581477961000000000 数据导入 以前我都会把数据规整后的输出写成一个JSON文件,然后写html页面,引入Echarts库,进行数据可视化。...