簡體   English   中英

將兩個具有不同結果的聚合相加並保留所有

[英]Sum two aggregations with different results and keep all

我想創建所有服務器的列表並按團隊聚合它們。 如果我用一個指標來做這件事,這很容易:

對於 Linux: count(node_uname_info) by (team)
和 Windows: count(wmi_os_info) by (team)

但是現在我想將這兩個查詢聚合為一個,因為我想按團隊獲取服務器總數。

通常我會這樣做:
count(node_uname_info) by (team) + count(wmi_os_info) by (team)

但現在我只得到同時擁有 Linux 和 Windows 服務器的團隊。
如果一個值不存在,有沒有辦法假設它為零?

我試過的查詢:

count(node_uname_info) by (team) + count(wmi_os_info) by (team)
count(node_uname_info) by (team) + (count(wmi_os_info) by (team) > 0)
count(node_uname_info) by (team) + on(team) count(wmi_os_info) by (team)

謝謝!

如有關二元運算符的文檔中所示,不匹配的元素不是結果的一部分:

在兩個即時向量之間,二元算術運算符應用於左側向量中的每個條目及其右側向量中的匹配元素[...] 右側向量中沒有匹配條目的條目found 不是結果的一部分。

但是您可以使用__name__內部標簽(請參閱選擇器)選擇多個指標, __name__ count應用於結果向量:

count({__name__=~"node_uname_info|wmi_os_info"}) by (team)

暫無
暫無

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

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