Grafana如何對接TSDB
Grafana是用于展示大型測量數據的開源可視化工具,在互聯網應用分析中應用十分廣泛,并且也在工業監控、氣象監控、家居自動化和過程管理等領域也有著較廣泛的用戶基礎。將TSDB接入Grafana后,您可以利用Grafana的豐富易用的可視化工具,更好地監控和分析來自TSDB的數據。
環境準備
下文以ECS服務器上搭建Grafana服務,并通過VPC網絡連接到TSDB實例為示例。關于ECS的使用,詳細請參見什么是云服務器ECS。
需要申請一個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時,即可通過
$變量名
的方式來引用變量所指代的查詢。