Serverless 可观测性升级,云函数支持应用性能观测 APM

01.

云函数 + APM,进一步提升 Serverless 可观测性

Serverless 产品免运维、弹性扩缩容的产品特性,意味着由平台来进行请求的调度、资源的分发,也意味着用户在进行问题定位、异常排查时需要依赖平台提供的可观测性功能。腾讯云 Serverless 云函数 SCF 在可观测性上,已经与日志服务合作提供了专业可靠的日志功能,与云监控团队合作提供了指标丰富的监控功能。

对于具有更细粒度、更定制化的可观测性诉求的场景,近日 云函数 SCF 与腾讯云应用性能观测 APM 团队合作,推出了云函数应用性能观测功能,现已正式发布,访问 SCF 控制台启用 APM 配置即可体验。APM 基于 OpenTracing 开源协议,支持多种主流框架和编程语言,为您提供应用性能观测一站式解决方案。启用应用性能观测功能后,SCF 将使用基于 OpenTracing 的 Jaeger 实现将函数运行总耗时、冷启动耗时、执行耗时三段关键时间上报至 APM:

  • 函数运行总耗时

作为父分段上报,对应 APM 链路中 execution 接口,表示函数从接收到调用命令开始到函数执行完成总耗时。

  • 冷启动耗时

作为函数运行总耗时的子分段上报,对应 APM 链路中initialization接口,表示函数从接收到调用命令开始,到实例准备完成、函数初始化逻辑执行完成耗时。(该分段仅出现在冷启动调用请求中)

  • 执行耗时

作为函数运行总耗时的子分段上报,对应 APM 链路中invocation接口,表示入口函数执行耗时(事件函数)或完成9000端口监听后每次执行耗时(Web 函数和镜像函数)。

除此之外,还可以根据业务需要自定义埋点进行上报。

腾讯云应用性能观测(Application Performance Management,APM)是一款应用性能管理平台,基于实时的多语言应用探针全量采集技术,为您提供分布式应用性能分析和故障自检能力,全方位保障系统的可用性和稳定性。协助您在复杂的业务系统快速定位性能问题,降低 MTTR(平均故障恢复时间)。实时了解并追踪应用性能情况,提升用户体验。

02.

丰富的指标监控,打造多个函数应用级全局观测

SCF 与 APM 集成,将可观测性的重点从单个系统转为整体系统。在 Serverless 场景下,即从对 单个函数 的观测转为对  Serverless 应用(包含多个函数及其他服务) 的全局观测,通过丰富的指标监控采集分析、依赖拓扑图、调用链分析、日志分析等能力,全面的展示整个应用的运行情况。

使用 Serverless APM 服务,将会有以下几个方面的优势:

1. 丰富的基础监控指标采集与展示

用户不仅可以使用服务端监控,也可以使用各 APM 产品的客户端监控,实现在一个平台乃至一个数据大屏上同时监测业务的服务端和客户端。

2. 链路追踪能力

一个 Serverless 应用可能包含一个或多个函数、API 网关及其他云服务或者第三方服务。凭借链路追踪能力,用户可以根据依赖拓扑图,高效地分析 Serverless 应用中各组件的调用关系及延时情况,可在复杂系统中快速定位性能瓶颈和异常情况。

3. 调用链分析能力

调用链分析可与依赖拓扑图进行配合,使用调用链分析可清晰的展示请求在系统内所有链路的处理情况,还原请求响应过程的完整现场。通过分析链路上每个服务的状态和耗时,可将每个服务的处理耗时、服务间调用的网络耗时以瀑布图的形式直观的展示出来。便于用户进行”异常“请求的问题定位,获得更好更高效的应用体验。

03.

使用方法

1. 登录云函数控制台,单击左侧导航栏中的函数服务

  • 云函数 SCF 控制台:https://console.cloud.tencent.com/scf

2. 在页面上方选择地域,单击需要进行应用性能观测配置的函数名。

3. 在“函数配置”页面,选择右上角的编辑,勾选启用应用性能观测。(首次启用请按照控制台引导完成授权流程)

4. APM 的资源单元为业务系统,请选择数据上报的地域并选择对应的业务系统。如地域下无业务系统,可点击【新建业务系统】跳转到 APM 控制台进行创建。

注意:

  • 建议选择与函数所在地域相同的地域,如需跨地域上报,请在函数网络配置中启用公网访问。(函数通过公网上报 APM 可能会产生额外的费用,请按需使用)
  • 业务系统选择完成后,会展示业务系统对应的接入点和 Token 信息,供业务代码自定义上报使用。

5. 单击 保存 完成函数应用性能观测配置,函数调用后即可在 APM 控制台看到平台默认上报的链路信息。

6. 代码自定义上报方式请 点击阅读原文 查看。


推荐阅读

One More Thing


欢迎进入千人 QQ 群 (871445853) 交流 Serverless!

  • GitHub: github.com/serverless
  • 官网: cloud.tencent.com/product/serverless-catalog

点击「阅读原文」,查看代码自定义上报方式详情。