本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
模式
使用 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