簡體   English   中英

PromQL 多連接

[英]PromQL multi join

好的,這不是我要運行的簡單 PromQL 查詢。 這是我的輸入數據:

accessPoint_numClients{mac="00:11:22:33:44:55"} 11
accessPoint_numClients{mac="00:11:22:33:44:AA"} 12
accessPoint_numClients{mac="00:11:22:33:44:BB"} 5

accessPoints{mac="00:11:22:33:44:55", groupId="1"} 1
accessPoints{mac="00:11:22:33:44:AA", groupId="1"} 1
accessPoints{mac="00:11:22:33:44:BB", groupId="2"} 1

controller_zone_groups{groupId="1", groupName="Foo"} 1
controller_zone_groups{groupId="2", groupName="Bar"} 1
controller_zone_groups{groupId="3", groupName="Baz"} 1

所以,我想生成一個 grafana 圖,按組對客戶計數進行分組,並打印出相關的 groupNames。

所以這是我目前的嘗試,但這與一個有效的查詢相去甚遠:

sum by (groupId) (accessPoint_numClients * on (mac) group_left(groupId) accessPoints * on (groupId) group_left(groupName) controller_zone_groups)

有沒有機會讓這個工作?

謝謝,沃爾克...

================ 更新 ===============

好的,也許是一些帶有響應的示例查詢:

sum by (apGroupId) ((smartzone_accessPoint_numClients * on (mac) group_left(apGroupId) smartzone_accessPoints) or (groupId) group_left(groupName) smartzone_controller_zone_groups)

==> "在 char 125 處解析錯誤:聚合中出現意外,預期為 \")\""

sum by (apGroupId) (smartzone_accessPoint_numClients * on (mac) group_left(apGroupId) smartzone_accessPoints) * on (apGroupId) group_left(groupName) smartzone_controller_zone_groups

==>“不允許多對多匹配:匹配的標簽在一側必須是唯一的”

sum by (groupName) (smartzone_accessPoint_numClients * on (mac) group_left(apGroupId) smartzone_accessPoints) * on (apGroupId) group_left(groupName) smartzone_controller_zone_groups

==>“不允許多對多匹配:匹配的標簽在一側必須是唯一的”

您的問題有點不清楚,但我認為您要問的是為什么groupName不在 output 中。 答案是sum將其聚合起來,將groupName添加到by將修復。

嘗試使用以下內容:

sum by (groupName) (
  sum by (groupId) (
    accessPoint_numClients * on(mac) group_right(groupId) accessPoints
  ) * on(groupId) group_right(groupName) controller_zone_groups
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM