溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何分析Serverless 中函數(shù)計(jì)算的可觀測(cè)性

發(fā)布時(shí)間:2021-12-16 11:42:58 來(lái)源:億速云 閱讀:142 作者:柒染 欄目:云計(jì)算

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān) 如何分析Serverless 中函數(shù)計(jì)算的可觀測(cè)性,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

下面主要分為三個(gè)部分:概述中介紹可觀測(cè)性的基本概念,主要包括 Logging、Metrics、Tracing 三個(gè)方面;然后詳細(xì)介紹函數(shù)計(jì)算上的 Logging、Metrics、Tracing;最后以幾個(gè)常見(jiàn)場(chǎng)景為例,介紹在函數(shù)計(jì)算中如何快速定位問(wèn)題并解決問(wèn)題。

概述

可觀測(cè)性是什么呢?維基百科中這樣說(shuō):可觀測(cè)性是通過(guò)外部表現(xiàn)判斷系統(tǒng)內(nèi)部狀態(tài)的衡量方式。

在應(yīng)用開(kāi)發(fā)中,可觀測(cè)性幫助我們判斷系統(tǒng)內(nèi)部的健康狀況。在系統(tǒng)出現(xiàn)問(wèn)題時(shí),幫助我們定位問(wèn)題、排查問(wèn)題、分析問(wèn)題;在系統(tǒng)平穩(wěn)運(yùn)行時(shí),幫助我們?cè)u(píng)估風(fēng)險(xiǎn),預(yù)測(cè)可能出現(xiàn)的問(wèn)題。評(píng)估風(fēng)險(xiǎn)類似于天氣預(yù)報(bào),預(yù)測(cè)到明天下雨,那出門就要帶傘。在函數(shù)計(jì)算的應(yīng)用開(kāi)發(fā)中,如果觀察到函數(shù)的并發(fā)度持續(xù)升高,很可能是業(yè)務(wù)推廣團(tuán)隊(duì)的努力工作導(dǎo)致業(yè)務(wù)規(guī)模迅速擴(kuò)張,為了避免達(dá)到并發(fā)度限制觸發(fā)流控,開(kāi)發(fā)者就需要提前提升并發(fā)度。

可觀測(cè)性包括三個(gè)方面:Logging、Metrics、Tracing

  • Logging 是日志,日志記錄了函數(shù)運(yùn)行中的關(guān)鍵信息,這些信息是離散且具體的,結(jié)合錯(cuò)誤日志與函數(shù)代碼可以迅速定位問(wèn)題。

  • Metrics 是指標(biāo),是聚合的數(shù)據(jù),通常以圖表的形式展現(xiàn)。圖表中的 tps、錯(cuò)誤率等核心指標(biāo),可以反映函數(shù)的運(yùn)行情況與健康狀況。

  • Tracing 是鏈路追蹤,是請(qǐng)求級(jí)別的追蹤,在分布式系統(tǒng)中可以看到請(qǐng)求在各個(gè)模塊的延時(shí)、分析性能瓶頸。

函數(shù)計(jì)算中的 Logging/Metrics/Tracing

1. 日志

在函數(shù)計(jì)算中如何查看函數(shù)日志呢?在傳統(tǒng)服務(wù)器開(kāi)發(fā)方式中,可以將日志記錄到磁盤中的某個(gè)文件中,再通過(guò)日志收集工具收集文件的內(nèi)容;而在函數(shù)計(jì)算中,開(kāi)發(fā)者不需要維護(hù)服務(wù)器了,那如何收集代碼里打印的日志呢?

1)配置日志

函數(shù)計(jì)算與日志服務(wù)無(wú)縫集成,可以將函數(shù)日志記錄到開(kāi)發(fā)者提供的日志倉(cāng)庫(kù)(Logstore)中。日志是服務(wù)配置中的一項(xiàng),為服務(wù)配置 LogProject 和 Logstore,同一服務(wù)下所有函數(shù)通過(guò) stdout 打印的日志,都會(huì)收集到對(duì)應(yīng)的 Logstore 中。

2)記錄日志

那日志怎么打呢?在代碼中直接通過(guò) console.log/print 打印的日志可以收集到嗎?答案是可以的。各個(gè)開(kāi)發(fā)語(yǔ)言提供的打印日志的庫(kù)都將日志打印到 stdout,比如 node.js 的 console.log()、python 的 print()、golang 的 fmt.Println() 等。函數(shù)計(jì)算收集所有打印到 stdout 的日志并將其上傳到 Logstore 中。

