游乐游手机版
首页/系统平台/文章详情

函数计算可观测性实践与监控优化指南

时间:2026-08-21 16:18
导读:本文主要分为三个部分:首先在概述中介绍可观测性的基础概念,重点涵盖 Logging、Metrics、Tracing 三大核心能力;接着详细说明函数计算中的 Logging、Metrics、Tracing 实践方法;最后结合几个常见业务场景,讲解如何在函数计算中快速定位问题、排查故障并高效解决问

导读:本文主要分为三个部分:首先在概述中介绍可观测性的基础概念,重点涵盖 Logging、Metrics、Tracing 三大核心能力;接着详细说明函数计算中的 Logging、Metrics、Tracing 实践方法;最后结合几个常见业务场景,讲解如何在函数计算中快速定位问题、排查故障并高效解决问题。

概述

可观测性是什么?维基百科中给出的定义是:可观测性是通过外部表现来判断系统内部状态的一种衡量方式。

在应用开发与系统运维中,可观测性能够帮助我们了解系统内部的健康状态。当系统发生异常时,它可以协助开发者快速定位问题、排查故障、分析根因;当系统平稳运行时,它又可以帮助我们评估潜在风险,提前预测可能出现的问题。这个过程有些类似天气预报:如果预测明天会下雨,那么出门前就需要准备雨伞。在函数计算场景下,如果持续观察到函数并发度不断升高,往往意味着业务增长迅速,可能是市场推广带来的流量提升。为了避免并发度达到上限后触发流控,开发者就需要提前进行并发能力扩容与资源规划。

可观测性通常包括三个方面:Logging、Metrics、Tracing

  • Logging 是日志,日志会记录函数运行过程中的关键事件与详细信息,这些信息通常是离散且具体的。结合错误日志与函数代码,开发者往往可以更快定位故障原因。
  • Metrics 是指标,指标属于聚合后的数据,通常通过监控图表进行展示。图表中的 TPS、错误率、延迟等核心监控指标,能够直观反映函数的运行状态与系统健康度。
  • Tracing 是链路追踪,属于请求级别的追踪能力。在分布式系统中,可以清晰看到请求经过各个模块的耗时情况,从而分析调用链路中的性能瓶颈。

函数计算中的 Logging/Metrics/Tracing

1. 日志

在函数计算中如何查看函数日志?在传统服务器开发模式下,通常会把日志写入磁盘文件,再通过日志采集工具统一收集;而在函数计算架构中,开发者无需维护底层服务器,那么代码中输出的日志又该如何采集和查看呢?

1)配置日志

函数计算与日志服务可以实现无缝集成,能够将函数运行日志准确写入开发者指定的日志仓库(Logstore)中。日志配置是服务配置中的重要组成部分,因此需要为服务提前配置好 LogProject 和 Logstore。完成配置后,同一服务下所有函数通过 stdout 输出的日志,都会被自动采集并写入对应的 Logstore。

2)记录日志

那么日志应该如何打印?在代码中直接使用 console.log/print 输出的内容能否被收集?答案是可以的。各类主流开发语言提供的日志输出方式,通常都会把内容打印到 stdout,例如 node.js 的 console.log()、python 的 print()、golang 的 fmt.Println() 等。函数计算会自动收集所有输出到 stdout 的日志,并统一上传到 Logstore 中。

函数计算的调用是基于请求维度的,每一次调用都对应一个独立请求,也对应一个唯一的 requestID。当请求量较大时,日志数量会迅速增长,如何判断哪些日志属于同一个请求?这时就需要把 requestID 一并记录到日志内容中。函数计算提供了内置日志语句,打印出的每条日志前都会自动附带请求 ID,方便开发者按请求进行日志筛选与问题排查。

3)查看日志

当函数日志被采集到日志服务的 Logstore 后,开发者可以登录日志服务控制台进行查看和检索。

同时,函数计算控制台也已经集成日志服务,因此也可以直接在函数计算控制台中查看日志。函数计算控制台目前提供两种常见查询方式:

  • 简单查询:简单查询会按 requestID 展示对应日志,开发者可以基于 requestID 快速筛选相关日志内容;
  • 高级查询:高级查询内嵌了日志服务能力,支持通过 SQL 语句进行更灵活、更精准的日志查询与分析。

点击链接观看 Demo 演示:https://developer.aliyun.com/lesson_2024_18996

2. 指标

