监视AWS Lambda客户使用率的最佳方法

问题描述

我新创建了一个API服务,该服务将作为试验部署到客户。它是使用AWS API Gateway,AWS Lambda和AWS S3构建的。使用SaaS定价模型,对我来说监控客户使用和成本的最佳方法是什么?目前,我已经针对该客户制作了独特的API网关,Lambda函数和S3存储桶。有什么好方法可以创建一个仪表板,使我(也许是客户)可以详细了解此监控?

一个问题,当扩展到多个不同的客户时,简化此过程的最佳方法是什么?每个客户都有一个唯一的API令牌-比天真的为每个客户提供独特的AWS资源更好的方法是什么?

我是新来的(一名大学生),但是任何见解/资源都会对我有很大帮助。谢谢。

解决方法

完全公开:我为确实做到这一点的公司Lumigo工作。

关于您的问题, 正如@ gusto2所说,您可以使用许多工具,最好的工具取决于您的特定要求。

工具之间的主要区别在于您需要应用的配置级别。

  • cloudwatch默认指标-您应该使用的第一个工具。这是一个开箱即用的解决方案,可为您提供有关服务的许多指标,例如:持续时间,调用和错误数,内存。您可以在不同的时隙和聚合器(P99,平均值,最大值等)上配置指标 该工具非常适合基本监控。 它的局限性是其最大的优势-它提供了所有服务共有的监视功能,因此没有针对无服务器应用程序量身定制的解决方案。 https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html

  • cloudwatch自定义指标-规模的另一面-获得更精确的指标,可让您上传任何指标数据并对其进行监控:https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html 如果您确切地知道要监视的内容,并且已经熟悉了体系结构的局限性和难点,那么这是一个很好的工具。 而且,当然,您可以为该数据配置警报:

  • Lumigo-第三方公司(同样,作为公开,这是我的工作场所)。提供开箱即用的监控,专门为无服务器应用程序创建,例如异常数量的调用,成本等。此工具还提供了故障排除功能,以实现更深的可观察性。

当然,您可以在线找到更多的第三方工具。一切都很棒-只要找到最适合您需求的产品即可。

,

是否有创建仪表板的好方法

有多种方法和选项,具体取决于您的缩放比例,数据量和要求。因此,您可以从简单开始,但要检查是否有任何可行的选择。

您可以从CloudWatch开始。您可以监控基本指标,创建仪表板,甚至与其他帐户共享。

为每个客户提供独特的AWS资源的简单方法

首先,我将考虑使用客户ID作为指标来创建自定义cloudwatch指标,并从Lambda函数中添加指标。

看起来很简单,但是您应该对请求的数据点和仪表板的数量进行数学计算和PoC,以防止计费令人讨厌。

另一种选择是使用原子函数将指标/事件发送到DynamoDB,您可以直接构建一些基本聚合(有点天真的流处理)。

在扩展到许多事件时,客户端,也许您需要一些认真的api分析,但这可能是不同的主题。