View a markdown version of this page

CloudWatch 日志 Insights 语言查询语法 - 亚马逊 CloudWatch 日志

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

CloudWatch 日志 Insights 语言查询语法

本节详细介绍 Logs Insights QL。查询语法支持不同的函数和运算,包括但不限于常规函数、算术和比较运算以及正则表达式。

重要

为了避免因运行大型查询而产生过高的费用,请牢记以下最佳实践:

  • 仅为每个查询选择必要的日志组。

  • 始终为查询指定尽可能窄的时间范围。

  • 当您使用控制台运行查询时,请在关闭 L CloudWatch ogs Insights 控制台页面之前取消所有查询。否则,查询将继续运行直至完成。

  • 向仪表板添加 L CloudWatch ogs Insights 控件时,请确保仪表板的刷新频率不高,因为每次刷新都会启动新的查询。

要创建包含多个命令的查询,请使用竖线字符(|)分隔命令。

要创建包含注释的查询,请使用哈希字符(#)对注释进行分隔。

注意

CloudWatch Logs Insights 会自动发现不同日志类型的字段,并生成以 @ 字符开头的字段。有关这些字段的更多信息,请参阅《亚马逊 CloudWatch用户指南》中的支持的日志和已发现的字段。

下表简要介绍了每个命令。下表对每条命令进行了更全面的描述,并附有示例。

注意

标准日志类中的日志组支持所有 Logs Insights QL 查询命令。不频繁访问日志类中的日志组支持除 pattern、diff 和 unmask 之外的所有 Logs Insights QL 查询命令。

addtotals

计算数值字段的行总数和列总数。

anomaly

使用机器学习识别日志数据中的异常模式。

display

在查询结果中显示一个或多个特定字段。

fields

在查询结果中显示多个特定字段,并支持函数和操作,可用于修改字段值和创建用于查询的新字段。

filter

筛选查询,以仅返回与一个或多个条件匹配的日志事件。

filterIndex

强制查询尝试仅扫描既在字段索引中提及的字段上建立索引又包含该字段索引值的日志组。这样可以减少扫描量,因为它只尝试扫描这些日志组中包含此字段索引的查询中指定的值的日志事件。

不频繁访问日志类中的日志组不支持此命令。

pattern

自动将您的日志数据划分为不同模式。模式是在您的日志字段中重复出现的共享文本结构。 CloudWatch Logs Insights 为您提供了分析日志事件中发现的模式的方法。有关更多信息,请参阅 模式分析。

diff

将在您请求的时间段内找到的日志事件与之前相同长度的时间段内的日志事件进行比较,以便您可以查找趋势并确定某些日志事件是否是新的。

parse

从日志字段中提取数据,以创建可以在查询中处理的提取字段。parse 同时支持使用通配符和正则表达式的 glob 模式。

sort

按升序(asc)或降序(desc)顺序显示返回的日志事件。

SOURCE

SOURCE在查询中包含是一种有用的方法,可以根据日志组名称前缀、帐户标识符、日志组类别、数据源或日志组标签,指定要在查询中包含的大量日志组。仅当您在 AWS CLI 或以编程方式创建查询时才支持此命令,在 CloudWatch 控制台中不支持。

stats

使用日志字段值计算聚合统计数据。

limit

指定您希望查询返回的最大日志事件数。对于 sort 返回“前 20 个”或“最近 20 个”结果很有用。limit any用于在找到足够结果后尽早停止扫描。

dedup

根据您指定的字段中的特定值删除重复的结果。

unmask

显示由于数据保护策略而屏蔽部分内容的日志事件的所有内容。有关日志组中数据保护的更多信息,请参阅 通过屏蔽帮助保护敏感的日志数据。

unnest

对输入列表进行扁平化以生成多条记录,列表中的每个元素都有一条记录。

lookup

通过匹配字段值,使用查找表中的数据丰富日志事件。使用查询表向查询结果中添加参考数据,例如用户详细信息、应用程序名称或产品信息。

join

将来自源日志组的日志事件与其他日志组的事件或基于匹配字段的查询结果相结合。使用 join 命令使用不同来源的通用密钥(例如匹配请求标识符或交易 ID)关联不同来源的相关日志事件。

subqueries

子查询是嵌套的 Logs Insights 查询,可用作另一个查询的输入。子查询可用于派生中间结果集,然后由后续命令使用。

autoregress

创建字段值的滞后(前一行)副本。

logcompare

将当前时间窗口与按持续时间向后移动的基线窗口进行比较。

filldown

将最后一个非空值向前移动,以填补空白。

fillmissing

通过 bin () 在 stats 之后插入空时间箱的行,也可以使用常量填充字段。

cidrlookup

通过将 IP 字段与查询表中的 CIDR 范围进行匹配来丰富事件。

outlier

根据四分位数范围 (IQR) 检测统计异常值,并可以移除或转换异常值行。

accum

计算数值字段的运行累积总和。

appendcols

通过位置行匹配将子查询中的列添加到当前结果中。

sessionize

按身份字段和不活动间隔将事件分组到会话中。

countFrequent

返回每个唯一字段值组合的近似计数,按降序排序。

where

充当filter命令的语法别名并接受相同的语法。

估计

返回查询在不运行查询的情况下将在所选日志组和时间范围内扫描的估计字节数。

其他操作和函数

CloudWatch Logs Insights 还支持许多比较、算术、日期时间、数字、字符串、IP 地址以及一般函数和操作。

以下部分提供了有关 L CloudWatch ogs Insights 查询命令的更多详细信息。