日志服务Dashboard加速
簡介:?阿里云日志服務致力于為用戶提供統一的可觀測性平臺,同時支持日志、時序以及Trace數據的查詢存儲。用戶可以基于收集到的各類數據構建統一的監控以及業務大盤,從而及時發現系統異常,感知業務趨勢。但是隨著收集到的數據量不斷增長,特別是遇到業務峰值的時候,大盤報表展示會產生明顯的延遲,無法及時查看重要數據。Scheduled SQL支持定時分析數據、存儲聚合數據、投影與過濾數據,并將執行的分析結果存入用戶指定的日志庫或者時序庫中,供用戶后續分析使用。由于在聚合后數據量將大大小于之前,因而非常適合進行即時數據分析以及大盤展示。
背景
阿里云日志服務致力于為用戶提供統一的可觀測性平臺,同時支持日志、時序以及Trace數據的查詢存儲。用戶可以基于收集到的各類數據構建統一的監控以及業務大盤,從而及時發現系統異常,感知業務趨勢。但是隨著收集到的數據量不斷增長,特別是遇到業務峰值的時候,大盤報表展示會產生明顯的延遲,無法及時查看重要數據。Scheduled SQL支持定時分析數據、存儲聚合數據、投影與過濾數據,并將執行的分析結果存入用戶指定的日志庫或者時序庫中,供用戶后續分析使用。由于在聚合后數據量將大大小于之前,因而非常適合進行即時數據分析以及大盤展示。下面我們以服務的請求成功率為例,介紹下如何基于Scheduled SQL加速大盤報表。
方案
假如我們需要查看以一分鐘為粒度,一小時內的請求成功率。在構建報表的時候,需要基于當前不足一分鐘的部分數據配置實時報表,而針對之前已滿一分鐘的歷史數據配置歷史報表。當然,如果用戶覺得一分鐘的數據延遲是可以接受的,就可以只配置歷史報表,而不需要實時報表。假如當前時間為11:09:47,需要查看10:11:00一直到11:09:00的分鐘級請求成功率,以及11:09:00到11:09:47的秒級成功請求率。
日志內容
| 字段名稱 | 示例 | 描述 | 
| receive_time | 1636616663654 | 時間戳,毫秒級 | 
| status | 500 | http狀態碼,200表示成功,其余表示失敗 | 
| error_code | 2001 | 錯誤碼,標識錯誤原因 | 
| message | server?is?busy | 錯誤描述 | 
| action_name | list_shop_product | 訪問的服務接口 | 
| user_agent | chrome | 客戶瀏覽器 | 
歷史報表
如圖所示展示了分鐘級的請求成功率,可以通過配置分鐘級的ScheduledSQL任務,計算每分鐘的成功率,并通過歷史報表直接展示。因為只需要直接拉取聚合結果,不需要即時計算,所以展示速度大大提升。
實時報表
如圖所示展示了秒級的請求成功率,因為只需要計算不到一分鐘的數據,而不是1小時的數據,因而速度也得到的提升。
配置
下面仍然以請求成功率為例,向大家介紹下如何實現通過ScheduledSQL加速報表。
創建目標時序庫
首先需要創建目標時序庫存儲ScheduledSQL的聚合數據。
創建Scheduled SQL任務
在存儲服務請求的數據logstore查詢界面,輸入查詢語句,點擊查詢/分析按鈕,在成功執行查詢分析之后,點擊創建Scheduled SQL按鈕。
*| select (__time__ - __time__ % 60) as time , sum(IF(status = 200, 1, 0)) * 1.0 / count(*) AS success_ratio from log group by time order by time計算配置
調度配置
因為我們需要查看分鐘級別的服務請求成功率,所以調度間隔還有SQL時間窗口均需要以分鐘為粒度。用戶也可以根據自己的需求進行調整。
查看任務詳情
在作業菜單中點擊Scheduled SQL,即可查看Scheduled SQL任務列表。點擊剛剛創建的任務名稱即可查看任務執行詳情。在任務執行成功之后,我們就可以創建歷史報表了。
配置歷史報表
在目標時序庫查詢界面,執行查詢語句,點擊添加到儀表盤,即可創建歷史報表。
* | select promql_query_range('success_ratio') from metrics limit 1000配置實時報表
在存儲服務請求的數據logstore查詢界面,輸入查詢語句,并選擇時間范圍為1分鐘,點擊添加到儀表盤創建實時報表:
*| select __time__ as time , sum(IF(status = 200, 1, 0)) * 1.0 / count(*) AS success_ratio from log group by time order by time總結
Scheduled SQL為用戶周期性的進行分析數據、存儲聚合數據、投影與過濾數據提供了較大的便利。用戶還可以使用Scheduled SQL定時執行聚合任務,減少即時查詢所需要的數據量,從而加速大盤展示。
原文鏈接
 本文為阿里云原創內容,未經允許不得轉載。?
總結
以上是生活随笔為你收集整理的日志服务Dashboard加速的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 移动端性能优化系列—启动速度
- 下一篇: 阿里云数字巡展:“云上峰会”背后的秘密武
