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

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

OpenSearch PPL 语言

本节包含使用 OpenSearch PPL 查询 CloudWatch 日志的基本介绍。借助 PPL,您可以使用 piped-together 命令检索、查询和分析数据,从而更轻松地理解和撰写复杂的查询。它的语法基于 Unix 管道,支持串接命令来转换和处理数据。使用 PPL,您可以筛选和聚合数据,并使用一组丰富的数学、字符串、日期、条件和其他函数进行分析。

您只能使用 OpenSearch PPL 查询标准日志类中的日志组。

有关 CloudWatch 日志中支持的所有 OpenSearch PPL 查询命令的信息以及语法和限制的详细信息,请参阅《 OpenSearch 服务开发者指南》中的 “支持的 PPL 命令”。

命令或功能 示例查询 描述

fields

fields field1, field2

显示一组需要投影的字段。

其中

where field1="success" | where field2 != "i-023fe0a90929d8822" | fields field3, field4, field5,field6 | head 1000

根据您指定的条件筛选数据。

stats

stats count(), count(field1), min(field1), max(field1), avg(field1) by field2 | head 1000

执行聚合和计算

parse

parse field1 ".*/(?<field2>[^/]+$)" | where field2 = "requestId" | fields field1, field2 | head 1000

从字符串中提取正则表达式(regex)模式并显示提取的模式。提取的模式可以进一步用于创建新字段或筛选数据。

排序

stats count(), count(field1), min(field1) as field1Alias, max(`field1`), avg(`field1`) by field2 | sort -field1Alias | head 1000

按字段名对显示的结果进行排序。使用 sor FieldName t-按降序排序。

eval

eval field2 = field1 * 2 | fields field1, field2 | head 20

修改或处理字段的值并将其存储在不同的字段中。这对于以数学方式修改列、对列应用字符串函数或对列应用日期函数非常有用。

rename

rename field2 as field1 | fields field1;

重命名搜索结果中的一个或多个字段。

head

fields `@message` | head 20

将显示的查询结果限制在前 N 行。

top

top 2 field1 by field2

查找字段中最常用的值。

dedup

dedup field1 | fields field1, field2, field3

根据您指定的字段删除重复的条目。

罕见的

rare field1 by field2

查找字段列表中所有字段中频率最低的值。

趋势线

trendline sma(2, field1) as field1Alias

计算字段的移动平均值。

赛事统计

eventstats sum(field1) by field2

使用计算出的汇总统计数据丰富您的事件数据。它分析事件中的指定字段,计算各种统计度量,然后将这些结果作为新字段附加到每个原始事件中。

字段摘要

where field1 != 200 | fieldsummary includefields= field1 nulls=true

计算每个字段的基本统计数据(计数、非重复计数、最小值、最大值、平均值、标准差值和平均值)。

grok

grok email '.+@%{HOSTNAME:host}' | fields email, host

使用 grok 模式解析文本字段,并将结果附加到搜索结果中。

字符串函数

eval field1Len = LENGTH(field1) | fields field1Len

PPL 中的内置函数,可以在 PPL 查询中操作和转换字符串和文本数据。例如,转换大小写、合并字符串、提取部分和清理文本。

数学函数

eval field2 = ACOS(field1) | fields field1

用于在 PPL 查询中执行数学计算和转换的内置函数。例如,abs(绝对值)、四舍五入(四舍五入数字)、sqrt(平方根)、pow(乘方计算)和 ceil(向上舍入到最接近的整数)。

日期函数

eval newDate = ADDDATE(DATE('2020-08-26'), 1) | fields newDate

用于在 PPL 查询中处理和转换日期和时间戳数据的内置函数。例如,date_add、date_format、datediff 和当前日期。

条件函数

eval field2 = isnull(field1) | fields field2, field1, field3

内置函数,用于检查特定字段条件并有条件地评估表达式。例如,如果字段 1 为空,则返回字段 2。

数学函数

eval field2 = ACOS(field1) | fields field1

用于在 PPL 查询中执行数学计算和转换的内置函数。例如,abs(绝对值)、四舍五入(四舍五入数字)、sqrt(平方根)、pow(乘方计算)和 ceil(向上舍入到最接近的整数)。

CryptoGraphic 函数

eval crypto = MD5(field)| head 1000

计算给定字段的哈希值