国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種可觀測(cè)性微服務(wù)鏈路監(jiān)控系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)

2024-09-13 00:00:00陳恒法黃愛(ài)儀鄒竟輝
電腦知識(shí)與技術(shù) 2024年22期

摘要:為滿足當(dāng)前基于云原生微服務(wù)架構(gòu)軟件系統(tǒng)運(yùn)維的復(fù)雜性需求,利用開(kāi)源軟件整合設(shè)計(jì)實(shí)現(xiàn)了一種低成本、高可用、部署方便的可觀測(cè)性微服務(wù)鏈路監(jiān)控解決方案,解決了可觀測(cè)性“三大支柱”中的鏈路可觀測(cè)性問(wèn)題。詳細(xì)描述了方案的系統(tǒng)構(gòu)成,部署流程及工作原理,基于Docker容器技術(shù)進(jìn)行系統(tǒng)部署和測(cè)試,驗(yàn)證了該系統(tǒng)方案的可行性。

關(guān)鍵詞:云原生;運(yùn)維;可觀測(cè)性;監(jiān)控 ;鏈路跟蹤

中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1009-3044(2024)22-0038-04

開(kāi)放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID)

0 引言

隨著云原生技術(shù)在軟件系統(tǒng)開(kāi)發(fā)領(lǐng)域的不斷深入,云原生這種“專(zhuān)注于應(yīng)用程序容器化,以便在各種服務(wù)器上進(jìn)行部署和編排”的軟件構(gòu)建和部署運(yùn)行的現(xiàn)代方法,使得原來(lái)面向單體架構(gòu)設(shè)計(jì)的各類(lèi)系統(tǒng)監(jiān)控技術(shù)難以全面跟蹤和排查基于云原生的軟件系統(tǒng)的問(wèn)題。因此,需要構(gòu)建起一套可觀測(cè)性服務(wù)監(jiān)控系統(tǒng)[1]。

本研究探索了基于開(kāi)源軟件組合實(shí)現(xiàn)的一種云服務(wù)可觀測(cè)性微服務(wù)鏈路監(jiān)控系統(tǒng)方案。該系統(tǒng)可以實(shí)現(xiàn)對(duì)鏈路數(shù)據(jù)的關(guān)聯(lián)分析,幫助運(yùn)維人員衡量、預(yù)防、發(fā)現(xiàn)、定位、解決業(yè)務(wù)問(wèn)題,從而實(shí)現(xiàn)運(yùn)維業(yè)務(wù)效能的提升。

1 核心概念及技術(shù)框架

1.1 可觀測(cè)性

可觀測(cè)性(Observability) 是一個(gè)來(lái)自控制理論的概念,它指的是能夠從系統(tǒng)的外部輸出推斷出系統(tǒng)內(nèi)部狀態(tài)的能力。在計(jì)算機(jī)系統(tǒng)和軟件領(lǐng)域,可觀測(cè)性允許人們通過(guò)監(jiān)控系統(tǒng)和應(yīng)用程序?qū)ν廨敵龅男畔?,?lái)了解和診斷應(yīng)用程序內(nèi)部的狀態(tài)和運(yùn)行情況[1]。可觀測(cè)性通常包括指標(biāo)(Metrics) 、鏈路(Traces) 和日志(Logs) 三個(gè)方面的信息。

1) 指標(biāo)(Metrics) 是可觀測(cè)性中用于衡量和監(jiān)控系統(tǒng)性能及健康狀況的關(guān)鍵數(shù)據(jù)類(lèi)型。指標(biāo)是在一段時(shí)間內(nèi)測(cè)量的數(shù)值,包括特定可用性、預(yù)警性和協(xié)助性監(jiān)控屬性,如啟動(dòng)、可達(dá)、流量、延時(shí)、時(shí)間戳、類(lèi)型等。指標(biāo)采用結(jié)構(gòu)化的形式,方便查詢和優(yōu)化存儲(chǔ)[2]。

