1. 程式人生 > >Grafana elasticsearch 應用

Grafana elasticsearch 應用

早期的時候,專案基於ES+echart寫了一些儀表盤的展示頁面,雖然ES配合這種char介面有著天然的優勢,但實際寫起程式碼來,還是很多重複的勞動,在一次偶然中發現Grafana,看到它提供了很多儀表盤式的圖型,功能很強大,於是下載下來試了下效果不錯。因為全部都是滑鼠操作,都不用寫程式碼,真正智慧套件。

如題,應用Grafana之前,你需要對es聚合查詢知識有一定了解

先看效果

效果圖 因為網上這種圖比較多,這裡就不細看了,目前Grafana如何使用的文章不多,下面是我總結的一些經驗,其中有一部份是從官網查到的資源,先把官網地址貼下,至於如何使用,大家可以參考下官網,官網文件對於初學者比較難懂,而我寫這篇文章的目的是對於初次使用grafana的同學有個比較底的學習門檻。

1,下載安裝

這塊省略,自行,對於windows版本和linux版本,我都下載試了下,效果完全一樣,使用方式也一樣。

2,配置資料來源

先上ES索引,這個索引主要儲存各應用請求的訪問量 image.png 這個是我測試環境ES的索引名稱,一般情況索引都是以日期結尾,這點將在grafana建資料來源的時候用到,好了,開始操作建資料來源 image.png

然後再點選 add datasourch,出現這個介面

image.png 上圖中index name裡的值是:[hlog-crm3-hig-c-req-elapsed-time-]YYYY.MM.DD

這個是elasticearch-head外掛下索引裡一條資料,展示這個是為了填Elasticsearch details中對於Time field name欄位的理解 image.png

儲存成功後資料來源就建好了

3,建圖表

image.png 建這個表的步驟 image.png image.png image.png

把標記的三個點都操作完後,效果就出來了,這個就是按ES的聚合操作來的,這是最簡單的求和,意思是在這個時間段內將所有的請求數求和,展示出來的資料表示今天內所有的請求數,注意一點,這個結果值都是按這個聚合時間來算的。 因為是測試資料,所以,資料量比較少。 image.png 這個查詢的結果就是,根據sGrp欄位分組,查出這個分組下的資料訪問量,而這個分組存的主要是各系統的標識,所以,整個翻譯過來就是,各系統請求訪問量實時監控圖。 如果想x軸想展示出group的名稱,則可以這樣選擇 image.png 這樣,x軸就從時間變成了各系統名稱了 如果我只想展示一種,該如何辦了,這個時候就需要用到這個工具的另一個操作了 image.png

目前對於這個query的操作我只發現這樣有用,官網上對這個做了詳細說明,至於官網上那種用法,讀者如有更詳細的用法,可以留言給我 這是官網文件地址: http://docs.grafana.org/features/datasources/elasticsearch/

還有一個就是耗時分佈圖了,這個圖的功能很強大,以前我想到過這樣一種工具來展示,無奈echart對這個支援實現起來比較麻煩,但在這裡真的點點就可以了 首先,我得拿出我出的es裡的資料來解釋下 image.png span是指這個請求的耗時,那麼我將要實現一個根據每個請求的耗時來展示出耗時的區間分佈 首先是新增一個heatmap 選擇資料來源後這樣操作 image.png 選擇平均值,然後再選擇欄位,注意,這個時間Y軸的值是個數,而我們需要的是時間(毫秒),所以還得更改下Y軸的值 至於顏色設定什麼的,不是重點,讀者可以自己選擇。 這樣一來就可以展示出各請求耗時段時間分佈了,至於,如何區分出一個系統的,還是不同時間段的都跟前面的圖表操作一致 後面還有個餅圖的,這裡就不再展示,注意,餅圖這個是官方提供的外掛,要去官網上下載,操作起來也是很簡單的。

總結

本文的目的就為了簡化Grafana的入門學習成本,本人因為對es圖表有過開發,學習這個軟體時理解起來相對容易點,但在剛開始接觸的時候,還是發現文件較少,而且大部份文件都只做出了個效果圖,並沒有實際操作的過程和解釋,學習起來難免有點成本。 當然,Grafana也有一些侷限,對於單索引操作比較容易,對於多個索引的過濾暫時是不支援的,不過也能理解,ES本身對於多索引也支援不夠,還有就是如果是特別複雜的聚合計算,grafana還是做不了的,它本身不支援原生的es查詢語法,也就不能對一些多層次的聚合查詢做展示,當然這一點也不影響它,因為對於es來說,單個索引的聚合查詢才是它的優勢,而且沒有比它更加優秀的功能更強大的展示圖表功能了。