grafana 批量新增圖表
利用grafana做監控展示特別方便,而且介面還很有科技感,一般的使用都是自己手動新增圖表,或者使用別人提供好的模板。
在一種情況下就比較尷尬了,我有100個例項的記憶體資料想展示,如果都放在一個table上,就特別的亂,互相覆蓋,不能只管的展示,如果是1個例項一個table就很繁瑣,明明相似的功能,要操作100次,如果是使用模板做一個下拉框選擇,又不能同時在一個頁面展示,只能選一個看一個。在這樣的場景下,我們就需要一個方便的手段去做重複的事情,以此達到目的。
網上有很多教程,但是大部分都是思路對,並不能正常的操作下來。下面就主要講講如何操作的部分。
http api
grafana自己並不支援批處理,包括這個http api。http api只是提供了一種手段,讓你通過api去操作dashboard。所以我們要做的是寫程式,把重複的部分生成。最後操作一次api。
操作主要流程
檢視api官網
http://docs.grafana.org/http_api/dashboard/
這一點很重要,網上很多操作方式都不是新的,新舊有些不同,所以從官方的api中複製出建立的demo來。
獲取key
這個操作太明顯了,直接點選。
檢視要新增的元素
這個特別重要,因為不同版本不一樣,所以要檢視自己版本的的json。
首先還是建立一個模板的表格
然後點選檢視dashboard的model找到對應圖表的json的關鍵字
我的版本的關鍵字是panels
這個欄位表示的是圖表,裡面填寫的就是圖表的樣式資料,表示式等等。
java編碼
上面就找到了所有的要提交的元素,下面就是利用程式碼生成重複的圖表元素,最後複製貼上到請求體提交。
檢視裡面的圖表的json。我們要修改的主要就是表示式裡的值,id還有座標。重點,還有座標。如果不修改這個,所有的圖會重疊在一起。
首先使用json工具轉化為java程式碼。
這裡需要有個修改,他自動轉化的時候會把帶有百分號的欄位識別為date型別。這個需要手動改成string型別。到時候設定id從一個值開始往後加就行。
排版問題
整個圖表就4個元素,x,y,w,h。我們設計好以後,w,h都是固定的。x,y初始都是0。x有這樣一個規律,下一個圖表的x=x+w。如果x超過返回就換下一行,y=y+h。同事把x=0;什麼時候換下一行,這個需要你自己在那個頁面上多加幾個圖表試試。我的版本是dashboard的寬度是24。超過24就換行。
生成json檔案
這裡推薦是把轉化的結果寫入檔案,最後可以直接拷貝出來加入panels的欄位裡就好。注意寫檔案的時候,每個圖表之間要用逗號分隔,在寫完一個table的時候記得加逗號。
http提交
直接找個http的模擬器就好了。記得使用官網的demo。不要找別人寫的,版本對應是個很大的問題。