可以將其結構看成:
seriesset = ,
"group1":
}
每個seriesset
由多個組構成,每個組由時間和值對映的序列構成。
group
的格式:
如果資料未做分組操作,則有唯一的乙個空組:group={}
.
為seriesset
中的每個組新增額外的tag
.
要求:所有資料集之間的組沒有衝突.
其操作過程就是將seriesset
中的組進行削減,只保留groups...
中指定的組,如果兩個組,保留之後具有相同的組,則將它們進行聚合。
比如seriesset中有多個組:,
,
,
groups=a,b
, 則對前兩個組進行聚合操作,並去掉c=c1
,c=c2
的tag;第三個組去掉c=c2
的tag即可。最終結果:,
.
特別地,如果groups
為空,則對所有組進行聚合操作,並最終保留乙個空的組.
根據實際場景我們可能將一類指標拆分成很多個指標,而不是把他們都放到乙個指標下面用group區分。如果需要做累加運算,由於+
的邏輯是以右邊的值為準,去掉左邊不存在的值,所以不能滿足統計和的需求。
這個時候,我們可以通過將兩個指標聚合到乙個指標裡面,來進行聚合操作。
為了聚合指標,我們需要避免組衝突,所以使用addtags
為兩個資料集加上tag,然後進行merge
,將兩個資料集加在一起,然後使用aggr
進行去組操作,從而得到最終資料。
$success
= q(
"sum:rate:call.method.success.throughput", "$start", "2m"
)$fail
= q(
"sum:rate:call.method.failed.throughput", "$start", "2m"
)$success_set
= addtags(
$success,"type=success"
)$fail_set
= addtags(
$fail,"type=fail"
)$merge_set
= merge(
$success_set,$fail_set
)$sum
= aggr(
$merge_set, "", "sum"
)$sum
查詢表示式
這個特性使得你可以在c 中使用sql類似風格的語句,也被稱作linq 語言整合查詢 舉例來說,你可以這樣描述你的資料 ublic class coordinate 在c 裡,你可以像下面一樣輕鬆的宣告乙個資料庫表的邏輯等同式 use object and collection initializer...
查詢表示式
版本 新增功能 5.0.9 比較運算增加閉包子查詢支援 5.0.4 支援對同乙個字段多次呼叫查詢方法 查詢表示式支援大部分的sql查詢語法,也是 thinkphp 查詢語言的精髓,查詢表示式的使用格式 where 欄位名 表示式 查詢條件 where or 欄位名 表示式 查詢條件 表示式不分大小寫...
查詢表示式解析
查詢表示式解析 1 ienumerablequery from s in names where s.length 5 orderby s select s.toupper 在語義上等同於如下 方法風格 基於方法 的查詢 ienumerablequery names where s s.length...