摘要: 業務實時監控服務( 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)。
實時計算方式
隨著使用者資料量的增加,離線的計算會越來越慢,難以滿足使用者在某些場景下的實時性要求,因此很多解決方案中引入了實時計算。
與離線計算相比,實時計算有兩點區別:
需要使用者給定時間字段。arms支援兩種時間,event time(使用者切分的時間)和processing time(arms切分中的_systime)。
資料處理分為了預計算和後計算兩個階段。預計算階段計算原始資料,並儲存預計算的結果,使得資料量大大減少。當使用者需要實時查詢資料的時候,可以基於預計算的結果,通過後計算方式,得到最終結果。
預計算
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 通過兩個步驟解決了使用者的預計算和後計算的問題。
預計算在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提供了 過濾、聚合、降精度和彙總等多種計算方式。如下圖所示:
在維度中選擇為「全部」表示會根據該維度再次group by,選擇「固定值」表示會在該維度進行過濾。
在指標中,支援選擇單個指標或者指標的組合計算。
topn則對應到order by desc 和 limit。
時間粒度可以使用者選擇,也可以由系統根據使用者選擇的時間區間確定。目前提供的有一分鐘、五分鐘、十五分鐘、一小時、一天等。
相對opentsdb,arms還提供了資料集與資料集的 join 操作、佔比操作,如果兩個資料集包含同樣的維度,則資料集可以join,然後基於join後的資料做指標復合計算。
ARMS 原來實時計算可以這麼簡單!
摘要 業務實時監控服務 arms 是一款阿里雲應用效能管理 apm 類監控產品。借助本產品,您可以基於前端 應用 業務自定義等服務,迅速便捷地為企業構建秒級響應的業務監控能力。以乙個sql查詢為例 select count col1 sum col2 as sum from data table w...
Spark Streaming實時計算框架介紹
隨著大資料的發展,人們對大資料的處理要求也越來越高,原有的批處理框架mapreduce適合離線計算,卻無法滿足實時性要求較高的業務,如實時推薦 使用者行為分析等。spark streaming是建立在spark上的實時計算框架,通過它提供的豐富的api 基於記憶體的高速執行引擎,使用者可以結合流式 ...
Spark Streaming實時計算框架介紹
隨著大資料的發展,人們對大資料的處理要求也越來越高,原有的批處理框架mapreduce適合離線計算,卻無法滿足實時性要求較高的業務,如實時推薦 使用者行為分析等。spark streaming是建立在spark上的實時計算框架,通過它提供的豐富的api 基於記憶體的高速執行引擎,使用者可以結合流式 ...