异步请求积压可视化|如何 1 分钟内快速定位函数计算积压问题

简介:本文分为三个部分:概述中引入了积压问题,并介绍了函数计算异步调用基本链路;并在指标介绍部分详细介绍了指标查看方式,分类解读了不同的指标含义;最后以一个常见的异步请求积压场景为例,介绍如何在 1 分钟内快速定位积压问题。

作者 | 千风

本文分为三个部分:概述中引入了积压问题,并介绍了函数计算异步调用基本链路;并在指标介绍部分详细介绍了指标查看方式,分类解读了不同的指标含义;最后以一个常见的异步请求积压场景为例,介绍如何在 1 分钟内快速定位积压问题。

为异步调用保驾护航

使用函数计算异步调用的开发者最关心的问题是:调用请求能否在预期的时间内被处理完成。若没能处理完成,那么在客户眼中就是异步调用请求积压了,然而基于之前函数计算异步调用指标体系,无论是定位积压,还是查看积压,过程都是十分繁琐的。

针对以上问题,函数计算推出了一系列异步调用请求积压相关的指标,能够帮助用户快速定位请求积压,向用户展示积压量化值。本文将详细介绍如何通过这些监控指标快速定位到函数异步调用出现的积压问题,为各位开发者讲解升级后的异步调用指标体系。

在开始之前,先简单介绍下函数计算异步调用。

异步调用是函数计算调用函数的一种方式,通过异步调用你不仅可以确保函数会至少执行一次,还可以保存调用执行过程中的状态转换信息和执行结果,其调用链路如下所示:

用户/事件源发起异步调用请求后会立刻返回本次请求 ID,随后函数计算系统将本次调用的相关信息转换为消息的格式,放入 MNS 消息队队列中供系统内下游模块消费,下游模块会基于解析出来的调用消息进行函数调用。

调用完成后,如果函数配置了 Destination,则系统会基于调用结果以及 Destination 内容进行进一步处理,Destination 相关内容介绍请参考异步调用文档:

异步调用 - 函数计算 - 阿里云

指标升级

升级后的函数计算异步调用链路监控指标主要新增了如下几类:

下面我们将对上述指标进行详细解读。  1指标查看

目前可以通过函数计算控制台或者 Serverless Devs 工具这两种方式查看函数的监控指标大盘,下面我们将以控制台为例,指导大家如何查看异步调用链路相关的监控指标,基于 Serverless Devs 的查看方式可以参考:

fc/metrics.md at main · devsapp/fc · GitHub

下面介绍的步骤前提是已开通了函数计算服务;且成功创建了服务以及函数,如果还未进行这些操作,请参考使用控制台创建函数:

使用控制台创建函数 - 函数计算 - 阿里云

首先打开函数计算控制台,点击左侧监控大盘标签,滑倒底部,可以查看到该地域所有服务的异步调用处理情况以及异步消息处理平均延时概览表格:

此时我们点击任意一个服务名称,进入后,可以看到该服务下所有函数的异步调用处理情况;以及异步消息处理平均延时概览表格:

接下来我们点击任意一个函数名称,进入后可以看到所有函数纬度的监控指标,并以图的形式展示:

至此,我们已经学会了这些指标的查看途径。下面继续为各位开发者介绍解读上述异步链路相关指标。

指标解读

我们将根据不同的指标类型对监控指标进行分类解读。  1异步调用处理情况

  • 异步请求入队

异步调用中,到达函数计算的请求数,当入队请求数大于请求处理完成数时,表示有请求积压,函数处理异步请求的速度小于异步请求发起的速度。请调整函数弹性伸缩(含预留资源)上限,参考:

弹性管理(含预留模式) - 函数计算 - 阿里云

或可钉钉搜索加入阿里函数计算官网客户群(11721331)联系我们进行处理。

  • 异步请求处理完成

异步调用中,函数计算处理完成的请求数,异步请求处理完成数量,应始终不大于异步请求入队的数量。

  • 异步请求积压数

已经到达函数计算的异步请求中,等待处理以及正在处理中的请求统一视为积压请求, 这些请求的数量为异步消息积压数,当这个值不为 0 时,表示异步调用请求是有积压的。

该指标将异步调用请求积压量化,解决积压数不可见问题,极大提高了异步调用的可观测性,也是本次升级的重要内容之一。  

异步请求处理延迟

  • 平均处理时延

函数异步调用请求从进入处理队列到开始处理的时延,按指定时间粒度统计求平均值。当该值高于预期时,表明函数异步调用请求可能存在积压。

“异步请求入队”、“异步请求处理完成” 以及 “平均处理延时” 这三个指标被放置在监控大盘的概览图表中,旨在帮助用户快速定位到出现积压的函数,解决积压定位难的问题。

1 分钟定位积压问题

在之前的异步调用指标体系下,如果想要定位积压问题,首先需要找到积压函数,此时需要逐个函数查看其函数监控指标详情,定位成功后,也无法直观看到具体的积压量化值。