2) 鏈路(Traces) 在可觀測(cè)性領(lǐng)域主要分為兩類(lèi):鏈路拓?fù)浜玩溌纷粉櫋f溌吠負(fù)涞暮诵膬r(jià)值在于通過(guò)分析節(jié)點(diǎn)間依賴路徑與狀態(tài),提供強(qiáng)弱依賴梳理、瓶頸點(diǎn)分析、影響面分析、故障傳播鏈分析等能力。鏈路追蹤可追溯請(qǐng)求在分布式系統(tǒng)間流轉(zhuǎn)路徑與狀態(tài)的技術(shù)。它通過(guò)在分布式應(yīng)用的接口方法上設(shè)置觀察點(diǎn),并在入口節(jié)點(diǎn)給每個(gè)請(qǐng)求分配一個(gè)全局唯一的標(biāo)識(shí)(TraceId) ,來(lái)記錄請(qǐng)求流經(jīng)的鏈路日志[3]。

3) 日志(Logs) 是在特定時(shí)間發(fā)生的事件的文本記錄。日志收集工具與應(yīng)用程序容器一起運(yùn)行,從應(yīng)用程序收集消息,然后把收到的消息轉(zhuǎn)發(fā)到中央日志存儲(chǔ)以進(jìn)行匯總和分析。

通過(guò)指標(biāo)、鏈路、日志數(shù)據(jù),運(yùn)維團(tuán)隊(duì)可以更有效地監(jiān)控基于云原生的分布式部署微服務(wù)系統(tǒng),在運(yùn)維過(guò)程中快速定位問(wèn)題根源,并采取措施進(jìn)行修復(fù),從而確保系統(tǒng)的穩(wěn)定性和可靠性。

1.2 技術(shù)路線:SkyWalking+Elasticsearch+SkyWalking UI

目前可以實(shí)現(xiàn)云原生的運(yùn)維服務(wù)技術(shù)框架有很多。本研究主要從技術(shù)成熟度、系統(tǒng)構(gòu)建成本、部署便利性這三個(gè)方面進(jìn)行評(píng)估,選擇采用基于SkyWalking+ElasticSearch開(kāi)源技術(shù)框架方案來(lái)構(gòu)建一個(gè)基于云原生微服務(wù)系統(tǒng)運(yùn)維的監(jiān)控系統(tǒng)。該系統(tǒng)是一個(gè)能提供分布式追蹤、服務(wù)網(wǎng)格遙測(cè)分析、度量聚合、查詢、持久化和可視化一體化解決方案[3]。系統(tǒng)整體架構(gòu)如圖1所示。

整個(gè)監(jiān)控系統(tǒng)由4個(gè)部分組成,分別為:

1) 數(shù)據(jù)采集模塊:SkyWalking+Service Mesh。

語(yǔ)言探針(SkyWalking Agent) 和服務(wù)網(wǎng)格(Service Mesh) 是獲得監(jiān)控?cái)?shù)據(jù)的模塊。它們以插件方式獨(dú)立存在,可根據(jù)需要從SkyWalking官網(wǎng)上選擇需要的模塊下載[4]。這些插件可以通過(guò)配置文件以非入侵方式集成到其他應(yīng)用系統(tǒng)中,隨相應(yīng)的應(yīng)用一起啟動(dòng)工作。以SkyWalking Agent為例,它具備高度自動(dòng)化能力,目前官網(wǎng)分別提供了支持主流前端技術(shù)(Vue.js、Angular.js、React) 和常見(jiàn)后端技術(shù)(Java、.NET、Go、Python、PHP、Node.js) 的SkyWalking Agent供下載。SkyWalking Agent能實(shí)現(xiàn)系統(tǒng)的鏈路跟蹤、指標(biāo)探測(cè)和日志聚合處理。

2) 數(shù)據(jù)匯聚和處理模塊:SkyWalking。

SkyWalking可作為一個(gè)應(yīng)用程序性能監(jiān)視工具,專(zhuān)為微服務(wù)、云原生架構(gòu)和基于容器(Docker、K8s、Mesos) 架構(gòu)而設(shè)計(jì)。它擁有一套非常成熟的指標(biāo)監(jiān)測(cè)、分布式鏈路追蹤和日志處理功能,提供了多種監(jiān)控手段。

3) 數(shù)據(jù)存儲(chǔ)模塊:ElasticSearch。

