摘要:
業務實時監控服務( arms)是一款阿里雲應用效能管理(apm)類監控產品。借助本產品,您可以基於前端、應用、業務自定義等服務,迅速便捷地為企業構建秒級響應的業務監控能力。
以乙個sql查詢為例:其中第一部分可以抽象為:聚合(sum, count)、過濾(where)和分組(group by)。select count(col1), sum(col2) as sum from data_table
where filtercols
group by groupbycols
order by sum desc/asc
limit limitnum
第二部分則是在第一部分的計算結果上進行排序(order by)和截斷(limit)。
隨著使用者資料量的增加,離線的計算會越來越慢,難以滿足使用者在某些場景下的實時性要求,因此很多解決方案中引入了實時計算。
與離線計算相比,實時計算有兩點區別:
select count(col1), sum(col2) as sum from origin_data其中col1、col2、filtercols、groupbycols、time 都是日誌切分後的字段,timeinterval是流資料切分所用的時間間隔,如一分鐘、五分鐘等。where filtercols
group by groupbycols and timeinterval
select count(col1'), sum(clo2') from 預計算結果其中col1'、clo2'、filtercols'、groupbycols' 中的字段都是來自預計算之後的結果。where filtercols'
group by groupbycols' and timeinterval'
timerange (mintime, maxtime)
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,聚合指標在arms中,預計算的資料儲存在時序資料庫中,後計算則是基於時序儲存的查詢時計算。col1, col2,聚合指標
col1, col2, col3,聚合指標
與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 基於記憶體的高速執行引擎,使用者可以結合流式 ...