手机版 欢迎访问魄力云云市场资讯网站

当前位置:主页 > 云虚拟主机 >

自己建站_大数据是一种数据吗

时间:2020-10-30 22:43:52|来源:魄力云|编辑:魄力云|点击:

如何监视Lambda函数

tip/aws公司/兰姆达/无服务器/自定义Metricas无服务器应用程序架构已广受欢迎,AWS Lambda已成为最著名的服务,它可以按需运行代码,而无需管理底层计算实例。从ops的角度来看,在Lambda中运行代码与运行传统应用程序有根本的不同。从可观测性的角度来看,最重要的是,您不能从应用程序服务器检查系统级指标。但是您可以而且应该密切监视Lambda函数(Lambda中运行的单个服务或代码)的性能和使用指标。我们将给出一个具体的例子来监视一个简单的Lambda函数的性能和使用数据狗。什么是兰姆达吗?awslambda是Amazon云中的一个事件驱动计算服务,它抽象了底层的物理计算基础设施,允许开发人员将精力集中在代码上,而不是执行环境上。Lambda函数可以由AWS事件触发,例如从S3存储桶中删除对象;通过AWS API网关调用API;或者通过AWS用户界面中的手动调用。自2014年引入Lambda以来,Lambda的采用蓬勃发展,围绕Lambda和其他serverless正在形成一个丰富的生态系统技术。兰姆达与您可能正在使用的几个AWS服务(如ELB、SES)进行了很好的集成,和S3。使用数据狗。快与监视传统应用程序服务器相比,在AWS Lambda中运行的startedServerless监控mindsetMonitoring应用程序带来了独特的挑战。首先,没有可以监视的长寿命主机,这意味着没有地方放置监视代理来收集遥测数据。"无服务器"并不意味着没有计算机执行代码。相反,这意味着开发人员不需要配置和维护应用服务器来运行他们的代码。修补、保护和维护Lambda函数背后的基础设施的重任落在amazonweb服务上。部署无服务器代码非常简单,只需将应用程序(和依赖项)上载到AWS,并配置一些运行时约束,如分配的最大内存和最大执行时间。因为在这种抽象中,在无服务器部署中,您无法访问所有传统的系统指标(如磁盘使用量和RAM消耗量)它可以告诉你你系统的健康状况。但是,通过正确地检测应用程序和支持服务,您可以确保您的系统是可观察的,即使在没有CPU、内存等指标的情况下也是如此。Datadog的内置Lambda监控仪表板捕获函数使用和性能。Lambda性能指标lambda性能指标可以分为两部分组:标准度量从AWS cloudwatchcustommetrics中,我们将依次处理每个度量。在此过程中,我们将把度量描述为"工作"或"资源"度量,作为这一区别的背景,参考我们的101个关于公制收集和警报.AWSmetricsMetricDescriptionMetric TypeDurationDurationDuration函数执行的持续时间以毫秒为单位工作:PerformanceInvocations函数的执行计数工作:通过计算机错误导致错误的执行计数工作:ErrorThrottled调用的计数attemptsResource:Saturation这些指标可通过AWS CloudWatch控制台获得,并为您提供有关函数执行的原始数据。仅使用这些指标,就可以估计预计的执行成本,确定执行频率的趋势,并快速确定错误何时开始累积。Lambda的标准度量可以通过AWS CloudWatch获得控制台。那个也就是说,如果没有额外的度量标准,您对应用程序性能的洞察力将受到一定的限制。例如,您可以看到,您的函数执行缓慢,但您将没有太多额外的上下文来帮助您查明减速。如你会看到,即使是对Lambda函数的最小检测也会产生对应用程序的重大洞察性能。定制Lambda函数中的度量在AWS提供的现成度量的基础上,您可能希望跟踪特定于您的用例和应用程序的定制度量性能和使用度量。例如,如果您的函数正在与外部API交互,则可能需要跟踪API调用;同样,如果Lambda函数与数据库交互以管理状态,则需要跟踪对该调用的读写操作数据库。在web应用程序性能监视的上下文,一些几乎具有普遍价值的指标包括:请求(吞吐量)响应(包括特定的错误类型)对服务请求所做的延迟工作当然,选择要监视的内容在很大程度上取决于您的特定用例、您的业务,以及你可能有的任何服务水平协议地点。到捕获上述所有内容需要检测应用程序的入口和出口点,以及检测实际工作所在的代码段执行。检测application internalsConsider一个连接到API网关的简单Lambda函数,它执行两种工作:接受字符串并将字符串的MD5哈希返回给调用方,接受MD5哈希并返回原始哈希字符串。从高水平,要检测的应用程序使用Lambda请求处理程序,每次通过amazonapi网关传入请求时都会调用该处理程序。应用程序逻辑包含在四个函数:lambda_处理程序是应用程序的入口点read_s3从S3hash检索数据文件exists reads&在数据文件中搜索hashresponse返回请求的字符串或哈希,如果请求成功,除了HTTP状态代码以使用Datadog Lambda层发出自定义度量外,我们首先在AWS控制台中将ARN添加到Lambda函数:arn:aws公司:lambda::464622532012年:层:数据狗-:然后我们在函数代码中导入必要的层方法,在函数处理程序周围添加一个包装器,并调用lambda_metric()函数:from datadog_lambda.metric导入lambda_公制来自数据狗_lambda.包装纸导入datadog_lambda_包装[...]@datadog_lambda_包装器def lambda_处理程序(事件,上下文):lambda_metric(,,tags=[''])使用lambda_metric()函数,检测应用程序就像在需要发出度量时调用函数一样简单。其他编程语言的检测示例,如节点.js、Go、Java和Ruby可以在Datadog的Lambda集成中使用文档.度量从Datadog Lambda层发送的数据将自动聚合到分发中,因此您可以在Datadog中计算应用程序性能的聚合,例如count、median、min、max,和p95延迟。设置收集点定义了Lambda度量函数后,您可以开始考虑什么样的度量将捕获有助于度量和跟踪服务性能的信息。如前所述,您通常希望监视应用程序请求和响应,这为放置仪器仪表.计数请求在我们的示例应用程序中,捕获请求速率的高分辨率度量对于理解吞吐量非常有用,这是任何应用程序的关键工作指标。捕获请求的最简单方法是在请求处理代码的开头插入指令。哈希器服务通过lambda_handler()函数处理所有请求,因此捕获请求计数就像在函数的最开始添加对lambda_metric()的调用一样简单hasher.lambda.requests. 我们可以通过在lambda_handler()中调用lambda_metric()来开始收集请求度量函数:def lambda_处理程序(事件、上下文):lambda_公制("hasher.lambda.requests",1,标签=['服务:哈希服务'])注意哈舍尔·兰姆达前缀;我们将在发送的每个度量中包含此前缀(例如。,hasher.lambda.requests或者hasher.lambda.responses). 使用一致的度量前缀可以在我们构建度量图或警报。现在我们有一个指标跟踪Lambda函数的请求计数:Lambda函数在时间。数数(和标记)响应调用lambda_metric()的下一个逻辑位置是lambda函数有返回语句(响应)的位置,因为这些实际上是lambda函数的退出点。因此,我们可以检测response()函数,以便在每次将响应返回给客户端时发出一个自定义度量。这些响应度量以catchall度量名称发出hasher.lambda.responses,标记有与响应.def响应(状态代码,正文):lambda_公制('hasher.lambda.responses',1,标记=['服务:哈希服务','状态:'+状态码])通过标记hasher.lambda.responses带有相关HTTP响应代码的度量(例如。状态:404),我们可以在Datadog中分解我们的响应,以可视化成功的请求以及特定错误类型的计数:Lambda函数返回的成功响应(200个代码)为绿色,404个错误为绿色红色。捕捉延迟统计您可以使用自定义指标,使用其他类型的内置聚合跟踪业务KPI和应用程序运行状况。例如,我们可能需要跟踪hash_exists函数的持续时间,以确保它不会给整个应用程序带来不可接受的延迟。在这个示例脚本中,我们将该函数的延迟计算为function_duration,并使用lambda_metric()将实时值作为一个度量发送给Datadog:#从当前时间戳中减去函数开始时间戳函数_持续时间=时间。时间()

云主机服务商 Ucloud云计算 移动云数据 云存储服务器 Ucloud云主机 云计算提供商 阿里数据库 服务器租用 云储存服务器 Web云服务器 ucloud云数据库 独享云主机 云服务器服务商 海外云存储 云服务器主机 云计算解决方案 国内云存储 数据库云平台

Copyright © 2002-2020 魄力云 版权所有