服务
关于
CloudProse博客
无服务器

AWS 江苏体彩监控101

帮助您确保团队的提示's lambda函数受到监视
詹姆斯·鲍耶·崔克(James Bowyer Trek)
詹姆斯·鲍耶 | 2019年8月26日

随着AWS生态系统的成熟并添加越来越多的可用服务,无服务器生产架构的数量将激增。随着无服务器架构从利基开发任务转移到生产系统,增加生产级别监视的负担将增加。 AWS上无服务器的核心是江苏体彩,因此本文涵盖了需要监视AWS 江苏体彩的基础知识。

具体来说,我们将介绍:

  • AWS提供的默认指标
  • AWS 江苏体彩的使用模式和相应的监视模式
  • 江苏体彩是否需要比传统架构更多的开发支持?

CloudWatch指标

以下是AWS提供的默认指标的列表。它们将成为您的基本显示器的基础。您选择的任何监视工具都应能够提取 江苏体彩的CloudWatch指标. 在以后的博客文章中,我们将介绍自定义指标,其他日志记录和可追溯性。

指标名称: 描述

调用: 在给定的时间范围内,成功调用和错误的调用次数。

错误: 返回4xx,5xx或无响应代码的调用数。

DeadLetterErrors: 江苏体彩函数无法写入其死信队列(严重破坏区域)的次数。

持续时间: 该功能运行所需的时间(以毫秒为单位)

节气门: 由于并发限制而失败的请求数(不计为错误,仅用于异步调用)

IteratorAge: 最近一次调用的江苏体彩批处理中的最后一条消息在其流中有多长时间。

并发执行: 同时运行的调用数(对于设置了并发限制的函数)。

UnreservedConcurrentExecutions: 同时运行的调用数(对于未设置并发限制的函数)。

显示器:

监视器是一种警报引擎/工具,当超过阈值或事件正在处理时,它将通知您的团队。在Trek10,我们使用Datadog摄取各种指标,包括上面提到的cloudwatch指标和事件。然后,我们使用Datadog的内置监视工具,该工具每分钟都会将指标与我们定义的查询进行比较,以向我们的通话团队发送警报。使用Cloudwatch Alarms或其他行业领先的监视软件,可以获得类似的功能。操作江苏体彩时,通常的经验法则是确保每个江苏体彩函数都有自己的监视器套件,该监视器套件针对该江苏体彩函数而构建并确定了范围。这与传统基础架构的哲学以及与诸如cpu之类的指标相关的度量相反。具体来说,监视一台主机的CPU的监视器正在监视所有主机的CPU,现在我们希望江苏体彩为此功能本身设置监视器。这一切都引出了一个问题:您应该监视哪种类型的指标?答案实际上取决于江苏体彩函数的类型。

使用方式& Monitoring:

第一类:预定的江苏体彩 / Cron工作江苏体彩

描述: 江苏体彩 functions that are run on a set schedule doing a set job. An example of a commonly used “cron job” 江苏体彩 is to have a nightly 江苏体彩 run that copies EBS snapshot backups from one region to another for DR. A custom example of cron 江苏体彩s we use at Trek10 is a 江苏体彩 we nicknamed keep-it-clean that runs every hour alerting us if a user has forgotten to document their work.

监控注意事项:对于这些cron作业江苏体彩,我们将要监视函数中的错误以及确认是否存在调用。由于cron 江苏体彩s通常会在每次未正确完成任务时都有特定的目的/任务,因此有必要发出警报。使用两个监视器,我们可以确保工作成功。第一个监视器应监视错误,并在功能发生错误时提醒您(注意异步功能 默认重试两次 所以你可以注意>= 3 errors)。第二个监视器应监视调用,并在特定时间范围内未发生调用时发出警报。

有用的指标:

  • 调用方式: In our example for the keep-it-clean function that runs once every hour, we have a monitor that will alert us if the service doesn’t run after 90 minutes. The runbook would 在 clude steps for confirming the CloudWatch trigger is still active, troubleshooting why the function didn’t run, and some set steps for manually checking on what the 江苏体彩 was checking, 在 our case making sure the work done is documented.
  • 失误: In our example for the keep-it-clean does not retry on failure and thus we alert on the first error occurrence. The runbook would 在 clude steps for debugging failures due to 江苏体彩 configurations and some set steps for manually checking on what the 江苏体彩 was checking, 在 our case documented downtime.

第二类:外部API驱动的江苏体彩 API 江苏体彩

描述:一个江苏体彩函数,它作为外部应用程序通常通过Amazon API Gateway调用的一部分(或整个)应用程序。这种使用模式的一个示例包括一个江苏体彩,该江苏体彩每当调用特定的API时都会验证船的所有权记录。

监控注意事项:通常,现代应用程序通常具有某种程度的容错能力,特别是如果该API是可公开刮擦的,并且会因伪造的输入而受到打击。通常,我们将监视错误率,而错误率也需要一定数量的错误,而不是像在cron中那样监视任何故障。这样,仅当应用程序确实遇到稳定性问题时,我们才能得到通知。对于异步功能,我们将希望监视节流,因为这可能是江苏体彩造成瓶颈的指标。最后,确保您的死信队列正常运行至关重要。此功能的关键CloudWatch指标包括错误,限制和死信错误。