在跟蹤數(shù)據(jù)存儲(chǔ)方面,SkyWalking支持多種主流的數(shù)據(jù)存儲(chǔ)技術(shù),如ElasticSearch、MySQL、Sharding Sphere、TiDB、H2等。ElasticSearch是一個(gè)分布式、高擴(kuò)展、高實(shí)時(shí)的搜索與數(shù)據(jù)分析引擎。它能很方便地使大量數(shù)據(jù)具有搜索、分析和探索的能力。它是SkyWalking官方推薦的數(shù)據(jù)存儲(chǔ)方案。

4) 數(shù)據(jù)可視化展示模塊:SkyWalking UI。

SkyWalking UI既是展示監(jiān)控?cái)?shù)據(jù)儀表盤(pán),用來(lái)實(shí)現(xiàn)Skywalking收集到的數(shù)據(jù)的可視化展示,又是監(jiān)控系統(tǒng)對(duì)采集到的數(shù)據(jù)進(jìn)行分析的控制臺(tái)。系統(tǒng)部署完成后,就可以通過(guò)SkyWalking UI提供的儀表盤(pán)實(shí)現(xiàn)數(shù)據(jù)呈現(xiàn)及其他相關(guān)信息詳情查詢和展示。

1.3 系統(tǒng)工作流程

該系統(tǒng)是通過(guò)語(yǔ)言探針(SkyWalking Agent) 和服務(wù)網(wǎng)格(Service Mesh) 從微服務(wù)應(yīng)用中獲取服務(wù)調(diào)用數(shù)據(jù)。根據(jù)獲取數(shù)據(jù)的方式不同,分別采用HTTP或gRPC通信協(xié)議與SkyWalking OAP通信,將采集到的監(jiān)控?cái)?shù)據(jù)傳給Tracing或Metric模塊進(jìn)行預(yù)處理,然后傳給Analysis模塊進(jìn)行歸并和分析,最終數(shù)據(jù)和結(jié)果傳給ElasticSearch進(jìn)行持久化。

系統(tǒng)啟動(dòng)后,用戶通過(guò)瀏覽器輸入SkyWalking-UI服務(wù)端地址,就可以打開(kāi)數(shù)據(jù)監(jiān)控儀表盤(pán)頁(yè)面查看監(jiān)控?cái)?shù)據(jù)。儀表盤(pán)頁(yè)面默認(rèn)提供監(jiān)控?cái)?shù)據(jù)的全局概覽視圖,包含系統(tǒng)整體的服務(wù)調(diào)用情況、響應(yīng)時(shí)間、吞吐量等關(guān)鍵指標(biāo),以可視化的形式展示在不同的窗口中。用戶也可以根據(jù)需求定制儀表板內(nèi)容,Query模塊會(huì)根據(jù)定制參數(shù)返回響應(yīng)的查詢數(shù)據(jù),供儀表盤(pán)進(jìn)行可視化展示。

2 系統(tǒng)部署與運(yùn)行測(cè)試分析

為了詳細(xì)展示系統(tǒng)的部署及運(yùn)行測(cè)試過(guò)程,本研究通過(guò)在Docker容器技術(shù)創(chuàng)建的虛擬云主機(jī)平臺(tái)上,以鏈路跟蹤監(jiān)控為例,開(kāi)展模擬云原生監(jiān)控系統(tǒng)部署和運(yùn)行測(cè)試實(shí)踐,展示系統(tǒng)的部署和運(yùn)行測(cè)試過(guò)程。在真實(shí)生產(chǎn)環(huán)境的云主機(jī)上部署該系統(tǒng)的過(guò)程也基本一樣。系統(tǒng)的部署結(jié)構(gòu)如圖2所示。

2.1 系統(tǒng)部署

在系統(tǒng)部署之前,需要準(zhǔn)備好系統(tǒng)部署的環(huán)境,即安裝好操作系統(tǒng)云主機(jī)。下載部署所需的開(kāi)源軟件。下載開(kāi)源軟件時(shí),要注意查看軟件版本的兼容性描述。雖然構(gòu)成該系統(tǒng)的各開(kāi)源組件擁有滿足多種操作系統(tǒng)的版本,但建議在Linux內(nèi)核的操作系統(tǒng)上部署,本實(shí)踐使用的是Ubuntu 20.04 LTS鏡像文件創(chuàng)建的云主機(jī),并在此基礎(chǔ)上進(jìn)行系統(tǒng)部署操作。

