用InfluxDB分析命令行历史

August 24, 2014

不务(误)正业系列。

InfluxDB介绍

直接引用InfluxDB官网的一句话:

InfluxDB is a time series, events, and metrics database.

导入数据

最喜欢InfluxDB这种开箱即用的软件,安装太简单就不说了,直接进入导入数据的环节。

因为我设了HISTTIMEFORMAT='%F %T ',我的历史记录看起来是这样的:

# 1408842714
busybox rpm2cpio influxdb-latest-1.x86_64.rpm | busybox cpio -it

已经有了Unix时间戳和完整的命令,只要用language-sh解析一下命令,提取出命令名就可以了。

完整的导入脚本在Gist,我现在有7万多条原始记录,导入用了15秒,InfluxDB很快但是命令解析太慢。

查询

每天使用量

select count(command) as ALL, count(distinct(command)) as DISTINCT
   from commands where time > '2014-02-06'  group by time(1d)

MarchAprilMayJuneJulyAugust2004006008001.0k1.2k1.4kALL

MarchAprilMayJuneJulyAugust20406080100DISTINCT

一天居然能上千条命令。

现在InfluxDB的画图工具还不完善,要把两条曲线放同一个图里都不行,Influga和Grafana也很多bug,所以还是把结果导出来,再用其他工具画图,还是先不浪费时间了。