如何基于APIGateway查看Cloudwatch Metrics的日志条目?

问题描述 投票:0回答:1

我正在设置 Cloudwatch,并希望能够跟踪我的无服务器设置(APIGateway -> 各种 lambda)何时出现 5xx 错误。然后我希望能够了解导致问题的原因。

我发现要设置闹钟,我首先需要有一个指标。好处是 API 网关内置了指标:转到指标 -> 所有指标 -> AWS 命名空间 -> ApiGateway。

4xxError
5xxError

因此,我为一个阶段设置了 5xxError 指标和相关警报,比如说

my-example-gateway
。 最近触发了
5xxError
警报。现在我知道我的应用程序出现 5xx 错误,我的问题是 如何深入到各个日志条目以查看更多信息?

对我来说有趣的是,我还没有为

my-example-gateway
设置日志记录:https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-logging.html - 所以现在我do已经设置了日志记录,并且可以查看网关的执行日志。但是,AWS 如何/在哪里收集上述默认指标的日志(5xxError)?

如果我进入日志 -> 日志组(在设置上述执行日志之前),我没有看到

my-example-gateway
的日志组。现在我就这么做了
API-Gateway-Execution-Logs_<my-example-gateway-id>/<stage>

在指标仪表板中的视觉效果旁边,我确实看到了

View Logs
View in Metrics
的选项,但是
View Logs
并没有带我到任何有用的地方,只是转到包含所有日志组的默认日志组页面。

[![查看日志下拉菜单][1]][1] [1]:https://i.sstatic.net/0k91J8rC.png

amazon-web-services amazon-cloudwatch cloudwatch-alarms
1个回答
0
投票

如何深入查看各个日志条目以查看更多信息?

简单的答案是你不能直接这样做。 AWS 仅帮助您捕获日志,但打印什么以及如何使用这些日志取决于您。

对我来说效果很好的一种方法是使用 CloudWatch Insights,根据相关指标选择日期范围,并使用如下所示的各种字符串进行搜索。然后,我找到 API 网关请求 ID 并使用它来检索与该特定请求相关的所有日志。这提供了有关错误消息和请求失败原因的详细信息。此外,我从日志中提取了 AWS 集成终端节点 RequestId,以便在 Lambda 日志中进一步调查。

  • 错误
  • 收到回复。状态:500
  • 方法已完成,状态:500
  • 由于超时错误执行失败
  • 发生错误,请求无法处理等

您还可以检查 Lambda 日志中的错误消息,因为这些日志是由您的应用程序生成的,通常包含更详细的信息。不幸的是,这是目前搜索日志的唯一方法。我知道这就像大海捞针一样。

此外,您还可以探索异步发送日志到 Amazon SQS 等解决方案,这样您就可以根据您的特定需求过滤和处理日志。日志进入 SQS 后,您可以按照自己的喜好查询和过滤它们。另一种方法是使用 CloudWatch 订阅过滤器来实时捕获和监控特定的错误情况。

或者,您可以将日志转发到 Splunk 或 Datadog 等第三方平台,它们提供高级查询功能和分析功能,帮助您从日志数据中获得更深入的见解。

© www.soinside.com 2019 - 2024. All rights reserved.