2.1.1 安裝Docker并創(chuàng)建虛擬服務(wù)器

安裝Docker并根據(jù)系統(tǒng)部署需求,通過(guò)Ubuntu鏡像文件創(chuàng)建出6個(gè)容器用于模擬6臺(tái)服務(wù)器。其中一臺(tái)安裝Nginx提供統(tǒng)一的服務(wù)訪問(wèn)入口;3臺(tái)安裝Tomcat提供云原生Web微服務(wù),用于部署基于SpringBoot+SpringCloud實(shí)現(xiàn)的音樂(lè)推薦微服務(wù)系統(tǒng),并作為完成實(shí)驗(yàn)測(cè)試的微服務(wù)系統(tǒng);一臺(tái)安裝SkyWalking作為數(shù)據(jù)收集和分析服務(wù)器,還有一臺(tái)安裝ElasticSearch作為跟蹤數(shù)據(jù)存儲(chǔ)服務(wù)器。

Docker、Ubuntu以及微服務(wù)系統(tǒng)的安裝過(guò)程比較簡(jiǎn)單,相關(guān)詳細(xì)操作過(guò)程介紹文章和視頻非常多,在這里不做介紹。需要提醒的是,如果采用一臺(tái)服務(wù)器虛擬化為多臺(tái)服務(wù)器,并且原生主機(jī)只有一張物理網(wǎng)卡,而又希望每臺(tái)虛擬主機(jī)都有獨(dú)立的IP地址,實(shí)現(xiàn)單網(wǎng)卡多IP方式,那就必須先在原生服務(wù)器網(wǎng)卡上綁定多個(gè)地址。否則就只能通過(guò)端口號(hào)來(lái)區(qū)分不同的虛擬主機(jī)。具體操作相關(guān)操作可以查看參考文獻(xiàn)[5]。為了更接近真實(shí)生產(chǎn)環(huán)境,這里采用的是單網(wǎng)卡多IP方式。在進(jìn)行軟件的安裝部署之前,都必須確保系統(tǒng)中已經(jīng)安裝了與安裝軟件兼容的JDK。

2.1.2 部署ElasticsSearch服務(wù)

ElasticsSearch服務(wù)安裝比較簡(jiǎn)單,包括以下4個(gè)步驟:

1) 訪問(wèn)Elasticsearch官方下載頁(yè)面(https://www.elastic.co/downloads/elasticsearch) ,選擇適合的版本并下載,本文以Elasticsearch 7.14.0為例。

2) 將下載的Elasticsearch壓縮包解壓到合適的目錄,例如,/amt/elasticsearch。

3) 打開(kāi)config/elasticsearch.yml根據(jù)需要修改配置或使用默認(rèn)配置,在本實(shí)踐中使用的是多IP方式,所有需要設(shè)置network.host:192.168.0.2,其他參數(shù)使用默認(rèn)值。

4) 通過(guò)“./bin/elasticsearch”啟動(dòng)服務(wù)。

如果采用Docker鏡像的方式來(lái)部署ElasticsSearch的話,直接從Docker官網(wǎng)拉鏡像然后創(chuàng)建容器,并啟動(dòng)容器就可以了。所有配置開(kāi)源使用默認(rèn)配置。

2.1.3 部署SkyWalking服務(wù)

SkyWalking服務(wù)啟動(dòng)運(yùn)行需要依賴后端的數(shù)據(jù)存儲(chǔ)服務(wù)器,因此在安裝部署SkyWalking服務(wù)器之前必須先安裝和部署ElasticsSearch服務(wù)器。SkyWalking服務(wù)安裝部署過(guò)程也很簡(jiǎn)單,具體過(guò)程如下:

1) 下載SkyWalking:訪問(wèn)Apache SkyWalking官方網(wǎng)站下載頁(yè)面https://skywalking.incubator.apache.org/downloads/,選擇合適的版本下載。

