偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

解鎖潛在價(jià)值,智行日志治理的實(shí)踐之路

開(kāi)發(fā) 系統(tǒng)
我們整理了日志的使用場(chǎng)景,大致分為四個(gè)方向:指標(biāo)監(jiān)控,Trace定位排障,性能分析,數(shù)據(jù)分析與報(bào)表(實(shí)時(shí)/離線)。

作者簡(jiǎn)介

Seren,智行資深研發(fā)經(jīng)理,負(fù)責(zé)業(yè)務(wù)系統(tǒng)架構(gòu)升級(jí)和優(yōu)化,跟蹤行業(yè)趨勢(shì)和技術(shù)發(fā)展方向,

Phoenix,智行資深后端開(kāi)發(fā)工程師,專注系統(tǒng)性能優(yōu)化與業(yè)務(wù)數(shù)據(jù)治理挖掘,持續(xù)推動(dòng)業(yè)務(wù)發(fā)展。

一、背景

日志,作為系統(tǒng)運(yùn)行的忠實(shí)記錄者,不僅是問(wèn)題追蹤的利器,更是性能調(diào)優(yōu)的指南針。通過(guò)深入分析日志,我們可以洞悉系統(tǒng)運(yùn)行的每一個(gè)細(xì)節(jié),從而快速定位問(wèn)題、優(yōu)化性能。同時(shí),日志也可以作為數(shù)據(jù)分析和決策的重要依據(jù)。研發(fā)流程中,如何使用好日志,還是存在著以下難點(diǎn)。

  • 為了排查問(wèn)題,我們通常需要記錄大量的日志。如何關(guān)聯(lián)客戶端當(dāng)次請(qǐng)求的所有日志,確保信息的完整性和連貫性;
  • 日志記錄對(duì)象過(guò)大可能導(dǎo)致頻繁GC(垃圾回收),進(jìn)而造成服務(wù)器不穩(wěn)定;
  • 一些核心日志的丟失會(huì)給排查問(wèn)題帶來(lái)極大的困難;
  • 盡管日志的發(fā)送已經(jīng)實(shí)現(xiàn)了異步處理,但過(guò)多的發(fā)送仍會(huì)占用CPU、內(nèi)存等資源。大量的冗余日志也會(huì)浪費(fèi)寶貴的存儲(chǔ)資源;

針對(duì)以上問(wèn)題,本文提出一個(gè)日志治理挖掘方案。該方案旨在通過(guò)對(duì)系統(tǒng)日志進(jìn)行標(biāo)準(zhǔn)化、規(guī)范化、統(tǒng)一化處理,進(jìn)一步挖掘系統(tǒng)日志的潛在價(jià)值。

二、思考

我們整理了日志的使用場(chǎng)景,大致分為四個(gè)方向:指標(biāo)監(jiān)控,Trace定位排障,性能分析,數(shù)據(jù)分析與報(bào)表(實(shí)時(shí)/離線)。

指標(biāo)監(jiān)控:指標(biāo)監(jiān)控是系統(tǒng)穩(wěn)定運(yùn)行的重要保障,它通過(guò)對(duì)核心業(yè)務(wù)邏輯、第三方接口響應(yīng)、數(shù)據(jù)有效性等關(guān)鍵指標(biāo)進(jìn)行實(shí)時(shí)追蹤與分析,確保系統(tǒng)性能始終處于最佳狀態(tài)。

Trace定位排障:在復(fù)雜的業(yè)務(wù)場(chǎng)景中,當(dāng)遇到請(qǐng)求處理異常、系統(tǒng)響應(yīng)錯(cuò)誤、業(yè)務(wù)展示邏輯核對(duì)等問(wèn)題時(shí),定位排障成為了關(guān)鍵的一環(huán)。當(dāng)我們已經(jīng)通過(guò)上游定位、CDataportal查詢或日常開(kāi)發(fā)調(diào)試等手段,確定了具體的問(wèn)題請(qǐng)求,接下來(lái)的任務(wù)就是通過(guò)日志精準(zhǔn)鎖定問(wèn)題所在,并迅速解決故障。

場(chǎng)景問(wèn)題定位:場(chǎng)景問(wèn)題定位是一種針對(duì)具體場(chǎng)景,通過(guò)深入分析、精細(xì)排查,以快速找到問(wèn)題根源的方法。我們會(huì)利用日志分析、監(jiān)控?cái)?shù)據(jù)、用戶反饋等多種手段,對(duì)問(wèn)題場(chǎng)景進(jìn)行深入剖析。通過(guò)對(duì)比正常場(chǎng)景與問(wèn)題場(chǎng)景的差異,我們可以進(jìn)一步縮小問(wèn)題范圍,確定可能的問(wèn)題源頭。

