You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Ops Agent配置中让Log Explorer显示Java日志原格式时间戳

解决方案

1. 修正时间格式解析规则

你的日志时间戳是2024-07-31 12:50:34,066,其中逗号后是3位毫秒数,当前配置用的%f是匹配6位微秒数,会导致时间解析失败,Ops Agent无法识别原时间戳,只能用 ingestion 时间作为timestamp。需要把time_format改为"%Y-%m-%d %H:%M:%S,%L"(%L专门匹配3位毫秒)。

2. 保留原时间戳字段到jsonPayload

默认情况下,parse_regex解析出time_key后会将其用于设置日志的timestamp字段,但不会保留原字段到jsonPayload。需要添加keep_time_key: true参数,让原时间戳以你定义的time字段名保留在jsonPayload中。

3. 完整修正后的processors配置

processors:
  parse_java_multiline:
    type: parse_multiline
    match_any:
    - type: language_exceptions
      language: java
  extract_structure:
    type: parse_regex
    field: message
    regex: "^(?<time>\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2},\\d{3}) (?<severity>\\S+) (?<message>(.|\\n)*)$"
    time_key: time
    time_format: "%Y-%m-%d %H:%M:%S,%L"
    keep_time_key: true
  move_severity:
    type: modify_fields
    fields:
      severity:
        move_from: jsonPayload.severity

4. 配置验证

修改后重启Ops Agent,在Log Explorer中查看日志:

  • timestamp字段会显示日志原时间戳(转换为ISO 8601格式,比如2024-07-31T12:50:34.066Z)
  • jsonPayload.time会保留原格式的时间戳:2024-07-31 12:50:34,066
  • jsonPayload.severity和jsonPayload.message会正确解析,且severity字段会被移动到日志根层级

注意:Google Cloud Logging的timestamp字段强制使用ISO 8601格式存储,无法改为原日志的非标准格式,但你可以通过jsonPayload.time字段查看原格式的时间戳。

内容的提问来源于stack exchange,提问作者topace

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 09:37:44