2) 解壓SkyWalking壓縮包到合適的目錄,例如,

/amt/skywalking。

3) 配置SkyWalking和SkyWalking UI。編輯config/application.yml文件和bin\webapp\webapp.yml,在本文中需要根據(jù)需要配置數(shù)據(jù)庫(kù)連接,SkyWalking服務(wù)器地址以及SkyWalking Web UI地址。如圖3所示。

4) 進(jìn)入相應(yīng)目錄啟動(dòng)SkyWalking OAP服務(wù)(./oapService.sh) 和UI服務(wù)(./startup.sh) 。

2.1.4 部署SkyWalking Agent

SkyWalking Agent是一個(gè)數(shù)據(jù)探測(cè)引擎,也稱為語(yǔ)言探針。它是官方提供的一個(gè)可以方便集成到不同應(yīng)用中的實(shí)現(xiàn)數(shù)據(jù)采集的獨(dú)立插件,根據(jù)具體應(yīng)用所采取的技術(shù)實(shí)現(xiàn)不同,官方提供了多種不同的數(shù)據(jù)引擎供下載[4]。通過(guò)配置可以集成到不同的應(yīng)用系統(tǒng)中。本研究用來(lái)鏈路跟蹤測(cè)試的系統(tǒng)是一個(gè)基于SpringBoot+SpringCloud的微服務(wù)系統(tǒng),項(xiàng)目構(gòu)建環(huán)境使用Maven。因此需要使用到Java Agent數(shù)據(jù)探測(cè)引擎。在項(xiàng)目中集成Java Agent的部署過(guò)程如下:

1) 從官方鏈接下載文件解壓后得到一個(gè)文件夾,文件夾里面包含了skywalking-agent.jar引擎文件和相關(guān)依賴jar包文件,以及一個(gè)引擎配置文件config/agent.config。

2) 通過(guò)Maven配置文件添加SkyWalking依賴,如圖4所示。

3) 通過(guò)配置Agent配置文件。配置文件有很多選項(xiàng)是需要采集的數(shù)據(jù)相關(guān)的參數(shù),例如Agent的類(lèi)型、關(guān)聯(lián)的服務(wù)名稱、后臺(tái)服務(wù)的IP和端口號(hào)等。默認(rèn)的配置文件中必要的關(guān)鍵參數(shù)都設(shè)有默認(rèn)值,例如,collector.backend_service參數(shù)代表接收SkyWalking trace數(shù)據(jù)的后端地址,它的默認(rèn)值是127.0.0.1:11800。如果使用的是單主機(jī)IP部署,且默認(rèn)端口沒(méi)有地址沖突,可以使用默認(rèn)值??梢愿鶕?jù)需要更改為所需的地址,比如在本研究中需要把它指向SkyWalking OAP服務(wù)器的地址http://192.168.0.3:80。一些非關(guān)鍵的參數(shù),如引擎在SkyWalking UI中展示的服務(wù)名參數(shù)agent.service_name:SongAgent,可以根據(jù)需要進(jìn)行設(shè)置。

4) 在SpringBoot啟動(dòng)方法內(nèi)增加JVM參數(shù),讓數(shù)據(jù)探測(cè)引擎隨JVM啟動(dòng)。配置參數(shù)如下:javaagent:/amt/sky_agent/skywalking-package/agent/skywalking-agent.jar。

2.1.5 部署Nginx

在本系統(tǒng)中,Nginx并不是必需的。由于現(xiàn)在云原生微服務(wù)系統(tǒng)都會(huì)使用到Nginx來(lái)實(shí)現(xiàn)一些功能,為了展示系統(tǒng)完整性這里把它引入。但是也只是作為普通的代理服務(wù)器使用,沒(méi)有它也不影響監(jiān)控系統(tǒng)的功能。這里只是為系統(tǒng)提供一個(gè)統(tǒng)一的服務(wù)入口,安裝過(guò)程比較簡(jiǎn)單。安裝過(guò)程省略。配置文件中關(guān)鍵配置如圖5所示。

2.2 鏈路跟蹤測(cè)試分析

