【问题标题】:Monitoring on aws lambda监控 aws lambda
【发布时间】:2020-10-04 20:52:08
【问题描述】:

我的 python3 lambda 函数处理来自 dynamodb 的记录。我正在 cloudwatch 中打印 lambda 执行的每一步。现在我正处于在生产中部署和监控我的 lambdas 的阶段。有没有一种方法可以让我知道 lambda 作为一个整体以合并的方式执行了哪些记录?

我还使用 X 射线来了解我的 lambda 所花费的时间和错误。此外,测量持续时间、调用、错误。我想知道有多少记录被执行?谢谢。

【问题讨论】:

  • 您是否使用 DynamoDB 流并触发您的 python3 lambda 函数?

标签: python amazon-web-services aws-lambda


【解决方案1】:

您可以使用CloudWatchLogs 登录自定义日志组和日志流。

您将能够在部署到不同阶段的过程中更改配置名称组/流。

查看如何使用 boto3 - Client.put_log_events

您可以查看我的 NodeJS 示例 - there。代码对于 python 来说更加简单和优雅。

PS:如果您对转换有任何问题,请给我留言。

【讨论】:

    【解决方案2】:

    虽然将每一行打印到日志中可能会帮助您调试和排除代码故障,但这是一个非常手动且不可扩展的选项。此外,您会因无休止的日志而失去理智。

    在无服务器世界中(特别是在 AWS 中,您拥有 Lambda、DynamoDB、SQS、SNS、API Gateway 和许多其他资源),您应该使用正确的工具来了解您的架构,允许您可以快速解决问题,并识别无服务器的特定问题(超时、内存不足等)。

    您可以尝试的一件事是将 stream out all your logs 从 CloudWatch 发送到外部服务,例如 ELK。它可以让您轻松探索它们。

    否则,我建议使用专门的无服务器解决方案 - 有几个(我们自己的 Epsagon、IOpipe、Dashbird)。

    【讨论】:

    • 这有点垃圾……您实际上是在进行推销,除了使用您的产品之外没有提供任何解决方案。
    • 请查看How not to be a spammer 并调整您的帖子以包含详细说明,同时继续清楚地披露您的隶属关系。否则您的帖子可能会被删除。
    • 伙计,我不同意你的看法。 CloudWatch 不是生产调试的正确解决方案。寻找数十亿的日志行对他来说是行不通的。他更喜欢使用 Lambda 和 DynamoDB 等托管服务,那他为什么要妥协监控并自己做呢???无论如何,我至少添加了一个关于如何将日志从 CW 流式传输到 ELK 的教程。比使用 CW 控制台要好得多,但 IMO 仍然需要手动操作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多