0
我試圖產生與Kapacitor批次基線|通過查詢從InfluxDB 1,2,3和相同的間隔3周前,那麼它前進換檔和像這樣接合在一起的查詢:Kapacitor LAMBDA平均數
var w1 = batch
|query('SELECT mean(""value"") FROM ""MyDB"".""autogen"".""MetricName""')
.offset(1w).period(period).every(1m).align().groupBy(time(1m))
|shift(1w)
var w2 = batch
|query('SELECT mean(""value"") FROM ""MyDB"".""autogen"".""MetricName""')
.offset(2w).period(period).every(1m).align().groupBy(time(1m))
|shift(2w)
var w3 = batch
|query('SELECT mean(""value"") FROM ""MyDB"".""autogen"".""MetricName""')
.offset(3w).period(period).every(1m).align().groupBy(time(1m))
|shift(3w)
var w4 = batch
|query('SELECT mean(""value"") FROM ""MyDB"".""autogen"".""MetricName""')
.offset(4w).period(period).every(1m).align().groupBy(time(1m))
|shift(4w)
var bj = w1
|join(w2, w3, w3)
.as('w1', 'w2', 'w3', 'w4')
.fill('null')
var b = bj
|eval(lambda: (""w1.mean"" + ""w2.mean"" + ""w3.mean"" + ""w4.mean"")/float(4.0))
.as('avg')
我正在使用Full Outer Join,因爲某些周可能缺少一個值,在這種情況下,我會將基線計算爲3個當前值的平均值。
但是看起來lambda不支持Mean()或任何這樣的數學函數。它似乎也不支持檢查空值。
有沒有像這樣計算基線的方法?
同樣,一旦基線計算完畢,如何保持緩存,以便可以根據基線檢查傳入流數據?
任何幫助表示讚賞!謝謝
只是在這裏大聲思考。如果一個特定的數據丟失了,你可以對它進行「線性插值」嗎?這樣你就可以確保總是有4個值,你可以用4來除。讓我知道。謝謝 –