全部產品
Search
文件中心

Simple Log Service:使用CloudLens for SLS分析資源用量

更新時間:Nov 21, 2024

本文介紹在CloudLens for SLS中自訂分析Simple Log Service資源用量的常用情境。

背景資訊

CloudLens for SLS推出賬單資料(免費),用於監控計費用量。賬單資料來源於費用中心,Simple Log Service使用賬單拉取加工任務將資料拉取到Table Store中進行儲存(賬單資料所使用的Table Store執行個體免費),並通過Simple Log Service外部資料關聯能力,提供賬單資料的查詢分析能力。

基於賬單資料,CloudLens for SLS提供了資源用量監控報表,協助您分析Simple Log Service計費項目用量,即時監控用量情況。另外,您還可以使用賬單資料,實現Simple Log Service資源使用者的自訂SQL分析、警示等功能。image.png

功能入口

  1. 登入Log Service控制台
  2. 日誌應用地區的雲產品Lens頁簽中,單擊CloudLens for SLS

    更多資訊,請參見CloudLens for SLS

賬單資料介紹

Log Service賬單資料包含每一個Simple Log Service執行個體在不同計費項目產生的使用量。在自訂分析前,您需要瞭解Simple Log Service賬單資料中的執行個體、計費項目等基本概念。

基本概念

欄位

說明

執行個體

InstanceID

Simple Log Service的最小粒度資源,對應Simple Log ServiceLogstore。

計費項目

BillingItem

Simple Log Service的收費項,例如儲存空間-日誌熱儲存、索引流量-日誌索引等。

執行個體

Simple Log Service執行個體是Simple Log Service的最小粒度資源(Logstore),組成結構為${aliUid};${Project};${Logstore};${Region},詳細說明如下表所示。

變數

說明

${aliUid}

阿里雲帳號ID。

${Project}

Simple Log Service的資源嵌入式管理單元,是進行多使用者隔離與存取控制的主要邊界。更多資訊,請參見專案(Project)

${Logstore}

Simple Log Service中日誌資料的採集、儲存和查詢單元。更多資訊,請參見日誌庫(Logstore)

${Region}

Simple Log Service資料中心所在的物理位置。您可以在建立Project時指定地區,一旦指定之後就不允許更改。更多資訊,請參見開服地區

計費項目

Simple Log Service計費項目是Simple Log Service提供能力的收費項。在Simple Log Service中所有計費項目都是單獨計費的,例如您儲存日誌會產生日誌儲存費用,您採集日誌會產生寫流量費用等。計費項目說明,請參見按使用功能計費模式計費項目

在賬單資料中,BillingItem欄位代表計費項目。Simple Log Service的計費項目組成,請參見計費組成

SLS用量分析典型情境

在賬單資料的基礎上,您可以自訂分析賬單,以實現即時監控資源用量的能力。

用量趨勢與執行個體用量明細監控

