公司目前将日志类的接入ELK(Elasticsearch、Logstash、Kibana的简称)日志分析系统,见识到Kibana提供的可视化界面,由衷感受很厉害,心神向往。因此实现可视化的任务就理所应当的落在本人“全干工程师”的身上了!数组
话很少说,开搞!bash
在初步尝试使用系统默认的饼图、条形图、折线图以后感受不能达到目标,默认的图形展现的数据较为单一(不排除本人的能力有限,不能很好的发挥他们的展现力)elasticsearch
在图表选择页看到了Timelion,详细了解了下,这个就是属于自定义的,能够任由本人进行发挥,因此就决定是你了!ide
.elasticsearch() 从ES读取数据
.es() elasticsearch的简写
--------分隔线,上面的是使用的,下面的这些是只知道存在,并无使用过-------
.graphite(metric="path.to.*.data", offset="-1d"): 从 graphite 读取数据
.quandl(): 从 quandl.com 读取 quandl 码
.worldbank_indicators(): 从 worldbank.org 读取国家数据
.wbi(): .worldbank_indicators() 的简写
.worldbank(): 从 worldbank.org 读取数据
.wb(): .worldbanck() 的简写
复制代码
(此次也没怎么用到,仅列出来展现用)
.abs(): 对整个数组元素求绝对值
.precision($number): 浮点数精度
.testcast($count, $alpha, $beta, $gamma): holt-winters 预测
.cusum($base): 数组元素之和,再加上 $base
.derivative(): 对数组求导数
.divide($divisor): 数组元素除法
.multiply($multiplier): 数组元素乘法
.subtract($term): 数组元素减法
.sum($term): 数组元素加法
.add(): 同 .sum()
.plus(): 同 .sum()
.first(): 返回第一个元素
.movingaverage($window): 用指定的窗口大小计算移动平均值
.mvavg(): .movingaverage() 的简写
.movingstd($window): 用指定的窗口大小计算移动标准差
.mvstd(): .movingstd() 的简写
复制代码
(这里面的都试了试,挺好玩的)
.bars($width): 用柱状图展现数组
.lines($width, $fill, $show, $steps): 用折线图展现数组
.points(): 用散点图展现数组
.color("#c6c6c6"): 改变颜色
.hide(): 隐藏该数组
.label("change from %s"): 标签
.legend($position, $column): 图例位置
.yaxis($yaxis_number, $min, $max, $position): 设置 Y 轴属性,.yaxis(2) 表示第二根 Y 轴
复制代码
index : 指明查询的索引,例:log-*
q:指明查询条件,使用的是Lucene语法
metric:聚合条件y轴显示内容,默认是个数,使用方法:metric=sum:time(time字段的总和),可有多个metric
split:按某字段分组,使用方法:split=time:4(按time划分,取数量前四的进行展现),可有多个split
offset:x轴的偏移值,划重点!将不一样时间的数据进行对比须要用到offset=-1h,获取1h前的数据进行对比
timefield:指定时间轴采用的字段,默认@timestamp
复制代码
多是这个内容属于比较简单的知识点,因此在查找资料的时候不多提到,大部分都是使用等于进行筛选的。 q=time:>1000 和 q=time:[1000 TO *] ,表示time大于1000的数据,*表示无穷函数
在使用过程当中发现当筛选数据项为字符串格式的状况,会出现55>1000,由于采用的是字符串进行比较的方法。以后咱们就把数据源改成数字的类型,处理掉这个问题。听说可使用正则的方式进行筛选,这个没有实践,就暂时不提。ui
metric=sum:time(time字段的总和)spa
初步使用Kibana,从网上的资料来看仍是不多,但愿这么优秀的东西能够获得更多人的使用与支持,同时也有更多小伙伴能够一块儿进行探讨和研究。日志
最后上成果一张。 code