本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
模式
使用 pattern
自动将您的日志数据划分为不同模式。
模式是在日志字段中重复出现的共有的文本结构。您可以使用pattern
来显示新出现的趋势、监控已知错误以及识别频繁发生或成本高昂的日志行。 CloudWatch Logs Insights 还提供了一种控制台体验,您可以使用它来查找和进一步分析日志事件中的模式。有关更多信息,请参阅 模式分析。
由于 pattern
命令会自动识别常见模式,因此您可以将其用作搜索和分析日志的起点。您还可以将 pattern
与
filter
、
parse
或
sort
命令结合使用,在更精细的查询中识别模式。
模式命令输入
pattern
命令需要以下输入之一:@message
字段、使用
parse
命令创建的提取字段或使用一个或多个字符串函数操作的字符串。
如 CloudWatch 果 Logs 无法推断出动态令牌所代表的数据类型,则将其显示为 <Token-number
>,并number
指明与其他动态令牌相比,该标记在模式中的显示位置。
动态令牌的常见示例包括错误代码、IP 地址、时间戳和请求IDs。
模式命令输出
pattern
命令将生成以下输出:
@pattern
:在日志事件字段中重复出现的共有的文本结构。在模式内变化的字段(例如请求 ID 或时间戳)由令牌表示。如果 CloudWatch Logs 可以确定动态令牌所代表的数据类型,则它会将该令牌显示为<
。string
-number
>string
是对令牌所代表的数据类型的描述。number
显示了与其他动态代币相比,该代币在模式中的显示位置。CloudWatch Logs 根据对包含该名称的日志事件内容的分析来分配名称的字符串部分。
如 CloudWatch 果 Logs 无法推断出动态令牌所代表的数据类型,则将其显示为 <Token-
number
>,并number
指明与其他动态令牌相比,该标记在模式中的显示位置。例如,
[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