CDN 实时日志功能提供 CDN 加速域名的访问日志,包括加速域名、响应时长、请求方法、URL 路径、来源 IP 地址等信息。
每一条加速域名的的访问请求都会记录一条访问日志,详细的日志字段如下:
字段 | 示例 | 说明 |
---|---|---|
time | 23/Oct/2022:17:48:59 +0800 | 表示请求到达内容分发网络节点的时间。 |
client_ip | 116.170.120.238 | 表示发送请求的客户端的 IP 地址。 |
ds_req_time | 1.2 | 表示内容分发网络的响应时长。该时长记录的是从内容分发网络收到用户请求到响应用户之间的时间。单位为秒。 |
ds_http_method | GET | 表示请求所使用的方法。该参数常见的取值有 GET 、POST 、HEAD 、PUT 。 |
ds_http_scheme | HTTPS | 表示请求所使用的协议。该参数有以下取值:HTTPHTTPS |
domain | cdn.example.com | 表示请求的加速域名。 |
ds_http_uri | /volcano.png?version=1 | 表示请求 URL 中的路径。路径以斜杠(/)开头,包含查询参数。假设请求 URL 是 https://example.com/img/volcano.png?version=1 。此时,该参数的值是 /img/volcano.png?version=1 。 |
ds_http_protocol | HTTP/1.1 | 表示请求所使用的协议的信息。该参数有以下取值:HTTP/1.0HTTP/1.1HTTP/2 |
ds_http_status | 200 | 表示内容分发网络的响应状态码。 |
ds_http_resp_size | 573 | 表示内容分发网络响应包的大小。单位是 byte。 |
ds_http_bd_status_hit | HIT | 表示请求是否命中内容分发网络的缓存。该参数的取值如下:HIT:表示请求命中了缓存。MISS:表示请求没有命中缓存。 |
ds_http_range | bytes=200-1000 | 表示请求中的 Range 头的值。如果 Range 头不存在,该参数值为 - 。 |
ds_http_referer | https://example.com/index?version=123 | 表示请求中的 Referer 头的值。如果 Referer 头不存在,该参数值为 - 。 |
ds_http_ua | curl/7.85.0 | 表示请求中的 User-Agent 头的值。如果 User-Agent 头不存在,该参数值为 - 。 |
ds_http_resp_content_type | image/jpeg | 表示请求中的 Content-Type 头的值。如果 Content-Type 头不存在,该参数值为 - 。 |
ds_http_resp_content_length | 500 | 表示请求的文件的大小。单位是 byte。 |
client_ip_country | 中国 | 表示客户端 IP 地址所归属的国家。 |
client_ip_province | 北京 | 表示客户端 IP 地址所归属的省份。 |
client_ip_isp | 电信 | 表示客户端 IP 地址所归属的网络运营商。 |
ds_http_uri_query | version=1&colar=red | 表示请求 URL 中的查询参数。 |
ds_http_uri_path | /img/volcano.png | 表示请求 URL 中的路径。路径以斜杠(/)开头,不包含查询参数。假设请求 URL 是 https://example.com/img/volcano.png?version=1 。此时,该参数的值是 /img/volcano.png 。 |
client_port | 37030 | 表示请求所使用的客户端端口。 |
您可以通过日志服务的检索分析功能进行实时的数据统计,典型场景的 SQL 示例如下。更多检索分析示例。
场景 | SQL 示例 | 查询分析结果 |
---|---|---|
查询指定状态码的日志,例如查看状态码为404的访问请求 | ds_http_status:500 sql | |
监测 CDN 的访问错误,例如对每个域名统计访问错误的数量,然后展示访问错误数量最多的 10 个域名。 | ds_http_status:>=400 sql | select domain,count(*) AS PV group by domain order by PV DESC limit 10 |
监测 CDN 服务指标,例如基于 URI 统计 CDN 响应的总字节数以及平均响应时长,然后根据响应的总字节数对结果进行降序排序。 | * sql | select domain,ds_http_uri,ds_http_resp_content_type,sum(ds_http_resp_size) AS total_size,avg(ds_http_resp_size) AS resource_size,avg(ds_req_time) as avg_resp_time, count(*) as PV group by domain,ds_http_uri,ds_http_resp_content_type order by total_size DESC |
获取热门访问,例如在所有的访客请求中,统计出现次数最多的 10 个 Referer。 | * sql | select ds_http_referer,count(*) as PV group by ds_http_referer order by PV desc limit 10 |