數(shù)據(jù)分析與報(bào)表:通過(guò)日志記錄數(shù)據(jù)分析與報(bào)表編制流程,我們能夠?qū)崟r(shí)捕捉系統(tǒng)潛在問(wèn)題,進(jìn)而實(shí)現(xiàn)問(wèn)題的迅速定位與解決。同時(shí),這一做法也有助于我們更加精準(zhǔn)地向團(tuán)隊(duì)成員、決策者及BI等相關(guān)方展示分析成果與深刻洞察,確保各方能夠基于充分的信息作出合理決策。

三、解決方案

3.1 分布式系統(tǒng)日志的整合與串聯(lián)

分布式系統(tǒng)日志的串聯(lián)是確保在復(fù)雜的分布式環(huán)境中能夠準(zhǔn)確追蹤和關(guān)聯(lián)各個(gè)組件產(chǎn)生的日志記錄,從而實(shí)現(xiàn)對(duì)整個(gè)系統(tǒng)行為的全面理解。以下是關(guān)于分布式系統(tǒng)日志串聯(lián)實(shí)現(xiàn)中的關(guān)鍵步驟:

1)唯一標(biāo)識(shí)生成:在每個(gè)業(yè)務(wù)任務(wù)請(qǐng)求開(kāi)始時(shí),生成一個(gè)全局唯一的標(biāo)識(shí)。這個(gè)標(biāo)識(shí)將貫穿整個(gè)請(qǐng)求的生命周期,用于標(biāo)識(shí)和串聯(lián)與該請(qǐng)求相關(guān)的所有日志記錄。

2)標(biāo)識(shí)傳遞:在分布式系統(tǒng)中,請(qǐng)求會(huì)經(jīng)過(guò)多個(gè)系統(tǒng)或組件。為了確保日志的準(zhǔn)確串聯(lián),這個(gè)唯一標(biāo)識(shí)需要在請(qǐng)求傳遞過(guò)程中被正確攜帶。

我們通過(guò)在請(qǐng)求入口生成全局traceid,并存放在線程安全的context 中。每個(gè)組件、線程中,當(dāng)記錄日志時(shí),從線程 `context` 中獲取 `traceId`,并將其作為日志記錄的一部分。通過(guò)這種方式,我們實(shí)現(xiàn)了服務(wù)內(nèi)的日志串聯(lián)。

圖片

在調(diào)用下一級(jí)服務(wù)時(shí),將當(dāng)次請(qǐng)求的`traceId` 作為自定義頭的一部分添加到請(qǐng)求頭中。這樣,下一級(jí)服務(wù)或組件就能夠從請(qǐng)求頭中提取 `traceId`,并將其存放到自己的線程 `context` 中,通過(guò)這種方式,我們實(shí)現(xiàn)了系統(tǒng)間日志的關(guān)聯(lián)。

圖片

3.2 前后端日志信息的整合與貫通解決方案

前后端日志串聯(lián)打通方案主要涉及前端和后端產(chǎn)生的日志能夠按照特定的規(guī)則進(jìn)行關(guān)聯(lián)和整合,以便能夠追蹤和分析用戶操作的生命周期。以下是前后端日志串聯(lián)打通方案的關(guān)鍵步驟:

1)生成唯一標(biāo)識(shí):在請(qǐng)求的入口點(diǎn)(如API網(wǎng)關(guān)或負(fù)載均衡器),為每個(gè)請(qǐng)求生成一個(gè)全局唯一的標(biāo)識(shí),如`traceId`。這個(gè)標(biāo)識(shí)作為用戶上一次操作的traceid將用于串聯(lián)前后端的日志記錄。

2)傳遞`traceId`到前端:當(dāng)后端響應(yīng)前端請(qǐng)求時(shí),將生成的`traceId`包含在響應(yīng)頭中返回給前端。前端接收到響應(yīng)后,提取`traceId`,并將其存儲(chǔ)在合適位置。

3)前端回傳`traceId`:前端在發(fā)起下一次請(qǐng)求時(shí),將存儲(chǔ)的`traceId`作為請(qǐng)求的一部分傳遞給服務(wù)端。這樣,當(dāng)次請(qǐng)求就可以與上一次請(qǐng)求實(shí)現(xiàn)串聯(lián)。

圖片 

3.3 統(tǒng)一標(biāo)準(zhǔn)日志管理與模塊化解決方案

統(tǒng)一標(biāo)準(zhǔn)日志管理與模塊化解決方案旨在構(gòu)建一個(gè)統(tǒng)一、可維護(hù)且可擴(kuò)展的日志記錄、查詢體系,以提升系統(tǒng)的可觀察性、問(wèn)題追蹤能力,為系統(tǒng)的穩(wěn)定運(yùn)行和持續(xù)優(yōu)化提供有力支持。以下是關(guān)于日志標(biāo)準(zhǔn)化與組件化的關(guān)鍵步驟:

