日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Prometheus学系列(十九)之PromQL基础

發布時間:2023/12/15 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Prometheus学系列(十九)之PromQL基础 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Prometheus提供一個函數式的表達式語言PromQL (Prometheus Query Language),可以使用戶實時地查找和聚合時間序列數據。表達式計算結果可以在圖表中展示,也可以在Prometheus表達式瀏覽器中以表格形式展示,或者作為數據源, 以HTTP API的方式提供給外部系統使用。

一、例子

本文檔僅供參考。 對于學習,從幾個例子開始可能更容易。

二、表達式語言數據類型

在Prometheus的表達式語言中,任何表達式或者子表達式都可以歸為四種類型:

  • instant vector 瞬時向量 - 它是指在同一時刻,抓取的所有度量指標數據。這些度量指標數據的key都是相同的,也即相同的時間戳。
  • range vector 范圍向量 - 它是指在任何一個時間范圍內,抓取的所有度量指標數據。
  • scalar 標量 - 一個簡單的浮點值
  • string 字符串 - 一個當前沒有被使用的簡單字符串

依賴于使用場景(例如:圖表 vs. 表格),根據用戶所寫的表達式,僅僅只有一部分類型才適用這種表達式。例如:瞬時向量類型是唯一可以直接在圖表中使用的。

三、字面量
3.1 字符串字面量

字符串可以用單引號,雙引號或反引號指定為文字。

PromQL遵循與Go相同的轉義規則。在單引號,雙引號中,反斜杠成為了轉義字符,后面可以跟著a,b, f, n, r, t, v或者\。 可以使用八進制(\nnn)或者十六進制(\xnn, \unnnn和\Unnnnnnnn)提供特定字符。

在反引號內不處理轉義字符。與Go不同,Prom不會丟棄反引號中的換行符。例如:

"this is a string" 'these are unescaped: \n \\ \t' `these are not unescaped: \n ' " \t"'` 復制代碼
3.2 浮點數字面量

標量浮點值可以直接寫成形式[-](digits)[.(digits)]。

-2.43 復制代碼
四、時間序列選擇器
4.1 瞬時向量選擇器

瞬時向量選擇器允許在給定時間戳(即時)為每個選擇一組時間序列和單個樣本值:在最簡單的形式中,僅指定度量名稱。 這會生成包含具有此度量標準名稱的所有時間序列的元素的即時向量。

下面這個例子選擇所有時間序列度量名稱為http_requests_total的樣本數據:

http_requests_total 復制代碼

通過在度量指標后面增加{}一組標簽可以進一步地過濾這些時間序列數據。

此示例僅選擇具有http_requests_total度量標準名稱的時間系列,該名稱也將作業標簽設置為prometheus,并將其group標簽設置為canary:

http_requests_total{job="prometheus",group="canary"} 復制代碼

可以采用不匹配的標簽值也是可以的,或者用正則表達式不匹配標簽。標簽匹配操作如下所示:

  • =: 精確地匹配標簽給定的值
  • !=: 不等于給定的標簽值
  • =~: 正則表達匹配給定的標簽值
  • !~: 給定的標簽值不符合正則表達式

例如:度量指標名稱為http_requests_total,正則表達式匹配標簽environment為staging, testing, development的值,且http請求方法不等于GET。

http_requests_total{environment=~"staging|testing|development", method!="GET"} 復制代碼

匹配空標簽值的標簽匹配器也可以選擇沒有設置任何標簽的所有時間序列數據。正則表達式完全匹配。 可以為同一標簽名稱提供多個匹配器。

向量選擇器必須指定一個名稱或至少一個與空字符串不匹配的標簽匹配器。 以下表達式是非法的:

{job=~".*"} #Bad! 復制代碼

相反,這些表達式是有效的,因為它們都有一個與空標簽值不匹配的選擇器。

{job=~".+"} # Good! {job=~".*", method="get"} # Good! 復制代碼

