Serverless AI训练营:课时7:函数计算的可观测性(一)
课时7:函数计算的可观测性(一)
内容介绍
一、Logging、Metrics、Tracing概述
二、日志/指标/链路追踪
三、性能问题排查
一、Logging、Metrics、Tracing概述
可观测性是什么?
可观测性:逻辑百科中这样说,可观测性是通过外部表现判断系统内部状况的衡量方式;在应用开发领域可观测性可以帮助判断系统内部的健康状况,在系统出现问题的时候可以帮助定位问题、排查问题、分析问题,在系统平稳运行的时候帮助评估风险预测可能出现的问题。评估风险类似于天气预报,预测到明天下雨出门就要带伞,在函数计算的应用开发中如果观察到函数的持续升高,那很有可能就是业务团队努力工作导致业务规模迅速扩张,在这个例子当中,为了避免达到限制触发流控开发者就需要提前来提升并发度度,这就是预测风险的能力。
可观测性包括以上三个方面,Logging ,Metrics,Tracing
Logging是日志,日志记录了函数运行的关键信息,这些信息是离散的,并且是聚集的,结合错误日志和函数代码可以快速的定位问题。
Metrics是指标,是聚合的数据,通常以图表的形式来呈现,图表中的 TPS、错误率等核心指标可以反应函数的运行情况与健康状况。
Tracing是链路追踪是请求级别的追踪,在分布式系统中可以看到请求在各个模块的延时,分析性能瓶颈。
二、日志/指标/链路追踪
*配置日志
*在服务中配置 LogProject/Logstore
*记录日志
*通过编程语言内嵌的日志打印语句
*函数计算提供的日志打印语句
*查看日志
*Demo
在函数计算中查看函数日志,在传统服务器的开发方式里面可以将日志记录到磁盘的某个文件中,再通过日志收集工具收集文件的内容。在函数计算中开发者不需要维护服务器,函数计算与日志服务可以将函数日志记录到开发者提供的日志仓库里,也就是 Logstore,日志是服务配置中的一项,为服务配置 LogProjec t和 Logstore 同一服务下的所有函数通过 STDR 去打印日志都回收集到对应的 Logstore 中。
在各个开发语言中提供打日志的库都会收集到,函数计算收集所有打印到 STDR 的日志并且将日志上传到用户的 Logstore 里面,函数计算的调用是请求为主的,每次调用对应一个函数,也就对应一个ID。请求量大也就对应日志多,区分日志对应的请求就需要把ID一起记录到日志当中,函数计算提供内置的日志语句打印的每条日志前面都会带上 ID 方便日志的筛选;函数日志收集到日志服务的 Logstore 里,查看日志就可以登录日志服务的控制台进入设置的 Logstore 里查看日志,同时函数计算控制台也集成了日志服务,可以在函数计算控制台上查看日志。
函数计算控制台有两种查询方式,分为简单查询、高级查询。简单查询中列出每个 ID 对应的日志,可以通过 ID 日志进行筛选,高级查询是嵌入了日志服务的控制台可以通过色库语句进行查询;
做一个 demo,登录函数计算的控制台
登录后新建一个服务
函数计算控制台是提供了绑定日志功能的,控制台帮忙生成一个LogProject 和 Logstore,勾选就会设置帮助创建,日志就会都到下面。
看一下hello world 和 print World 的区别
点击保存并执行,会发现用函数计算提供打出来的日志是带有当前的执行时间和ID;print 打出来的日志就只有内容
要在控制台看日志的话会显示在控制台里面,Logstore 的查询功能就会看到Logstore 的日志