使用自然语言生成和更新 CloudWatch Logs Insights 查询
CloudWatch Logs 支持自然语言查询功能,可帮助您生成和更新 CloudWatch Logs Insights、OpenSearch Service PPL、OpenSearch Service SQL 和 CloudWatch Metrics Insights 的查询。
通过此功能,您可以用通俗易懂的英语询问或描述要查找的 CloudWatch Logs 数据。自然语言功能可根据您输入的提示生成查询,并逐行说明查询的工作原理。您也可以更新查询以进一步调查数据。
您可以根据自己的环境输入提示,例如“按传输的字节数计算,前 100 个源 IP 地址是什么?” 和“查找 10 个最慢的 Lambda 函数请求”。
注意
自然语言查询功能是一项区域性服务。对于某些区域,该功能会向美国的区域发起跨区域调用以处理查询提示。有关更多信息,请参阅 Amazon CloudWatch 扩展了对自然语言查询结果汇总和查询生成的区域支持
要使用此功能生成 CloudWatch Logs Insights 查询,请打开 CloudWatch Logs Insights 查询编辑器,选择要查询的日志组,然后选择生成查询。
重要
要使用自然语言查询功能,您必须使用 CloudWatchLogsFullAccess、CloudWatchLogsReadOnlyAccess、AdministratorAccess 或 ReadOnlyAccess IAM 策略登录,或者拥有 cloudwatch:GenerateQuery 权限。
示例查询
本节中的示例描述了如何使用自然语言功能生成和更新查询。
注意
有关 CloudWatch Logs Insights 查询编辑器和语法的更多信息,请参阅 CloudWatch Logs Insights 查询语法。
示例:生成自然语言查询
要使用自然语言来生成查询,请输入提示并选择生成新查询。这些示例展示了执行基本搜索的查询。
提示
以下提示示例指示该功能搜索速度最慢的 10 个 Lambda 函数调用。
Find the 10 slowest requests
查询
下面是使用 CloudWatch Logs Insights 查询语言进行的查询,它是自然语言功能根据提示生成的。请注意在查询之前的注释中,提示是如何显示的。查询完成后,您可以阅读有关查询工作原理的说明。
# Find the 10 slowest requests fields @timestamp, @message, @duration | sort @duration desc | limit 10 # This query retrieves the timestamp, message and duration fields from the logs and sorts them in descending order by duration to find the 10 slowest requests.
注意
要关闭提示和有关查询工作原理的说明显示,请使用编辑器中的齿轮图标。
提示
要生成 OpenSearch SQL 查询,请选择 OpenSearch SQL 选项卡,然后打开查询生成器提示框以输入自然语言提示。下面是一个使用自然语言功能生成 OpenSearch SQL 查询的提示示例。
Give me the number of errors and exceptions per hour
查询
下面是该提示生成的 SQL 查询,可用于查找每小时汇总的错误和异常数量:
SELECT DATE_FORMAT(`@timestamp`, 'yyyy-MM-dd HH') AS hour, COUNT(*) AS error_count FROM `/aws/lambda/CloudWatchOdysseyQueryGen` WHERE `@message` LIKE '%error%' OR `@message` LIKE '%exception%' GROUP BY DATE_FORMAT(`@timestamp`, 'yyyy-MM-dd HH') ORDER BY hour
提示
要生成 OpenSearch PPL 查询,请选择 OpenSearch PPL 选项卡,然后打开查询生成器提示框以输入自然语言提示。下面是一个使用自然语言功能生成 OpenSearch PPL 查询的提示示例。
Give me all unique exception messages
查询
下面是该提示生成的 PPL 查询,您可以使用它来查找日志中的唯一异常消息:
dedup @message | fields @message
示例:更新自然语言查询
您可以通过编辑初始提示,然后选择更新查询,来更新查询。
更新版提示
以下示例显示了先前提示的更新版本。此提示不指示搜索 10 个速度最慢的 Lambda 函数调用,而是指示该功能搜索 20 个速度最慢的 Lambda 函数调用,并包含另一列以包含其他日志事件。
Show top 20 slowest requests instead and display requestId as a column
更新版查询
下面是一个使用 CloudWatch Logs Insights 查询语言进行更新的查询的示例。请注意在更新版查询之前的注释中,更新版提示是如何显示的。查询完成后,您可以阅读有关原始查询是如何更新的说明。
# Show top 20 slowest requests instead and display requestId as a column fields @timestamp, @message, @requestId, @duration | sort @duration desc | limit 20 # This query modifies the original query by replacing the @message field with the @requestId field and changing the limit from 10 to 20 to return the top 20 log events by duration instead of the top 10.
选择不使用您的数据来改善服务
您为训练 AI 模型和生成相关查询而提供的自然语言提示数据仅用于提供和维护您的服务。这些数据可用于提高 CloudWatch Logs Insights 的质量。您的信任、隐私和内容的安全性是我们最重视的问题。有关更多信息,请参阅 AWS Service Terms
通过创建 AI 服务选择退出策略,您可以选择不将您的内容用于开发自然语言查询或提高自然语言查询的质量。要选择退出对所有 CloudWatch Logs AI 功能(包括查询生成功能)进行的数据收集,您必须为 CloudWatch Logs 创建一个选择退出策略。有关更多信息,请参阅《AWS Organizations 用户指南》中的 AI 服务选择退出策略。