培训网站建设学校,唐山网站关键词优化,区块链开发与应用专业,北京金创网站建设简介#xff1a; 本文主要分为三个部分#xff1a;概述中介绍可观测性的基本概念#xff0c;主要包括 Logging、Metrics、Tracing 三个方面#xff1b;然后详细介绍函数计算上的 Logging、Metrics、Tracing#xff1b;最后以几个常见场景为例#xff0c;介绍在函数计算中…简介 本文主要分为三个部分概述中介绍可观测性的基本概念主要包括 Logging、Metrics、Tracing 三个方面然后详细介绍函数计算上的 Logging、Metrics、Tracing最后以几个常见场景为例介绍在函数计算中如何快速定位问题并解决问题。 作者 | 夏莞 阿里巴巴函数计算团队
本文整理自《Serverless 技术公开课》关注“Serverless”公众号回复“入门”即可获取 Serverless 系列文章 PPT。 导读本文主要分为三个部分概述中介绍可观测性的基本概念主要包括 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 查看当前并发度观察到并发度持续上升时及时联系函数计算开发同学提升并发度。 原文链接 本文为阿里云原创内容未经允许不得转载。