查看指标的方式:

  • **函数详情查看监控指标:**FC 提供了丰富的系统监控指标,通常无需额外配置,开发者即可直接在函数计算控制台中查看相关指标数据。
  • **配置日志大盘:**日志大盘不仅能够展示函数计算内置的监控指标,还可以结合开发者自定义日志进行关联分析,进一步生成自定义监控指标与可视化报表。

3. 链路追踪

(请求在各个链路的延时瀑布图)

链路追踪是分布式系统问题排查中的重要能力之一,它可以帮助开发者分析请求在不同链路节点上的时延表现。常见情况包括以下几种:

  • 函数计算作为整个调用链中的一个环节时,可以观察请求在函数计算中的时延情况,这部分时延既包括系统启动时间,也包括请求实际执行时间,从而帮助用户分析性能瓶颈与延迟来源。
  • 在函数计算中调用 FC SDK 时,默认可以看到 SDK API 的调用时延,便于分析接口访问耗时。
  • 当开发者在函数代码中访问数据库等云产品或外部服务时,也可以通过手动埋点的方式,对这部分调用时延进行链路分析。

问题排查

函数计算提供了丰富的可观测性能力,那么在实际生产环境中,究竟该如何快速定位问题?下面结合几个典型场景进行说明。

场景一:新版本发布后,函数错误率升高

版本发布完成后,首先要持续观察函数的各项监控指标。一旦发现错误率明显升高,应立即执行回滚以避免故障扩大;随后再结合函数日志进行分析,定位报错原因,修复问题后再重新上线。

场景二:函数性能较差,总是执行时间过长,甚至出现超时

可以开启 tracing 功能,并在函数内部可能耗时的关键位置进行埋点,通过查看请求的链路瀑布图,分析执行时间过长的具体原因,进而有针对性地优化性能并修复问题。

场景三:业务量快速增长,并发度即将接近并发限制

可以通过 metrics 查看当前并发度变化趋势,当观察到并发度持续上升时,应及时联系函数计算相关同学,提前提升并发度上限,保障业务稳定运行。

Serverless 公众号持续发布 Serverless 技术最新资讯,汇集全面的 Serverless 技术内容,关注 Serverless 发展趋势,也关注你在实际落地与实践过程中遇到的困惑与问题。

来源:https://apiv1.oschina.net/oschinapi/blog/detail?id=4792497
上一篇Kubernetes 1.20版本更新亮点与核心功能解析 下一篇ServerlessK8s集群中低成本运行Spark数据计算的方法
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
VMware安装Ubuntu完整教程:创建虚拟机与启动验证
系统平台 · 2026-09-01

VMware安装Ubuntu完整教程:创建虚拟机与启动验证

本教程详细演示如何在VMware中创建Ubuntu虚拟机,涵盖ISO挂载、硬件配置、安装向导及启动验证。通过清晰的步骤与验证命令,帮助新手快速搭建可用的Linux学习环境。

Win10专业版U盘安装教程:制作启动盘与完整安装步骤
系统平台 · 2026-09-01

Win10专业版U盘安装教程:制作启动盘与完整安装步骤

本文提供Win10专业版U盘安装完整流程:准备8GB以上U盘与官方镜像,制作启动盘并核对盘符;通过F12 F11 Esc等快捷键或BIOS设置U盘为第一启动项;安装时选择专业版并谨慎分区;完成后在“设置—系统—关于”验证版本与激活状态。操作前务必备份数据。

Windows10系统字体太小怎么调大
系统平台 · 2026-08-27

Windows10系统字体太小怎么调大

Windows10系统字体太小怎么调大?只需两步:首先打开设置中的显示选项,将缩放比例调整为125%或150%;随后运行ClearType文本调谐器优化字体清晰度。此方法适用于高分屏及普通屏幕,无需修改注册表即可解决界面拥挤问题。

Win10磁盘占用100%基础排查:从监控到清理的完整步骤
系统平台 · 2026-08-27

Win10磁盘占用100%基础排查:从监控到清理的完整步骤

Windows 10系统出现磁盘占用100%会导致电脑卡顿、程序响应缓慢。本文提供基础排查方案:首先通过任务管理器确认是否为磁盘高负载,随后进入系统存储页面分析C盘占用类别,最后针对性清理临时文件。遵循此流程可有效缓解磁盘压力,避免盲目重装系统。

Windows10系统怎么显示此电脑和控制面板
系统平台 · 2026-08-27

Windows10系统怎么显示此电脑和控制面板

Windows10默认可能不显示桌面图标,导致找不到“此电脑”和“控制面板”。只需进入个性化设置,在“桌面图标设置”中勾选对应选项即可恢复。本文提供详细图文步骤,帮助快速找回系统入口。