Grafana整合ElasticSearch數據源繪制Dashboard展示


Grafana整合ElasticSearch數據源繪制Dashboard展示

0、前置信息

0.1、版本信息

grafana版本:v8.1.2
ElasticSearch數據源版本:7.6.2
ElasticSearch7.6.2版本對應的Lucene版本:8.4.0

0.2、官網地址

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面板數據展示方式,可以參看官方介紹 https://grafana.com/docs/grafana/v8.1/visualizations/

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的查詢語法,可參見官方文檔:

https://lucene.apache.org/core/8_11_1/queryparser/org/apache/lucene/queryparser/classic/package-summary.html#package_description

2.9、查詢字段為空的數據

例如:由於在ElasticSearch存儲的數據包含有appId為空的數據,所以需要將這部分數據查詢出來,同時因為這部分數據的appId和appName值為空,所以查詢出來的數據不會包含這些字段值。

展示效果如下所示:

操作步驟如下:

1> 添加一個空白的Panel

2> 繪制Panel展示數據

展示樣式選擇:

展示數據配置:

2.10、計算成功率、失敗率

例如:計算在一定時間段內,服務處理請求的成功率和失敗率(這里以successFlag字段作為篩選條件)

展示效果如下所示:

操作步驟如下:

1> 添加一個空白的Panel

2> 繪制Panel展示數據

展示樣式選擇:

展示數據配置:

數據百分號展示設置:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM