Grafana已經迅速成為事實上的“DevOps”工具之一,用於實時監控時間序列指標的儀錶盤(DashBoard)。除了強大的視覺化之外,Grafana支援多種後端資料源,包括InfluxDB,Graphite,Elasticsearch和其他許多可以透過外掛新增的資料源。
Kibana是另一個類似的前端工具,它是Elastic Stack的資料視覺化前端,對Beats,Logstash(攝取)和Elastic search本身(儲存)進行了補充。隨著Elastic Stack版本5.x的釋出,Kibana現在包含Timelion,用於互動式時間序列圖表。
為了進一步瞭解相關內容,下麵一起來看看一個效能分析工具中示例儀錶板。我們同時使用Grafana和Kibana來呈現不同的資料檢視。
為了讓使用者能夠跨多個維度檢視和分析效能資料,我們使用了Kibana。
最近釋出的Timelion是Kibana的一個時間序列視覺化外掛,在日常工作中,我們經常確保使用正確的工具來完成正確的工作。在時間序列視覺化方面,是採用Grafana來處理時間序列指標,還是Timelion能填補這個空白,又或是使我們能夠簡化我們平臺的工具集?
在這篇文章中,我們將採用Timelion和Grafana來實現功能互補。目的不是要定義哪一個是“最好的”(一個毫無意義的實驗),也不是要建立一個不可理解的展示圖,而是要看看這兩種工具在實時比較中是如何發揮各自優勢,使得更容易建立圖表。如哪一個產生一個更好看的儀錶板?對終端使用者閱讀和分析資料來說,哪個版本具有最好的使用者介面和使用者體驗?在分析這些資料的資料源和功能方面有什麼限制?最終,我們是否可以將我們的產品的前端統一到這些工具中?
Timelion簡介
從Kibana 5版本開始,Timelion(發音為“Timeline”)成為預設安裝選項。圖表是使用定製的查詢語言定義的,該語言既指定了資料的來源,又指定了應用的功能以及呈現方式。該查詢在Timelion介面的文字框中指定。在這個簡單的圖表中,我們使用運算式.es(*)來顯示Elasticsearch中隨時間變化的檔案總數。
每個Timelion運算式都以一個資料源函式開始,接著連線的一系列函式。提供了超過20個功能,其運算式分為三組。
-
1.資料源 – 預設是Elasticsearch,其他API,如World Bank和Quandl也可用。
例如在上面的圖表中,預設運算式.es(*)(類似於.elasticsearch(*))顯示了Elasticsearch中所有檔案的計數。您可以在這裡指定Elasticsearch索引,對映和指標的細節以及過濾器。 -
2.從簡單算術到移動值,累計和和導數的資料操作。例如,向資料新增移動平均數就如同將函式包含到運算式結尾一樣簡單:.es(*).movingaverage(12)
-
3.視覺元素的主題和風格,包括欄、點、線,標簽,標題和圖例。下圖顯示了從 Oracle資料庫中的活動會話歷史資料中提取的按時間執行的查詢數。.es(index=ash*).lines(1,fill=1).title(‘RunningQueries’).legend(none).label(false)
關於開發者可用的檔案和指南,Timelion 的主要檔案比較有限。有關每個函式的詳細資訊,請參閱github上的檔案。
值得樂觀的是,查詢生成器文字框可以支援自動完成相關功能及其引數,Timelion介面也提供線上說明檔案幫助開發者。Timelion頁面的缺點是運算式文字框的大小,如您將在本文中閱讀更多內容,需要更長時間才能將多個度量標準和幾個樣式實現視覺化。
如果您是初學者,為避免混淆拼寫錯誤,請嘗試逐步構建運算式並逐漸新增函式。Timelion提供的資料處理函式中特別註意的是統計分析函式。
-
.trend() :使用指定的回歸演演算法將趨勢線新增到圖形中
-
.holt():這個函式的早期版本,它對一個序列的開始進行取樣,並用它來預測透過幾個可選引數應該發生的事情。
這對我們的效能監控儀錶板非常有用,如果您繼續以當前速度使用資源,則可以顯示諸如記憶體、磁碟空間不足等問題。
與此相關的是Prelert,預計Elastic將在明年對其收購成為X-Pack的一部分。雖然基於儀錶板的分析是非常有用的,但是當我們想要警報的清晰樣式被識別時,它可以透過Watcher來提供實時通知給尋呼機系統等。
Grafana介紹
Grafana是一個開源的功能豐富的儀錶板和圖形編輯器,正在迅速成為最好的時間序列度量視覺化工具之一。Grafana由於其簡單,易用和時髦的外觀和感覺而吸引了眾多使用者,從而贏得了廣泛的青睞。
Grafana中的大部分配置都是透過全面的圖形編輯介面完成的。
在Grafana編輯器中,查詢通常是透過GUI完成的。手動指定的查詢用於訪問高階功能以訪問儲存在Elastic search中的資料的。對支援Elasticsearch而言,Grafana(v4.1.1)新版本支援Elastic search v2和v5版本。據作者在Grafana 4.1.1和Elastic search v5上的實踐經歷表明,它作為長期資料源不像InfluxDB和Graphite(甚至是Elastic search v2)那樣穩定。例如,如果圖表配置不正確(例如: 設定為空值),Grafana在傳回沒有結果或在丟擲描述性錯誤方面,顯得不夠直觀。
在Grafana家庭中增加的一個有趣成員是警報引擎(Alerting Engine),它允許使用者附加規則到儀錶盤面板。一旦儀錶盤被儲存,Grafana將把警報規則提取到一個單獨的警報規則儲存器中對它們進行評估。
資料呈現方式
從錶面上看,Grafana和Timelion的輸出可能非常相似的。然而,這兩個工具之間有一些值得挖掘的差異。這些差異主要是在顯示配置部分和簡化的使用者體驗上。
如上所述,Grafana的圖表編輯器有一個清晰的介面,可以選擇多種選項來改進資料的顯示。
Timelion也支援圖表格式,但比Grafana的選項要少一些。正如我們上面看到的,它也依賴於使用者將正確的函式連線到資料查詢運算式上。例如,要新增一個圖表,其中包含一個“正在執行的查詢”標題,圖中右上角的圖例,當沒有標記軸,且資料顯示寬度為1px時,您需要手動編輯該運算式。
.lines(1,fill=1).title(‘RunningQueries’).legend(ne).label(false)
Grafana在圖表格式上提供了更大的靈活性。例如可以顯示不同單位的指標,如時間,貨幣和資料。Grafana可以根據單位自動縮放坐標軸(Byte-> MB->GB)。下麵的Grafana圖形顯示了Elastic search中儲存的受監控應用程式的磁碟使用情況。Y軸上顯示磁碟使用率(KB),Grafana在標簽中自動縮放到適當的位置(MiB)。
在Timelion中可以透過指定適當的轉換來手動完成,但是與Grafana的動態轉換相比,這是一個硬編碼的選項,即使如此,也不會有Grafana在上面做的不同的標記(最初KiB隨後切換到MiB)。
Grafana也支援在Y軸上渲染負值,這在Timelion中是不可能的。除了真正的負資料值(例如零度以下的溫度記錄),使用Grafana的變換功能可以將特定的數列反轉,以便幫助理解資料,如下所示:
Grafana另一個不錯的功能(不幸的是Timelion不具備的功能) 能夠在圖例中顯示指標值。對使用者來說,檢視關鍵指標值是一種很好的視覺化方式,無需單獨的表格或使用者透過滑鼠點選查詢。
資料互動方式
Grafana和Kibana在圖表資料互動的層次和易用性方面也是不同的。Kibana和Grafana都支援在圖表上拖動選擇時間段來放大細節,不過,Kibana在這個方面功能更加豐富。作為Elastic search的前端,它支援對資料進行即時文字搜尋,它還允許使用者透過單擊圖表中的值來自動深入檢視資料,以顯示詳細資訊。在下麵的OBIEE監控儀錶板(內建Kibana)中,Session_States活動會話歷史記錄資料在“等待”和“On CPU上”過濾器就是是由使用者建立的,使用者只需點選其中一個圖表中的資料點即可。
Timelion也支援這種互動性方式,在es()資料源函式包含一個名為“kibana”的引數。該引數定義了視覺化是否應該遵循應用於Kibana儀錶板其餘部分的過濾器,如下所示。
.es(index=dms_*,metric=’avg:obips1-Current_Disk_Usage’,fit=’nearest’,kibana=’true’)
雖然可以在Grafana中指定Elastic search Lucene查詢併在編輯器中使用術語過濾器,但這些對於圖形來說是區域性的。
透過使用一些變數,可以在單個Grafana儀錶板上啟用全域性過濾,但這是針對每個儀錶板的定製解決方案,而不是Kibana提供的開箱即用功能。透過單擊圖例中的度量標簽(如上),Grafana可以使您切換圖表中的資料顯示。
最後的結論
將Kibana和Timelion與Grafana進行比較,在一個類似的展示時間序列指標方面,兩個軟體都有各自的優缺點。
Grafana的圖形編輯器提供了一個令人驚嘆的介面,可用於完善資料展示。Grafana不僅是一個簡單易用的開發工具,而且為結果儀錶盤增加了大量的預估選項,使得終端使用者更容易閱讀和分析。
另一方面,Timelion只是Kibana提供的許多視覺化方案(包括Tile Map和Tag Cloud)的一種方案,這意味著儀錶板可以用數字和時間序列來構建,但是資訊透過各種視覺化顯示。不幸的是,Timelion及其當前版本的運算式編輯器看起來有些不成熟,功能相對有限。顯示選項加上一個更好的編輯器會使Timelion得到使用者青睞。
所以,我們將堅持Grafana和Kibana一起使用實現能力互補。Grafana提供了純粹的時間序列指標儀錶板,易於構建是關鍵因素之一,同時還提供豐富的格式化功能,並支援不同的資料源(如Elastic search)。Kibana在儀錶板上做了無與倫比的工作,可以在各個維度上對指標進行豐富的探索,並以更多的視覺化形式呈現。
這是一個快速發展的工具領域,作者可以預見,Grafana和Kibana將繼續以很快的速度發展,這對使用者和開發者來說,確實是好訊息!
>>>>>>>>>>>>> 推薦閱讀 <<<<<<<<<<<<<
溫馨提示:
搜尋“ICT_Architect”或“掃一掃”二維碼關註公眾號,點原文連結獲取更多精彩內容。
求知若渴, 虛心若愚(Stay hungry, Stay foolish)