You need to enable JavaScript to run this app.
导航

检索分析

最近更新时间2023.11.13 16:31:39

首次发布时间2023.08.09 15:06:45

为什么日志时间和其生成时间不一致?

通过 LogCollector 采集日志时,日志服务默认使用 LogCollector 采集日志的时间作为日志的时间戳。如果应用程序打印日志速度非常快,或 LogCollector 分配到的系统资源较少时,LogCollector 因进程繁忙可能会延迟采集日志,导致日志时间戳明显晚于日志生成的时间。
例如应用程序在 8:00 打印日志,但是 LogCollector 在 8:10 才采集到该日志。默认情况下,该日志时间戳为 8:10,而非 8:00。当用户检索日志时,如果选择的时间范围是 7:55~8:05,那么将无法查询出来任何日志。
为了避免这种问题,您可以在日志格式中添加一个时间字段,并将其定义为日志产生的时间。在创建采集配置时展开高级配置,并关闭使用采集时间。此时您需要填写时间键名称时间转换格式,设置方式请参考 JSON 模式

说明

  • 仅 JSON 等部分采集模式可以自定义日志时间。
  • 其中,时间转换格式中应配置原始日志中时间字段的格式,LogCollector 采集日志数据时会根据指定的格式解析时间字段,并将其统一为 Unix 时间戳。时间字段的格式请参考时间格式

为什么定时 SQL 任务的调度实例一直不执行?

日志服务在执行调度实例之前,会先检查实例是否满足执行条件,如果前一个实例因为检索时间范围内的数据尚未完成写入等原因而暂未运行,后一个实例已符合执行条件,则后一个实例会优先运行。

说明

实例符合执行条件后,日志服务会在后端调度资源、准备执行实例,该操作可能耗时 1 分钟以上,请耐心等待。

通常情况下,实例执行同时需要满足以下条件:

  • 已达到调度时间。如果任务未设置延时时间,后端服务会根据调度时间执行实例;如果设置了延时时间,则在达到调度时间后推迟一段时间后再执行实例。
  • 实例的 SQL 时间窗口对应的日志数据已完成写入。如果日志主题中已存在晚于检索时间范围内的日志数据,则判断检索时间范围内的数据已全部完成写入。例如检索时间范围为 [10:00~11:00),如果写入了一条 11:01 的日志数据,则判断检索时间范围内的数据已全部完成写入,可以开始运行实例。
  • 未达到最大并发数。一个日志项目中最多只有 10 个调度实例同时运行,一个任务中最多只有 1 个调度实例为运行中状态。