1)同一日志分層標(biāo)準(zhǔn):根據(jù)系統(tǒng)的不同功能和組件,將日志劃分為不同的層級(jí),如應(yīng)用層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問(wèn)層、外部接口層等。每個(gè)層級(jí)應(yīng)記錄與該層級(jí)相關(guān)的關(guān)鍵信息和事件,以便于問(wèn)題定位和性能分析。

2)統(tǒng)一日志格式:定義一套標(biāo)準(zhǔn)的日志字段,包括但不限于時(shí)間戳、traceId、日志級(jí)別、日志來(lái)源、請(qǐng)求信息(如請(qǐng)求方法、URL、參數(shù)等)、響應(yīng)信息(如狀態(tài)碼、返回?cái)?shù)據(jù)等)、異常堆棧等。確保所有系統(tǒng)和組件產(chǎn)生的日志都包含這些標(biāo)準(zhǔn)字段,以便于日志的聚合和查詢。

3)統(tǒng)一接入方式:制定日志接入的統(tǒng)一規(guī)范,包括日志的收集、傳輸、存儲(chǔ)等流程。明確日志數(shù)據(jù)的數(shù)據(jù)格式(如JSON、XML等)、傳輸方式等。

4)日志分析工具:開(kāi)發(fā)日志分析工具,對(duì)收集到的日志數(shù)據(jù)進(jìn)行加工處理,統(tǒng)計(jì)分析、可視化展示和異常檢測(cè)等功能。

5)安全與性能優(yōu)化:對(duì)敏感數(shù)據(jù)進(jìn)行加密處理,確保存儲(chǔ)過(guò)程中的機(jī)密性。對(duì)日志數(shù)據(jù)進(jìn)行壓縮處理,減少存儲(chǔ)空間的占用和網(wǎng)絡(luò)傳輸?shù)拈_(kāi)銷。

圖片

3.4 大報(bào)文日志的精細(xì)化管理與處理方案

大報(bào)文日志的處理過(guò)程中,確保日志的完整性和可讀性,同時(shí)保證不影響服務(wù)性能,是至關(guān)重要的。以下是處理過(guò)程的關(guān)鍵步驟:

1)大報(bào)文日志的判斷

根據(jù)系統(tǒng)的內(nèi)存限制、日志的生成頻率以及業(yè)務(wù)需求,設(shè)定一個(gè)合理的內(nèi)存占用閾值。對(duì)指定日志報(bào)文對(duì)象做內(nèi)存空間占用分析,如果超過(guò)閾值,則視為大對(duì)象。

2)異步壓縮、發(fā)送

使用線程池,創(chuàng)建專門(mén)負(fù)責(zé)壓縮和發(fā)送日志的后臺(tái)任務(wù)。當(dāng)有大報(bào)文日志產(chǎn)生時(shí),將其傳遞給后臺(tái)任務(wù)隊(duì)列,由后臺(tái)任務(wù)異步處理,確保主服務(wù)能夠繼續(xù)處理請(qǐng)求。

3)選擇合適的壓縮算法

使用如Gzip、ZSTD等高效的壓縮算法,這些算法能夠在壓縮率和解壓縮速度之間取得良好的平衡。確保所選的壓縮算法能夠處理大報(bào)文,并且不會(huì)導(dǎo)致內(nèi)存溢出或其他問(wèn)題。

通過(guò)以上關(guān)鍵步驟的實(shí)施和監(jiān)控,可以確保大報(bào)文日志在處理過(guò)程中的完整性和可讀性,同時(shí)盡可能減少對(duì)服務(wù)性能的影響。

3.5 高效日志清洗與多維度分析解決方案

日志清洗與分析方案,旨在實(shí)現(xiàn)日志的有效清洗與分析,通過(guò)提取有用信息、轉(zhuǎn)換結(jié)構(gòu)化數(shù)據(jù),為后續(xù)的分析、監(jiān)控和故障排查工作提供堅(jiān)實(shí)基礎(chǔ)。方案主要包括日志處理、關(guān)鍵字段提取、維度聚合和可視化展示等步驟,以確保日志數(shù)據(jù)的準(zhǔn)確性和分析的高效性。以下是該方案的主要步驟:

1)日志處理:從各個(gè)系統(tǒng)和應(yīng)用程序中收集原始日志數(shù)據(jù),對(duì)需要進(jìn)行加密或壓縮處理的日志信息進(jìn)行解密和解壓縮操作,還原出原始的日志內(nèi)容。根據(jù)業(yè)務(wù)需求,篩選出需要分析的日志數(shù)據(jù),排除無(wú)用或重復(fù)的日志信息。