標簽匹配器能夠被應用到度量指標名稱,使用__name__標簽篩選度量指標名稱。例如:表達式http_requests_total等價于{__name__="http_requests_total"}。 其他的匹配器,如:= ( !=, =~, !~)都可以使用> 。下面的表達式選擇了度量指標名稱以job:開頭的時間序列數據:

{__name__=~"^job:.*"} 復制代碼

Prometheus中的所有正則表達式都使用RE2語法。

4.2 范圍向量選擇器

范圍向量文字像即時向量文字一樣工作,除了它們從當前時刻選擇一系列樣本。 在語法上,范圍持續時間附加在向量選擇器末尾的方括號([])中,以指定應為每個結果范圍向量元素提取多長時間值。

持續時間指定為數字,緊接著是以下單位之一:

  • s - seconds
  • m - minutes
  • h - hours
  • d - days
  • w - weeks
  • y - years

在此示例中,我們選擇在過去5分鐘內為度量標準名稱為http_requests_total且job標簽設置為prometheus的所有時間序列記錄的所有值:

http_requests_total{job="prometheus"}[5m] 復制代碼
4.3 偏移修飾符

這個offset偏移修飾符允許在查詢中改變單個瞬時向量和范圍向量中的時間偏移

例如,以下表達式返回過去相對于當前查詢評估時間5分鐘的http_requests_total值:

http_requests_total offset 5m 復制代碼

注意:offset偏移修飾符必須直接跟在選擇器后面,例如:以下是正確的:

sum(http_requests_total{method="GET"} offset 5m) // GOOD. 復制代碼

然而,下面這種情況是不正確的:

sum(http_requests_total{method="GET"}) offset 5m // INVALID. 復制代碼

同樣適用于范圍向量。 這將返回http_requests_total一周前的5分鐘費率:

rate(http_requests_total[5m] offset 1w) 復制代碼
五、子查詢

子查詢允許您針對給定范圍和分辨率運行即時查詢。 子查詢的結果是范圍向量。

語法:<instant_query>'['<range>':'[<resolution>]']'[offset <duration>]

  • <resolution>是可選的。 默認值是全局評估間隔。
六、操作符

Prometheus支持二元和聚合操作符。詳見表達式語言操作符

七、函數

Prometheus提供了一些函數列表操作時間序列數據。詳見表達式語言函數

八、陷阱
8.1 Staleness

運行查詢時,獨立于實際當前時間序列數據選擇采樣數據的時間戳。這主要是為了支持聚合(總和,平均等)這樣的情況,其中多個聚合時間序列在時間上不完全對齊。由于它們的獨立性,Prometheus需要在每個相關時間序列的時間戳上分配值。它只需在此時間戳之前采用最新的樣本即可。

如果目標抓取或規則評估不再返回先前存在的時間序列的樣本,則該時間序列將被標記為陳舊。如果目標被移除,之前很快就會將其先前返回的時間序列標記為陳舊。

如果在時間序列標記為過時后在采樣時間戳處評估查詢,則不會為該時間系列返回任何值。如果隨后在該時間序列中攝取新樣本,它們將照常返回。

如果在采樣時間戳前5分鐘未找到任何樣本(默認情況下),則此時間點不返回該時間序列的值。這實際上意味著時間序列在其最新收集的樣本超過5分鐘或標記為陳舊之后從圖表“消失”。

對于在其抓取中包含時間戳的時間序列,不會標記陳舊性。在這種情況下,僅應用5分鐘的閾值。

8.2 避免慢查詢和重載

如果查詢需要對大量數據進行操作,則繪制圖表可能會超時或使服務器或瀏覽器過載。因此,在構建對未知數據的查詢時,始終在Prometheus表達式瀏覽器的表格視圖中開始構建查詢,直到結果集看起來合理(最多數百個,而不是數千個時間序列)。只有在您充分過濾或匯總數據后,才能切換到圖表模式。如果表達式仍然需要很長時間來繪制ad-hoc圖形,請通過錄制規則預先錄制它。

