使用 CloudWatch Insights 在 Glue Query 中查询 Python 日志

Query Python logs in Glue Query with CloudWatch Insights

我是 CloudWatch Insights 的新手,我一直在尝试了解如何让它与 Python 日志记录一起使用。目前我在 PySpark/Python 中有一个 AWS Glue ETL 查询设置。我在脚本中为 Python 使用默认的 logging 包。

我已阅读文档,但找不到有关如何格式化日志以使其可通过 CloudWatch Insights 查询的任何详细信息。理想情况下,我想在日志消息中设置不同的字段,我可以通过 Insights 查询和获取值。

下面是脚本中的日志消息示例:

import timeit

start = timeit.default_timer()

...run some code

stop = timeit.default_timer()

runtime = stop - start

logging.info('Runtime: {}'.format(runtime))

我想查询像 @Runtime 这样的自定义字段,以在该列中显示不同运行的所有运行时间。有了这个,我还希望看到一个简单的 Insight 查询示例,以便我可以在此基础上进行构建。

任何人的帮助将不胜感激!

它与设置一个简单的记录器相同

下面的简单示例

MSG_FORMAT = '%(asctime)s %(levelname)s %(name)s: %(message)s'
logging.basicConfig(format=MSG_FORMAT)
logger = logging.getLogger('Something')
logger.setLevel(logging.INFO)

然后是你的代码

start = timeit.default_timer()

...run some code

stop = timeit.default_timer()

runtime = stop - start

logger.info('Runtime: {}'.format(runtime))