2)提取關(guān)鍵字段:通過(guò)Aviator 引擎運(yùn)行提取腳本,識(shí)別并提取出日志中的關(guān)鍵字段,如接口名、是否成功等。對(duì)提取出的字段進(jìn)行格式化和標(biāo)準(zhǔn)化處理,確保字段的一致性和可比性。這些字段是后續(xù)分析的基礎(chǔ)。

3)維度聚合:根據(jù)業(yè)務(wù)需求和分析目標(biāo),定義合適的維度,如時(shí)間維度、事件類型維度等。按照定義的維度對(duì)日志數(shù)據(jù)進(jìn)行聚合統(tǒng)計(jì),計(jì)算出各個(gè)維度的統(tǒng)計(jì)指標(biāo),如計(jì)數(shù)、平均值、最大值等。將聚合后的結(jié)果存儲(chǔ)到clickhouse中,以便于后續(xù)的查詢和分析。

4)可視化:根據(jù)業(yè)務(wù)需求和分析目標(biāo),設(shè)計(jì)合適的看板,展示關(guān)鍵指標(biāo)和統(tǒng)計(jì)結(jié)果。生成詳細(xì)的報(bào)表,包括各個(gè)維度的統(tǒng)計(jì)數(shù)據(jù)和趨勢(shì)分析,以供業(yè)務(wù)人員查閱和分析。在看板和報(bào)表中提供交互功能,如篩選、排序、鉆取等,方便用戶進(jìn)行深入分析和探索。

圖片

四、未來(lái)規(guī)劃

組件化:通過(guò)組件化,我們可以為系統(tǒng)提供零入侵的接入方案。這意味著在接入日志治理系統(tǒng)時(shí),無(wú)需對(duì)原有系統(tǒng)進(jìn)行任何修改或侵入,只需將日志組件集成到系統(tǒng)中即可。這種零入侵的方式不僅保證了原有系統(tǒng)的穩(wěn)定性和安全性,還大大簡(jiǎn)化了接入流程,提高了效率。

配置化:通過(guò)對(duì)關(guān)鍵流程接口進(jìn)行擴(kuò)展化處理,我們可以實(shí)現(xiàn)組件的靈活配置和定制。用戶可以根據(jù)實(shí)際需求,對(duì)日志組件進(jìn)行個(gè)性化的配置,以滿足不同的業(yè)務(wù)場(chǎng)景和需求。

抽樣化:核心日志往往包含了大量的關(guān)鍵信息,但其數(shù)量也非常龐大,如果全部存儲(chǔ),將帶來(lái)巨大的存儲(chǔ)成本。抽樣化技術(shù)可以解決這個(gè)問(wèn)題。通過(guò)對(duì)核心日志進(jìn)行抽樣輸出,我們可以只保留部分具有代表性的日志數(shù)據(jù),從而大大降低存儲(chǔ)成本。

降低資源消耗:通過(guò)自定義序列化方式,我們可以優(yōu)化日志數(shù)據(jù)的傳輸格式,減少數(shù)據(jù)傳輸量。其次,采用日志批量發(fā)送的方式,可以將多條日志合并成一次發(fā)送,減少發(fā)送次數(shù)和網(wǎng)絡(luò)開(kāi)銷。

責(zé)任編輯:張燕妮 來(lái)源: 攜程技術(shù)
相關(guān)推薦

2022-08-16 13:48:55

暗數(shù)據(jù)IT領(lǐng)導(dǎo)者

2023-01-13 14:35:00

攜程實(shí)踐

2022-02-18 16:23:45

元宇宙元宇宙治理問(wèn)題

2022-09-02 10:16:41

CIO暗數(shù)據(jù)IT領(lǐng)導(dǎo)者

2022-08-19 09:56:58

數(shù)據(jù)湖暗數(shù)據(jù)IT

2024-01-10 18:49:47

2024-03-26 07:35:24

日志索引語(yǔ)言

2023-10-17 16:38:06

數(shù)字經(jīng)濟(jì)數(shù)字化轉(zhuǎn)型

2023-08-27 15:25:49

2022-07-26 11:14:21

人工智能AI

2009-07-16 18:52:35

刀片服務(wù)器數(shù)據(jù)惠普

2017-04-07 13:30:08

數(shù)據(jù)安全治理

2017-04-24 22:32:08

2025-06-13 09:08:41

2022-03-15 20:25:32

數(shù)據(jù)治理大數(shù)據(jù)

2023-03-15 18:34:26

資源治理數(shù)據(jù)治理業(yè)務(wù)線

2023-01-31 15:27:13

數(shù)據(jù)治理數(shù)據(jù)管理

2023-02-24 13:29:11

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)