夜鶯( Nightingale )PromQL 變量設置介紹
使用場景
PromQL 變量設置主要應用於以下場景:
-
差異化監控配置
- 對不同重要程度的機器設置不同的告警閾值
- 針對特定設備組設置專門的監控規則
-
靈活的監控範圍調整
- 快速切換監控目標設備
- 動態調整監控規則的覆蓋範圍
-
批量規則管理
- 使用同一個規則模板,通過變量適配不同環境
- 減少重複配置,提高規則維護效率
什麼是變量?
在告警規則上下文中,變量是指那些可以在定義告警查詢條件時被引用、但在實際觸發告警時其值會被特定信息替換掉的佔位符。使用變量可以讓告警消息變得更加具體和個人化,同時也使得單個告警模板能夠適應多種情況下的不同需求。
支持的類型
- 機器標識變量
在某些場景,如果只想對某些網絡設備進行監控,這個時候,可以使用機器標識變量

定義好變量名稱之後,可以在 promql 查詢條件中,使用 $ident 作為佔位符,在查詢之前,將變量替換為上面機器標識篩選到的機器
mem_available_percent{ident="$ident"}>80
- 網絡設備變量
在某些場景,如果只想對某些網絡設備進行監控,這個時候,可以使用網絡設備變量

定義好變量名稱之後,可以在 promql 查詢條件中,使用 $ip 作為佔位符,在查詢之前,將變量替換為上面篩選到的網絡設備
snmp_icmp_packet_loss{agent_host="$ip"}>0
- 閾值變量
在某些場景,我們管理了一批機器,其中有幾台機器比較特殊,告警閾值和其他機器不同,此時可以使用閾值變量,給特殊的機器配置不同的閾值,如下圖所示

上面配置中,業務組為 Default Busi Group 的機器,閾值都是 80,如果在這個業務組的某兩台機器,我們想設置特殊的閾值,可以在查詢條件下面添加 變量篩選,機器標識選擇這兩台機器,閾值設置為 90,這個只有這兩台機器的閾值是 90,其他機器是 80
- 枚舉值變量
有些場景,對於某個標籤,只想對某幾個值進行監控,可以使用枚舉值
