可觀測性和監控有何差異?

在 DevOps 中,可觀測性和監控是兩個完全不同的資料型程序。它們可以協助您順利維護並管理分散式微型服務架構及其基礎架構的運作狀態和效能。分散式系統是仰賴數十、數百或甚至數千個不同元件間的資料交換才得以運作。 

在監控過程中,除了收集資料以外,也會產生各式系統運作狀態指標的報告。可觀測性是一種更偏向調查性質的方法。它會仔細研究分散式系統元件的互動及監控收集到的資料,以找到問題的根本原因。它包括追踪路徑分析等活動,這是一個依循系統要求路徑來識別整合失敗的過程。監控會收集個別元件的資料,而可觀測性則會綜觀分散式系統的全貌。

閱讀有關 DevOps 的內容

可觀測性與監控的運作方式對比

要執行有效的 DevOps 計劃,可觀測性和監控是兩個不可或缺的程序。

監控

監控運算系統跟運行運算系統本身一樣歷史悠久。監控程序會收集系統相關資料,檢查系統是否如預期般運作。它包含錯誤、故障或異常資料值的報告和警示。 

例如,監控工具可收集資料,測量部署應用程式發行所需的時間。如果花費的時間超出預期,監控工具可以警示使用者,指出可能發生問題。 

DevOps 監控涵蓋完整的軟體開發生命週期 (SDLC)。應用程式效能監控 (APM) 是包含在 DevOps 中的一組特殊監控功能,著重於在生產環境中執行的應用程式。它會依據使用者的經驗來排定指標的優先順序。

閱讀有關軟體開發生命週期的內容

閱讀有關應用程式效能監控的內容

可觀察性

可觀測性擴大了傳統監控工具的範圍和可見性,並結合額外的情境和歷史資料以及系統互動。它可以調查監控警示的根本原因,同時還能調查由於多元件互動所引發的問題。

您可以使用可觀測性工具對分散式應用程式架構型系統本身進行偵錯。它們也可以用來觀察整體系統的即時運作狀態,以及系統元件之間的互動。您可以使用可觀測性軟體來映射整個相互關聯系統、其相依性和即時互動。

可觀測性和監控有何相似之處?

可觀測性和監控最初源自於控制理論領域,這是一個系統工程和數學領域。兩者皆在運算及運算混合實體的環境中受到廣泛應用,以維護系統最佳的運作狀態和效能。在 DevOps 中,這兩個術語經常交替使用,因為兩者都跟指標、事件、日誌和追蹤之類的遙測資料有關。

指標

指標是系統資料的測量。例如,指標可能是網路輸送量或一週內的應用程式錯誤數目。監控提出指標報告,而可觀測性會尋找改善指標值的方法。

活動

事件是指任何時間點於系統中發生的離散動作。比如使用者變更密碼,或指出密碼嘗試次數過多的警示,都算是事件的例子。事件會觸發監控並輔助可觀測性進行事件調查。

日誌

日誌是軟體產生的檔案,其中包含系統的作業、活動和使用模式相關資訊。其包含所有程序、活動和訊息的歷史記錄,以及用來全盤了解此資訊的額外描述性資料 (例如時間戳記)。可觀測性會利用監控產生的日誌進行更深入的系統分析。

閱讀有關日誌檔的內容

追蹤

追蹤是跨各種相互關聯系統之單一操作的完整路徑。為實現完全分散式追蹤,微型服務架構中的每個交易都必須發出訊號以利追蹤。監控讓追蹤得以運行,這是可觀測性的重要功能。

可觀測性與監控的主要差異對比

監控是可觀測性的關鍵組成核心。全面監控可建立描述性指標、事件、日誌和追蹤,以易於識別和擷取的方式衡量孰輕孰重。歷史記錄會跟當前的測量結果儲存在一起,以建構系統全貌。接著,可觀測性使用監控產生的內容來更深入地調查事件。

監控是要找出何時發生什麼系統錯誤,而可觀測性則是找出錯誤為何如何發生的。必須對應並監控許多訊號,才能取得整體系統的內部狀態和運作狀況的全貌。所有資料缺一不可,才能進行有效的調查。為了讓可觀測性能確實發揮功用和實效,監控必須全面且具描述性。

異常狀況

監控系統可協助您發現系統狀態和效能的異常狀況或異常行為。可觀測性可協助您深入調查任何異常狀況,即便起因是數百個服務元件之間的互動,也照樣能查個水落石出。

因果關係

監控著重於測量一或多個值,查看其是否會對系統產生影響。可觀測性的目標在於了解造成該後果的原因。例如,發佈新的程式碼時,監控會追蹤系統指標,以查看變更是否會影響到應用程式的載入時間或資料的擷取時間。如果確實有影響,可觀測性會調查理由或原因。它可以解答哪一部分的程式碼變更引發該後果,並建議修正方式。

系統互動

監控通常會測量特定系統的運作狀態。它收集所有不同系統元件的資料,但資料可能是孤立的,且很難理解資料間的相互關係。可觀測性可讓您取得所有相互關聯系統的全貌,了解問題是在哪裡及如何發生的。

可觀測性與監控的使用時機對比

回溯錯誤捕捉,例如得知使用者發生停電事故或發現應用程式正在錯誤的目標系統上執行,可能會造成時間、金錢、信譽和開發人員資源損失。監控是主動捕捉錯誤的必備要件。監控工具會針對所有類型的差異提出警示,才能在引發長期後果之前及早識別並修正之。

可觀測系統讓現有的監控系統如虎添翼。這對於執行微型服務應用程式架構至關重要,尤其是部署到分散式雲端基礎架構時。若單靠監控,幾乎不可能在一開始發生錯誤時就識別必隔離出錯的應用程式或服務。正確的資料擷取和監控,加上可觀測性,方可順利追蹤到複雜系統中的錯誤。

差異摘要:監控與可觀測性

 

監控

可觀察性

這是什麼?

測量並報告系統內的特定指標,以確保系統發揮最佳運作狀態。

收集指標、事件、日誌和追蹤,利用微型服務架構深入調查分散式系統中可能有問題的地方。

主要焦點

收集資料以找出異常的系統效應。

調查異常系統效應的根本原因。

涉及的系統

通常涉及獨立系統。

通常涉及多個不同的系統。

可追溯性

僅限於系統邊緣。

適用於不同系統架構發出訊號的情況。

系統錯誤調查結果

何時發生,以及發生了什麼

為何以及如何發生的。

AWS 如何協助提供您所需的可觀測性和監控能力?

AWS 雲端維運提供了可在雲端安全高效地運作的模組和工具。您可以利用 Amazon Web Services (AWS) 實現組織轉型、現代化和遷移您的應用程式以及加速創新。 

透過雲端維運中的監控和可觀測性,您可以收集、關聯、彙總和分析遙測。不論是雲端、混合環境或內部部署環境中的網路、基礎架構和應用程式全都適用。您可以深入洞察系統的行為、效能和運作狀況。這些洞察可協助您更快速地偵測、調查和修復問題。若結合人工智慧 (AI) 和機器學習 (ML) 技術,您可以運用這些洞察主動做出反應、預測並防範問題。

例如,您可以使用以下服務:

  • AWS X-Ray 可分析和偵錯生產與分散式應用程式、追蹤使用者請求、找出瓶頸及監控效能
  • Amazon CloudWatch 可在 AWS、內部部署和其他雲端環境中使用強大的視覺化工具,以存取和分析資源和應用程式資料及外部輸出
  • Amazon Managed Grafana 可全面管理 Grafana(熱門的監控工具),並可查詢並視覺化所有維運資料的指標、日誌和追蹤並提出警示
  • Amazon Managed Service for Prometheus 可全面管理 Prometheus,這種容器監控工具會從自我管理的 Kubernetes 容器叢集維護和查詢時間序列指標

立即建立帳戶,開始體驗 AWS 上的監控功能與可觀測性。