這與Prometheus的查詢語言尤其相關,其中像api_http_requests_total這樣的簡單度量標準名稱選擇器可以擴展到具有不同標簽的數千個時間序列。還要記住,即使輸出只是少量的時間序列,聚合在許多時間序列上的表達式也會在服務器上產生負載。這類似于在關系數據庫中對列的所有值求和的速度很慢,即使輸出值只是一個數字。

九、鏈接

Prometheus官網地址:prometheus.io/ 我的Github:github.com/Alrights/pr…

轉載于:https://juejin.im/post/5d083acd5188255c636e270a

總結

以上是生活随笔為你收集整理的Prometheus学系列(十九)之PromQL基础的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 一本大道综合伊人精品热热 | 欧美一级性生活 | 热久久免费视频 | 天天躁日日躁狠狠躁免费麻豆 | 欧美乱轮视频 | 亚洲色欲色欲www在线观看 | 亚洲精品wwww | 高h放荡受浪受bl | 影音先锋每日资源 | 少妇激情网 | 日韩一区二区三区在线观看视频 | 一级艳片新婚之夜 | heyzo久久 | 亚洲一区二区三区在线观看视频 | 国产精品熟妇人妻g奶一区 a少妇 | 亚洲女优视频 | 尤物精品在线 | 久久久无码人妻精品无码 | 性欧美又大又长又硬 | 男人天堂中文字幕 | 巨大黑人极品videos精品 | 欧美人与动性xxxxx杂性 | 日韩一级视频 | 久久特级毛片 | 欧美日一区二区 | 人人妻人人玩人人澡人人爽 | 风间由美在线视频 | 李宗瑞91在线正在播放 | 草草久久久无码国产专区 | 裸体视频软件 | 欧美黄色录像 | 日本精品99| www.日韩在线 | 天堂在线中文资源 | 亚洲成人第一 | 无码人妻丰满熟妇啪啪 | 国产高清视频一区二区 | 一女三黑人理论片在线 | 男人晚上看的视频 | 中文字幕一区二区三区四区欧美 | 一级黄色免费大片 | 欧美男女交配视频 | 天天做天天爱夜夜爽 | 亚州av网站| 综合色影院 | 亚洲精品乱码久久久久久久久久久久 | 国产精品成人69xxx免费视频 | 女人17片毛片60分钟 | 免费av在线播放 | 麻豆日产六区 | 国产精品88久久久久久妇女 | 午夜簧片 | 亚洲色图 校园春色 | 国产色网址 | 亚洲视频天堂 | 精品久久久久久久久久久久久久久久久久 | 香港三级韩国三级日本三级 | 精品国产午夜福利在线观看 | 欧美高清视频 | 爱爱福利社 | 欧美激情视频一区二区三区在线播放 | 国产又黄又猛 | 久久大胆人体 | 日日摸日日干 | 天堂中文在线网 | 蜜桃精品久久久久久久免费影院 | 日韩精品视 | 大尺度做爰无遮挡露器官 | 岛国精品视频 | 国产a视频精品免费观看 | 久久久久国 | 天天射综合网站 | 日本久色| 国产在线区 | 人妻少妇久久中文字幕 | 福利小视频在线播放 | 免费成人蒂法网站 | 欧美一区二区久久 | 国产乱了高清露脸对白 | 91亚洲视频 | 日韩不卡视频在线 | 天天操天天操天天干 | 国产视频一区二区三 | 青青操视频在线观看 | 国产刺激视频 | 大桥未久在线视频 | 欧美亚洲韩国 | 午夜久久视频 | 欧美日韩亚洲成人 | 短裙公车被强好爽h吃奶视频 | 欧美激情三级 | 欧美日韩国产电影 | 大象传媒成人在线观看 | 九月婷婷丁香 | 成人av影视在线 | 97成人免费视频 | 无码国产精品高潮久久99 | 婷婷激情电影 | 91精品小视频 |