Kibana或Grafana,時間序列視覺化如何選擇?

架構師技術聯盟發表於2018-02-01

640?wx_fmt=png&wxfrom=5&wx_lazy=1


640?wx_fmt=gif&wxfrom=5&wx_lazy=1

      Grafana已經迅速成為事實上的“DevOps”工具之一,用於實時監控時間序列指標的儀表盤(DashBoard)。除了強大的視覺化之外,Grafana支援多種後端資料來源,包括InfluxDB,Graphite,Elasticsearch和其他許多可以通過外掛新增的資料來源


      Kibana是另一個類似的前端工具,它是Elastic Stack的資料視覺化前端,對Beats,Logstash(攝取)和Elastic search本身(儲存)進行了補充。隨著Elastic Stack版本5.x的釋出,Kibana現在包含Timelion,用於互動式時間序列圖表。


      為了進一步瞭解相關內容,下面一起來看看一個效能分析工具中示例儀表板。我們同時使用Grafana和Kibana來呈現不同的資料檢視

640?wx_fmt=png&wxfrom=5&wx_lazy=1

      為了讓使用者能夠跨多個維度檢視和分析效能資料,我們使用了Kibana。

640?wx_fmt=png

      最近釋出的TimelionKibana的一個時間序列視覺化外掛,在日常工作中,我們經常確保使用正確的工具來完成正確的工作。在時間序列視覺化方面,是採用Grafana來處理時間序列指標,還是Timelion能填補這個空白,又或是使我們能夠簡化我們平臺的工具集


      在這篇文章中,我們將採用Timelion和Grafana來實現功能互補。目的不是要定義哪一個是“最好的”(一個毫無意義的實驗),也不是要建立一個不可理解的展示圖,而是要看看這兩種工具在實時比較中是如何發揮各自優勢,使得更容易建立圖表。如哪一個產生一個更好看的儀表板?對終端使用者閱讀和分析資料來說,哪個版本具有最好的使用者介面和使用者體驗?在分析這些資料的資料來源和功能方面有什麼限制?最終,我們是否可以將我們的產品的前端統一到這些工具中


Timelion簡介


      從Kibana 5版本開始,Timelion(發音為“Timeline”)成為預設安裝選項。圖表是使用定製的查詢語言定義的,該語言既指定了資料的來源,又指定了應用的功能以及呈現方式。該查詢在Timelion介面的文字框中指定。在這個簡單的圖表中,我們使用表示式.es(*)來顯示Elasticsearch中隨時間變化的文件總數


640?wx_fmt=png


      每個Timelion表示式都以一個資料來源函式開始,接著連線的一系列函式。提供了超過20個功能,其表示式分為三組

  • 1.資料來源 - 預設是Elasticsearch,其他API,如World Bank和Quandl也可用。
    例如在上面的圖表中,預設表示式.es(*)(類似於.elasticsearch(*))顯示了Elasticsearch中所有文件的計數。您可以在這裡指定Elasticsearch索引,對映和指標的細節以及過濾器。

  • 2.從簡單算術到移動值,累計和和導數的資料操作。例如,向資料新增移動平均數就如同將函式包含到表示式結尾一樣簡單:.es(*).movingaverage(12)

640?wx_fmt=png

  • 3.視覺元素的主題和風格,包括欄、點、線,標籤,標題和圖例。下圖顯示了從 Oracle資料庫中的活動會話歷史資料中提取的按時間執行的查詢數。.es(index=ash*).lines(1,fill=1).title('RunningQueries').legend(none).label(false)

640?wx_fmt=png


      關於開發者可用的文件和指南,Timelion 的主要文件比較有限。有關每個函式的詳細資訊,請參閱github上的文件


      值得樂觀的是,查詢生成器文字框可以支援自動完成相關功能及其引數,Timelion介面也提供線上幫助文件幫助開發者。Timelion頁面的缺點是表示式文字框的大小,如您將在本文中閱讀更多內容,需要更長時間才能將多個度量標準和幾個樣式實現視覺化。


640?wx_fmt=png

      如果您是初學者,為避免混淆拼寫錯誤,請嘗試逐步構建表示式並逐漸新增函式。Timelion提供的資料處理函式中特別注意的是統計分析函式。

  • .trend() :使用指定的迴歸演算法將趨勢線新增到圖形中

  • .holt():這個函式的早期版本,它對一個序列的開始進行取樣,並用它來預測通過幾個可選引數應該發生的事情。


      這對我們的效能監控儀表板非常有用,如果您繼續以當前速度使用資源,則可以顯示諸如記憶體、磁碟空間不足等問題。


