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

如何用jq将Aurora MySQL延迟查询的CloudWatch日志转为HTML表格?

使用jq将Aurora MySQL延迟查询日志转换为HTML表格

完全可以实现这个格式转换需求,下面是直接可用的jq命令,能把你提供的CloudWatch日志结构解析成规范的HTML表格:

jq -r '
  "<!DOCTYPE html><html><head><style>table{border-collapse:collapse;}th,td{border:1px solid #ddd;padding:8px;text-align:left;}th{background-color:#f2f2f2;}</style></head><body><table><tr><th>时间</th><th>用户@主机</th><th>查询ID</th><th>查询耗时</th><th>锁耗时</th><th>返回行数</th><th>扫描行数</th><th>执行的SQL</th></tr>"
  + (.events[] | 
      .message | 
      capture("# Time: (?<time>[^\\n]+)\\n# User@Host: (?<userhost>[^@]+) @  \\[(?<host>[^\\]]+)\\]  Id:   (?<id>\\d+)\\n# Query_time: (?<query_time>[\\d.]+)  Lock_time: (?<lock_time>[\\d.]+) Rows_sent: (?<rows_sent>\\d+)  Rows_examined: (?<rows_examined>\\d+)\\n(?<sql>[\\s\\S]+)") |
      "<tr><td>\(.time)</td><td>\(.userhost)@\(.host)</td><td>\(.id)</td><td>\(.query_time)</td><td>\(.lock_time)</td><td>\(.rows_sent)</td><td>\(.rows_examined)</td><td><pre>\(.sql)</pre></td></tr>"
    )
  + "</table></body></html>"
' input.json > output.html

命令说明

  1. HTML基础结构:开头生成完整的HTML文档框架,附带简单的表格样式,让输出的表格更易读
  2. 遍历日志事件:遍历events数组中的每一条延迟查询日志
  3. 提取关键字段:通过正则捕获从message字段中精准提取所有需要的信息:
    • 执行时间
    • 用户与主机地址
    • 查询ID
    • 查询耗时、锁等待耗时
    • 结果返回行数、数据扫描行数
    • 实际执行的SQL语句
  4. 生成表格行:把提取到的字段拼接成HTML表格的行元素
  5. 输出文件:最终将完整的HTML内容写入output.html文件

使用步骤

  1. 将你提供的CloudWatch日志内容保存为input.json文件
  2. 在终端运行上述命令
  3. 打开生成的output.html,就能看到格式化后的查询日志表格

内容的提问来源于stack exchange,提问作者P.Lonnie

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 19:45:47