Kibana或Grafana,時間序列可視化如何選擇?
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將繼續以很快的速度發展,這對用戶和開發者來說,確實是好消息!


TAG:架構師技術聯盟 |