您可以監控用量趨勢與執行個體用量明細,從而處理賬單資料異常突變情況。

  • 用量趨勢監控

    您可以使用date_trunc函數實現不同時間粒紋的用量趨勢統計分析。

    • 查詢與分析語句

      其中BillingItem為計費項目,Usage為用量。

      * |
      select
       date_trunc('day', __time__) as "日期",
       BillingItem,
       round(sum(Usage), 3) as "用量"
      FROM instance_bill
      where
       productcode = 'sls'
      group by
       "日期",
       BillingItem
      order by
       "日期"
    • 查詢與分析結果:您可以使用流圖(Pro版本)直觀地展示查詢與分析結果。其中,設定x軸欄位日期y軸欄位用量彙總列BillingItemimage.png

  • 執行個體用量明細監控

    對用量明細進行統計分析時,往往需要精細到某個執行個體的費用以及用量,以SLS執行個體為例,您可以組合費用、用量和儲存量的分析語句。其中:

    • t1為計費項目用量統計,統計每個執行個體的各計費項目的用量資訊。

    • t2為執行個體費用統計,統計每個執行個體的應付費用、同比上月的佔比,其中PretaxAmount為應付費用。

    • t3為儲存量總量統計,儲存量以天為單位,儲存量的用量資訊只統計截止到您所選時間範圍最後一日的總量。

      • 查詢與分析語句

        * | with t1 as (
        	select
        	InstanceID,
        	BillingItem,
        	sum(Usage) as Usage
        	FROM instance_bill
        	where
        	ProductCode = 'sls'
        	and BillingItem not like '%儲存空間%'
        	and BillingItem not like '%Storage%'
        	group by
        	InstanceID,
        	BillingItem
        ),
        t2 as (
        	select
        	InstanceID,
        	round(di [1], 3) as "費用",
        	concat(
        		cast(round(di [3] * 100 -100, 3) as varchar),
        		'%'
        	) "同比上月"
        	from(
        		select
        		InstanceID,
        		compare(cost, 2592000) as di
        		FROM (
        			select
        			InstanceID,
        			round(sum(PretaxAmount), 2) as cost
        			FROM instance_bill
        			where
        			ProductCode = 'sls'
        			group by
        			InstanceID
        		)
        		group by
        		InstanceID
        	)
        ),
        t3 as (
        	select
        	InstanceID,
        	max_by("儲存空間", t) as "儲存空間"
        	FROM (
        		select
        		t,
        		InstanceID,
        		round(sum("儲存空間"), 2) as "儲存空間"
        		from(
        			select
        			date_trunc('day', __time__) as t,
        			InstanceID,
        			case
        			when BillingItem like '%儲存空間%'
        			or BillingItem like '%Storage%' then Usage
        			else 0
        			end as "儲存空間"
        			FROM instance_bill
        			WHERE
        			ProductCode = 'sls'
        			group by
        			t,
        			InstanceID,
        			"儲存空間"
        		)
        		group by
        		t,
        		InstanceID
        		order by
        		t asc
        	)
        	group by
        	InstanceID
        )
        select
         t1.InstanceID as InstanceID,
         t1.BillingItem as BillingItem,
         t1.Usage as Usage,
         t2."費用" as "費用(元)",
         t2."同比上月" as "同比上月(%)",
         t3."儲存空間" as "儲存空間"
        FROM t1
         left join t2 on t1.InstanceID = t2.InstanceID
         left join t3 on t1.InstanceID = t3.InstanceID
        order by
         "費用 (元)" desc
        limit
         150000
      • 查詢與分析結果

        您可以使用交叉表直觀地展示每個執行個體的各個計費項目明細。其中,設定分類列BillIngItem指標列Usage彙總列InstanceID費用(元)同比上月(%)儲存空間。配置完成後,您可以監控到每個執行個體的費用及用量資料。同時通過對某個計費項目進行排序,可以直觀地統計某個計費項目用量對應的Top執行個體。image.png

實現用量趨勢與執行個體用量明細監控後,您可以清晰地觀測到資源用量情況。接下來,可以繼續對讀寫流量、儲存空間、索引用量等典型用量的變動情境進行進一步分析。

讀寫流量增長情境

您可以使用如下查詢與分析語句分析各執行個體的讀寫流量資料,然後通過統計圖表展示查詢與分析結果。

  • 查詢與分析語句

    * |
    select
     "日期",
     InstanceID,
    "用量"
    from(
    	select
    	date_trunc('day', __time__) as "日期",
    	InstanceID,
    	round(sum(Usage), 3) as "用量"
    	FROM instance_bill
    	where
    	productcode = 'sls'
    	and BillingItem = '讀寫流量' 
    	group by
    	"日期",
    	InstanceID
    )
    group by
     "日期",
     "用量",
     InstanceID
    order by
     "日期"
    limit
     10000

