AWS CloudWatch Logs Insights如何仅保留指定的PostgreSQL慢查询字段?
解决PostgreSQL慢查询日志解析结果保留指定字段的问题
当然可以只保留你需要的QueryTimePT、User、Query、DurationMinutes这几列,有两种简单的修改方式:
方式一:合并字段计算与保留逻辑
直接在生成DurationMinutes的fields语句里,同时列出所有要保留的字段,一次性过滤掉其他临时字段:
fields @timestamp as QueryTimePT | filter @message like "LOG: duration" | parse @message "* UTC:*(*):*[*]:LOG: duration: * ms *" as QueryTimeUTC, IP, RemotePort, User, PID, DurationMS, Query | fields QueryTimePT, User, Query, abs(DurationMS)/60000 as DurationMinutes | sort QueryTimePT desc
方式二:单独添加字段保留语句
如果不想改动原来的字段计算步骤,在最后再加一条fields语句明确指定要保留的列即可:
fields @timestamp as QueryTimePT | filter @message like "LOG: duration" | parse @message "* UTC:*(*):*[*]:LOG: duration: * ms *" as QueryTimeUTC, IP, RemotePort, User, PID, DurationMS, Query | fields abs(DurationMS) / 60000 as DurationMinutes | fields QueryTimePT, User, Query, DurationMinutes | sort QueryTimePT desc
两种方式的核心都是利用fields语句的特性:当直接列出字段名时,查询结果会只保留这些指定字段,自动丢弃解析过程中生成的其他临时字段(比如QueryTimeUTC、IP等)。
内容的提问来源于stack exchange,提问作者Wells
相关产品推荐
相关产品推荐

