匹配標簽值時可以是等於,也可以使用正則表達式。總共有下面幾種匹配操作符:
- =:完全相等
- !=: 不相等
- =~: 正則表達式匹配
- !~: 正則表達式不匹配
Prometheus的4種數據類型如下。·瞬時向量(Instant vector):一組時間序列,每個時間序列包含單個樣本,它們共享相同的時間戳。也就是說,表達式的返回值中只會包含該時間序列中最新的一個樣本值。·區間向量(Range vector):一組時間序列,每個時間序列包含一段時間范圍內的樣本數據。·標量(Scalar):一個浮點型的數據值,沒有時序。可以寫成[-](digits)[.(digits)]的形式,比如-3.14。需要注意的是,使用表達式count(http_requests_total)返回的數據類型依然是瞬時向量,用戶可以通過內置函數scalar()將單個瞬時向量轉換為標量。·字符串(String):一個簡單的字符串值。字符串可以用單引號('')、雙引號("")或反引號(``)來指定。因為Prometheus是基於Go語言編寫的,所以它與Go語言有着類似的轉義規則[1],比如在單引號('')或雙引號("")中,可以使用反斜杠(\)來表示轉義序列,后面可以接a、b、f、n、r、t、v或\(分別代表響鈴、退格、換頁、換行、回車、水平制表、反斜杠),特殊字符可以使用八進制(\nnn)或者十六進制(\xnn、\unnnn和\Unnnnnnnn)。但是與Go語言不同的是,Prometheus中的反引號(``)並不會對換行符進行轉義。
指標的格式:
其中,Metric Name參數又可以表達成 {_name_="http_requests_total"}
常用PromQL語句:
rate(xxxxx{idc="shanghai",instance=~"$instance",isp="BGP",item="http_code_200",job="xxxx"}[10m]) 收集xxxxx指標內匹配中括號參數的10分鍾內的數據,一秒一次。