升级后的异步调用指标体系能够很好地解决积压问题定位难以及积压量化的问题。下面将围绕积压问题的场景,描述如何使用上述指标快速定位积压问题。

业务场景

问题描述:

小张的业务涉及到三个函数,且都是异步调用,某天用户的业务出了问题,每个环节的异步处理时延都增大了。为了快速定位问题,用户想到了异步链路监控指标,进行了如下定位动作。

定位过程:

首先打开地域级别的监控大盘,选择目标时间段,查看该地域下各个服务的监控指标;

发现多个服务的异步调用平均处理延时高于预期,同时其异步请求入队数均大于请求处理完成数,表示这些服务都有一定程度异步调用消息积压,且 A-Service 的异步请求入队数量和异步调用请求完成数差别最大,积压最严重,点击 A-Service 查看监控指标:

可以看到该服务下的函数 A-Function 是积压源,点击 A-Function 查看函数纬度的监控指标:

从请求积压数图中可以看到积压是从 15:07 时间开始的,当前该账号下未完成的异步调用请求数最大时大约有 7000 左右 ,同时异步调用请求处理平均时延在逐步升高,目前是 30 万毫秒左右。每分钟处理的异步调用请求数在 800 -- 900 之间。

注:由于小张目前使用的是账号级别共享队列,因此异步请求积压数显示的整个账号下的异步调用请求积压数,如因业务需要,函数需要独享队列,可以联系函数计算团队进行开通。

进一步发现,地域按量实例数图中实例数已经打满,因此定位到原因是因为 A-Function 的请求激增,账号级别的按量实例数限制打满了,使得其他函数的异步调用也受到了影响,导致业务每个环节都受到了影响。

问题解决:

定位到问题后,小张立刻联系了函数计算团队,基于业务量进行了地域按量实例限制调整。

同时 A-Function 调用量最大,可能会对地域纬度的异步调用请求调度以及按量实例数产生一定的冲击,对其他函数的异步调用请求造成影响,因此函数计算团队建议为 A-Function 开启独享队列功能,同时设置弹性实例上限,这样将 A-Function 的异步调用请求进行隔离,避免对其他函数的影响。

总结

升级后的函数计算异步调用监控指标体系能够帮助用户解决积压问题定位难以及积压量化等问题,结合云监控报警的设置,极大提高了函数计算异步调用应用的稳定性。

同时,为了尽量避免请求积压情况的发生,我们目前正在对函数计算异步处理系统层面进行优化,包括队列回收机制、独享队列能力以及积压消息重定向策略等,从而提高函数计算系统处理异步调用请求的能力。这样,通过强大的异步调用请求处理系统以及全面的监控指标体系,为函数计算异步调用保驾护航。

原文链接

本文为阿里云原创内容,未经允许不得转载。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/511247.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

并发-分布式锁质量保障总结

简介:并发问题是电商系统最常见的问题之一,例如库存超卖、抽奖多发、券多发放、积分多发少发等场景;之所以会出现上述问题,是因为存在多机器多请求同时对同一个共享资源进行修改,如果不加以限制,将导致数据…

以网强算,中国移动算网建设激发澎湃能量

近日,在首届中国算力大会上,中国工程院院士张宏科发表演讲认为,“信息网络已经成为大国博弈的核心与关键,面临机遇期,我们亟需新型网络体系与技术创新,满足自主可控和建设网络强国的重大战略需求&#xff0…

云上的移动性能测试平台

简介:功能决定现在,性能决定未来。欢迎大家围观《云上的移动性能测试平台》, 了解EMAS性能测试平台的能力与规划。 1. 功能决定现在,性能决定未来 性能测试在移动测试领域一直是一个大难题,它最直观的表现是用户在前…

Docker 镜像和容器的导入导出及常用命令

作者 | 微枫Micromaple来源 | CSDN博客Docker 镜像和容器的导入导出1.1 镜像的导入导出1.1.1 镜像的保存通过镜像ID保存方式一:docker save image_id > image-save.tar例如:rootUbuntu:/usr/local/docker/nginx# docker imagesREPOSITORY TAG …

阿里云「低代码音视频工厂」正式上线,为企业用户打造音视频应用开发最短路径

简介:vPaaS全新定义企业级音视频应用开发 1月5日,阿里云视频云“低代码音视频工厂vPaaS“正式上线,极大程度降低音视频开发门槛,打破传统音视频技术壁垒,全新定义企业级的音视频应用开发。 低代码音视频工厂基于云原生…

数组方法 包含es6

有回调函数的方法都有两个参数(不写默认是window) 例:map,forEach,find let arr[1,2,3,4]; let obj{a:1,b:2}; let _thisnull; arr.map(v>{_thisthisreturn v1 },obj) console.log(_this) 数组方法细则 方法功能参数返回值是…

阿里开源支持10万亿模型的自研分布式训练框架EPL(EasyParallelLibrary)

简介:EPL背后的技术框架是如何设计的?开发者可以怎么使用EPL?EPL未来有哪些规划?今天一起来深入了解。 作者 | 王林、飒洋 来源 | 阿里技术公众号 一 导读 最近阿里云机器学习PAI平台和达摩院智能计算实验室一起发布“低碳版”巨…

