新聞中心
可觀測(cè)性是很重要的,目前已經(jīng)有比較不錯(cuò)的?OpenTelemetry?標(biāo)準(zhǔn),各個(gè)第三方組件以及廠商都按照這套標(biāo)準(zhǔn)庫來暴露和對(duì)接觀測(cè)數(shù)據(jù)將會(huì)更加簡(jiǎn)便。我們本次聊到的,是鏈路跟蹤,它是可觀測(cè)性中很重要的一項(xiàng)指標(biāo)。

創(chuàng)新互聯(lián)是專業(yè)的銅川網(wǎng)站建設(shè)公司,銅川接單;提供成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站,網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行銅川網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
?GOFrame?框架具有很高的前瞻性,在?OpenTelemetry?標(biāo)準(zhǔn)草稿階段便開始持續(xù)關(guān)注,并在發(fā)布?OTEL?標(biāo)準(zhǔn)發(fā)布了?alpha?版本時(shí),框架便開始支持。目前?OTEL?的Golang實(shí)現(xiàn)已經(jīng)穩(wěn)定。?GoFrame?是目前眾多"框架"中對(duì)?OTEL?標(biāo)準(zhǔn)及實(shí)現(xiàn)支持得最好的框架。并且可觀測(cè)性也是框架未來發(fā)展的重點(diǎn)特性。
一、項(xiàng)目實(shí)踐的痛點(diǎn)
在項(xiàng)目實(shí)踐中,實(shí)現(xiàn)鏈路跟蹤往往會(huì)遇到以下常見的痛點(diǎn)。
1、組件沒有嚴(yán)格執(zhí)行標(biāo)準(zhǔn)
雖然已經(jīng)有?OTEL?標(biāo)準(zhǔn),但是第三方組件沒有嚴(yán)格執(zhí)行。例如,在日志和?ORM?組件中,沒有嚴(yán)格約束傳遞?ctx?上下文變量。
2、第三方組件雜亂無章
業(yè)務(wù)項(xiàng)目拼湊使用的第三方組件眾多,有的組件沒有實(shí)現(xiàn)鏈路跟蹤支持,更別提?OTEL?標(biāo)準(zhǔn)。例如,命令管理、配置管理、緩存管理、數(shù)據(jù)校驗(yàn)、定時(shí)任務(wù)等等常用組件,表象就是沒有提供?ctx?上下文變量傳遞。當(dāng)使用到的組件不支持鏈路傳遞時(shí),鏈路信息便丟失。
3、業(yè)務(wù)邏輯易丟失鏈路
業(yè)務(wù)項(xiàng)目中,鏈路跟蹤沒有檢測(cè)手段,也就是寫著寫著,鏈路跟蹤不小心就弄丟了。當(dāng)戰(zhàn)略設(shè)計(jì)在戰(zhàn)術(shù)實(shí)施時(shí)遭遇到了豬隊(duì)友,遇到問題需要定位時(shí)就GG。特別是在?toB?業(yè)務(wù)中,遇到工單限時(shí)會(huì)很抓狂。
二、框架全鏈路跟蹤
1、統(tǒng)一框架
由于?GoFrame?是一款工程完備的基礎(chǔ)框架,提供了項(xiàng)目所需的通用核心基礎(chǔ)組件,因此在組件這塊可以非常方便地實(shí)現(xiàn)標(biāo)準(zhǔn)。
2、標(biāo)準(zhǔn)落地
在框架的核心組件中均增加了對(duì)?ctx?上下文變量的支持,并嚴(yán)格執(zhí)行?OTEL?標(biāo)準(zhǔn),保障標(biāo)準(zhǔn)的順利落地。
3、日志支持
?GoFrame?框架的日志組件也支持并且嚴(yán)格執(zhí)行?OTEL?標(biāo)準(zhǔn),因此只要使用框架的日志組件,那么也會(huì)自動(dòng)打印鏈路相關(guān)信息。
4、規(guī)范檢測(cè)
此外,框架通過開發(fā)工具提供工程規(guī)范檢測(cè)功能,可以自動(dòng)檢測(cè)出業(yè)務(wù)項(xiàng)目中的鏈路丟失問題,進(jìn)一步推進(jìn)?OTEL?標(biāo)準(zhǔn)落地,保障項(xiàng)目質(zhì)量。
5、鏈路傳遞
鏈路的傳遞也需要統(tǒng)一組件。目前比較常見的協(xié)議是?HTTP/GRPC?協(xié)議,因此框架也提供了?HTTP Client/Server?以及?GRPC Client/Server?組件來保障鏈路的傳遞。并且為保障易用性,屏蔽復(fù)雜的功能細(xì)節(jié),這種鏈路傳遞是底層隱式實(shí)現(xiàn)的,使用者完全無感知的。
分享文章:創(chuàng)新互聯(lián)GoFrame教程:GoFrame框架設(shè)計(jì)-全鏈路跟蹤設(shè)計(jì)
文章轉(zhuǎn)載:http://m.fisionsoft.com.cn/article/ccdedgo.html


咨詢
建站咨詢