函數(shù)計(jì)算的調(diào)用是請(qǐng)求維度的,每次調(diào)用對(duì)應(yīng)一個(gè)請(qǐng)求,也就對(duì)應(yīng)一個(gè) requestID。當(dāng)請(qǐng)求量很大時(shí),會(huì)有海量日志,如何區(qū)分哪些日志屬于哪個(gè)請(qǐng)求呢?這就需要把 requestID 一起記錄到日志中。函數(shù)計(jì)算提供內(nèi)置的日志語(yǔ)句,打印的每條日志前都會(huì)帶上請(qǐng)求 ID,方便日志的篩選。

3)查看日志

當(dāng)函數(shù)日志被收集到日志服務(wù)的 Logstore 中,可以登錄日志服務(wù)控制臺(tái)查看日志。

同時(shí),函數(shù)計(jì)算控制臺(tái)也集成了日志服務(wù),可以在函數(shù)計(jì)算控制臺(tái)上查看日志。函數(shù)計(jì)算控制臺(tái)有兩種查詢方式:

  • 簡(jiǎn)單查詢:簡(jiǎn)單查詢中列出每個(gè) requestID 對(duì)應(yīng)的日志,可以通過(guò) requestID 對(duì)日志進(jìn)行篩選;

  • 高級(jí)查詢:高級(jí)查詢嵌入了日志服務(wù),可以通過(guò) SQL 語(yǔ)句進(jìn)行查詢。

2. 指標(biāo)

查看指標(biāo)的方式:

  • 函數(shù)詳情查看監(jiān)控指標(biāo):FC 提供豐富的系統(tǒng)指標(biāo),這些指標(biāo)可以不用任何配置,就可以在函數(shù)計(jì)算控制臺(tái)查看。

  • 配置日志大盤:日志大盤不僅可以看到函數(shù)計(jì)算提供的監(jiān)控指標(biāo),而且可以與開(kāi)發(fā)者日志關(guān)聯(lián),生成自定義的監(jiān)控指標(biāo)。

3. 鏈路追蹤

如何分析Serverless 中函數(shù)計(jì)算的可觀測(cè)性
(請(qǐng)求在各個(gè)鏈路的延時(shí)瀑布圖)

鏈路追蹤是分布式系統(tǒng)排查問(wèn)題的重要一環(huán),鏈路追蹤可以分析分布式系統(tǒng)中請(qǐng)求在各個(gè)鏈路的時(shí)延。有以下幾種情況:

  • 函數(shù)計(jì)算作為整個(gè)鏈路中的一環(huán),可以看到請(qǐng)求在函數(shù)計(jì)算上的時(shí)延,時(shí)延包括系統(tǒng)啟動(dòng)的時(shí)間和請(qǐng)求真正的執(zhí)行時(shí)間,幫助用戶分析性能瓶頸。

  • 函數(shù)計(jì)算中調(diào)用 FC SDK,可以默認(rèn)看到 SDK API 的調(diào)用時(shí)延。

  • 開(kāi)發(fā)者在函數(shù)代碼中訪問(wèn)數(shù)據(jù)庫(kù)等產(chǎn)品,可以手動(dòng)在函數(shù)中埋點(diǎn)分析這段時(shí)延。

問(wèn)題排查

函數(shù)計(jì)算提供了很多可觀測(cè)性相關(guān)的功能,那究竟怎樣定位問(wèn)題呢?以幾個(gè)場(chǎng)景為例。

場(chǎng)景一:新版本發(fā)布后,函數(shù)錯(cuò)誤率升高

首先發(fā)布版本后要觀察函數(shù)各項(xiàng)指標(biāo),一旦錯(cuò)誤率升高要立即回滾避免故障,查看函數(shù)日志定位錯(cuò)誤原因,修復(fù)問(wèn)題再次上線。

場(chǎng)景二:函數(shù)性能差,總是執(zhí)行時(shí)間很長(zhǎng),甚至超時(shí)

開(kāi)啟 tracing 功能,在函數(shù)內(nèi)部可能耗時(shí)的地方進(jìn)行埋點(diǎn),查看請(qǐng)求的瀑布圖,定位執(zhí)行時(shí)間長(zhǎng)的原因,修復(fù)問(wèn)題。

場(chǎng)景三:業(yè)務(wù)量迅速擴(kuò)張,并發(fā)度即將到達(dá)并發(fā)度限制

通過(guò) metrics 查看當(dāng)前并發(fā)度,觀察到并發(fā)度持續(xù)上升時(shí),及時(shí)聯(lián)系函數(shù)計(jì)算開(kāi)發(fā)同學(xué),提升并發(fā)度。

上述就是小編為大家分享的 如何分析Serverless 中函數(shù)計(jì)算的可觀測(cè)性了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI