本文介绍在日志服务控制台上如何使用SQL语句自定义分析账单。

账单数据详情

账单数据包括以下两类数据:
  • 左侧为账单数据,标识为source:bill,每个云产品在每个账单周期中产生一条记录。
  • 右侧为实例账单数据,每个实例对应一条数据,包含实例的使用量、属性(TAG、NickName、名称等)、费用。标识为source:instance_bill
成本管家-账单-001

案例

成本管家中内置的报表仅是分析模板,提供分析案例。实际使用中,您可能有多种多样的需求,同一个模板无法满足。您可以通过SQL语句自定义分析账单,这里以ECS账单为例进行说明。

  • 搜索关心的账单

    在所有的账单中,您可能只关心某些账单,例如:只想要获取ECS实例账单,那么只需要在名为aliyun_bill的Logstore中使用SQL语句source:instance_bill and ProductCode:ECS即可获取结果,如下图所示。更多搜索语法请参见查询语法

    成本管家-账单-002
  • 简单聚合,获取总的账单费用

    使用以下SQL语句获取ECS实例的总费用。在计算结果中单击添加到仪表盘,即可创建一个专属的仪表盘。

    source:instance_bill and ProductCode:ECS | select sum(PretaxAmount)
  • 分组聚合。

    使用以下SQL语句,获取每个ECS实例的账单总额。

    source:instance_bill and ProductCode:ECS | select InstanceID, sum(PretaxAmount)  as Amount group by InstanceId order by Amount desc
    本案例通过实例维度进行分析,如果您想要通过其他维度(例如Region、昵称等)分析,只需更换SQL语句中group by后面的维度。成本管家-账单-004
  • 同比环比分析
    • 计算本月费用,同比上月的增长率。
      source:bill  | select diff[1] as "本月费用", diff[2]  as "上月费用", diff[3]*100-100 as  "同比增加%"  from(select compare(amount,604800) as diff from( select sum(PretaxAmount) as amount  from log ))
    • 按照产品,与上月进行同比分析。
      source:bill  | select ProductCode, diff[1] as "本月费用", diff[2]  as "上月费用", diff[3]*100-100 as  "同比增加%"  from(select productcode, compare(amount,604800) as diff from( select ProductCode, sum(PretaxAmount) as amount  from log group by ProductCode ) group by productcode )
  • 利用Tag做分账管理
    目前多种产品已支持Tag,您可以通过Tag完成分账。Tag中包含多个key-value,通过解析不同的key-value,计算每一对key-value的费用额度。
    source: instance_bill and ecs | select k,v , round(sum(PretaxAmount),3) "金额" from( select split_to_map(Tag,';',' ') as tags ,PretaxAmount from log  where tag <>'' ),unnest(tags) as t(k,v) group by k,v order by "金额" desc limit  1000
    成本管家-账单-005