有用的指标:

  • 失误:说我们只想在错误超过10个且所有请求中的错误超过5%时才发出警报。为满足此要求,我们使用等式((错误数量– 10)/(调用数量))>5%。错误率测试手册将包括确认江苏体彩所使用的数据源和相关性没有问题,江苏体彩配置正确,并查看日志以尝试查看它们在故障之间是否具有任何共同特征。
  • 节气门:用于限制的运行手册将包括查看并发集,包括在需要提高帐户限制的情况下创建一个AWS支持案例。
  • DeadLetterErrors: 此指标的名称可能会令人困惑,因为该指标真正告诉我们的是lambda无法写入其死信队列。我们将要提醒您错误总数。当无法写入死信队列时,Runbook会调查IAM权限更改或命名更改,因为通常是这种情况。对于每个事件都至关重要的生产工作负载,必须具有有效的DLQ
  • _Dead Letter Queue Length:如果我们的函数写入死信队列(并且API驱动的江苏体彩函数应该将队列是SNS,SQS还是仅转储到DyanmoDB中),则这不是江苏体彩本身的指标,这对于衡量至关重要当项目放入队列中时。 _
  • 奖励指标 - 江苏体彩调用:虽然在监视预定的江苏体彩时,可以测量调用以确认预期的调用是有意义的,但这仍然是有用的指标。具体来说,通过对调用次数使用某种形式的基于机器学习的基于学习的异常检测,您的团队可以出于多种原因获得警报。 Trek10看到的一个这样的原因是,当系统的客户端关闭并因此停止发出请求时,此警报使我们可以与该客户端联系并警告他们不再发出请求。

第三类:AWS资源驱动

描述:这些函数不是基于API调用作为先前的使用类型来调用,而是基于提取AWS的资源(如运动流)来运行。除了监视错误率,DLQ错误和限制以外,我们还希望监视迭代器的使用期限。

监控注意事项:由于迭代器寿命的增加,这些江苏体彩函数将从AWS资源中提取信息,因此江苏体彩函数在处理方面落后。提高江苏体彩中的并发限制或增加函数的内存可能有助于江苏体彩赶上。

有用的指标:

  • 先前已经描述过(来自“外部API驱动的江苏体彩s API 江苏体彩”类型):错误率,DLQ错误和放置以及限制。
  • IteratorAge:随着迭代器使用期限的增加,您知道江苏体彩函数在处理请求方面落伍了。如果批量请求,这可能没问题。但是我们建议为具有已定义迭代器年龄的任何函数建立基线,以至少了解在迭代器年龄的正常范围内的阈值。
  • ConcurrentExecutions:监视数量非常重要 并发执行 关于允许的并发执行的数量。如果函数正在扇出并达到并发执行的最大数量,则可能值得提高该限制,尽管它可能需要更改某些代码以处理其他并行执行。记下 帐户级别限制 这可能需要提高。

江苏体彩支持细分:

有一种观点认为,要监视江苏体彩的功能,您必须拥有一支经验丰富的运维团队,而过去则是必需的。我从开发人员那里多次听到,他们的管理团队不允许他们构建无服务器生产应用程序,因为维护24/7全天候运营成本太高。

让我们谈谈事情如何保持不变。

设置工作

与传统基础架构相比,用于监视无服务器(特别是江苏体彩)的设置非常相似。实际上,在某些方面,监视无服务器体系结构相对比较容易。例如,不必对传统指标(例如CPU,RAM,磁盘空间等)进行持续监控,而是这些指标完全由AWS处理或由您配置。在其他方面,江苏体彩函数似乎更难-专门为江苏体彩函数失败时创建特定的第一响应运行手册,这需要对环境有全面了解的人员付出巨大的努力。传统警报(例如CPU)的运行手册很容易提出,因为这些警报类型出现在所有系统中并且具有通用解决方案。由于易于创建这些运行手册,而这对于大多数无服务器环境而言并非必需,因此,传统架构也需要无服务器环境所需的全面错误运行手册。由于这种疏忽,人们对无服务器操作的设置比较敏感。从经验来看,这使您的运营团队能够支持和处理更具体的任务,而不是偶尔出现CPU或RAM问题。

通话负担

同样,对于无服务器运行手册更加复杂也存在一个误解。有一个误解,认为无服务器架构需要开发人员随时待命24/7。由于AWS管理基础架构的某些方面,因此噪音较小,因此更高比例的警报要求升级为正在召集的开发人员。那些随时待命的警报会提醒您,这是突然出现的情况,还是坏数据进入生产阶段,无论是传统架构还是无服务器架构,都可能会发生这种情况。值得注意的是,由于现在越来越少的开发人员熟悉无服务器,因此愿意接听电话的人数通常会减少。随着时间的推移和采用,该池的规模将不断扩大,并且Trek10的我们相信,一旦池达到关键数量级的无服务器呼叫需求,它将被视为与当今传统系统一样自然。

监控并非总是最性感的工作。在无服务器的环境中,一切都令人耳目一新,并且令人兴奋的是,确保正确执行不太吸引人的操作仍然很重要。如果您对监视江苏体彩函数有任何疑问或建议,请发表评论或联系我们,我将尽力更新博客!

作者
詹姆斯·鲍耶·崔克(James Bowyer Trek)
詹姆斯·鲍耶