模式 - Amazon CloudWatch Logs
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

模式

使用 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:日志严重性或级别,表示日志中包含的信息类型。例如,ErrorWarningInfoDebug

示例

以下命令识别选定时间范围内指定日志组中具有相似结构的日志,并按模式和计数对其进行分组

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