文档中心>日志服务>实践教程>定时 SQL 分析>从日志中提取指标(Metric)

从日志中提取指标(Metric)

最近更新时间:2025-07-08 10:25:42

我的收藏

背景

用户使用 CLS 仪表盘时,偶尔会遇到检索超时,导致图表绘制失败的问题,这个时候,可以考虑将日志转为指标(Metric)数据,然后使用 PromQL 对指标进行计算分析,其分析性能比日志高,可以有效的解决仪表盘超时的问题。

概述

使用定时 SQL,可以从日志中提取指标,并将指标保存在指标主题中。相比日志,指标查询快,存储空间小,可对接 Prometheus 生态。指标的更多信息参见 指标存储概述
下述内容以示例的形式来说明如何使用定时 SQL 转 Metric。其业务场景是:从 Nginx 日志中提取3个指标(PV失败请求数P99_请求时间)。指标维度是 URL,按照 PV 的大小取 TOP10。
我们将使用定时 SQL,完成日志转指标。

操作步骤

1. 登录 CLS 控制台,选择重庆地域,打开 Nginx Demo 日志主题(免费的体验主题)检索分析页面,Demo 日志主题请参见 使用 Demo 日志快速体验 CLS
单条的原始日志如下:
{
"remote_addr":"124.78.124.112"
"method":"GET"
"upstream_addr":"169.254.128.14:60002"
"upstream_response_length":"48"
"body_bytes_sent":"59"
"time_local":"2021-12-03T17:16:58+00:00"
"version":"HTTP/1.1"
"url":"/"
"http_user_agent":"-"
"remote_user":"-"
"req_id":"e3d1ae06b30344539bc7e28314d542fa"
"upstream_status":"400"
"request_time":"0.002"
"sys_address":"11.149.155.219"
"request_length":"40"
"http_referer":"-"
"sys_datasource":"gz.1.1.v1.2.19"
"proxy_upstream_name":"default-kubernetes-443"
"upstream_response_time":"0.000"
"time":"1702542388004"
"timestamp":"2023-12-14T16:26:28+08:00"
"status":"400"
}
2. 打开 demo 日志主题的检索分析,输入查询语句如下:
select count(*)as pv, count_if(status>=400)as bad_request_count, approx_percentile(request_time,0.99) as P99_request_time,url group by url order by pv desc limit 10
结果如下图,确认了查询语句的准确性

3. 统计图表 TAB 页面的右上方,单击存为定时 SQL 分析。完成基本配置项。
配置项
说明
任务名称
Log2Metric
写入目标
选择指标主题,提前新建好,示例中的名称为 NginxMetric。
执行语句
* | select count(*)as pv, count_if(status>=400)as bad_request_count, approx_percentile(request_time,0.99) as P99_request_time,url group by url order by pv desc limit 10
预览结果
单击预览。
指标名称
系统默认填充您 SQL 语句中的统计指标(数值类型): pv,bad_request_count,P99_request_time
指标维度
单击下拉菜单,选中 url,一般都是 group by 后面的字段,例子中是按照 URL 去分组统计的意思。
自定义维度
{"Author","Coder"}。添加您自己的维度,实际生产中可能是您所在的开发组、应用、或者集群、命名空间之类的。
时间戳
默认(查询时间窗口左侧),例如查询的是00:00:00-00:00:01的数据,那么生成的指标的时间戳为窗口的左侧时间:00:00:00。
4. 单击下一步,进入调度配置
配置项
说明
调度范围
定时 SQL 处理的数据范围。
调度周期
1分钟,意为每1分钟发起一次查询,并将结果保存到指标主题。
查询时间窗口
选择时间表达式,@m-1m,@m,意为查询的时间范围近1分钟。
5. 单击确定,保存任务。
6. 在检索分析页面右上角点击更多,单击定时 SQL 分析,选择名称为 log2Metric 的任务,进入任务详情页面。
7. 在当前定时 SQL 分析任务详情中找到目标主题 NginxMetric,单击目标主题,跳转至指标主题查询页面,单击浏览指标,从指标列表中选择一个指标进行查看。
8. 使用 指标检索 对指标数据进行计算分析,并将分析结果添加至仪表盘