Grafana使用語法之ESLuence篇

Grafana使用語法之ES/Luence篇

最近的專案主要使用grafana作為大盤,其中資料來源的種類多樣,有es,mysql,Prometheus等各類的,不同的資料來源,在實際使用時,各有差別,因此特意小結梳理一下,做個備份,方便以後自查,有興趣的小夥伴也可以瞅一瞅 (純乾貨。。。)

1。 查詢成員欄位

語法:

find:表示查什麼東西 type:表示檢索條件

如查詢型別的欄位,可以如下處理

什麼時候用這個呢?

比如我想知道這個es中定義了哪些欄位 比如在配置Grafana的變數時,可以使用它來做一些限定

2。 查詢成員值

語法:

find:後面跟上的是 terms, 表示查詢具體的值 field: 用於限定需要查的成員 size:數量限制,可以不填

舉例如下,查詢所有的伺服器ip

使用範圍:

常見於配置Grafana變數,配置一個伺服器ip選擇的變數,用於檢視不同伺服器的表現情況

3。 條件查詢成員值

在前面的基礎上加一下限定,比如一個es為多個應用使用,此時我只關注其中app1的大盤,此時配置伺服器時,想加一個條件限定

語法: `{“find”: “terms”, “field”: “成員名”, “query”: “k:v”}

query:lucence查詢語法,要求成員k的值為v

舉例,查詢server_name = app的伺服器ip

4。 Lucene 查詢語法

配置大盤的查詢條件,主要就是藉助lucene語法來處理,接下來看一下常見的使用姿勢

4。1 條件等於查詢

語法:

filed_name: 欄位名 field_value: 需要檢索的值

注意:

中間使用英文冒號分隔,表示條件命中

4。2 不等於查詢

如果希望不等於查詢,主要使用下面這種方式

4。3 欄位本身存在與否 : 查詢包含field成員的記錄 : 查詢不包含field成員的記錄4。4 萬用字元查詢

在查詢條件中,包含下面兩個的表示使用通配查詢

匹配打個字元 匹配0或多個字元

比如我有個應用,部署多個環境,分別名為 app-cn, app-usa,現在想統計整個應用的情況,就可以使用下面這種正則方式

除了上面的示例,在實際的工作中,更常見的是url的統計,比如統計 這個域名開頭的請求

4。5 模糊搜尋

在單次後面新增劑上 來實現模糊搜尋,這種更適用於搜尋業務場景,通常對於grafana的大盤配置,個人感覺不太實用

實用方式

4。6 範圍搜尋

除了前面的精確搜尋,我們還可以進行範圍搜尋

語法: ,

:閉包區間,包含左邊的值 :開區間,不包含兩邊值 如果為 表示某一側不限制範圍

例項演示,查詢http狀態碼為 4xx 的case

除了上面這種寫法,也可以使用 的方式,比如上面的寫法等價

4。7 邏輯操作

多條件組合,使用AND/OR來處理,這裡的組合即可以表明多個field,也可以是一個field的多個value組合

如多欄位匹配:找出app-cn應用中狀態碼為500的記錄

如多value匹配:找出狀態碼為500, 503的記錄

4。8 轉移字元

當查詢條件中,包含下面字元中的一個時,需要使用注意

特殊字元: 轉義修飾:

如url的查詢時,通常會用到轉義

5。 小結

本文主要介紹Grafana中使用es資料來源時,常見的語法操作,當然其中Lucence的部分,在kibana中也同樣適用;

通常來講,在Grafana中,有下面幾個地方會使用到上面的知識點

變數配置時,使用第1,2,3節中的方式,過濾出下拉選項

Grafana使用語法之ESLuence篇

在大盤配置的Query輸入框中,使用 Lucene 語法

Grafana使用語法之ESLuence篇

在Explore中使用Lucene語法

TAG: 查詢語法使用fieldgrafana