儲存空間用量增長情境

  • 查詢與分析語句

    * |
    select
     InstanceID,
     round(diffreal [1], 3) as "Usage",
     concat(
    		cast(
    			round(diffreal [1] / sum(diffreal [1]) over() * 100, 2) as varchar
    		),
    		'%'
    	) as "用量佔比",
     concat(
    		cast(
    			coalesce(round(diffreal [5] * 100 -100), 2) as varchar
    		),
    		'%'
    	) as "同比-1天",
     concat(
    		cast(
    			round(coalesce(diffreal [6] * 100 -100, 2)) as varchar
    		),
    		'%'
    	) as "同比-2天",
     concat(
    		cast(
    			round(coalesce(diffreal [7] * 100 -100), 2) as varchar
    		),
    		'%'
    	) as "同比-3天"
    from(
    	select
    	InstanceID,
    	compare(Usage, 86400, 172800, 259200) as diffreal
    	from(
    		select
    		InstanceID,
    		sum(Usage) as Usage
    		FROM instance_bill
    		where ProductCode='sls' and BillingItem = '儲存空間'
    		group by
    		InstanceID
    	)
    	group by
    	InstanceID
    )
    order by
     diffreal [1] desc
    limit
     1000

您可以執行如下查詢與分析語句,針對instance5進一步分析儲存量上升原因。

  • 查詢與分析語句

    其中,需將${instance5}替換為具體的執行個體。

    * |
    select
     date_trunc('day', __time__) as "日期",
     BillingItem,
     round(sum(Usage), 3) as "Usage"
    FROM instance_bill
    where
     productcode = 'sls'
    and InstanceID = ${instance5}
    group by
     "日期",
     BillingItem
    order by
     "日期"

實際使用量沒變,但用量統計為0情境

  1. 根據賬單資料排查計費方式是否為資源套件抵扣。

    • 查詢與分析語句

      分別查詢用量資料、資源套件抵扣資料量。

      (*) |
      select
      	InstanceID,
       BillingItem,
       	Usage as "用量",
      	DeductedByResourcePackage as "資源套件抵扣量"
      FROM instance_bill
      where
       productcode = 'sls'
  2. 判斷資源套件抵扣量是否為計費項目總用量。

    • 查詢與分析語句

      查詢資源套件抵扣前的原始資源用量。其中,資源套件抵扣用量為DeductedByResourcePackage,抵扣前總用量為Usage+DeductedByResourcePackage。

      * |
      select
       date_trunc('day', __time__) as "日期",
       BillingItem,
       round(sum(Usage + DeductedByResourcePackage), 3) as "抵扣前總用量"
      FROM instance_bill
      where
       productcode = 'sls'
      group by
       "日期",
       BillingItem
      order by
       "日期"

配置用量警示

Simple Log Service警示是一站式的警示監控、降噪、交易管理、通知指派的智能營運平台。您可以通過使用SLS的警示功能,實現即時監控Simple Log Service用量的能力。在CloudLens for SLS中整合了異常檢測,可以快速進入警示中心。具體操作,請參見設定警示

昨日整體用量警示

通常情況下,為了控制整體成本,您需要關注整體用量。例如使用如下查詢與分析語句查詢儲存空間用量。

  • 查詢與分析語句

     * | 
    select
    	round(sum(Usage), 2) as "儲存空間用量"
    from instance_bill
    where ProductCode='sls' 
    and BillingItem='儲存空間'

單一執行個體用量警示

為了最佳化成本,您還需要關注具體執行個體的用量警示。例如使用如下查詢與分析語句查詢儲存空間用量,當單個執行個體的儲存空間用量超過10則警示。

  • 查詢與分析語句

    * |
    select
     InstanceID,
     "儲存空間用量"
    from(
     select
     InstanceID,
     round(sum(Usage), 2) as "儲存空間用量"
     FROM instance_bill
     where
     ProductCode = 'sls'
     and BillingItem = '儲存空間'
     group by
     InstanceID
     )
    where
     "儲存空間用量" > 10

除了上述兩種警示情境外,您也可以根據實際業務需求自訂警示。具體操作,請參見快速設定日誌警示