如何从 Docker 镜像里提取 dockerfile!

作者 | A-刘晨阳来源 | CSDN博客今天给大家分享一下 dockerfile 里面是如何写的,然后去查了查就有了新的发现——通过镜像来提取 dockerfile。从镜像中提取dockerfile的两种方法。history参数我们可以直接用docker自带的参数来查看镜像的dockerfile,但有…

新品发布|备案变更不用再担心中断服务啦

简介:ICP备案迁移服务,就是面向有计划变更域名备案主体,或者在不同主体间迁移网站备案信息的客户,实现迁移过程中域名或者网站服务不中断的备案增值服务。 说起ICP备案,做过互联网经营业务的朋友都很熟悉,…

一眼定位问题,函数计算发布日志关键词秒检索功能

简介:当 FaaS 应用出现很多报错,且调用日志页面的请求过多时,如何才能简单、快速地查到出现 bug 的原因? 听说这个问题你也遇到了? 小王是一名程序员,最近在使用 FaaS &#xff08…

如何在 Linux 中使用 rsync 传输文件

作者 | 刘光录来源 | TIAPrsync(远程同步,Remote Sync)是一种在系统中或两个系统之间复制文件和目录的同步工具。rsync 的一个最大的优点,就是它只复制更改的文件,因而可以减少 CPU 消耗,在复制文件时节省带…

国民级消消乐背后的网络技术支持:不畏巨“峰”,“运”筹帷幄

简介:近日,阿里云网络携手乐元素共同部署建设了基于7层业务自动化调度的弹性网络架构,进一步提升乐元素在用户服务上的娱乐体验。提到乐元素相信大家都不陌生,作为从事移动网络游戏的研发、运营及广告平台,其代表作就是…

透析阿里云视频云「低代码音视频工厂」之能量引擎——vPaaS视频原生应用开发平台

简介:支撑15分钟上线高品质专属音视频平台 为满足企业用户极速搭建高品质专属音视频业务的需求,阿里云视频云的“低代码音视频工厂”应运而生,但极速而高品质的平台搭建诉求,需要用全新的开发方式才能真正实现,而全新…

自动驾驶“稳打地基”,小鹏汽车基于阿里云建自动驾驶AI智算中心算力可达600PFLOPS

数据驱动是自动驾驶发展的公认方向,也让自动驾驶模型训练成为一头“吃算力”的巨兽。自动驾驶的视觉检测、轨迹预测与行车规划等算法模型,有赖于机器学习海量数据集,但算力的不足让研发速度仍远远赶不上数据量增长的速度。随着传感器的进一步…

阿里云视频云「 vPaaS 」演绎了怎样的音视频应用开发「未来图景」

简介:前瞻音视频平台的演进未来 vPaaS是阿里云视频云最新推出的低代码音视频应用开发产品,其中,vPaaS低代码音视频工厂,彻底打破了音视频应用的繁冗技术开发壁垒;vPaaS视频原生应用开发平台,全新定义了音视…

鲲鹏开发者创享日2022:鲲鹏全栈创新 与开发者共建数字湖南

由华为推出的面向鲲鹏计算产业全栈开发者的系列活动——鲲鹏开发者创享日2022于8月5日在长沙成功举办。这场被称为开发者“技术嘉年华”的峰会,汇聚了国内顶尖技术大咖、科研带头人、知名企业技术专家及高校开发者,描绘了计算产业发展趋势和蓝图&#xf…

MySQL 深潜 - MDL 锁的实现与获取机制

简介:本文将介绍在 MDL 系统中常用的数据结构及含义,然后从实现角度讨论 MDL 的获取机制与死锁检测,最后分享在实践中如何监控 MDL 状态。 作者 | 泊歌 来源 | 阿里技术公众号 一 背景 为了满足数据库在并发请求下的事务隔离性和一致性要求…

深度解说阿里云 Serverless Kubernetes

简介:听阿里云技术专家聊聊 Serverless Kubernetes 一路走来的发展史,看看它是如何做到兼容 Kubernetes 使用方式的同时,拥有免运维和极致弹性等特点~ 作者 | 陈晓宇(阿里云技术专家) 策划 | 褚杏娟 伴随着云原生的…

理清 HTTP 之下的 TCP 流程,让你的 HTTP 水平更上一层

作者 | 神说要有光来源 | 神光的编程秘籍大家都知道 HTTP 的底层是 TCP,但是可能仅限于知道,并不是真正理解它们的关系。平时我们用 chrome devtools 的 Network 工具也只是能分析 HTTP 请求:TCP 层的东西看不见摸不着的,所以对它…

基于 EventBridge 构建 SaaS 应用集成方案

简介:事件源是事件驱动的基石,如何获取更多事件源也是 EventBridge 一直在探索和尝试的方向。针对市场上其他云厂商和垂直领域的 Saas 服务,EventBridge 发布了 HTTP Source 能力,提供简单且易于集成的三方事件推送 ,帮…