You need to enable JavaScript to run this app.
导航
创建定时 SQL 分析数据存储至托管 Prometheus
最近更新时间:2025.08.18 19:06:16首次发布时间:2025.08.18 19:06:16
复制全文
我的收藏
有用
有用
无用
无用

日志服务支持通过控制台创建定时 SQL 分析任务,定时对源端日志主题进行检索分析,并将处理后的日志数据保存到目标日志主题,或转为时序数据格式Gauge 类型指标保存至火山引擎托管 Prometheus(VMP)工作区中。
托管 Prometheus 是托管在火山引擎云端的标准化 Prometheus 服务,您可以在火山引擎上快速创建标准 Prometheus 实例,为火山引擎 AI 产品、云基础设施、云原生产品及部署在云端的业务,提供高可用、免运维的监控指标存储方案。
本文档介绍创建定时 SQL 分析任务,并将数据转为指标保存至托管 Prometheus 工作区中的操作步骤。

前提条件

  • 已成功采集日志数据到源端日志主题。详细步骤请参考概述
  • 源端日志主题已配置索引。详细步骤请参考配置索引
  • 已创建托管 Prometheus 工作区,且需确保与日志服务处于同一地域。详细步骤请参考创建通用工作区
  • 首次使用定时 SQL 功能之前,需要完成云资源访问授权,即授予定时 SQL 分析任务访问并写入数据到托管 Prometheus 工作区的权限。完成授权并成功启动定时 SQL 分析任务后,定时 SQL 分析任务会使用角色 ServiceRoleForTLS 将计算结果写入托管 Prometheus 工作区,因此,还需要确保用户具备托管 Prometheus 数据写入权限。

    说明

    在日志服务控制台首次创建定时 SQL 分析任务时系统会引导您进行授权操作,推荐使用火山引擎账号进行授权,相关说明请参考跨服务访问授权,托管 Prometheus 权限说明请参考权限概述