系統(tǒng)實(shí)現(xiàn)鏈路分析數(shù)據(jù)采集、處理和持久化的工作流程如下:

1) SkyWalking-Java-Agent被注入WebApp服務(wù),并隨Web服務(wù)啟動(dòng)。當(dāng)用戶通過(guò)瀏覽器訪問(wèn)微服務(wù)系統(tǒng)時(shí),SkyWalking-Java-Agent會(huì)將帶有特點(diǎn)標(biāo)記的鏈路數(shù)據(jù)上報(bào)至SkyWalking OAP Server。

2) 數(shù)據(jù)上報(bào)后,SkyWalking OAP Server通過(guò)Analysis Core組件接收數(shù)據(jù),其中的Receiver模塊對(duì)數(shù)據(jù)進(jìn)行收集處理,處理完畢后發(fā)送給Aggregator模塊,Aggregator模塊會(huì)將鏈路數(shù)據(jù)進(jìn)行一個(gè)聚合。

3) 聚合后的數(shù)據(jù)通過(guò)Aggregator模塊將數(shù)據(jù)傳給Elasticsearch,由Elasticsearch進(jìn)行存儲(chǔ)和持久化。

用戶可以通過(guò)SkyWalking Web UI選擇需要的查詢參數(shù),如果查詢參數(shù)合規(guī),就會(huì)向SkyWalking Query Core組件發(fā)起查詢。Query Core組件會(huì)根據(jù)用戶傳入的條件拼接成對(duì)應(yīng)的Elasticsearch查詢語(yǔ)句。Elasticsearch根據(jù)查詢語(yǔ)句查出用戶需要的數(shù)據(jù),并把查詢結(jié)果返回給Query Core。Query Core組件對(duì)結(jié)果進(jìn)行解析和包裝后再傳到Web UI,前端就可以對(duì)數(shù)據(jù)進(jìn)行可視化渲染并呈現(xiàn)給用戶。

需要注意,鏈路跟蹤分析數(shù)據(jù)采集分為鏈路追蹤和鏈路拓?fù)鋬煞N不同的數(shù)據(jù)采集方式。

在鏈路拓?fù)鋽?shù)據(jù)中,鏈路拓?fù)涞暮诵氖巧舷掠沃g的關(guān)鍵信息。因此Agent會(huì)在請(qǐng)求經(jīng)過(guò)上下游的時(shí)候,分別記錄上游服務(wù)的關(guān)鍵信息以及下游服務(wù)的關(guān)鍵信息,并且結(jié)合該請(qǐng)求的一個(gè)具體執(zhí)行情況(請(qǐng)求執(zhí)行耗時(shí)、請(qǐng)求結(jié)果)從而生成對(duì)應(yīng)的一條數(shù)據(jù)上報(bào)給Collector。由于每條數(shù)據(jù)都記錄了上下游信息,因此可以通過(guò)以某個(gè)需要觀測(cè)的服務(wù)為關(guān)鍵,找出所有與這個(gè)服務(wù)相關(guān)的拓?fù)鋽?shù)據(jù)以及與該數(shù)據(jù)對(duì)應(yīng)的上下游數(shù)據(jù),通過(guò)這些數(shù)據(jù)就可以畫(huà)出一張服務(wù)鏈路拓?fù)鋱D。還可以對(duì)這些數(shù)據(jù)進(jìn)行一個(gè)聚合處理,生成上下游的平均耗時(shí)、每分鐘請(qǐng)求數(shù)以及請(qǐng)求成功率等信息。圖6所展示的是其中一個(gè)服務(wù)1小時(shí)內(nèi)的鏈路拓?fù)淝闆r。

在鏈路追蹤數(shù)據(jù)中,鏈路代表了一條完整的請(qǐng)求鏈路,由多個(gè)Segment組成。每個(gè)Segment代表一個(gè)JVM進(jìn)程內(nèi)的一個(gè)線程中的所有操作的集合,由多個(gè)Span組成。Span則表示具體的一個(gè)操作,是鏈路組成中的最小單元。

