前提条件
已开通日志服务,并开启键值索引。
确保当前操作账号拥有配置定时 SQL 分析的权限,详情请参见 CLS 访问策略模板。
操作步骤
从日志中提取指标(Metric),并保存至指标主题(支持PromQL),存储费用更低,查询性能更高。
配置项 | 说明 |
任务名称 | 定时SQL的任务名称,长度255字符,下划线,英文字母和数字组合。 |
启用状态 | 开启/关闭任务 |
源日志主题 | 定时 SQL 任务的输入,即需要转换为指标的原始日志所在的日志主题。 |
写入目标 | |
调度范围 | 需要定时 SQL 任务处理的日志数据的范围,例如2023年1月1日 00:00:00-2023年3月31日00:00:00的日志,如果结束时间选择【无限】意为任务将持续运行。 推荐使用【无限】,持续将新采集的日志转换为指标。 |
调度周期 | 取值范围1-1440分钟,如您配置为X,则意为每隔 X 分钟会发起一次日志查询,日志查询的结果将保存为指标。 推荐配置【1分钟】,更加及时的将日志转化为指标。 |
SQL 时间窗口 | 指定查询语句的时间窗口。 推荐配置【@m-1m ~ @m】,即最近1分钟,每次查询一分钟的日志数据,并将其转化为指标。 注意: 转指标时,该参数切勿超过30分钟,否则可能导致转指标失败。 |
SQL 语句 | * | select avg(cpu_usage)as cpu_usage ,avg(mem_usage) as mem_usage,namespace,cluster group by namespace,cluster 说明: 如果您修改了 SQL 语句,请点击预览,刷新 SQL 查询结果。 |
指标名称 | 多选,一般为数值类型。 从下拉列表中选择字段作为指标名称,例如上面的例子中,cpu_usage,mem_usage为指标名称,其值为指标值。 |
指标维度 | 多选,不可选择时间类型的字段作为指标维度。 从下拉列表中选择字段作为指标维度,例如上面的例子中,namespace,cluster为维度,其值为维度值。可理解为按照不同的cluster和namespace组合来查看cpu_usage,mem_usage. 指标维度一般就是您的SQL语句中group by的维度字段(时间类型字段除外) |
自定义维度 | 新增指标的维度,维度值是静态的。例如: 您原来的指标维度为 go_gc_duration_seconds{job="prometheus",quantile="0"} 添加自定义维度 tcloud_region_name="ap-guangzhou" 之后,维度变为:go_gc_duration_seconds{job="prometheus", quantile="0",tcloud_region_name="ap-guangzhou" } |
时间戳 | 默认值:指标的默认时间戳为 SQL 时间窗口的左侧时间,例如 SQL 时间窗口为5月7日00:00:00 - 5月7日00:10:00,那么该次计算生成的指标时间戳为5月7日00:00:00。 自定义时间戳:如果您在 SQL 语句中自定义了时间类型的字段,可以在下拉列表中,选择该字段为指标的指标戳。如果没有看到该时间类型字段,请点击 SQL 语句下方的预览,刷新下拉列表中的字段值。例如,您使用 检索分析语句 * | select count(*) as cnt,histogram(__TIMESTAMP__,INTERVAL 15 SECOND) as time group by time limit 100 每15秒计算一次日志条数,可以选择 time 字段为您的自定义时间戳。这样您在指标主题中,将每隔15秒生成一条指标数据。注意:自定义时间戳的间隔最小为15秒。 说明: 自定义时间戳支持选择 UNIX 时间、TimeStamp 的类型,精度为毫秒。例如:1629876543.123,2021-08-25T12:22:23.123+08:00。 自定义时间戳的最小间隔为15秒。例如15:00:00,15:00:15,15:00:30。 |
高级设置 | 查询延迟的时间,在控制台高级设置中,取值范围60-120秒。日志生成索引一般会有延迟,在索引生成之前,不可查询,因此设置60秒延迟查询,此时索引已生成(99.9%的索引数据将在5秒内生成)。 |
日志离线计算,将计算结果保存至新的日志主题。
配置项 | 说明 |
任务名称 | 定时 SQL 任务的名称,长度255字符,下划线,英文字母和数字组合。 |
启用状态 | 开启/关闭任务 |
源日志主题 | 定时 SQL 任务的输入,需要被处理的原始日志。 |
写入目标 | 定时 SQL 任务的输出,1个,选择【日志主题】建议提前配置目标主题的索引。 注意: 如果您仅保存查询结果,不需要做分析和计算,可以将目标主题配置为低频存储+全文索引,有效节约费用。 |
调度范围 | 需要定时SQL任务处理的日志数据的范围,例如2023年1月1日 00:00:00-2023年3月31日00:00:00的日志,如果结束时间选择【无限】意为任务将持续运行。 |
调度周期 | 取值范围1-1440分钟,如您配置为X,则意为每隔 X 分钟会发起一次日志查询,并将结果写入目标日志主题。 |
SQL 时间窗口 | 单次查询的时间窗口。用户自定义,最短1分钟,最长7天。 |
SQL 语句 | 调度周期配置为1分钟,SQL窗口配置为1小时,SQL语句为 *| select sum(active_user) as hourly_active_user , 意为每分钟统计一次近一小时的活跃客户数 |
高级设置 | 查询延迟的时间,在控制台【高级设置】中,取值范围60-120秒。日志生成索引一般会有延迟,在索引生成之前,不可查询,因此设置60秒延迟查询,此时索引已生成(99.9%的索引数据将在5秒内生成)。 |
调度周期、SQL时间窗口说明
调度范围: 2023年5月7日00:00:00 - 无限
调度周期:5分钟
SQL 时间窗口:@m-10,@m
查询延迟:60秒
如下图所示:
1. 调度器在2023年5月7日00:00:00开始执行第一次调度,因为默认延迟60秒去查询,00:00:01下发了一个 SQL 查询,查询的日志范围是5月6日23:50:00 - 5月7日00:00:00;
2. 调度器在00:05:00开始执行第二次调度,00:06:00下发了一个 SQL 查询,查询的日志范围是5月6日23:55:00 - 5月7日00:05:00;
3. 调度器在00:10:00开始执行第三次调度,00:11:00下发了一个 SQL 查询,查询的日志范围是5月7日00:00:00 - 5月7日00:10:00。