1. 程式人生 > >grafana 批量新增圖表

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。不要找別人寫的,版本對應是個很大的問題。