SkyWalking Agent中有專(zhuān)門(mén)的類(lèi)(TraceContext) 管理鏈路追蹤的上下文信息,維護(hù)Segment以及Span的生命周期和完整性。通過(guò)全局唯一的TraceID(由服務(wù)實(shí)例ID、線程ID、時(shí)間戳以及指定線程字段進(jìn)行組合計(jì)算而成)來(lái)最終維護(hù)Trace的完整性。對(duì)于跨線程的情況,Agent會(huì)將上下文信息序列化封裝到請(qǐng)求框架中,通過(guò)反序列化得到上下文信息來(lái)完成跨線程的問(wèn)題。最后Trace完成后Agent將其上報(bào)至Collector。

在默認(rèn)的策略中,全局唯一的TraceID由三部分組成:應(yīng)用程序?qū)嵗齀D、請(qǐng)求發(fā)起的線程ID、時(shí)間戳*10 000+當(dāng)前線程中的seq(seq的值介于0(包含)和9 999(包含)之間)。通過(guò)這三者組成一個(gè)保證全局唯一性的跟蹤ID。圖7所示為某條鏈路的追蹤詳情信息。

3 總結(jié)與展望

在本研究中,基于云原生的可觀測(cè)性服務(wù)監(jiān)控系統(tǒng)需求,采用開(kāi)源軟件設(shè)計(jì)并實(shí)現(xiàn)了一種可觀測(cè)性微服務(wù)鏈路監(jiān)控系統(tǒng)。詳細(xì)描述了可觀測(cè)性的“三大支柱”中的鏈路可觀測(cè)性方案的設(shè)計(jì)與實(shí)現(xiàn),并通過(guò)部署和測(cè)試驗(yàn)證了方案的可行性。該系統(tǒng)方案具有成本低、部署方便、可控性強(qiáng)等優(yōu)點(diǎn)。

未來(lái)的研究將致力于擴(kuò)展鏈路監(jiān)控指標(biāo)的多樣性,并將其與可觀測(cè)性的另外兩大支柱進(jìn)行整合,提供統(tǒng)一的微服務(wù)運(yùn)維工作中臺(tái),提升基于云原生的微服務(wù)軟件系統(tǒng)運(yùn)維的便利性[6]。

參考文獻(xiàn):

[1] 洛愷辰.一文搞懂:可觀測(cè)性到底是什么?[EB/OL].[2022-10-20].https://zhuanlan.zhihu.com/p/605914260.

[2] 鏈路追蹤(Skyworking)[EB/OL].[2022-10-20].https://blog.csdn.net/m0_73467713/article/details/131073840.

[3] 優(yōu)維科技EASYOPS.可觀察性支柱:探索日志、指標(biāo)和跟蹤[EB/OL].[2022-10-20].https://zhuanlan.zhihu.com/p/66354 3274.

[4] 不同數(shù)據(jù)引擎下載地址[EB/OL].[2022-10-20].https://skywalking.apache.org/downloads/.

[5] 一臺(tái)服務(wù)器虛擬化為多臺(tái)服務(wù)器[EB/OL].[2022-10-20].https://blog.51cto.com/u_12196/8798424.

[6] 百度百科[EB/OL].[2022-10-20].https://baike.baidu.com/item/Elasticsearch/3411206.

[7] 中國(guó)信息通信研究院云計(jì)算與大數(shù)據(jù)研究所.可觀測(cè)性技術(shù)發(fā)展研究報(bào)告[EB/OL].[2022-10-20].http://www.caict.ac.cn/kxyj/qwfb/ztbg/202312/P020231229323602819435.pdf.

【通聯(lián)編輯:謝媛媛】

马公市| 高陵县| 陕西省| 阳春市| 南京市| 四会市| 图们市| 库尔勒市| 南宁市| 芜湖县| 广州市| 清水县| 抚远县| 郎溪县| 遵化市| 元氏县| 呼伦贝尔市| 塘沽区| 滦南县| 天长市| 本溪| 宜黄县| 东丰县| 佳木斯市| 邵阳县| 台州市| 怀集县| 清徐县| 西华县| 丰城市| 万荣县| 格尔木市| 屯昌县| 栖霞市| 德格县| 克拉玛依市| 贺州市| 隆德县| 垣曲县| 萨嘎县| 融水|