公司目前將日誌類的接入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