Grafana是用於展示大型測量資料的開源視覺化檢視,在互連網應用分析中應用十分廣泛,並且也在工業監控、氣象監控、家居自動化和過程管理等領域也有著較廣泛的使用者基礎。將TSDB接入Grafana後,您可以利用Grafana的豐富易用的視覺化檢視,更好地監控和分析來自TSDB的資料。
環境準備
下文以ECS伺服器上搭建Grafana服務,並通過VPC網路連接到TSDB執行個體為樣本。關於ECS的使用,詳細請參見什麼是Elastic Compute Service。
需要申請一個TSDB執行個體,以及一台與TSDB執行個體在同一個VPC網路下的ECS伺服器,並滿足如下要求:
作業系統選擇CentOS 7.3 64位。
硬體資源需要單核2 G及以上記憶體,磁碟剩餘空間不少於10 G。
ECS伺服器在VPC網路中的地址已加入TSDB執行個體的網路白名單。
已為ECS伺服器配置了一個公網IP(可以通過公網用瀏覽器訪問Grafana)。
已在ECS控制台添加了一個安全性群組規則,開放3000連接埠的訪問,具體操作請參見建立安全性群組。
軟體安裝和設定
需要依照以下方法在ECS伺服器中安裝並啟用Grafana。詳細的安裝說明可以參照Grafana官方協助文檔。
在ECS伺服器中運行類似以下的命令來安裝Grafana:
$ sudo yum install https://dl.grafana.com/oss/release/grafana-6.2.2-1.x86_64.rpm
啟動 Grafana 服務:
$ sudo service grafana-server start
接入 TSDB
按照以下步驟在Grafana中接入TSDB資料來源:
在瀏覽器中串連 ECS 的3000連接埠,進入Grafana 登入頁面。
例如:ECS的公網地址是106.15.XX.XX,那麼在瀏覽器中輸入地址
http://106.15.XX.XX:3000/
。在Grafana登入頁面,輸入使用者名稱“admin” 和密碼“admin” 。登入成功後,進入Grafana首頁。
在Grafana中建立一個data source。建立時需指定以下資訊(其他設定採用預設值即可):
資料庫類型:選擇OpenTSDB。
HTTP URL:填寫您的VPC網路地址。要查看該地址,請在TSDB控制台中進入執行個體詳情下的基礎資訊,查看VPC網路地址一欄。
OpenTSDB 版本:選擇==2.3。
如果執行個體開啟了使用者管理功能,則還需要選中Basic Auth以及With Credentials,並填入一個具備讀許可權的使用者認證資訊。
單擊Save & Test按鈕後,若介面上彈出提示
Data source is working
,則表明Grafana已經成功串連上指定的TSDB執行個體。
設定完畢後,您就可以在Grafana中建立dashboard並開始使用了。關於具體建立方法,請參見Grafana 官方協助文檔。
下文將介紹使用Grafana展示TSDB時序資料的一些常用情境的使用方法。
建立展示特定指標的監控視圖
本文後續的截圖都是按照Grafana 6.2的提供的介面進行的畫面截圖,根據Grafana的版本不同,畫面展示可能會與本文截圖存在出入。
在Grafana的介面上選擇“Create”,並選擇“Dashboard”。如下圖所示:
如果是已有為該TSDB執行個體建立Dashboard的情況下,則只需選擇已有的Dashboard。
在開啟的Dashboard介面中,先點擊New Panel,並在開啟的New Panel介面中選擇Add Query。如下圖所示:
在下述Panel編輯畫面中,分別根據需要進行以下設定。
設定要監控的指標(Metric),以及基於該指標是否要進行彙總(Aggregator)。
根據需要設定相應的降精度(Downsample)規則,包括降精度的時間間隔(interval), 降精度的彙總方法(Aggregator), 插值策略(Fill)等。
設定要監控的時間軸對象的定義,按組進行Tags定義。如果要對某個Tag的所有標籤值所對應的時間軸進行監控,則需要在標籤值一欄填入
*
。重要在Grafana提供選擇的Aggregator中,TSDB支援的Aggregator運算元,詳情請參見單值查詢資料。
可以使用Grafana展示TSDB多值模型資料。在metric欄輸入單值模型或者多值模型指標名稱,此時下拉式功能表只會展示指標名稱。輸入完多值模型metric名稱之後,加入特殊符號 @,此時下拉式功能表會展示該metric下所有fields的資訊,選取需要查看的field即可。
重要Grafana 只支援數字類型的展示,但是 TSDB 同時支援數字、字串和布爾類型
使用變數簡化過濾時間軸的資料展示
如果在時間軸比較多而且增加得比較頻繁時,需要即時地在已建立的panel中去即時顯示一些新建立的時間軸,就需要一個個指定metric的值,tagkey的值或者tagvalue的值,給使用上帶來極大的不便。為了簡化相關過程,Grafana提供了變數(Variables)的功能。
下文將通過在指定tag的過濾條件中建立並使用變數來介紹如何通過變數來靈活地過濾資料展示時的時間軸設定。
在Grafana的選定Dashboard畫面中單擊Settings。
在Variables介面中設定要建立的變數以及變數值的擷取規則。
“DataSource”:選擇“OpenTSDB”。
“query”:根據Grafana對OpenTSDB提供的查詢運算式填寫相應的運算式。
在本例中,由於設定的是Tagvalue的變數,因此寫的是
tag_values
運算式。TSDB 相容Grafana為OpenTSDB提供的全部查詢運算式:
metrics(prefix)
:根據指定的前置詞字元串返回查詢到的所有metric(可能為空白)。tag_names(metric)
:根據指定的metric返回查詢到的所有tag key的名稱。tag_values(metric, tagKey)
:根據指定的metric和tagKey返回查詢到的所有tagKey。suggest_tagk(prefix)
:根據指定的前置詞字元串返回所有metric下滿足該查詢條件的tagvalue。suggest_tagv(prefix)
:根據指定的前置詞字元串返回所有metric下滿足該查詢條件的tagvalue。
關於上述查詢運算式的詳細內容,請參見Grafana官方手冊。
重要目前所有已經Release的Grafana版本中返回的查詢結果個數是存在一個上限的。這有可能導致存在使用者的某些期望的metric, tagkey, tagvalue未被包括在返回的查詢結果的情況。目前Grafana社區已經注意到這個問題,但截止到Grafana的6.2.2版本,這個問題尚未被修複。如果使用中碰到了該問題,建議使用者通過更改查詢條件等方法來規避。
變數設定完畢後,在Dashboard中建立Panel或編輯已有Panel時,即可通過
$變數名
的方式來引用變數所指代的查詢。