操作步骤

  1. 登录日志服务控制台

  2. 在顶部导航栏中,选择日志服务所在的地域。

  3. 在左侧导航栏中,选择数据处理 > 定时SQL分析

  4. 定时SQL分析任务列表页面,单击创建定时SQL分析任务

  5. 填写任务的基本配置,然后单击下一步:SQL分析规则配置。

    配置

    说明

    任务名称

    定时 SQL 分析任务的任务名称。

    描述

    定时 SQL 分析任务任务的简单描述。

    源日志项目

    待进行定时 SQL 分析的原始日志所在的日志项目。

    源日志主题

    待进行定时 SQL 分析的原始日志所在的日志主题。

    目标日志主题

    执行定时 SQL 分析任务后,处理后的日志数据存储的托管 Prometheus 的工作区。

    • 目标类型:选择托管Prometheus工作区
    • 工作区:选择一个托管 Prometheus 的工作区用来存储数据。如果没有合适的工作区,可以根据页面提示创建。

    任务状态

    是否立即启动定时 SQL 分析任务。

    • 勾选(默认):完成任务配置后立即启动定时 SQL 分析任务。
    • 不勾选:完成配置后定时 SQL 分析任务为已暂停状态,需要择机手动启动任务。
  6. 填写 SQL 分析规则配置,然后单击提交

    配置

    说明

    开始时间

    定时 SQL 分析任务的调度开始时间,即第一个实例被调度的开始时间。
    启动后,日志服务会根据指定的规则配置按时创建实例、启动定时 SQL 分析。

    结束时间

    定时 SQL 分析任务的调度结束时间。
    结束后,日志服务不会再创建实例、执行定时 SQL 分析,但任务状态仍为运行中,直至手动暂停任务。

    调度周期

    定时 SQL 分析任务的调度周期,调度周期决定每个实例的调度时间。调度周期支持指定时间间隔或固定触发时间。
    建议调度周期的长度大于等于查询时间窗口的长度,否则可能出现调度不及时,查询结果不正确。例如调度周期为每隔 10 分钟执行一次,则 SQL 时间窗口长度最大为 10 分钟。
    可选择如下任一配置:

    • :每隔 30~600 秒执行一次。
    • 分钟:每隔 1~1440 分钟执行一次。
    • :每天固定时间点执行一次。
    • Cron:通过 Cron 表达式指定任务的调度时间,最小粒度为分钟,最大支持 30 天,24 小时制。
      例如 0 18 * * *,表示每天 18 点整调度一次定时 SQL 分析任务。

    时区选择

    调度周期Cron 时需选择时区。常见的时区列表请参见选择时区

    SQL时间窗口

    定时 SQL 分析任务运行时,日志检索分析的时间范围,左闭右开格式。
    托管 Prometheus 时 SQL 时间窗口最长为近 6 小时,语法请参考SQL 时间窗口语法。支持快速填充如下表达式:

    • 前15分钟:@m-15m, @m
    • 前3小时:@h-3h, @h

    说明

    配置示例:

    • 开始时间:2023-8-14 10:00
    • 调度周期:每隔 60 分钟执行一次
    • SQL时间窗口:[@h-1h,@h)
    • 执行延迟:10 秒

    在 2023-8-14 10:00:00 创建第一个实例,10:00:10 开始执行实例,分析 [09:00:00~10:00:00) 期间的日志数据。
    在 2023-8-14 11:00:00 创建第二个实例,11:00:10 开始执行实例,分析 [10:00:00~11:00:00) 期间的日志数据。

    SQL

    定时 SQL 分析任务定期执行的查询分析语句,应符合日志服务的检索分析语法。详细语法说明请参考检索概述分析概述

    指标名称

    从 SQL 执行结果中选择数值类型的字段,作为投递至托管 Prometheus 时间序列的指标名称,用于反映被监控样本的含义。相关概念可参考托管 Prometheus 时序数据格式

    • 只能由 ASCII 字符、数字、下划线以及冒号组成,并满足正则表达式[a-zA-Z_:][a-zA-Z0-9_:]*
    • 不符合命名规范时,支持使用 AS 语法为字段修改名称。

    指标标签

    从 SQL 执行结果中选择非时间类型的字段,作为投递至托管 Prometheus 时间序列的指标标签,用于反映样本的特征维度,通过这些维度(如 group by 的维度),托管 Prometheus 可以对样本数据进行过滤和汇聚。

    • 只能由 ASCII 字符、数字以及下划线组成,并满足正则表达式[a-zA-Z_][a-zA-Z0-9_]*
    • 不符合命名规范时,支持使用 AS 语法为字段修改名称。

    自定义标签

    自定义设置指标标签的标签键和标签值。

    • 只能由 ASCII 字符、数字以及下划线组成,并满足正则表达式[a-zA-Z_][a-zA-Z0-9_]*
    • 自定义标签与指标标签之和不能超过 30 个。

    时间列

    从 SQL 执行结果中选择时间类型的字段作为时间列,以该时间列作为指标数据的时间。
    如果不选择,则以 SQL 时间范围中的开始时间作为指标数据的时间。

    • 托管 Prometheus 的指标时间最长只支持近6小时,超出时间范围的数据会写入失败。
    • 支持选择 UNIX 时间、TimeStamp 类型时间,精度为毫秒。
      例如:1629876543.123,2021-08-25T12:22:23.123+08:00。
    • 支持使用 DATE_FORMAT 和 TO_UNIXTIME 函数转换时间类型。

    任务超时

    任务超过最大超时时间或最大重试次数时,定时 SQL 会设置状态为失败并结束,您可以接收告警并手动重试。

    • 最长时间范围:60~1800 秒。
    • 最大次数范围:1~20 次。

    执行延迟

    每次调度的延迟时间,支持设置为 0~120 秒。
    当日志数据量大、采集任务繁忙时,数据写入日志主题可能存在一定延迟,在该场景下可以指定执行延迟时间,保证检索分析时的数据完整性。

  7. 查看转储至托管 Prometheus 的数据。

    1. 确认定时 SQL 任务已调度成功。
      在日志服务的数据处理 > 定时SQL分析定时SQL分析 任务列表,单击上述创建的定时 SQL 任务名称,查看任务执行情况,确保至少有一条实例调度成功
    2. 登录托管 Prometheus 控制台。
    3. 在顶部导航栏中,选择定时 SQL 任务中设置的工作区所在的地域。
    4. 在左侧导航栏中,单击 Explore。
    5. 选择定时 SQL 任务中设置的工作区,选择查询时间。
    6. 输入查询语句,或单击指标检索,在指标列表中选择指标名进行搜索。相关语法可参考指标查询
      Image

日志数据转储示例

日志服务原始日志

{
        "ErrorLog": "",
        "__package_offset__": "1610612771",
        "__path__": "",
        "__process_end_time__": "1754240400",
        "__process_id__": "31373534-3234-3034-3030-2d3238373463",
        "__process_start_time__": "1754229600",
        "__process_time__": "1754240400",
        "__schedule_time__": "1754240461720",
        "__source__": "",
        "__task_id__": "fe948057-0410-430e-8280-d7a4e1e8fc1c",
        "__time__": 1754362780000,
        "__tls_svc_model_version__": "1750953766",
        "__tls_svc_signature_id__": "485795292"
}

转储指标配置示例

  • SQL:* | SELECT * limit 10000
  • 指标名称:__schedule_time____process_time__
  • 指标标签:__task_id____time__
  • 时间列:__time__

存储至托管 Prometheus 的指标

生成如下 2 条指标,按选定的时间列__time__顺序,将数据存储至托管 Prometheus 工作区。

__schedule_time__{__task_id__="fe948057-0410-430e-8280-d7a4e1e8fc1c", __time__="1754362780000"}
__process_time__{__task_id__="fe948057-0410-430e-8280-d7a4e1e8fc1c",__time__="1754362780000"}

Image
Image