You need to enable JavaScript to run this app.
文档中心
日志服务

日志服务

复制全文
下载 pdf
定时 SQL 分析
创建定时 SQL 分析数据存储至托管 Prometheus
复制全文
下载 pdf
创建定时 SQL 分析数据存储至托管 Prometheus

日志服务支持通过控制台创建定时 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

最近更新时间:2025.08.18 19:06:16
这个页面对您有帮助吗?
有用
有用
无用
无用