如何使用cli过滤AWS CloudWatch日志



我正在尝试使用cli编写一个查询来过滤CW日志。

在控制台中,我可以使用以下命令过滤日志:

{($.latencies.request >15000) && ($.request.uri = "some/api/call")}

但是如果我在cli上写一个查询

queryId=$(aws logs start-query 
--log-group-name "${loggroup}" 
--start-time `date -jnRu -v-1d +%s` 
--end-time `date +%s` 
--query-string "fields @timestamp, @message 
| parse @message "$.latencies.request>15000, request.uri = 'some/api/call'"
| limit 20" | jq --raw-output '.queryId'
)
echo "querying loggroup ${loggroup} n"
aws logs get-query-results 
--query-id $queryId --output text

,但给出错误MalformedQueryException

如何解决这个问题?

= = = =更新使用filter-log-events会在调用

时抛出错误
aws_cw_filter_logs(){
echo "filtering logs using a query  n"
local loggroup=${1:-"myloggroup"}
local logstream=${2:-"app/app/sdasdsadas"}     
local query=${3:-"{($.latencies.request >15000) && ($.request.uri = "'"/some/api/"'")}"}
aws logs filter-log-events 
--log-group-name $loggroup 
--log-stream-names $logstream 
--max-items 1 
--output text 
--filter-pattern $query
}

这是好的,想知道是否有日期过滤功能,如在控制台(没有跟踪文档)

仍然可以使用--start-time--endtime选项。参见:https://awscli.amazonaws.com/v2/documentation/api/latest/reference/logs/filter-log-events.html

相关内容

  • 没有找到相关文章

最新更新