ARMS 原來實時計算可以這麼簡單!

2021-09-11 11:59:16 字數 2084 閱讀 9108

摘要:

業務實時監控服務( arms)是一款阿里雲應用效能管理(apm)類監控產品。借助本產品,您可以基於前端、應用、業務自定義等服務,迅速便捷地為企業構建秒級響應的業務監控能力。

以乙個sql查詢為例:

select count(col1), sum(col2) as sum from data_table

where filtercols

group by groupbycols

order by sum desc/asc

limit limitnum

其中第一部分可以抽象為:聚合(sum, count)、過濾(where)和分組(group by)。

第二部分則是在第一部分的計算結果上進行排序(order by)和截斷(limit)。

隨著使用者資料量的增加,離線的計算會越來越慢,難以滿足使用者在某些場景下的實時性要求,因此很多解決方案中引入了實時計算。

與離線計算相比,實時計算有兩點區別:

select count(col1), sum(col2) as sum from origin_data

where filtercols

group by groupbycols and timeinterval

其中col1、col2、filtercols、groupbycols、time 都是日誌切分後的字段,timeinterval是流資料切分所用的時間間隔,如一分鐘、五分鐘等。

select count(col1'), sum(clo2') from 預計算結果

where filtercols'

group by groupbycols' and timeinterval'

timerange (mintime, maxtime)

其中col1'、clo2'、filtercols'、groupbycols' 中的字段都是來自預計算之後的結果。

timeinterval' 是使用者檢視每個資料點的時間間隔,timerange (mintime, maxtime)是查詢資料的時間區間。

針對上面分析,arms 通過兩個步驟解決了使用者的預計算和後計算的問題。

預計算在arms 自定義監控中,在任務配置的第三個步驟(第乙個步驟是配置日誌路徑,第二個步驟是配置切分),使用者需要配置資料集(資料的預計算邏輯),如下圖

其中指標是資料列的聚合計算、過濾是filter,維度是group by的條件。在arms中,維度分位兩種,一種是平鋪維度,一種是下鑽維度。

平鋪維度是指將聚合結果按照所有的維度直接儲存,比如按照col1、col2、col3欄位進行group by,儲存結果就是乙個包含所有col1、col2、col3欄位的全集。

下鑽維度是對平鋪維度的一種優化,比如對於機器基礎監控資料,在問題發生時,使用者往往需要從機房維度先發現問題,然後下鑽到該機房的應用分組,最終定位到某台機器ip的問題。這個時候,可以針對平鋪維度中的機房、分組、ip建立單向索引,即機房中的分組索引,分組中的ip索引,以加快查詢速度。這就是下鑽維度的作用,類似還有省、市、區的例子。

以三個維度col1, col2, col3進行group by為例,平鋪維度和下鑽維度的不同如下:

平鋪維度在時序資料庫中儲存的是如下三個維度的聚合結果:

col1, col2, col3, 聚合指標

聚合指標裡面包含sum、count、max等聚合的結果

下鑽維度在時序資料庫中儲存的是逐級展開的三個維度的聚合結果,相當於乙個以空間換時間的解決方案。

col1,聚合指標

col1, col2,聚合指標

col1, col2, col3,聚合指標

在arms中,預計算的資料儲存在時序資料庫中,後計算則是基於時序儲存的查詢時計算。

與opentsdb類似,arms提供了 過濾、聚合、降精度和彙總等多種計算方式。如下圖所示:

相對opentsdb,arms還提供了資料集與資料集的 join 操作、佔比操作,如果兩個資料集包含同樣的維度,則資料集可以join,然後基於join後的資料做指標復合計算。

ARMS 原來實時計算可以這麼簡單!

摘要 業務實時監控服務 arms 是一款阿里雲應用效能管理 apm 類監控產品。借助本產品,您可以基於前端 應用 業務自定義等服務,迅速便捷地為企業構建秒級響應的業務監控能力。離線計算方式 以乙個sql查詢為例 select count col1 sum col2 as sum from data ...

Spark Streaming實時計算框架介紹

隨著大資料的發展,人們對大資料的處理要求也越來越高,原有的批處理框架mapreduce適合離線計算,卻無法滿足實時性要求較高的業務,如實時推薦 使用者行為分析等。spark streaming是建立在spark上的實時計算框架,通過它提供的豐富的api 基於記憶體的高速執行引擎,使用者可以結合流式 ...

Spark Streaming實時計算框架介紹

隨著大資料的發展,人們對大資料的處理要求也越來越高,原有的批處理框架mapreduce適合離線計算,卻無法滿足實時性要求較高的業務,如實時推薦 使用者行為分析等。spark streaming是建立在spark上的實時計算框架,通過它提供的豐富的api 基於記憶體的高速執行引擎,使用者可以結合流式 ...