模式
使用 pattern
自动将您的日志数据划分为不同模式。
模式是在日志字段中重复出现的共有的文本结构。您可以使用 pattern
来查看新出现的趋势、监控已知错误以及识别经常出现的或高成本的日志行。CloudWatch Logs Insights 还提供控制台体验,您可以使用它来查找并进一步分析日志事件中的模式。有关更多信息,请参阅 模式分析。
由于 pattern
命令会自动识别常见模式,因此您可以将其用作搜索和分析日志的起点。您还可以将 pattern
与
filter
、
parse
或
sort
命令结合使用,在更精细的查询中识别模式。
模式命令输入
pattern
命令需要以下输入之一:@message
字段、使用
parse
命令创建的提取字段或使用一个或多个字符串函数操作的字符串。
如果 CloudWatch Logs 无法推断动态令牌所代表的数据类型,则将其显示为 <Token-数字
>,数字
表示此令牌与其他动态令牌相比在模式中出现的位置。
动态令牌的常见示例包括错误代码、IP 地址、时间戳以及请求 ID。
模式命令输出
pattern
命令将生成以下输出:
@pattern
:在日志事件字段中重复出现的共有的文本结构。在模式内变化的字段(例如请求 ID 或时间戳)由令牌表示。如果 CloudWatch Logs 可以确定动态令牌所代表的数据类型,它会将该令牌显示为<
。string
-number
>字符串
是令牌所代表的数据类型的描述。数字
显示了与其他动态令牌相比,此令牌在模式中的出现位置。CloudWatch Logs 根据分析包含该名称的日志事件的内容来分配名称的字符串部分。
如果 CloudWatch Logs 无法推断动态令牌所代表的数据类型,则将其显示为 <Token-
数字
>,数字
表示此令牌与其他动态令牌相比在模式中出现的位置。例如,
[INFO] Request time: <Time-1> ms
是日志消息[INFO] Request time: 327 ms
的潜在输出。@ratio
:选定时间段的日志事件与符合已确定模式的指定日志组的比率。例如,如果所选日志组和时间段中有一半的日志事件符合模式,则@ratio
返回0.50
@sampleCount
:选定时间段的日志事件与符合已确定模式的指定日志组的数量。@severityLabel
:日志严重性或级别,表示日志中包含的信息类型。例如,Error
、Warning
、Info
或Debug
。
示例
以下命令识别选定时间范围内指定日志组中具有相似结构的日志,并按模式和计数对其进行分组
pattern @message
pattern
命令可以与
filter
命令结合使用
filter @message like /ERROR/ | pattern @message
pattern
命令可以与
parse
和
sort
命令结合使用
filter @message like /ERROR/ | parse @message 'Failed to do: *' as cause | pattern cause | sort @sampleCount asc