640?wx_fmt=png

      與此相關的是Prelert預計Elastic將在明年對其收購成為X-Pack的一部分。雖然基於儀表板的分析是非常有用的,但是當我們想要警報的清晰模式被識別時,它可以通過Watcher來提供實時通知給尋呼機系統等。


Grafana介紹


      Grafana是一個開源的功能豐富的儀表板和圖形編輯器,正在迅速成為最好的時間序列度量視覺化工具之一。Grafana由於其簡單,易用和時髦的外觀和感覺而吸引了眾多使用者,從而贏得了廣泛的青睞。


640?wx_fmt=png

      Grafana中的大部分配置都是通過全面的圖形編輯介面完成的。


640?wx_fmt=png

      Grafana編輯器中,查詢通常是通過GUI完成的。手動指定的查詢用於訪問高階功能以訪問儲存在Elastic search中的資料的。對支援Elasticsearch而言,Grafana(v4.1.1)新版本支援Elastic search v2v5版本。據作者在Grafana 4.1.1Elastic search v5上的實踐經歷表明,它作為長期資料來源不像InfluxDBGraphite(甚至是Elastic search v2)樣穩定。例如,如果圖表配置不正確(例如: 設定為空值),Grafana在返回沒有結果或在丟擲描述性錯誤方面,顯得不夠直觀


640?wx_fmt=png

      在Grafana家庭中增加的一個有趣成員是警報引擎(Alerting Engine),它允許使用者附加規則到儀表盤皮膚。一旦儀表盤被儲存,Grafana將把警報規則提取到一個單獨的警報規則儲存器中對它們進行評估。

640?wx_fmt=png


資料呈現方式


      從表面上看,Grafana和Timelion的輸出可能非常相似的。然而,這兩個工具之間有一些值得挖掘的差異。這些差異主要是在顯示配置部分和簡化的使用者體驗上。


640?wx_fmt=png

      如上所述,Grafana的圖表編輯器有一個清晰的介面,可以選擇多種選項來改進資料的顯示。


640?wx_fmt=png

      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)。


640?wx_fmt=png

     Timelion中可以通過指定適當的轉換來手動完成,但是與Grafana的動態轉換相比,這是一個硬編碼的選項,即使如此,也不會有Grafana在上面做的不同的標記(最初KiB隨後切換到MiB)。


640?wx_fmt=png

      Grafana也支援在Y軸上渲染負值,這在Timelion中是不可能的。除了真正的負資料值(例如零度以下的溫度記錄),使用Grafana的變換功能可以將特定的數列反轉,以便幫助理解資料,如下所示:

640?wx_fmt=png

      Grafana另一個不錯的功能(不幸的是Timelion不具備的功能) 能夠在圖例中顯示指標值。對使用者來說,檢視關鍵指標值是一種很好的視覺化方式,無需單獨的表格或使用者通過滑鼠點選查詢。

640?wx_fmt=png


資料互動方式


      Grafana和Kibana在圖表資料互動的層次和易用性方面也是不同的。Kibana和Grafana都支援在圖表上拖動選擇時間段來放大細節,不過,Kibana在這個方面功能更加豐富。作為Elastic search的前端,它支援對資料進行即時文字搜尋,它還允許使用者通過單擊圖表中的值來自動深入檢視資料,以顯示詳細資訊。在下面的OBIEE監控儀表板(內建Kibana)中,Session_States活動會話歷史記錄資料在“等待”和“On CPU上”過濾器就是是由使用者建立的,使用者只需點選其中一個圖表中的資料點即可。


640?wx_fmt=png

      Timelion也支援這種互動性方式,在es()資料來源函式包含一個名為“kibana”的引數。該引數定義了視覺化是否應該遵循應用於Kibana儀表板其餘部分的過濾器,如下所示。

.es(index=dms_*,metric='avg:obips1-Current_Disk_Usage',fit='nearest',kibana='true')


      雖然可以在Grafana中指定Elastic search Lucene查詢並在編輯器中使用術語過濾器,但這些對於圖形來說是區域性的。


640?wx_fmt=png

      通過使用一些變數,可以在單個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”“掃一掃”二維碼關注公眾號,點原文連結獲取更多精彩內容。

640?wx_fmt=png

求知若渴, 虛心若愚(Stay hungry, Stay foolish)

640?wx_fmt=gif

相關文章