全站加速DCDN日志分析是结合对象存储OSS和全站加速DCDN为一体的日志数据分析和查询服务。您可以在全站加速DCDN控制台开通离线日志转存服务,将使用全站加速DCDN过程中产生的日志自动转存到您的OSS上进行长期管理,通过DLA Serverless SQL对日志进行分析。本文档主要介绍了如何通过DLA Serverless SQL来进行全站加速DCDN日志的数据分析和查询。

前提条件

进行全站加速DCDN日志分析前,需确保您已经开通了对象存储OSS和全站加速DCDN离线日志转存服务。开通详情如下:

背景信息

您在开通全站加速DCDN离线日志转存服务之后,系统会自动开通离线日志转存区域的DLA服务,并且DLA会自动创建好离线日志转存表。

操作步骤

本文档中假设开通了全站加速DCDN离线日志转存服务的日志转存到了上海。

  1. 登录Data Lake Analytics管理控制台
  2. 在页面左上角,下拉选择区域(此处选择上海)。如下图所示:
    DLA区域
  3. 在左侧导航栏,单击Serverless SQL > SQL执行
    SQL执行
  4. SQL执行页面,执行SQL语句来进行DCDN日志数据的查询和分析。示例如下:
    • urlPath访问错误top10
      //先通过HTTP状态码(httpcode)进行过滤,一般认为大于400的状态码都是有问题的。然后根据请求的URL,不含域名信息(urlPath)聚合,获取各个请求urlPath对应的错误数量,根据数量倒序排列,取前十个。
      SELECT urlPath,count(*) as c from alicdn_offline_log.alicdn_offline_log_dcdn WHERE httpcode > 400 GROUP BY urlPath ORDER BY  c DESC LIMIT 10;
      URLPath访问错误top10
    • 访问来源占比分析
      //首先通过域名信息(domain)过滤条件去掉访问来源为空的日志。通过聚合计算各个访问源的请求次数,后面再计算出单个域名信息(domain)请求次数在所有请求中的占比,并保留两位小数。
      select
        refer_domain as "来源",
        c as "次数",
        round(c * 100.0 /(sum(c) over()), 2) as "百分比%"
      from
        (
          select
            domain as refer_domain,
            count(*) as c
          from
            alicdn_offline_log.alicdn_offline_log_dcdn
          group by
            refer_domain
          order by
            c desc
          limit
            100
        )
        where refer_domain != "";
    • 访问次数Top域名
      //用group by根据Domain分组,用count计算每个域名出现的次数,用order by按次数进行排序,用desc表示从大到小的顺序,limit 100表示取前100个,用饼图进行展示,分类设置为return_code,数值列设置为c。
      select
        Domain,
        count(*) as c
      FROM
        alicdn_offline_log.alicdn_offline_log_dcdn
      group by
        Domain
      order by
        c desc
      limit
        100
      访问次数Top域名
    • 数据类型流量分布
      //用sum函数计算respsize的总和作为sum_res,用group by按content_type分组,用order by按sum_res排序,取最大的前10个,用饼图展示,分类设置为content_type,数值列设置为sum_res。
      select
        contenttype,
        sum(respsize) as sum_res
      FROM alicdn_offline_log.alicdn_offline_log_dcdn
      group by
        contenttype
      order by
        sum_res desc
      limit
        10;
      
                                      
      数据类型流量分布