前言
咱们于 2022 年 5 月 发表推出 Amazon DevOps Guru for Serverless,这是面向 Amazon DevOps Guru https://aws.amazon.com/devops… 的全新性能。通过此性能,开发人员可能进步无服务器应用程序的运行性能和可用性。该产品链接可点击:https://aws.amazon.com/devops…
亚马逊云科技于 2014 年推出 Amazon Lambda https://aws.amazon.com/blogs/…,创始了无服务器计算畛域的先河。现在,成千上万的客户正在应用 Amazon Lambda,Amaon Lambda 容许您为函数配置许多参数,例如内存调配、预置并发和超时。对于许多客户来说,在所有这些参数之间找到适当的均衡以优化其函数的性能和可用性是一项艰巨的工作。该产品链接可点击 https://aws.amazon.com/cn/lam…
2020 年 12 月,咱们发表推出 Amazon DevOps Guru,这是一项齐全托管式 AIOps(面向 IT 经营的人工智能)服务,可自动检测应用程序问题并向客户收回警报,帮忙他们进步应用程序的可用性 https://aws.amazon.com/es/blo…。明天,咱们发表推出 Amazon DevOps Guru for Serverless,这是 Amazon DevOps Guru 的一项新性能,可帮忙应用 Amazon Lambda 的开发人员在函数级别自动检测异样行为,并应用基于机器学习的倡议来修复检测到的任何问题 。
Amazon DevOps Guru for Serverless 应用机器学习来自动识别和剖析 Amazon Lambda 函数的各种性能和可用性相干问题,例如低预置并发或内存利用有余。要应用此性能,您无需成为无服务器或 ML 专家。
此性能的被动洞察可帮忙您无效地解决影响无服务器应用程序的继续问题,并提供可行的倡议,帮忙您在尽可能短的工夫内找出根本原因并解决问题。
Amazon DevOps Guru for Serverless 还提供被动洞察,帮忙您在无服务器应用程序性能受到影响之前就发现更宽泛的运行异常情况。还为您提供无关如何查找根本原因并解决问题的倡议。
检测到问题时,Amazon DevOps Guru for Serverless 会在 Amazon DevOps Guru 控制台中显示发现后果,同时应用 Amazon EventBridge https://aws.amazon.com/eventb… 或 Amazon Simple Notification Service(Amazon SNS)https://aws.amazon.com/sns/ 发送告诉。这可让开发人员主动治理发现的问题并即时采取行动。
Amazon DevOps Guru for Serverless 被动洞察
Amazon DevOps Guru for Serverless 使开发人员可能在影响客户的事件产生之前被动检测应用程序问题。例如,如果某个 Amazon Lambda 函数的预置并发设置得太低,而该应用程序的流量正在增长,Amazon DevOps Guru 将检测一直增长的流量和应用程序提早的升高,并生成显示问题的被动洞察。
机器学习算法从运行数据和应用程序指标中取得这些洞察。洞察提供了高级信息、严重性、状态以及无关如何解决此问题的倡议。
现在,Amazon DevOps Guru for Serverless 为 Amazon Lambda 和 Amazon DynamoDB 提供被动洞察。以下是以后可用的运行问题和被动洞察:
- Amazon Lambda 并发执行数达到账户限度 – 当并发执行数间断达到账户限度时触发。
- 超出 Amazon Lambda 预置并发函数限度 – 当预置并发的预留量在一段时间内有余时触发。
- 与 SQS 的可见性超时相比,Amazon Lambda 超时较高 – 当 Amazon Lambda 函数的持续时间超过事件源 Amazon Simple Queue Service(Amazon SQS)的可见性超时时触发。
- Amazon Lambda 预置并发使用率低于预期 – 当预置并发的利用率过低时触发。
- Amazon DynamoDB 耗费的账户读 / 写容量达到账户限度 – 当账户在一段时间内耗费的容量靠近账户级别限度时触发。
- Amazon DynamoDB 表读 / 写耗费的容量达到表限度 – 当表中的写或读在一段时间内达到表的 ProvisionedWriteCapacityUnits 或 ProvisionedReadCapacityUnits 限度时触发。
- Amazon DynamoDB 表耗费的容量达到 AutoScaling Max 参数限度 – 当表耗费的容量在一段时间内达到 AutoScaling Max 参数限度时触发。
- Amazon DynamoDB 读 / 写消耗量低于预期 – 当 ProvisionedWriteCapacityUnits 或 ProvisionedReadCapacityUnits 的值与一段时间内的消耗量相差甚远时触发。
Amazon DevOps Guru for Serverless 入门
要开始应用,请导航到 Amazon DevOps Guru 控制台,为基于 Amazon Lambda 的应用程序、其余受反对的资源或整个账户启用该服务。
在本演示中,创立一个预置并发为 1 的新 Amazon Lambda 函数。您能够通过亚马逊云科技控制台或以编程形式执行此操作。创立后,您能够在函数概览页面看到预置并发设置为 1。
向 Amazon Lambda 函数增加每分钟触发一次函数的 CloudWatch 事件。您能够通过 亚马逊云科技控制台或以编程形式执行该操作。您能够依照本教程学习如何操作。再反复该过程五次。当初,该函数每分钟将通过不同的事件触发六次。
要触发被动洞察,您须要对此 Amazon Lambda 函数进行六次并发调用。要做到这一点,您须要确保每次调用的持续时间足够长。在本演示中,您能够让函数休眠 30 秒。
'use strict';
exports.handler = async (event) => {console.log('Sleep for 30 seconds')
await new Promise(r => setTimeout(r, 30000));
console.log('finish sleeping')
return;
};
左滑查看更多
此配置将触发此函数超出 Amazon Lambda 预置并发函数限度的被动洞察。问题开始后的三个小时或更短时间内,您应该会在控制台中看到该洞察。
如何通过 Amazon DevOps Guru 控制台查看洞察
几个小时后,您能够拜访 Amazon DevOps Guru 控制台,并且能够验证被动洞察是否因超出预置并发而触发。
抉择 Ongoing(继续)洞察以查看更多详细信息。此时将关上洞察页面,其中显示与此问题的洞察、指标、事件和倡议的操作相干的信息。
咱们更具体地看一下这个页面。页面顶部是洞察概览,其中蕴含洞察的内容和问题严重性的形容。这是一个被动洞察,因而用户体验不会受到此问题的影响。您还能够理解问题是否继续存在以及何时开始。如果问题不再产生,您能够理解该洞察的完结日期。如果您抉择受影响应用程序的链接,则能够确认受此洞察影响的所有 Amazon Lambda 函数。
下一个信息框蕴含与被动洞察相干的 CloudWatch 指标的相干信息。此图表显示了 ProvisionedConcurrecySpilloverInvocations 指标,以及预置并发溢出的最近几个小时内所有调用的摘要。
Relevant events(相干事件)是页面上的下一个信息框。这些是 Amazon CloudTrail 事件,Amazon DevOps Guru 将这些事件与 CloudWatch 指标和运行数据联合应用,以辨认产生洞察的异样行为。
页面的最初是 Recommendations(倡议)信息框,Amazon DevOps Guru 将在其中输入所有生成的倡议以帮忙您解决问题。您能够应用这些倡议来理解能够立刻采取哪些步骤来解决问题。
在此被动洞察中,Amazon DevOps Guru 建议您调整 Amazon Lambda 函数的预置并发。此倡议会依据函数过来的应用状况告诉您要将它设置为哪个值。您还能够找到 Amazon DevOps Guru 举荐这种洞察的理由。
定价和可用性
Amazon DevOps Guru for Serverless 收费提供给客户。
Amazon DevOps Guru for Serverless 已在提供 Amazon DevOps Guru 的所有亚马逊云科技笼罩区域推出:美国东部(俄亥俄)、美国东部(弗吉尼亚北部)、美国西部(俄勒冈)、亚太地区(新加坡)、亚太地区(悉尼)、亚太地区(东京)、欧洲(法兰克福)、欧洲(爱尔兰)和欧洲(斯德哥尔摩)。
具体理解 Amazon DevOps Guru for Serverless https://aws.amazon.com/cn/dev…,理解无关此次新公布的更多信息。
本篇作者
Marcia Villalba
亚马逊云科技开发者布道师
她从事业余设计和开发软件已有 15 年之久,并在构建可扩大和高性能软件的所有阶段工作。她对在云中构建应用程序和应用 DevOps 流程有深刻的理解。