可觀測(cè)性一詞來源于工程領(lǐng)域,近年來在軟件開發(fā)領(lǐng)域也日益流行。簡(jiǎn)而言之,可觀測(cè)性是指根據(jù)外部輸出以了解系統(tǒng)內(nèi)部狀態(tài)的能力。IBM對(duì)可觀測(cè)性的定義為:
通常,可觀測(cè)性是指基于對(duì)復(fù)雜系統(tǒng)外部輸出的了解就能夠了解其內(nèi)部狀態(tài)或狀況的程度。系統(tǒng)越可觀測(cè),定位性能問題根本原因的過程就能越快速且準(zhǔn)確,而無需進(jìn)行額外的測(cè)試或編碼。
在云計(jì)算中,可觀測(cè)性還指對(duì)分布式應(yīng)用系統(tǒng)及支撐其運(yùn)行的基礎(chǔ)設(shè)施的數(shù)據(jù)進(jìn)行聚合、關(guān)聯(lián)和分析的軟件工具和實(shí)踐,以便對(duì)應(yīng)用系統(tǒng)進(jìn)行更有效地監(jiān)控、故障排除和調(diào)試,從而實(shí)現(xiàn)客戶體驗(yàn)優(yōu)化、服務(wù)水平協(xié)議 (SLA) 和其他業(yè)務(wù)目標(biāo)。
隨著IT架構(gòu)變得越來越復(fù)雜,系統(tǒng)管理和故障排除也變得更加復(fù)雜。在許多場(chǎng)景中,傳統(tǒng)的方法已經(jīng)不足以確保最佳性能。可觀測(cè)性通常被認(rèn)為是監(jiān)控的衍生物。監(jiān)控通常會(huì)涉及跟蹤一組特定指標(biāo),比如CPU 使用率或網(wǎng)絡(luò)流量,并能在這些指標(biāo)超過閾值時(shí)發(fā)出告警。監(jiān)控存在一定的局限性,而可觀測(cè)性涉及收集和分析更廣泛范圍的數(shù)據(jù),提供系統(tǒng)行為的更全面視圖。
在軟件開發(fā)中,可觀測(cè)性是指根據(jù)應(yīng)用生成的數(shù)據(jù)了解應(yīng)用行為和性能的能力,這些數(shù)據(jù)包括日志、指標(biāo)、跟蹤等數(shù)據(jù)。通過分析這些數(shù)據(jù),開發(fā)人員可以了解應(yīng)用程序的運(yùn)行情況,并確定可以改進(jìn)的方向。
可觀測(cè)性案例
平臺(tái)安全是可觀測(cè)性的一個(gè)實(shí)際應(yīng)用案例。
平臺(tái)安全團(tuán)隊(duì)從多個(gè)來源接收到大量多種格式數(shù)據(jù)。分析雜亂、質(zhì)量低的數(shù)據(jù),會(huì)減慢檢測(cè)漏洞、尋找新威脅以及在發(fā)生漏洞時(shí)作出反應(yīng)的速度。此外,隨著多種安全工具的部署,不同安全工具之間還存在無法共享信息的問題。
解決方案是定義可觀測(cè)性過濾器,以識(shí)別潛在的安全威脅并提高待分析傳入數(shù)據(jù)的質(zhì)量。下一步是使用外部數(shù)據(jù)庫(kù)的支持?jǐn)?shù)據(jù)來豐富數(shù)據(jù)以幫助分析識(shí)別安全威脅,從DNS信息、IP地址再到用戶標(biāo)識(shí)等內(nèi)容都是可以添加的。
可觀測(cè)性的優(yōu)勢(shì)
可觀測(cè)性的一個(gè)主要好處是它可以幫助開發(fā)人員快速識(shí)別和排除應(yīng)用程序的問題。通過分析應(yīng)用程序生成的遙測(cè)數(shù)據(jù),開發(fā)人員可以了解它如何運(yùn)轉(zhuǎn)并確定可以改進(jìn)性能的方向。這有助于減少停機(jī)時(shí)間并提升總體的用戶體驗(yàn)。
借助自動(dòng)化,監(jiān)控和控制的及時(shí)性和準(zhǔn)確性將得到改善。同時(shí),將能夠幫您減少整體監(jiān)控并降低維護(hù)成本。
可觀測(cè)性的支柱
可觀察性通常被認(rèn)為是建立在三個(gè)支柱之上:
日志
許多進(jìn)程都可以創(chuàng)建其活動(dòng)的日志。通常它們對(duì)可觀測(cè)性很有用,但在一些情況下需要調(diào)整以增加日志中顯示的詳細(xì)信息級(jí)別才能發(fā)揮作用。
跟蹤
日志非常有用,但是向前和向后的追蹤也是必要的,這可以查看事件發(fā)生的原因及其后果。
指標(biāo)
指標(biāo)是我們衡量異常的方式,如果有必要,異常指標(biāo)會(huì)觸發(fā)糾正措施。簡(jiǎn)單地說,您需要知道正常狀態(tài),并檢測(cè)偏離正常狀態(tài)的情況。所以具有定義正常狀態(tài)的指標(biāo)是必須的。
可觀測(cè)性的實(shí)施
使用一些舊工具也可以實(shí)現(xiàn)可觀測(cè)性,但它們?cè)谶m用性和覆蓋范圍方面有一些限制。要實(shí)現(xiàn)可觀測(cè)性,需要一個(gè)包含技術(shù)和工具本身的工具箱,并涵蓋可觀測(cè)性的三個(gè)支柱:日志、跟蹤和指標(biāo)。
這些工具允許管理人員、監(jiān)控人員和開發(fā)人員從各種來源(包括應(yīng)用程序代碼、基礎(chǔ)設(shè)施和用戶行為)收集和分析數(shù)據(jù)。通過結(jié)合使用這些工具,系統(tǒng)管理員可以全面了解整個(gè)系統(tǒng)或單個(gè)系統(tǒng)的行為和性能,這可以幫助他們更準(zhǔn)確快速地識(shí)別和解決問題。
儀表
第一步是部署測(cè)量整個(gè)系統(tǒng)或單個(gè)系統(tǒng)性能的工具。這些工具需要涵蓋日志、指標(biāo)和跟蹤,實(shí)現(xiàn)對(duì)有關(guān)系統(tǒng)行為和性能數(shù)據(jù)的收集。將網(wǎng)絡(luò)管理和控制系統(tǒng)連接起來可以提高可觀測(cè)性。
收集
在您安裝儀表盤之后,您需要收集系統(tǒng)生成的數(shù)據(jù)。日志框架、指標(biāo)收集系統(tǒng)和跟蹤庫(kù)等工具可用于收集數(shù)據(jù)。
您需要查看每個(gè)工具提供的數(shù)據(jù),并確定存儲(chǔ)、安全忽略或丟棄哪些數(shù)據(jù)。
存儲(chǔ)
定義如何存儲(chǔ)手機(jī)的數(shù)據(jù)是接下來的步驟。將數(shù)據(jù)存儲(chǔ)在集中位置,比如數(shù)據(jù)庫(kù)或者數(shù)據(jù)湖中,會(huì)方便您稍后查詢或分析數(shù)據(jù)。云存儲(chǔ)在這方面非常有用。許多企業(yè)使用分類系統(tǒng),其中新數(shù)據(jù)立即可用,而歷史數(shù)據(jù)仍在在線存儲(chǔ)庫(kù)中保留一段時(shí)間。自動(dòng)檢索系統(tǒng)可以訪問離線保存的舊數(shù)據(jù)。
定期備份數(shù)據(jù)是日常操作流程的一部分。如何定義立即、在線和離線存儲(chǔ)之間的分界點(diǎn)將根據(jù)業(yè)務(wù)需求而異。
分析
接下來您可以開始分析收集到的數(shù)據(jù),以了解系統(tǒng)的行為和性能。分析過程涉及使用儀表板、警報(bào)系統(tǒng)和機(jī)器學(xué)習(xí)模型等工具。
您可以立即分析數(shù)據(jù),以識(shí)別和管理使用情況的變化,例如觀察營(yíng)銷活動(dòng)對(duì)電子商務(wù)應(yīng)用程序的影響。您還可以分析歷史趨勢(shì)。例如,北半球買地毯的高峰期通常在秋季,也就是10月初左右。歷史分析會(huì)揭示業(yè)務(wù)中類似的模式。
可視化
可視化是重點(diǎn)。呈現(xiàn)數(shù)據(jù)有各種形式,如圖表和圖形。可視化有助于識(shí)別系統(tǒng)行為中的趨勢(shì)和模式。可視化工具有很多,甚至 Microsoft Excel也可以完成此過程。
總體而言,實(shí)現(xiàn)可觀測(cè)性需要結(jié)合工具、流程和最佳實(shí)踐,讓您在整體和細(xì)粒度級(jí)別上了解系統(tǒng)的行為和性能。這有助于企業(yè)和部門決策者更快地識(shí)別和解決問題。
最后
可觀測(cè)性是一個(gè)強(qiáng)大的概念,可以幫助開發(fā)人員深入了解其應(yīng)用程序的行為和性能。通過收集和分析遙測(cè)數(shù)據(jù),開發(fā)人員可以快速識(shí)別和解決問題,從而改善整體用戶體驗(yàn)并減少停機(jī)時(shí)間。