Grafana整合ElasticSearch數據源繪制Dashboard展示
0、前置信息
0.1、版本信息
grafana版本:v8.1.2
ElasticSearch數據源版本:7.6.2
ElasticSearch7.6.2版本對應的Lucene版本:8.4.0
grafana官網地址:https://grafana.com/docs/grafana/v8.1/ grafana模板地址:https://grafana.com/grafana/dashboards/ Lucene查詢官方文檔: https://lucene.apache.org/core/8_11_1/queryparser/org/apache/lucene/queryparser/classic/package-summary.html#package_description
0.3、ElasticSearch索引字段信息

{ "mappings": { "_doc": { "properties": { "appId": { "type": "keyword" }, "appName": { "type": "text", "analyzer": "ik_max_word" }, "executeTime": { "type": "long" }, "httpCode": { "type": "integer" }, "message": { "type": "text", "analyzer": "ik_max_word" }, "requestIp": { "type": "keyword" }, "requestMethod": { "type": "keyword" }, "requestParams": { "type": "keyword" }, "requestPath": { "type": "keyword" }, "requestReferer": { "type": "keyword" }, "requestTime": { "type": "date", "format": "yyyy-MM-dd'T'HH:mm:ss.SSSZ" }, "requestUrl": { "type": "keyword" }, "responseTime": { "type": "date", "format": "yyyy-MM-dd'T'HH:mm:ss.SSSZ" }, "scheme": { "type": "keyword" }, "statusCode": { "type": "integer" }, "successFlag": { "type": "boolean" }, "targetAppId": { "type": "keyword" }, "targetAppName": { "type": "text", "analyzer": "ik_max_word" }, "targetServer": { "type": "keyword" }, "tid": { "type": "keyword" } } } } }
1、Grafana添加ElasticSearch數據源
此處可以參考官網文檔添加數據源(如圖所示),當然也可參考下面操作:
grafana官網文檔地址:https://grafana.com/docs/grafana/v8.1/datasources/elasticsearch/
在Grafana的Setting中點擊DataSources,參照下圖配置數據源信息
說明:
1> 上圖中index name為單一索引,按天生成,例如:索引名為:es-gateway-log-2022-03-15,所以配置時,index name配置為 [es-gateway-log-]YYYY.MM.DD,Pattern選擇的值為Daily,若索引為按月生成,則index name配置為 [es-gateway-log-]YYYY.MM,Pattern選擇的值為Monthly
2> ElasticSearch版本的選擇要與連接的ElasticSearch版本一致
2、Grafana中添加Panel進行數據展示
2.1、單一字段統計數據量
例如:查詢過去一定時間段內,請求的總訪問量
展示效果如下圖:
操作步驟如下:
1> 添加一個空白的Panel
2> 繪制Panel展示數據
說明:
1> Panel面板數據展示方式,可以參看官方介紹
2> 關於展示數據的字體大小、顏色均可以通過改變對應的屬性值修改
3> 對於字段名的修改,可以參考下圖
2.2、根據單一字段查看數據走勢
例如:查詢過去一定時間段內,請求的訪問量
展示效果如下所示:
操作步驟如下:
1> 添加一個空白的Panel
2> 繪制Panel展示數據
2.3、根據多個字段查看數據走勢
例如:查詢一定時間段內,各應用的訪問流量
展示效果如下所示:
操作步驟如下:
1> 添加一個空白的Panel
2> 繪制Panel展示數據
展示樣式選擇:
展示數據配置:
說明:
如果需要調整各個應用走勢曲線的顏色,可以在展示效果頁面上,點擊要修改的應用對應的顏色,選擇對應顏色即可,可參考下圖:
2.4、根據某一字段分組匯總展示
例如:根據應用ID分組展示選定時間段內的請求數據
展示效果如下所示:
操作步驟如下:
1> 添加一個空白的Panel
2> 繪制Panel展示數據
展示樣式選擇:
展示數據配置:
2.5、根據不同條件同時展示多個柱狀圖
例如:展示在所選時間段內訪問的總請求數,訪問成功的請求數,訪問失敗的請求數(這里的判斷條件根據字段 successFlag)
展示效果如下:
操作步驟如下:
1> 添加一個空白的Panel
2> 繪制Panel展示數據
展示樣式選擇:
展示數據配置:
2.6、根據某一字段展示平均數據
例如:展示所選時間段內服務的平均執行時間
展示效果如下所示:
操作步驟如下:
1> 添加一個空白的Panel
2> 繪制Panel展示數據
展示樣式選擇:
展示數據配置:
2.7、列表展示ElasticSearch原生數據
例如:展示kibana中當前索引數據,這里以兩種方式展示:
方式1:展示ElasticSearch原始數據
展示效果如下所示:
操作步驟如下:
1> 添加一個空白的Panel
2> 繪制Panel展示數據
展示樣式選擇:
展示數據配置:
方式2:可選擇字段展示ElasticSearch原生數據
展示效果如下所示:
操作步驟如下:
1> 添加一個空白的Panel
2> 繪制Panel展示數據
展示樣式選擇:
展示數據配置:
2.8、多條件查詢其中某一字段不為空
例如:分組展示服務執行時間大於2秒的請求數據
展示效果如下所示:
操作步驟如下:
1> 添加一個空白的Panel
2> 繪制Panel展示數據
展示樣式選擇:
展示數據配置:
說明:
當前ElasticSearch7.6.2版本對應的Lucene版本為8.4.0,關於Lucene的查詢語法,可參見官方文檔:
2.9、查詢字段為空的數據
例如:由於在ElasticSearch存儲的數據包含有appId為空的數據,所以需要將這部分數據查詢出來,同時因為這部分數據的appId和appName值為空,所以查詢出來的數據不會包含這些字段值。
展示效果如下所示:
操作步驟如下:
1> 添加一個空白的Panel
2> 繪制Panel展示數據
展示樣式選擇:
展示數據配置:
2.10、計算成功率、失敗率
例如:計算在一定時間段內,服務處理請求的成功率和失敗率(這里以successFlag字段作為篩選條件)
展示效果如下所示:
操作步驟如下:
1> 添加一個空白的Panel
2> 繪制Panel展示數據
展示樣式選擇:
展示數據配置:
數據百分號展示設置: