監控 - AWS 方案指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

監控

監控是收集不同指標 (例如 CPU 和記憶體) 的程序,並將它們儲存在時間序列資料庫中,例如 Prometheus 的 Amazon 受管服務。監控系統可以是基於推送或拉取。在以推送為基礎的系統中,來源會定期將量度推送至時間序列資料庫。在基於拉動的系統中,抓取工具會從各種來源抓取指標並將其存儲在時間序列數據庫中。開發人員可以分析指標,過濾指標,並繪製它們隨著時間的推移以可視化性能。成功實作監控可分為兩大領域:應用程式和基礎架構。

對於應用程式開發人員而言,下列指標很重要:

  • 延遲 — 接收回應所花費的時間

  • 要求傳輸量 — 每秒處理的要求總數

  • 要求錯誤率 — 錯誤總數

擷取涉及商業交易之每個資源 (例如應用程式容器、資料庫) 的資源使用率、飽和度和錯誤計數。例如,監視 CPU 使用率時,您可以追蹤效能測試執行期間的平均 CPU 使用率、平均負載和尖峰負載。當資源在 stress 測試期間達到飽和度時,但在效能執行期間可能無法達到飽和度。

指標

應用程式可以使用不同的致動器 (例如彈簧引導致動器) 來監控其應用。這些生產級程式庫通常會公開 REST 端點,用於監視執行中應用程式的相關資訊。這些程式庫可以監視基礎結構、應用程式平台和其他資源。如果任何默認指標不符合要求,則開發人員必須實現自定義指標。自訂指標可協助追蹤無法透過預設實作資料追蹤的業務關鍵績效指標 (KPI)。例如,您可能想要跟踪業務操作,例如第三方 API 集成延遲或完成的交易總數。

基數

基數是指量度的唯一時間序列數目。量度會標示為提供其他資訊。例如,追蹤特定 API 要求計數的 REST 型應用程式表示基數為 1。如果您新增使用者標籤來識別每位使用者的要求計數,則基數會隨使用者數量成比例增加。透過新增建立基數的標籤,您可以依不同群組對量度進行切片和切塊。請務必針對正確的使用案例使用正確的標籤,因為基數會增加後端監視時間序列資料庫中的度量序列數目。

解析度

在典型的監視設置中,監視應用程序配置為定期從應用程序中抓取指標。抓取的週期性定義了監視數據的粒度。由於有更多可用的資料點,因此以較短的間隔收集的指標往往會提供更準確的效能檢視。不過,時間序列資料庫的負載會隨著儲存更多項目而增加。通常 60 秒的粒度是標準解析度,1 秒是高解析度。

DevOps 團隊

應用程式開發人員經常要求 DevOps 工程師設定監視環境,以視覺化基礎架構和應用程式的指標。工程 DevOps 師必須設置一個可擴展的環境,並支持應用程序開發人員使用的數據可視化工具。這涉及從不同來源抓取監控數據,並將數據發送到中央時間序列數據庫,例如 Prometheus 的 Amazon 託管服務

監控後端

監控後端服務支援指標資料的收集、儲存、查詢和視覺化。它通常是一個時間序列數據庫,例如 Amazon Prometheus 或 InfluxDB 的管理服務。 InfluxData 使用服務探索機制,監視收集器可以從不同來源收集指標並加以儲存。雖然性能測試,它存儲的指標數據,以便它可以在以後的時間被搜索是非常重要的。我們建議您為指標儲存至少 15 天的資料。但是,將指標存儲更長的持續時間並不會增加顯著的好處,並且會導致不必要的存儲成本。因為效能測試可以產生大量的指標,因此在提供快速查詢效能的同時擴展指標基礎結構非常重要。監視後端服務提供查詢語言,可用來檢視指標資料。

視覺效果

提供可顯示應用程式資料的視覺化工具,以提供有意義的見解。工程 DevOps 師和應用程式開發人員應該學習監視後端的查詢語言,並密切合作以產生可重複使用的儀表板範本。在儀表板上,包括延遲和錯誤,同時還顯示基礎結構和應用程式資源的資源使用率和飽和度。

自動化監控基礎架構

與記錄類似,自動化監控基礎結構的安裝和操作非常重要,以便您可以滿足不同應用程式的不同需求。使用 IaC 工具佈建監視基礎結構的後端。然後,您可以將監視基礎結構佈建為共用服務,或作為特定應用程式的獨立自訂部署佈建。

使用 CD 管線自動執行下列作業:

  • 根據需求部署監控基礎架構,並在不需要時將其拆除。

  • 更新監視組態以篩選或彙總指標。

  • 部署應用程式儀表板

監控工具

適用於 Prometheus 的 Amazon 受管服務是一種與 Prometheus 相容的監控服務,適用於容器基礎設施和容器的應用程式指標,可用來安全地大規模監控容器環境。如需詳細資訊,請參閱適用於 Prometheus 的 Amazon 受管服務入門的部落格文章。

Amazon CloudWatch 提供全棧監控。 AWS CloudWatch 同時支援 AWS 原生和開放原始碼解決方案,讓您隨時瞭解技術堆疊中發生的情況。

原生 AWS 工具包括下列項目:

Amazon CloudWatch 提供專門建置的功能,可解決特定使用案例,例如透過容器洞察進行容 CloudWatch 器監控。這些功能內建於其中, CloudWatch 因此您可以設定記錄、指標收集和監控。

針對您的容器化應用程式和微服務,請使用容器深入解析來收集、彙總和摘要指標和記錄。容器見解適用於 Amazon Elastic Container Service (Amazon ECS)、Amazon Elastic Kubernetes Service (Amazon EKS) 以及 Amazon Elastic Compute Cloud (Amazon EC2) 上的 Kubernetes 平台。容器深入解析會以內嵌指標格式收集資料做為效能記錄事件。這些效能記錄事件項目使用支援高基數資料擷取和大規模儲存的結構化 JSON 結構描述。

有關使 AWS 用 Amazon EKS 實作容器見解的資訊,請參閱部落格文章介紹使用發行版的 Amazon EKS Fargate 的 Amazon CloudWatch 容器見解。 OpenTelemetry